Ejemplo n.º 1
0
 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
Ejemplo n.º 2
0
 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
Ejemplo n.º 3
0
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)
Ejemplo n.º 4
0
 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
Ejemplo n.º 5
0
# -*- 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"],
Ejemplo n.º 6
0
# -*- 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: