mirror of https://github.com/morpheus65535/bazarr
Added progress events to most batch functions.
This commit is contained in:
parent
a04e20bdb0
commit
9d153a1d9c
|
@ -23,9 +23,9 @@ def show_message(msg):
|
|||
event_stream(type="message", payload=msg)
|
||||
|
||||
|
||||
def show_progress(name, percent):
|
||||
event_stream(type="progress", payload={"name": name, "percent": percent})
|
||||
def show_progress(id, name, value, count):
|
||||
event_stream(type="progress", payload={"id": id, "name": name, "value": value, "count": count})
|
||||
|
||||
|
||||
def hide_progress(name):
|
||||
event_stream(type="progress", action="delete", payload={"name": name, "percent": 0})
|
||||
def hide_progress(id, delay=3):
|
||||
event_stream(type="progress", action="delete", payload={"id": id, "delay": delay})
|
||||
|
|
|
@ -9,7 +9,7 @@ from config import settings, url_sonarr
|
|||
from helper import path_mappings
|
||||
from list_subtitles import store_subtitles, series_full_scan_subtitles
|
||||
from get_subtitle import episode_download_subtitles
|
||||
from event_handler import event_stream
|
||||
from event_handler import event_stream, show_progress, hide_progress
|
||||
|
||||
headers = {"User-Agent": os.environ["SZ_USER_AGENT"]}
|
||||
|
||||
|
@ -36,7 +36,13 @@ def sync_episodes():
|
|||
# Get sonarrId for each series from database
|
||||
seriesIdList = get_series_from_sonarr_api(url=url_sonarr(), apikey_sonarr=apikey_sonarr)
|
||||
|
||||
for seriesId in seriesIdList:
|
||||
series_count = len(seriesIdList)
|
||||
for i, seriesId in enumerate(seriesIdList, 1):
|
||||
show_progress(id='episodes_progress',
|
||||
name='Syncing episodes of {}...'.format(seriesId['title']),
|
||||
value=i,
|
||||
count=series_count)
|
||||
|
||||
# Get episodes data for a series from Sonarr
|
||||
episodes = get_episodes_from_sonarr_api(url=url_sonarr(), apikey_sonarr=apikey_sonarr,
|
||||
series_id=seriesId['sonarrSeriesId'])
|
||||
|
@ -57,6 +63,8 @@ def sync_episodes():
|
|||
else:
|
||||
episodes_to_add.append(episodeParser(episode))
|
||||
|
||||
hide_progress(id='episodes_progress')
|
||||
|
||||
# Remove old episodes from DB
|
||||
removed_episodes = list(set(current_episodes_db_list) - set(current_episodes_sonarr))
|
||||
|
||||
|
|
|
@ -12,7 +12,7 @@ from get_rootfolder import check_radarr_rootfolder
|
|||
|
||||
from get_subtitle import movies_download_subtitles
|
||||
from database import database, dict_converter, get_exclusion_clause
|
||||
from event_handler import event_stream
|
||||
from event_handler import event_stream, show_progress, hide_progress
|
||||
|
||||
headers = {"User-Agent": os.environ["SZ_USER_AGENT"]}
|
||||
|
||||
|
@ -60,7 +60,14 @@ def update_movies():
|
|||
altered_movies = []
|
||||
|
||||
# Build new and updated movies
|
||||
for movie in movies:
|
||||
movies_count = len(movies)
|
||||
for i, movie in enumerate(movies, 1):
|
||||
show_progress(id='movies_progress',
|
||||
name='Syncing movies...',
|
||||
value = i,
|
||||
count = movies_count)
|
||||
|
||||
|
||||
if movie['hasFile'] is True:
|
||||
if 'movieFile' in movie:
|
||||
if movie['movieFile']['size'] > 20480:
|
||||
|
@ -80,6 +87,8 @@ def update_movies():
|
|||
movie_default_profile=movie_default_profile,
|
||||
audio_profiles=audio_profiles))
|
||||
|
||||
hide_progress(id='movies_progress')
|
||||
|
||||
# Remove old movies from DB
|
||||
removed_movies = list(set(current_movies_db_list) - set(current_movies_radarr))
|
||||
|
||||
|
|
|
@ -10,7 +10,7 @@ from get_rootfolder import check_sonarr_rootfolder
|
|||
from database import database, dict_converter
|
||||
from utils import get_sonarr_version
|
||||
from helper import path_mappings
|
||||
from event_handler import event_stream
|
||||
from event_handler import event_stream, show_progress, hide_progress
|
||||
|
||||
headers = {"User-Agent": os.environ["SZ_USER_AGENT"]}
|
||||
|
||||
|
@ -47,7 +47,13 @@ def update_series():
|
|||
series_to_update = []
|
||||
series_to_add = []
|
||||
|
||||
for show in series:
|
||||
series_count = len(series)
|
||||
for i, show in enumerate(series, 1):
|
||||
show_progress(id='series_progress',
|
||||
name='Syncing series...',
|
||||
value=i,
|
||||
count=series_count)
|
||||
|
||||
# Add shows in Sonarr to current shows list
|
||||
current_shows_sonarr.append(show['id'])
|
||||
|
||||
|
@ -60,6 +66,8 @@ def update_series():
|
|||
tags_dict=tagsDict, serie_default_profile=serie_default_profile,
|
||||
audio_profiles=audio_profiles))
|
||||
|
||||
hide_progress(id='series_progress')
|
||||
|
||||
# Remove old series from DB
|
||||
removed_series = list(set(current_shows_db_list) - set(current_shows_sonarr))
|
||||
|
||||
|
|
|
@ -33,7 +33,7 @@ from subsyncer import subsync
|
|||
from guessit import guessit
|
||||
from database import database, dict_mapper, get_exclusion_clause, get_profiles_list, get_audio_profile_languages, \
|
||||
get_desired_languages
|
||||
from event_handler import event_stream
|
||||
from event_handler import event_stream, show_progress, hide_progress
|
||||
from embedded_subs_reader import parse_video_metadata
|
||||
|
||||
from analytics import track_event
|
||||
|
@ -761,6 +761,11 @@ def series_download_subtitles(no):
|
|||
|
||||
for i, episode in enumerate(episodes_details, 1):
|
||||
if providers_list:
|
||||
show_progress(id='series_search_progress_{}'.format(no),
|
||||
name='Searching missing subtitles for {}...'.format(episode['title']),
|
||||
value=i,
|
||||
count=count_episodes_details)
|
||||
|
||||
for language in ast.literal_eval(episode['missing_subtitles']):
|
||||
if language is not None:
|
||||
audio_language_list = get_audio_profile_languages(episode_id=episode['sonarrEpisodeId'])
|
||||
|
@ -801,6 +806,8 @@ def series_download_subtitles(no):
|
|||
logging.info("BAZARR All providers are throttled")
|
||||
break
|
||||
|
||||
hide_progress(id='series_search_progress_{}'.format(no))
|
||||
|
||||
|
||||
def episode_download_subtitles(no):
|
||||
episodes_details = database.execute("SELECT table_episodes.path, table_episodes.missing_subtitles, monitored, "
|
||||
|
@ -879,6 +886,11 @@ def movies_download_subtitles(no):
|
|||
|
||||
for i, language in enumerate(ast.literal_eval(movie['missing_subtitles']), 1):
|
||||
if providers_list:
|
||||
show_progress(id='movie_search_progress_{}'.format(no),
|
||||
name='Searching missing subtitles for {}...'.format(movie['title']),
|
||||
value=i,
|
||||
count=count_movie)
|
||||
|
||||
if language is not None:
|
||||
audio_language_list = get_audio_profile_languages(movie_id=movie['radarrId'])
|
||||
if len(audio_language_list) > 0:
|
||||
|
@ -917,8 +929,10 @@ def movies_download_subtitles(no):
|
|||
logging.info("BAZARR All providers are throttled")
|
||||
break
|
||||
|
||||
hide_progress(id='movie_search_progress_{}'.format(no))
|
||||
|
||||
def wanted_download_subtitles(path, l, count_episodes):
|
||||
|
||||
def wanted_download_subtitles(path):
|
||||
episodes_details = database.execute("SELECT table_episodes.path, table_episodes.missing_subtitles, "
|
||||
"table_episodes.sonarrEpisodeId, table_episodes.sonarrSeriesId, "
|
||||
"table_episodes.audio_language, table_episodes.scene_name,"
|
||||
|
@ -991,7 +1005,7 @@ def wanted_download_subtitles(path, l, count_episodes):
|
|||
0])
|
||||
|
||||
|
||||
def wanted_download_subtitles_movie(path, l, count_movies):
|
||||
def wanted_download_subtitles_movie(path):
|
||||
movies_details = database.execute(
|
||||
"SELECT path, missing_subtitles, radarrId, audio_language, sceneName, "
|
||||
"failedAttempts, title FROM table_movies WHERE path = ? "
|
||||
|
@ -1062,39 +1076,55 @@ def wanted_download_subtitles_movie(path, l, count_movies):
|
|||
|
||||
def wanted_search_missing_subtitles_series():
|
||||
episodes = database.execute("SELECT table_episodes.path, table_shows.tags, table_episodes.monitored, "
|
||||
"table_shows.seriesType FROM table_episodes INNER JOIN table_shows on "
|
||||
"table_shows.sonarrSeriesId = table_episodes.sonarrSeriesId WHERE missing_subtitles != "
|
||||
"'[]'" + get_exclusion_clause('series'))
|
||||
"table_shows.title, table_episodes.season, table_episodes.episode, table_episodes.title"
|
||||
" as episodeTitle, table_shows.seriesType FROM table_episodes INNER JOIN table_shows on"
|
||||
" table_shows.sonarrSeriesId = table_episodes.sonarrSeriesId WHERE missing_subtitles !="
|
||||
" '[]'" + get_exclusion_clause('series'))
|
||||
# path_replace
|
||||
dict_mapper.path_replace(episodes)
|
||||
|
||||
count_episodes = len(episodes)
|
||||
for i, episode in enumerate(episodes, 1):
|
||||
show_progress(id='wanted_episodes_progress',
|
||||
name='Searching subtitles for {0} - S{1:02d}E{2:02d} - {3}...'.format(episode['title'],
|
||||
episode['season'],
|
||||
episode['episode'],
|
||||
episode['episodeTitle']),
|
||||
value=i,
|
||||
count=count_episodes)
|
||||
|
||||
providers = get_providers()
|
||||
if providers:
|
||||
wanted_download_subtitles(episode['path'], i, count_episodes)
|
||||
wanted_download_subtitles(episode['path'])
|
||||
else:
|
||||
logging.info("BAZARR All providers are throttled")
|
||||
return
|
||||
|
||||
hide_progress(id='wanted_episodes_progress')
|
||||
logging.info('BAZARR Finished searching for missing Series Subtitles. Check History for more information.')
|
||||
|
||||
|
||||
def wanted_search_missing_subtitles_movies():
|
||||
movies = database.execute("SELECT path, tags, monitored FROM table_movies WHERE missing_subtitles != '[]'" +
|
||||
movies = database.execute("SELECT path, tags, monitored, title FROM table_movies WHERE missing_subtitles != '[]'" +
|
||||
get_exclusion_clause('movie'))
|
||||
# path_replace
|
||||
dict_mapper.path_replace_movie(movies)
|
||||
|
||||
count_movies = len(movies)
|
||||
for i, movie in enumerate(movies, 1):
|
||||
show_progress(id='wanted_movies_progress',
|
||||
name='Searching subtitles for {0}...'.format(movie['title']),
|
||||
value=i,
|
||||
count=count_movies)
|
||||
|
||||
providers = get_providers()
|
||||
if providers:
|
||||
wanted_download_subtitles_movie(movie['path'], i, count_movies)
|
||||
wanted_download_subtitles_movie(movie['path'])
|
||||
else:
|
||||
logging.info("BAZARR All providers are throttled")
|
||||
return
|
||||
|
||||
hide_progress(id='wanted_movies_progress')
|
||||
logging.info('BAZARR Finished searching for missing Movies Subtitles. Check History for more information.')
|
||||
|
||||
|
||||
|
@ -1313,6 +1343,11 @@ def upgrade_subtitles():
|
|||
|
||||
if settings.general.getboolean('use_sonarr'):
|
||||
for i, episode in enumerate(episodes_to_upgrade, 1):
|
||||
show_progress(id='upgrade_episodes_progress',
|
||||
name='Upgrading subtitles for {0}...'.format(episode['title']),
|
||||
value=i,
|
||||
count=count_episode_to_upgrade)
|
||||
|
||||
providers = get_providers()
|
||||
if not providers:
|
||||
logging.info("BAZARR All providers are throttled")
|
||||
|
@ -1367,8 +1402,15 @@ def upgrade_subtitles():
|
|||
language_code, provider, score, subs_id, subs_path)
|
||||
send_notifications(episode['sonarrSeriesId'], episode['sonarrEpisodeId'], message)
|
||||
|
||||
hide_progress('upgrade_episodes_progress')
|
||||
|
||||
if settings.general.getboolean('use_radarr'):
|
||||
for i, movie in enumerate(movies_to_upgrade, 1):
|
||||
show_progress(id='upgrade_movies_progress',
|
||||
name='Upgrading subtitles for {0}...'.format(movie['title']),
|
||||
value=i,
|
||||
count=count_movie_to_upgrade)
|
||||
|
||||
providers = get_providers()
|
||||
if not providers:
|
||||
logging.info("BAZARR All providers are throttled")
|
||||
|
@ -1426,6 +1468,8 @@ def upgrade_subtitles():
|
|||
history_log_movie(3, movie['radarrId'], message, path, language_code, provider, score, subs_id, subs_path)
|
||||
send_notifications_movie(movie['radarrId'], message)
|
||||
|
||||
hide_progress(id='upgrade_movies_progress')
|
||||
|
||||
logging.info('BAZARR Finished searching for Subtitles to upgrade. Check History for more information.')
|
||||
|
||||
|
||||
|
|
|
@ -15,7 +15,7 @@ from config import settings
|
|||
from helper import path_mappings, get_subtitle_destination_folder
|
||||
|
||||
from embedded_subs_reader import embedded_subs_reader
|
||||
from event_handler import event_stream
|
||||
from event_handler import event_stream, show_progress, hide_progress
|
||||
from charamel import Detector
|
||||
|
||||
gc.enable()
|
||||
|
@ -481,8 +481,15 @@ def list_missing_subtitles_movies(no=None, epno=None, send_event=True):
|
|||
def series_full_scan_subtitles():
|
||||
episodes = database.execute("SELECT path FROM table_episodes")
|
||||
|
||||
count_episodes = len(episodes)
|
||||
for i, episode in enumerate(episodes, 1):
|
||||
show_progress(id='episodes_disk_scan',
|
||||
name='Performing a full disk scan for episodes subtitles...',
|
||||
value=i,
|
||||
count=count_episodes)
|
||||
store_subtitles(episode['path'], path_mappings.path_replace(episode['path']))
|
||||
|
||||
hide_progress(id='episodes_disk_scan')
|
||||
|
||||
gc.collect()
|
||||
|
||||
|
@ -490,9 +497,16 @@ def series_full_scan_subtitles():
|
|||
def movies_full_scan_subtitles():
|
||||
movies = database.execute("SELECT path FROM table_movies")
|
||||
|
||||
count_movies = len(movies)
|
||||
for i, movie in enumerate(movies, 1):
|
||||
show_progress(id='movies_disk_scan',
|
||||
name='Performing a full disk scan for movies subtitles...',
|
||||
value=i,
|
||||
count=count_movies)
|
||||
store_subtitles_movie(movie['path'], path_mappings.path_replace_movie(movie['path']))
|
||||
|
||||
|
||||
hide_progress(id='movies_disk_scan')
|
||||
|
||||
gc.collect()
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue