-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.py
executable file
·71 lines (60 loc) · 2.07 KB
/
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
#!/usr/bin/env python
import datetime
import feedparser
import os
import sys
import urllib.request
import time
from feeder import Feeder
argv=sys.argv
argv.sort()
def has_argv(check_name):
for a in argv:
# Has check_param on argv
if( a==check_name ):
return True
return False
def download(uri, file_name):
urllib.request.urlretrieve(uri, file_name)
def save_log(message):
current_dir = os.getcwd()
with open(current_dir + '/console.log', mode='a', encoding='utf-8') as fd:
now = datetime.datetime.today()
msg = str(now) + ' ' + str(message) + '\n'
print(msg, end='')
fd.write(msg)
def main():
try:
if( os.path.exists('feed.xml') ):
os.remove('feed_old.xml')
os.rename('feed.xml', 'feed_old.xml')
download(uri='https://inside.teu.ac.jp/feed/', file_name='feed.xml')
except Exception as e:
save_log(message=e)
sys.exit(1)
fresh_feed = feedparser.parse(r'feed.xml')
saved_feed = feedparser.parse(r'feed_old.xml')
print('[ok] Success to parse feed*.xml')
if( has_argv(check_name="--offline") ):
print("[info] Offline mode is enabled. Not downlaod feed from remote.")
feeder = Feeder()
feeder.set(parsed_feed=saved_feed)
feeder.show(items=['title', 'uri'])
sys.exit(0)
feeder = {'fresh': Feeder(), 'saved': Feeder()}
feeder['fresh'].set(parsed_feed=fresh_feed)
feeder['saved'].set(parsed_feed=saved_feed)
print('[ok] Success to set parsed_data')
new_entries = Feeder.fetch_diff(target=feeder['fresh'].get(), base=feeder['saved'].get())
# debug:: print(str(new_entries))
if(len(new_entries) < 1):
save_log('[info] update was not found.')
sys.exit(0)
print('[ok] Success to fetch difference between fresh and saved')
for entry in new_entries:
print(entry["title"])
body = entry['title'] + ' (' + entry['date'] + ')\n' + entry['uri'] + '\n'
Feeder.notify_discord(message=body)
time.sleep(3)
if __name__ == '__main__':
main()