1
0
Fork 0
mirror of https://github.com/morpheus65535/bazarr synced 2025-03-01 00:55:52 +00:00
This commit is contained in:
morpheus65535 2021-10-10 22:59:03 -04:00
parent d1718de41b
commit 258d66c45f
4 changed files with 30 additions and 9 deletions

View file

@ -223,8 +223,10 @@ class FileWatcher:
def start(self):
logging.info('BAZARR is starting file system watchers...')
self.series_observer.start()
self.movies_observer.start()
if settings.general.getboolean('use_series'):
self.series_observer.start()
if settings.general.getboolean('use_movies'):
self.movies_observer.start()
self.config()
logging.info('BAZARR is watching for file system changes.')

View file

@ -5,7 +5,7 @@ import re
import logging
from indexer.tmdb_caching_proxy import tmdb
from database import TableMoviesRootfolder, TableMovies
from event_handler import show_progress, hide_progress
from event_handler import event_stream, show_progress, hide_progress
from indexer.video_prop_reader import video_prop_reader
from indexer.tmdb_caching_proxy import tmdb_func_cache
from indexer.utils import normalize_title, VIDEO_EXTENSION
@ -48,7 +48,7 @@ def list_movies_directories(root_dir_id):
}
)
finally:
return movies_directories
return sorted(movies_directories, key=lambda d: d['directory'])
def get_movies_match(directory):
@ -188,7 +188,10 @@ def update_indexed_movies():
# delete removed movie form database
if not os.path.exists(existing_movie['path']):
TableMovies.delete().where(TableMovies.path == existing_movie['path']).execute()
# update existing episodes metadata
event_stream(type='movie', action='delete', payload=existing_movie['movieId'])
event_stream(type='movie-wanted', action='delete', payload=existing_movie['movieId'])
event_stream(type='badges')
# update existing movies metadata
else:
movie_metadata = get_movies_metadata(tmdbid=existing_movie['tmdbId'],
root_dir_id=root_dir_id['rootId'],
@ -206,6 +209,9 @@ def update_indexed_movies():
existing_movie['movieId']).execute()
store_subtitles_movie(existing_movie['path'],
use_cache=settings.movies.getboolean('use_ffprobe_cache'))
event_stream(type='movie', action='update', payload=existing_movie['movieId'])
event_stream(type='movie-wanted', action='update', payload=existing_movie['movieId'])
event_stream(type='badges')
existing_movies_iteration_number += 1
hide_progress(id="m2_updating_existing_subdirectories_movies")
@ -247,6 +253,15 @@ def update_indexed_movies():
if result:
# once added to the db, we'll index existing subtitles and calculate the missing ones
store_subtitles_movie(directory_metadata['path'], use_cache=False)
movie_id = TableMovies.select(TableMovies.movieId)\
.where(TableMovies.path == directory_metadata['path'])\
.dicts()\
.get()
event_stream(type='movie', action='update', payload=movie_id['movieId'])
event_stream(type='movie-wanted', action='update', payload=movie_id['movieId'])
event_stream(type='badges')
root_dir_subdirectories_iteration_number += 1
hide_progress(id="m2_adding_new_subdirectories_movies")
hide_progress(id="m1_indexing_root_dirs")

View file

@ -5,7 +5,7 @@ import re
import logging
from indexer.tmdb_caching_proxy import tmdb
from database import TableShowsRootfolder, TableShows
from event_handler import show_progress, hide_progress
from event_handler import event_stream, show_progress, hide_progress
from indexer.tmdb_caching_proxy import tmdb_func_cache
from indexer.utils import normalize_title
from .episodes_indexer import update_series_episodes
@ -46,7 +46,7 @@ def list_series_directories(root_dir):
}
)
finally:
return series_directories
return sorted(series_directories, key=lambda d: d['directory'])
def get_series_match(directory):
@ -150,12 +150,14 @@ def update_indexed_series():
existing_subdirectories_len = len(existing_subdirectories)
existing_subdirectories_iteration_number = 0
for existing_subdirectory in existing_subdirectories:
show_metadata = TableShows.select().where(TableShows.path == existing_subdirectory).dicts().get()
# delete removed series from database
if not os.path.exists(existing_subdirectory):
TableShows.delete().where(TableShows.path == existing_subdirectory).execute()
event_stream(type='series', action='delete', payload=show_metadata['seriesId'])
# update existing series metadata
else:
show_metadata = TableShows.select().where(TableShows.path == existing_subdirectory).dicts().get()
directory_metadata = get_series_metadata(show_metadata['tmdbId'], root_dir_id['rootId'])
if directory_metadata:
show_progress(
@ -170,6 +172,7 @@ def update_indexed_series():
.where(TableShows.tmdbId == show_metadata['tmdbId'])\
.execute()
if result:
event_stream(type='series', action='update', payload=show_metadata['seriesId'])
update_series_episodes(seriesId=show_metadata['seriesId'],
use_cache=settings.series.getboolean('use_ffprobe_cache'))
existing_subdirectories_iteration_number += 1
@ -207,6 +210,7 @@ def update_indexed_series():
f'"{directory_metadata["path"]}". The exception encountered is "{e}".')
else:
if series_id:
event_stream(type='series', action='update', payload=series_id)
# once added to the db, we'll check for episodes for this series
update_series_episodes(seriesId=series_id, use_cache=False)
new_directories_iteration_number += 1

View file

@ -68,7 +68,7 @@ def store_subtitles(path, use_cache=True):
except Exception as error:
logging.debug("BAZARR unable to index this unrecognized language: %s (%s)", subtitle_language,
error)
except Exception as e:
except Exception:
logging.exception(
"BAZARR error when trying to analyze this %s file: %s" % (os.path.splitext(path)[1], path))
try: