iv_popular.py 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. from invidious import Invidious
  2. import requests
  3. import sys
  4. from plugins.plugin import Plugin
  5. sys.path.append("..")
  6. from src.video import Video
  7. from src.history import History
  8. from src.config import Config
  9. class InvidiousPopular(Plugin):
  10. def __init__(self, history: History=History(), config: Config=Config()) -> None:
  11. super().__init__(history, config)
  12. self.history = history
  13. self.config = config
  14. self.name = "[+] Invidious: Popular"
  15. self.category = "Invidious"
  16. self.params = {}
  17. self.flag = "-ip"
  18. self.full_flag = "--ivpopular"
  19. self.flag_help = "show popular videos from invidious"
  20. self.flag_action = "store_true"
  21. def get_popular(self):
  22. popular = self.invidious.get_popular()
  23. items = []
  24. for video in popular:
  25. if video == None: continue
  26. video.convert(Video)
  27. video.url = self.invidious.get_working_mirror() + "/watch?v=" + video.videoId
  28. video.isWatched = video.in_history(self.history)
  29. video = video.to_json()
  30. items.append(video)
  31. return items
  32. def get_items(self, params):
  33. return self.get_popular()