mirror of
https://github.com/morpheus65535/bazarr
synced 2025-03-01 00:55:52 +00:00
WIP
This commit is contained in:
parent
d1718de41b
commit
258d66c45f
4 changed files with 30 additions and 9 deletions
|
@ -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.')
|
||||
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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:
|
||||
|
|
Loading…
Reference in a new issue