linklist.py 1.2 KB

1234567891011121314151617181920212223242526272829303132333435
  1. import feedparser
  2. from frontpage import FrontPage
  3. from functions import sanitizeUrl
  4. import newspaper
  5. class LinkList():
  6. def __init__(self,url,selector=None,rss=False):
  7. self.links=[]
  8. if rss:
  9. feed = feedparser.parse(url)
  10. if feed["bozo"]:
  11. print("RSS ERROR. PANIC")
  12. #print(feed["bozo"]) FIXME: If bozo==1 => error
  13. self.links=[i["link"] for i in feed["items"]]
  14. else:
  15. if selector is None:
  16. #s=newspaper.build(url,language="en",memoize_articles=False) #memoize puede salvarme la vida
  17. s = newspaper.Source(url,memoize_articles=False)
  18. s.download()
  19. s.parse()
  20. s.set_categories()
  21. s.download_categories()
  22. s.parse_categories()
  23. s.generate_articles()
  24. self.links=[a.url for a in s.articles]
  25. else:
  26. f=FrontPage(url,selector)
  27. self.links=f.links
  28. self.links=self.purgeLinks(self.links)
  29. self.links=list(set(self.links)) #avoid dupes
  30. def purgeLinks(self,l):
  31. return [ sanitizeUrl(link) for link in l if not "presslist" in link.lower() and not "videolist" in link.lower() ]