From df60298ffb66bfb196da523152f3a49a6b834ac3 Mon Sep 17 00:00:00 2001 From: morpheus65535 Date: Sat, 4 Sep 2021 23:32:17 -0400 Subject: [PATCH] WIP --- bazarr/get_rootfolder.py | 12 +++++++++++- bazarr/series_indexer.py | 41 +++++++++++++++++++++++++++++++++------- 2 files changed, 45 insertions(+), 8 deletions(-) diff --git a/bazarr/get_rootfolder.py b/bazarr/get_rootfolder.py index 949476b38..288b56c5c 100644 --- a/bazarr/get_rootfolder.py +++ b/bazarr/get_rootfolder.py @@ -1,8 +1,18 @@ # coding=utf-8 +from database import TableShowsRootfolder, TableMoviesRootfolder + def get_series_rootfolder(): - pass + rootfolders = TableShowsRootfolder.select().dicts() def get_movies_rootfolder(): + rootfolders = TableMoviesRootfolder.select().dicts() + + +def check_series_rootfolder(): + pass + + +def check_movies_rootfolder(): pass diff --git a/bazarr/series_indexer.py b/bazarr/series_indexer.py index 9b638fe4b..bc5a4dac8 100644 --- a/bazarr/series_indexer.py +++ b/bazarr/series_indexer.py @@ -1,8 +1,13 @@ +from json import dumps +import os +import sys +sys.path.insert(0, os.path.join(os.path.dirname(__file__), '../libs/')) + import os import re import logging import tmdbsimple as tmdb -from database import database +from database import TableShowsRootfolder, TableMoviesRootfolder tmdb.API_KEY = 'e5577e69d409c601acb98d5bfcee31c7' @@ -11,12 +16,17 @@ def list_series_directories(root_dir): series_directories = [] try: - root_dir_path = database.execute("SELECT path FROM t_rootdir WHERE id=?", (root_dir,), - only_one=True)['path'] + root_dir_path = TableShowsRootfolder.select(TableShowsRootfolder.path)\ + .where(TableShowsRootfolder.id == root_dir)\ + .dicts()\ + .get() except: pass else: - for i, directory_temp in enumerate(os.listdir(root_dir_path)): + if not root_dir_path: + logging.debug(f'BAZARR cannot find the specified series root folder: {root_dir}') + return series_directories + for i, directory_temp in enumerate(os.listdir(root_dir_path['path'])): directory_original = re.sub(r"\(\b(19|20)\d{2}\b\)", '', directory_temp).rstrip() directory = re.sub(r"\s\b(19|20)\d{2}\b", '', directory_original).rstrip() if directory.endswith(', The'): @@ -78,11 +88,11 @@ def get_series_metadata(tmdbid): series_metadata = { 'title': series_info['original_name'], 'sortTitle': normalize_title(series_info['original_name']), - 'year': series_info['first_air_date'][:4], + 'year': series_info['first_air_date'][:4] if series_info['first_air_date'] else None, 'tmdbId': tmdbid, 'overview': series_info['overview'], - 'poster': images_url.format(series_info['poster_path']), - 'fanart': images_url.format(series_info['backdrop_path']), + 'poster': images_url.format(series_info['poster_path']) if series_info['poster_path'] else None, + 'fanart': images_url.format(series_info['backdrop_path'])if series_info['backdrop_path'] else None, 'alternateTitles': [x['title'] for x in alternative_titles['results']], 'imdbId': external_ids['imdb_id'] } @@ -104,3 +114,20 @@ def normalize_title(title): title = re.sub(DuplicateSpacesRegex, " ", title) return title.strip() + + +def index_all_series(): + directories_metadata = [] + + root_dir_ids = TableShowsRootfolder.select(TableShowsRootfolder.id).dicts() + for root_dir_id in root_dir_ids: + root_dir_subdirectories = list_series_directories(root_dir_id['id']) + for root_dir_subdirectory in root_dir_subdirectories: + root_dir_match = get_series_match(root_dir_subdirectory['directory']) + if root_dir_match: + directories_metadata.append(get_series_metadata(root_dir_match[0]['tmdbId'])) + + return dumps(directories_metadata) + + +print(index_all_series())