linklist.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536
  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. print(self.links)
  15. else:
  16. if selector is None:
  17. #s=newspaper.build(url,language="en",memoize_articles=False) #memoize puede salvarme la vida
  18. s = newspaper.Source(url,memoize_articles=False)
  19. s.download()
  20. s.parse()
  21. s.set_categories()
  22. s.download_categories()
  23. s.parse_categories()
  24. s.generate_articles()
  25. self.links=[a.url for a in s.articles]
  26. else:
  27. f=FrontPage(url,selector)
  28. self.links=f.links
  29. self.links=self.purgeLinks(self.links)
  30. self.links=list(set(self.links)) #avoid dupes
  31. def purgeLinks(self,l):
  32. return [ sanitizeUrl(link) for link in l if not "presslist" in link.lower() and not "videolist" in link.lower() ]