vvvvget.py 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. import os
  2. import json
  3. import requests
  4. import sqlite3
  5. from db import VVVVIDatabase
  6. from api import Api
  7. api = Api()
  8. stream_url = api.get_settings()
  9. if stream_url is None:
  10. print("VVVVID is not available at the moment")
  11. exit(1)
  12. vvvvidb = VVVVIDatabase("vvvvidb.sqlite3")
  13. api.login()
  14. if not vvvvidb.is_valid:
  15. # Database file not present
  16. # Create a new database
  17. vvvvidb.create()
  18. else:
  19. # Database file is already present
  20. # Since we have no information about series lenght prior to their pubblication
  21. # We scan all the older id to see if there are new episodes, then we scan every id greater then the last one
  22. ids = vvvvidb.series_id()
  23. """
  24. for i in ids.keys():
  25. print("Fetching old...{}".format(i))
  26. print(ids.get(i))
  27. info = api.get_info(i)
  28. if not info:
  29. continue
  30. seasons = api.get_seasons(i)
  31. for j in seasons:
  32. serie = (info['show_id'], info['title'], j['season_id'], j['name'])
  33. if j['season_id'] not in ids.get(i):
  34. # We found a new season for an old show
  35. print("Found: {}".format(info['title']))
  36. if not vvvvidb.insert_serie(serie):
  37. continue
  38. episodes = get_episodes(j['season_id'], i, conn_id)
  39. if not episodes:
  40. continue
  41. format_episodes(info, j, episodes, vvvvid_stream_url)
  42. print("Found {} episodes".format(len(eps)))
  43. vvvvidb.insert_episode(eps)
  44. else:
  45. # Check if there are new episodes for old season
  46. episodes = get_episodes(j['season_id'], i, conn_id)
  47. if not episodes:
  48. continue
  49. eps = format_episodes(info, j, episodes, vvvvid_stream_url)
  50. print("Found {} episodes".format(len(eps)))
  51. vvvvidb.insert_episodes(eps)
  52. last = i
  53. print("Resuming from...{}".format(last))
  54. exit()
  55. """
  56. last = 0
  57. # Scan all the episodes
  58. for i in range(last, min(last + 500, 1000)):
  59. print("Fetching...{}".format(i))
  60. info = api.get_info(i)
  61. if not info:
  62. continue
  63. seasons = api.get_seasons(i)
  64. for j in seasons:
  65. serie = (info['show_id'], info['title'], j['season_id'], j['name'])
  66. print("Found: {}".format(info['title']))
  67. if not vvvvidb.insert_serie(serie):
  68. print("Serie already present")
  69. continue
  70. episodes = api.get_episodes(j['season_id'], i)
  71. print(len(episodes))
  72. eps = api.format_episodes(j['season_id'], info['show_id'], episodes)
  73. print("Found {} episodes".format(len(eps)))
  74. vvvvidb.insert_episodes(eps)