rss.py 1.2 KB

123456789101112131415161718192021222324252627282930313233343536
  1. from feedparser import parse
  2. class Feed:
  3. def __init__(self, url: str):
  4. self.url = url
  5. feed = parse(url)
  6. if not feed.get("entries"):
  7. return
  8. entry = feed["entries"][0]
  9. self.title = entry.get("title") or ""
  10. # We need title to check latest post
  11. if not self.title:
  12. return
  13. self.link = entry.get("link") or ""
  14. self.published = entry.get("published") or ""
  15. self.updated = entry.get("updated") or ""
  16. self.author = entry.get("author")
  17. self.summary = entry.get("summary") or ""
  18. def parsed(self):
  19. text = f"**Title:** [{self.title.strip()}]({self.link or 'https://google.com'})\n"
  20. if self.author:
  21. text += f"**Author:** {self.author}\n"
  22. if self.published:
  23. text += f"**Published:** `{self.published}`\n"
  24. if self.updated:
  25. text += f"**Last Updated:** `{self.updated}`\n"
  26. if self.summary:
  27. if "<div" not in self.summary:
  28. text += f"**Summary:** __{self.summary.strip()}__\n"
  29. if text:
  30. text = "\n".join([i.strip() for i in text.splitlines()])
  31. return text