89 lines
2.3 KiB
Python
89 lines
2.3 KiB
Python
import os
|
|
import json
|
|
import requests
|
|
import sqlite3
|
|
from db import VVVVIDatabase
|
|
from api import Api
|
|
|
|
api = Api()
|
|
stream_url = api.get_settings()
|
|
if stream_url is None:
|
|
print("VVVVID is not available at the moment")
|
|
exit(1)
|
|
|
|
vvvvidb = VVVVIDatabase("vvvvidb.sqlite3")
|
|
api.login()
|
|
|
|
if not vvvvidb.is_valid:
|
|
# Database file not present
|
|
# Create a new database
|
|
vvvvidb.create()
|
|
else:
|
|
# Database file is already present
|
|
# Since we have no information about series lenght prior to their pubblication
|
|
# We scan all the older id to see if there are new episodes, then we scan every id greater then the last one
|
|
ids = vvvvidb.series_id()
|
|
|
|
"""
|
|
for i in ids.keys():
|
|
print("Fetching old...{}".format(i))
|
|
print(ids.get(i))
|
|
info = api.get_info(i)
|
|
if not info:
|
|
continue
|
|
seasons = api.get_seasons(i)
|
|
for j in seasons:
|
|
serie = (info['show_id'], info['title'], j['season_id'], j['name'])
|
|
|
|
if j['season_id'] not in ids.get(i):
|
|
# We found a new season for an old show
|
|
print("Found: {}".format(info['title']))
|
|
|
|
if not vvvvidb.insert_serie(serie):
|
|
continue
|
|
|
|
episodes = get_episodes(j['season_id'], i, conn_id)
|
|
if not episodes:
|
|
continue
|
|
format_episodes(info, j, episodes, vvvvid_stream_url)
|
|
print("Found {} episodes".format(len(eps)))
|
|
|
|
vvvvidb.insert_episode(eps)
|
|
else:
|
|
# Check if there are new episodes for old season
|
|
episodes = get_episodes(j['season_id'], i, conn_id)
|
|
if not episodes:
|
|
continue
|
|
eps = format_episodes(info, j, episodes, vvvvid_stream_url)
|
|
print("Found {} episodes".format(len(eps)))
|
|
|
|
vvvvidb.insert_episodes(eps)
|
|
|
|
last = i
|
|
|
|
print("Resuming from...{}".format(last))
|
|
exit()
|
|
"""
|
|
|
|
last = 0
|
|
# Scan all the episodes
|
|
for i in range(last, min(last + 500, 1000)):
|
|
print("Fetching...{}".format(i))
|
|
info = api.get_info(i)
|
|
if not info:
|
|
continue
|
|
seasons = api.get_seasons(i)
|
|
for j in seasons:
|
|
serie = (info['show_id'], info['title'], j['season_id'], j['name'])
|
|
print("Found: {}".format(info['title']))
|
|
|
|
if not vvvvidb.insert_serie(serie):
|
|
print("Serie already present")
|
|
continue
|
|
|
|
episodes = api.get_episodes(j['season_id'], i)
|
|
print(len(episodes))
|
|
eps = api.format_episodes(j['season_id'], info['show_id'], episodes)
|
|
print("Found {} episodes".format(len(eps)))
|
|
vvvvidb.insert_episodes(eps)
|