Skip to content

Commit 060ce8b

Browse files
committed
Basic functional of RSS-parser ware added
1 parent 26ed2d3 commit 060ce8b

7 files changed

Lines changed: 106 additions & 5 deletions

File tree

.idea/PythonHomework.iml

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/inspectionProfiles/profiles_settings.xml

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/misc.xml

Lines changed: 7 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/modules.xml

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/vcs.xml

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/workspace.xml

Lines changed: 36 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

rss_reader/rss_reader.py

Lines changed: 32 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,40 @@
11
import argparse
2+
import feedparser
3+
import html
4+
import re
5+
6+
7+
version = '1.0'
8+
9+
10+
def clean_from_tags(text_with_tags):
11+
return re.sub('<.*?>', '', text_with_tags)
12+
13+
14+
15+
def show_news(entries, limit):
16+
real_limit = len(entries)
17+
if limit > 0:
18+
if limit < len(entries):
19+
real_limit = limit
20+
for i in range(real_limit):
21+
print("Title:", html.unescape(entries[i].title))
22+
print("Data:", html.unescape(entries[i].published))
23+
print("Link:", entries[i].link, "\n")
24+
print("Description:", clean_from_tags(html.unescape(entries[i].description)), "\n")
225

326

427
def main():
5-
parser = argparse.ArgumentParser(description='T.')
6-
parser
28+
parser = argparse.ArgumentParser(description='Python RSS-reader')
29+
parser.add_argument("URL", type=str, help='RSS URL')
30+
parser.add_argument("--version", help="Print version info", action="version", version=version)
31+
parser.add_argument("--json", help="Print result as JSON in stdout", action="store_true")
32+
parser.add_argument("-V", "--verbose", help="Outputs verbose status messages", action="store_true")
33+
parser.add_argument("-L", "--limit", help="Limit news topics if this parameter is provided", type=int, default=0)
734
args = parser.parse_args()
8-
print(args)
35+
feeds = feedparser.parse(args.URL)
36+
print("\n", "Feed: ", feeds.feed.title, "\n")
37+
show_news(feeds.entries, args.limit)
938

1039

1140
if __name__ == "__main__":

0 commit comments

Comments
 (0)