Skip to content

Commit c7b628f

Browse files
committed
initial commit
0 parents  commit c7b628f

7 files changed

Lines changed: 52 additions & 0 deletions

File tree

.gitignore

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
.idea/
2+
venv/
3+
4+
cron
5+
config.ini

config.ini.example

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
[feed]
2+
url = https://www.technologyreview.com/topnews.rss

cron.example

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
0 */3 * * * python3 ./src/main.py
1.02 KB
Binary file not shown.
362 Bytes
Binary file not shown.

src/main.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
import reader
2+
3+
4+
if __name__ == "__main__":
5+
try:
6+
reader.handle_feed()
7+
except Exception as e:
8+
print(e)
9+

src/reader.py

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
import feedparser
2+
import configparser
3+
4+
5+
def handle_feed():
6+
entries = read_feed()
7+
8+
return print_entries(entries)
9+
10+
11+
def read_feed():
12+
url = determine_url_from_config()
13+
result = feedparser.parse(url)
14+
15+
return result.entries
16+
17+
18+
def determine_url_from_config():
19+
config = configparser.ConfigParser()
20+
config.read("config.ini")
21+
22+
if 'url' in config['feed']:
23+
return config['feed']['url']
24+
else:
25+
raise KeyError("Please set the 'url' key to a (valid) RSS url in the 'config.ini' file!")
26+
27+
28+
def print_entries(entries):
29+
for entry in entries:
30+
print(entry.title)
31+
print(entry.author)
32+
print(entry.published)
33+
print('Read it here: ' + entry.link)
34+
print('\n')
35+

0 commit comments

Comments
 (0)