Niroday

Archnews

Feb 24th, 2018
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.29 KB | None | 0 0
  1. #!/usr/bin/env python3
  2.  
  3. try:
  4.     import re
  5.     import sys
  6.     import feedparser
  7.     from datetime import datetime as dt
  8. except ImportError as err:
  9.     print(str(err) + '. Install it.')
  10.     sys.exit(1)
  11.  
  12. list_news = []
  13. list_dates = []
  14.  
  15. def getRss(url):
  16.     feed = feedparser.parse(url)
  17.     date_pattern = re.compile(r'\d{2}\s\w{3}\s\d{4}')
  18.     for info in feed['entries'][0:5]:
  19.         list_dates.append(re.findall(date_pattern, info['published'])[0])
  20.         list_news.append(info['title'])
  21.  
  22. def deltaCalc(news_date):
  23.     now_doy = dt.now()
  24.     # How many days after publishing news will be highlighted:
  25.     user_delta = 5
  26.     day, month, year = news_date.split(' ')
  27.     news_doy = dt(int(year), int(dt.strptime(month, '%b').month), int(day))
  28.     news_delta = (now_doy - news_doy).days
  29.     if news_delta <= 7:
  30.         return True
  31.     return False
  32.  
  33. def main():
  34.     url = 'https://www.archlinux.org/feeds/news'
  35.     RED = '\033[7;107;31m'
  36.     BLUE = '\033[94m'
  37.     END = '\033[0m'
  38.     getRss(url)
  39.     print()
  40.     for i in range(len(list_news)):
  41.         if deltaCalc(list_dates[i]):
  42.             print(RED + list_dates[i] + END, "-", list_news[i])
  43.         else:
  44.             print(BLUE + list_dates[i] + END, "-", list_news[i])
  45.     print()
  46.  
  47. if __name__ == '__main__':
  48.     main()
Add Comment
Please, Sign In to add comment