def has_season(self, show_s, season_s): if self.exists(show_s): show_s = self._show_s_to_formatted_key(show_s) for season in self._loaded_db[show_s]['seasons']: se = str(season['folder']) if se.lower() == season_s.lower(): return True else: pr.error(f"has_season: not in db: [{show_s}]") return False
def has_ep(self, show_s, episode_filename): if self.exists(show_s): show_s = self._show_s_to_formatted_key(show_s) for season in self._loaded_db[show_s]['seasons']: for episode in season['episodes']: if episode['file'] == episode_filename: return True else: pr.error(f"has_ep: not in db: [{show_s}]") return False
def has_subtitle(show_d, ep_file_name, lang): if lang != "en" and lang != "sv": pr.error(f"got wrong lang for has_subtitle: {lang}") return None show_d = to_show_d(show_d) show_folder = show_d["folder"] season = guess_season(ep_file_name) path = _show_path_season(show_folder, season) srt_file_to_find = ep_file_name[:-3] + f"{lang}.srt" return ftool.get_file(path, srt_file_to_find)
def _load_db(self): if filetools.is_file_empty(self._db_file): self._loaded_db = {} pr.warning("creating empty database") else: try: with open(self._db_file, 'r') as db: self._loaded_db = json.load(db) pr.info("loaded database file: [ {} ]".format(self._db_file)) except: pr.error("Could not open file: {0}".format(self._db_file)) self._loaded_db = None
# -*- coding: utf-8 -*- import paths, json, os, argparse import db_tv as tv_database import filetools as ftool import tvshow as tvtool from printout import print_class as pr pr = pr(os.path.basename(__file__)) db = tv_database.database() if not db.load_success(): pr.error("database read error, quitting...") quit() tv_root = tvtool.root_path() shows = os.listdir(tv_root) shows.sort() def __flatten_eps(): flat_ep_list = [] for show_s in db.list_shows(): show_d = db.data(show_s) season_index = 0 for season_d in show_d["seasons"]: episode_index = 0 for episode_d in season_d["episodes"]: episode_d["show"] = show_s episode_d["season_index"] = season_index episode_d["episode_index"] = episode_index episode_d["full_path"] = os.path.join(tv_root, show_s, season_d["folder"],
# -*- coding: utf-8 -*- import paths, json, os, argparse import db_mov as movie_database import filetools as ftool import movie as mtool from printout import print_class as pr pr = pr(os.path.basename(__file__)) db = movie_database.database() if not db.load_success(): pr.error("database read error, quitting...") quit() mov_root = mtool.root_path() mlist = db.list_movies() letters = os.listdir(mov_root) letters.sort() _valid_letters = { "#", "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "VW", "X", "Y", "Z" } def try_add_nfo(mov): imdbid_omdb = db.omdb_data(mov,'imdbID') let = db.movie_data(mov,'letter') path = os.path.join(mov_root, let, mov) if mtool.has_nfo(path): # user probably manually added nfo imdb_id = mtool.nfo_to_imdb(path) db.update(mov, 'nfo', True) db.update(mov, 'imdb', imdb_id) return True if not imdbid_omdb: