@ -24,7 +24,7 @@ def check_releases():
releases = [ ]
url_releases = ' https://api.github.com/repos/morpheus65535/Bazarr/releases?per_page=100 '
try :
logging . debug ( ' BAZARR getting releases from Github: { }' . format ( url_releases ) )
logging . debug ( f ' BAZARR getting releases from Github: { url_releases } ' )
r = requests . get ( url_releases , allow_redirects = True )
r . raise_for_status ( )
except requests . exceptions . HTTPError :
@ -50,7 +50,7 @@ def check_releases():
' download_link ' : download_link } )
with open ( os . path . join ( args . config_dir , ' config ' , ' releases.txt ' ) , ' w ' ) as f :
json . dump ( releases , f )
logging . debug ( ' BAZARR saved { } releases to releases.txt ' . format ( len ( r . json ( ) ) ) )
logging . debug ( f ' BAZARR saved { len ( r . json ( ) ) } releases to releases.txt ' )
def check_if_new_update ( ) :
@ -59,9 +59,9 @@ def check_if_new_update():
elif settings . general . branch == ' development ' :
use_prerelease = True
else :
logging . error ( ' BAZARR unknown branch provided to updater: { }' . format ( settings . general . branch ) )
logging . error ( f ' BAZARR unknown branch provided to updater: { settings . general . branch } ' )
return
logging . debug ( ' BAZARR updater is using { } branch ' . format ( settings . general . branch ) )
logging . debug ( f ' BAZARR updater is using { settings . general . branch } branch ' )
check_releases ( )
@ -84,7 +84,7 @@ def check_if_new_update():
release = next ( ( item for item in data if not item [ " prerelease " ] ) , None )
if release and ' name ' in release :
logging . debug ( ' BAZARR last release available is { }' . format ( release [ ' name ' ] ) )
logging . debug ( f ' BAZARR last release available is { release [ " name " ] } ' )
if deprecated_python_version ( ) :
logging . warning ( ' BAZARR is using a deprecated Python version, you must update Python to get latest '
' version available. ' )
@ -101,12 +101,12 @@ def check_if_new_update():
# skip update process if latest release is v0.9.1.1 which is the latest pre-semver compatible release
if new_version and release [ ' name ' ] != ' v0.9.1.1 ' :
logging . debug ( ' BAZARR newer release available and will be downloaded: { }' . format ( release [ ' name ' ] ) )
logging . debug ( f ' BAZARR newer release available and will be downloaded: { release [ " name " ] } ' )
download_release ( url = release [ ' download_link ' ] )
# rolling back from nightly to stable release
elif current_version :
if current_version . prerelease and not use_prerelease :
logging . debug ( ' BAZARR previous stable version will be downloaded: { }' . format ( release [ ' name ' ] ) )
logging . debug ( f ' BAZARR previous stable version will be downloaded: { release [ " name " ] } ' )
download_release ( url = release [ ' download_link ' ] )
else :
logging . debug ( ' BAZARR no newer release have been found ' )
@ -122,9 +122,9 @@ def download_release(url):
try :
os . makedirs ( update_dir , exist_ok = True )
except Exception :
logging . debug ( ' BAZARR unable to create update directory { }' . format ( update_dir ) )
logging . debug ( f ' BAZARR unable to create update directory { update_dir } ' )
else :
logging . debug ( ' BAZARR downloading release from Github: { }' . format ( url ) )
logging . debug ( f ' BAZARR downloading release from Github: { url } ' )
r = requests . get ( url , allow_redirects = True )
if r :
try :
@ -145,7 +145,7 @@ def apply_update():
if os . path . isdir ( update_dir ) :
if os . path . isfile ( bazarr_zip ) :
logging . debug ( ' BAZARR is trying to unzip this release to { 0}: {1} ' . format ( bazarr_dir , bazarr_zip ) )
logging . debug ( f ' BAZARR is trying to unzip this release to { bazarr_dir } : { bazarr_zip } ' )
try :
with ZipFile ( bazarr_zip , ' r ' ) as archive :
zip_root_directory = ' '
@ -195,7 +195,7 @@ def apply_update():
def update_cleaner ( zipfile , bazarr_dir , config_dir ) :
with ZipFile ( zipfile , ' r ' ) as archive :
file_in_zip = archive . namelist ( )
logging . debug ( ' BAZARR zip file contain { } directories and files ' . format ( len ( file_in_zip ) ) )
logging . debug ( f ' BAZARR zip file contain { len ( file_in_zip ) } directories and files ' )
separator = os . path . sep
if os . path . sep == ' \\ ' :
logging . debug ( ' BAZARR upgrade leftover cleaner is running on Windows. We \' ll fix the zip file separator '
@ -207,33 +207,33 @@ def update_cleaner(zipfile, bazarr_dir, config_dir):
logging . debug ( ' BAZARR upgrade leftover cleaner is running on something else than Windows. The zip file '
' separator are fine. ' )
dir_to_ignore = [ ' ^. ' + separator ,
' ^bin ' + separator ,
' ^venv ' + separator ,
' ^WinPython ' + separator ,
separator + ' __pycache__ ' + separator + ' $ ' ]
dir_to_ignore = [ f' ^. { separator } ' ,
f' ^bin { separator } ' ,
f' ^venv { separator } ' ,
f' ^WinPython { separator } ' ,
f ' { separator } __pycache__ { separator } $ ' ]
if os . path . abspath ( bazarr_dir ) . lower ( ) == os . path . abspath ( config_dir ) . lower ( ) :
# for users who installed Bazarr inside the config directory (ie: `%programdata%\Bazarr` on windows)
dir_to_ignore . append ( ' ^backup ' + separator )
dir_to_ignore . append ( ' ^cache ' + separator )
dir_to_ignore . append ( ' ^config ' + separator )
dir_to_ignore . append ( ' ^db ' + separator )
dir_to_ignore . append ( ' ^log ' + separator )
dir_to_ignore . append ( ' ^restore ' + separator )
dir_to_ignore . append ( ' ^update ' + separator )
dir_to_ignore . append ( f' ^backup { separator } ' )
dir_to_ignore . append ( f' ^cache { separator } ' )
dir_to_ignore . append ( f' ^config { separator } ' )
dir_to_ignore . append ( f' ^db { separator } ' )
dir_to_ignore . append ( f' ^log { separator } ' )
dir_to_ignore . append ( f' ^restore { separator } ' )
dir_to_ignore . append ( f' ^update { separator } ' )
elif os . path . abspath ( bazarr_dir ) . lower ( ) in os . path . abspath ( config_dir ) . lower ( ) :
# when config directory is a child of Bazarr installation directory
dir_to_ignore . append ( ' ^ ' + os . path . relpath ( config_dir , bazarr_dir ) + separator )
dir_to_ignore . append ( f' ^ { os . path . relpath ( config_dir , bazarr_dir ) } { separator } ' )
dir_to_ignore_regex_string = ' (?: % s ) ' % ' | ' . join ( dir_to_ignore )
logging . debug ( f ' BAZARR upgrade leftover cleaner will ignore directories matching this '
f ' regex: { dir_to_ignore_regex_string } ' )
dir_to_ignore_regex = re . compile ( dir_to_ignore_regex_string )
file_to_ignore = [ ' nssm.exe ' , ' 7za.exe ' , ' unins000.exe ' , ' unins000.dat ' ]
logging . debug ( ' BAZARR upgrade leftover cleaner will ignore those files: { }' . format ( ' , ' . join ( file_to_ignore ) ) )
logging . debug ( f ' BAZARR upgrade leftover cleaner will ignore those files: { " , " . join ( file_to_ignore ) } ' )
extension_to_ignore = [ ' .pyc ' ]
logging . debug ( ' BAZARR upgrade leftover cleaner will ignore files with those extensions: '
' {} ' . format ( ' , ' . join ( extension_to_ignore ) ) )
logging . debug (
f ' BAZARR upgrade leftover cleaner will ignore files with those extensions: { " , " . join ( extension_to_ignore ) } ' )
file_on_disk = [ ]
folder_list = [ ]
@ -256,14 +256,14 @@ def update_cleaner(zipfile, bazarr_dir, config_dir):
filepath = os . path . join ( current_dir , file )
if not dir_to_ignore_regex . findall ( filepath ) :
file_on_disk . append ( filepath )
logging . debug ( ' BAZARR directory contain { } files ' . format ( len ( file_on_disk ) ) )
logging . debug ( ' BAZARR directory contain { } directories ' . format ( len ( folder_list ) ) )
logging . debug ( f ' BAZARR directory contain { len ( file_on_disk ) } files ' )
logging . debug ( f ' BAZARR directory contain { len ( folder_list ) } directories ' )
file_on_disk + = folder_list
logging . debug ( ' BAZARR directory contain { } directories and files ' . format ( len ( file_on_disk ) ) )
logging . debug ( f ' BAZARR directory contain { len ( file_on_disk ) } directories and files ' )
file_to_remove = list ( set ( file_on_disk ) - set ( file_in_zip ) )
logging . debug ( ' BAZARR will delete { } directories and files ' . format ( len ( file_to_remove ) ) )
logging . debug ( ' BAZARR will delete this: { }' . format ( ' , ' . join ( file_to_remove ) ) )
logging . debug ( f ' BAZARR will delete { len ( file_to_remove ) } directories and files ' )
logging . debug ( f ' BAZARR will delete this: { " , " . join ( file_to_remove ) } ' )
for file in file_to_remove :
filepath = os . path . join ( bazarr_dir , file )
@ -273,4 +273,4 @@ def update_cleaner(zipfile, bazarr_dir, config_dir):
else :
os . remove ( filepath )
except Exception :
logging . debug ( ' BAZARR upgrade leftover cleaner cannot delete { }' . format ( filepath ) )
logging . debug ( f ' BAZARR upgrade leftover cleaner cannot delete { filepath } ' )