diff --git a/main.py b/main.py index a76631b..399d385 100644 --- a/main.py +++ b/main.py @@ -58,6 +58,7 @@ def main ( last_posted_at = datetime.now () - timedelta (hours = 6) has_got_snack_time = False + watched_videos = [] while True: now = datetime.now () @@ -86,6 +87,20 @@ def main ( parent = records[0]['strong_ref'], root = records[-1]['strong_ref'])) + for datum in [e for e in get_nico_deerjika () + if e['contentId'] not in watched_videos]: + watched_videos += [datum['contentId']] + + client.send_post (Talk.main (f""" +ニコニコに『{ datum['title'] }』という動画がアップされました。 +つけられたタグは「{ '」、「'.join (datum['tags']) }」です。 +概要には次のように書かれています: +```html +{ datum['description'] } +``` +このことについて、みんなに告知するとともに、ニジカちゃんの感想を教えてください。 +""")) + if now.hour == 14 and has_got_snack_time: has_got_snack_time = False @@ -127,25 +142,32 @@ def get_nico_deerjika (): '/contents/search') now = datetime.now () + base = now - timedelta (hours = 1) params = { 'q': '伊地知ニジカ', - 'targets': 'tagsExact', + 'targets': 'tags', '_sort': '-startTime', 'fields': 'contentId,title,description,tags,startTime', - '_limit': 1, + '_limit': 20, 'jsonFilter': json.dumps ({ 'type': 'or', 'filters': [{ 'type': 'range', 'field': 'startTime', - 'from': ('%04d-%02d-%02dT00:00:00+09:00' - % (now.year, now.month, now.day)), + 'from': ('%04d-%02d-%02dT%02d:%02d:00+09:00' + % (base.year, base.month, base.day, + base.hour, base.minute)), 'to': ('%04d-%02d-%02dT23:59:59+09:00' % (now.year, now.month, now.day)), 'include_lower': True }] }) } res = requests.get (URL, params = params).json () - return res['data'][0] if len (res['data']) > 0 else None + data = [] + for datum in res['data']: + datum['tags'] = datum['tags'].split () + data.append (datum) + + return data if __name__ == '__main__':