|
@@ -58,6 +58,7 @@ def main ( |
|
|
|
|
|
|
|
|
last_posted_at = datetime.now () - timedelta (hours = 6) |
|
|
last_posted_at = datetime.now () - timedelta (hours = 6) |
|
|
has_got_snack_time = False |
|
|
has_got_snack_time = False |
|
|
|
|
|
watched_videos = [] |
|
|
while True: |
|
|
while True: |
|
|
now = datetime.now () |
|
|
now = datetime.now () |
|
|
|
|
|
|
|
@@ -86,6 +87,20 @@ def main ( |
|
|
parent = records[0]['strong_ref'], |
|
|
parent = records[0]['strong_ref'], |
|
|
root = records[-1]['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: |
|
|
if now.hour == 14 and has_got_snack_time: |
|
|
has_got_snack_time = False |
|
|
has_got_snack_time = False |
|
|
|
|
|
|
|
@@ -127,25 +142,32 @@ def get_nico_deerjika (): |
|
|
'/contents/search') |
|
|
'/contents/search') |
|
|
|
|
|
|
|
|
now = datetime.now () |
|
|
now = datetime.now () |
|
|
|
|
|
base = now - timedelta (hours = 1) |
|
|
|
|
|
|
|
|
params = { 'q': '伊地知ニジカ', |
|
|
params = { 'q': '伊地知ニジカ', |
|
|
'targets': 'tagsExact', |
|
|
|
|
|
|
|
|
'targets': 'tags', |
|
|
'_sort': '-startTime', |
|
|
'_sort': '-startTime', |
|
|
'fields': 'contentId,title,description,tags,startTime', |
|
|
'fields': 'contentId,title,description,tags,startTime', |
|
|
'_limit': 1, |
|
|
|
|
|
|
|
|
'_limit': 20, |
|
|
'jsonFilter': json.dumps ({ 'type': 'or', |
|
|
'jsonFilter': json.dumps ({ 'type': 'or', |
|
|
'filters': [{ |
|
|
'filters': [{ |
|
|
'type': 'range', |
|
|
'type': 'range', |
|
|
'field': 'startTime', |
|
|
'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' |
|
|
'to': ('%04d-%02d-%02dT23:59:59+09:00' |
|
|
% (now.year, now.month, now.day)), |
|
|
% (now.year, now.month, now.day)), |
|
|
'include_lower': True }] }) } |
|
|
'include_lower': True }] }) } |
|
|
|
|
|
|
|
|
res = requests.get (URL, params = params).json () |
|
|
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__': |
|
|
if __name__ == '__main__': |
|
|