|
|
@ -1,7 +1,5 @@
|
|
|
|
# coding=utf-8
|
|
|
|
# coding=utf-8
|
|
|
|
|
|
|
|
|
|
|
|
import sqlite3
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import gc
|
|
|
|
import gc
|
|
|
|
import os
|
|
|
|
import os
|
|
|
|
import babelfish
|
|
|
|
import babelfish
|
|
|
@ -211,10 +209,10 @@ def store_subtitles_movie(file):
|
|
|
|
return actual_subtitles
|
|
|
|
return actual_subtitles
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def list_missing_subtitles(*no):
|
|
|
|
def list_missing_subtitles(no=None):
|
|
|
|
episodes_subtitles_clause = {TableShows.sonarr_series_id.is_null(False)}
|
|
|
|
episodes_subtitles_clause = {TableShows.sonarr_series_id.is_null(False)}
|
|
|
|
if 'no' in locals():
|
|
|
|
if no is not None:
|
|
|
|
episodes_subtitles_clause = {TableShows.sonarr_series_id == no[0]}
|
|
|
|
episodes_subtitles_clause = {TableShows.sonarr_series_id ** no}
|
|
|
|
|
|
|
|
|
|
|
|
episodes_subtitles = TableEpisodes.select(
|
|
|
|
episodes_subtitles = TableEpisodes.select(
|
|
|
|
TableEpisodes.sonarr_episode_id,
|
|
|
|
TableEpisodes.sonarr_episode_id,
|
|
|
@ -277,10 +275,10 @@ def list_missing_subtitles(*no):
|
|
|
|
).execute()
|
|
|
|
).execute()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def list_missing_subtitles_movies(*no):
|
|
|
|
def list_missing_subtitles_movies(no=None):
|
|
|
|
movies_subtitles_clause = {TableMovies.radarr_id.is_null(False)}
|
|
|
|
movies_subtitles_clause = {TableMovies.radarr_id.is_null(False)}
|
|
|
|
if 'no' in locals():
|
|
|
|
if no is not None:
|
|
|
|
movies_subtitles_clause = {TableMovies.radarr_id == no[0]}
|
|
|
|
movies_subtitles_clause = {TableMovies.radarr_id ** no}
|
|
|
|
|
|
|
|
|
|
|
|
movies_subtitles = TableMovies.select(
|
|
|
|
movies_subtitles = TableMovies.select(
|
|
|
|
TableMovies.radarr_id,
|
|
|
|
TableMovies.radarr_id,
|
|
|
@ -342,55 +340,55 @@ def list_missing_subtitles_movies(*no):
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def series_full_scan_subtitles():
|
|
|
|
def series_full_scan_subtitles():
|
|
|
|
conn_db = sqlite3.connect(os.path.join(args.config_dir, 'db', 'bazarr.db'), timeout=30)
|
|
|
|
episodes = TableEpisodes.select(
|
|
|
|
c_db = conn_db.cursor()
|
|
|
|
TableEpisodes.path
|
|
|
|
episodes = c_db.execute("SELECT path FROM table_episodes").fetchall()
|
|
|
|
)
|
|
|
|
c_db.close()
|
|
|
|
count_episodes = episodes.count()
|
|
|
|
count_episodes = len(episodes)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for i, episode in enumerate(episodes, 1):
|
|
|
|
for i, episode in enumerate(episodes, 1):
|
|
|
|
notifications.write(msg='Updating all episodes subtitles from disk...',
|
|
|
|
notifications.write(msg='Updating all episodes subtitles from disk...',
|
|
|
|
queue='list_subtitles_series', item=i, length=count_episodes)
|
|
|
|
queue='list_subtitles_series', item=i, length=count_episodes)
|
|
|
|
store_subtitles(path_replace(episode[0]))
|
|
|
|
store_subtitles(path_replace(episode.path))
|
|
|
|
|
|
|
|
|
|
|
|
gc.collect()
|
|
|
|
gc.collect()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def movies_full_scan_subtitles():
|
|
|
|
def movies_full_scan_subtitles():
|
|
|
|
conn_db = sqlite3.connect(os.path.join(args.config_dir, 'db', 'bazarr.db'), timeout=30)
|
|
|
|
movies = TableMovies.select(
|
|
|
|
c_db = conn_db.cursor()
|
|
|
|
TableMovies.path
|
|
|
|
movies = c_db.execute("SELECT path FROM table_movies").fetchall()
|
|
|
|
)
|
|
|
|
c_db.close()
|
|
|
|
count_movies = movies.count()
|
|
|
|
count_movies = len(movies)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for i, movie in enumerate(movies, 1):
|
|
|
|
for i, movie in enumerate(movies, 1):
|
|
|
|
notifications.write(msg='Updating all movies subtitles from disk...',
|
|
|
|
notifications.write(msg='Updating all movies subtitles from disk...',
|
|
|
|
queue='list_subtitles_movies', item=i, length=count_movies)
|
|
|
|
queue='list_subtitles_movies', item=i, length=count_movies)
|
|
|
|
store_subtitles_movie(path_replace_movie(movie[0]))
|
|
|
|
store_subtitles_movie(path_replace_movie(movie.path))
|
|
|
|
|
|
|
|
|
|
|
|
gc.collect()
|
|
|
|
gc.collect()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def series_scan_subtitles(no):
|
|
|
|
def series_scan_subtitles(no):
|
|
|
|
conn_db = sqlite3.connect(os.path.join(args.config_dir, 'db', 'bazarr.db'), timeout=30)
|
|
|
|
episodes = TableEpisodes.select(
|
|
|
|
c_db = conn_db.cursor()
|
|
|
|
TableEpisodes.path
|
|
|
|
episodes = c_db.execute("SELECT path FROM table_episodes WHERE sonarrSeriesId = ?", (no,)).fetchall()
|
|
|
|
).where(
|
|
|
|
c_db.close()
|
|
|
|
TableEpisodes.sonarr_series_id == no
|
|
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
for episode in episodes:
|
|
|
|
for episode in episodes:
|
|
|
|
store_subtitles(path_replace(episode[0]))
|
|
|
|
store_subtitles(path_replace(episode.path))
|
|
|
|
|
|
|
|
|
|
|
|
list_missing_subtitles(no)
|
|
|
|
list_missing_subtitles(no)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def movies_scan_subtitles(no):
|
|
|
|
def movies_scan_subtitles(no):
|
|
|
|
conn_db = sqlite3.connect(os.path.join(args.config_dir, 'db', 'bazarr.db'), timeout=30)
|
|
|
|
movies = TableMovies.select(
|
|
|
|
c_db = conn_db.cursor()
|
|
|
|
TableMovies.path
|
|
|
|
movies = c_db.execute("SELECT path FROM table_movies WHERE radarrId = ?", (no,)).fetchall()
|
|
|
|
).where(
|
|
|
|
c_db.close()
|
|
|
|
TableMovies.radarr_id == no
|
|
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
for movie in movies:
|
|
|
|
for movie in movies:
|
|
|
|
store_subtitles_movie(path_replace_movie(movie[0]))
|
|
|
|
store_subtitles_movie(path_replace_movie(movie.path))
|
|
|
|
|
|
|
|
|
|
|
|
list_missing_subtitles_movies(no)
|
|
|
|
list_missing_subtitles_movies(no)
|
|
|
|
|
|
|
|
|
|
|
|