mirror of
https://github.com/morpheus65535/bazarr.git
synced 2024-09-21 07:55:59 +08:00
Continuing development.
This commit is contained in:
parent
1e62365b9a
commit
af438d1236
|
@ -33,7 +33,7 @@ defaults = {
|
||||||
'use_embedded_subs': 'True',
|
'use_embedded_subs': 'True',
|
||||||
'adaptive_searching': 'False',
|
'adaptive_searching': 'False',
|
||||||
'enabled_providers': '',
|
'enabled_providers': '',
|
||||||
'throtteled_providers': '',
|
'throtteled_providers': '{}',
|
||||||
'multithreading': 'True',
|
'multithreading': 'True',
|
||||||
'chmod': '0640',
|
'chmod': '0640',
|
||||||
'subfolder': 'current',
|
'subfolder': 'current',
|
||||||
|
|
|
@ -3,6 +3,7 @@ import os
|
||||||
import datetime
|
import datetime
|
||||||
import logging
|
import logging
|
||||||
import subliminal_patch
|
import subliminal_patch
|
||||||
|
import pretty
|
||||||
|
|
||||||
from get_args import args
|
from get_args import args
|
||||||
from config import settings
|
from config import settings
|
||||||
|
@ -139,3 +140,33 @@ def provider_throttle(name, exception):
|
||||||
|
|
||||||
logging.info("Throttling %s for %s, until %s, because of: %s. Exception info: %r", name, throttle_description,
|
logging.info("Throttling %s for %s, until %s, because of: %s. Exception info: %r", name, throttle_description,
|
||||||
throttle_until.strftime("%y/%m/%d %H:%M"), cls_name, exception.message)
|
throttle_until.strftime("%y/%m/%d %H:%M"), cls_name, exception.message)
|
||||||
|
|
||||||
|
def update_throttled_provider():
|
||||||
|
changed = False
|
||||||
|
if settings.general.enabled_providers:
|
||||||
|
for provider in settings.general.enabled_providers.lower().split(','):
|
||||||
|
reason, until, throttle_desc = tp.get(provider, (None, None, None))
|
||||||
|
|
||||||
|
if reason:
|
||||||
|
now = datetime.datetime.now()
|
||||||
|
if now < until:
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
logging.info("Using %s again after %s, (disabled because: %s)", provider, throttle_desc, reason)
|
||||||
|
del tp[provider]
|
||||||
|
settings.general.throtteled_providers = str(tp)
|
||||||
|
changed = True
|
||||||
|
|
||||||
|
if changed:
|
||||||
|
with open(os.path.join(args.config_dir, 'config', 'config.ini'), 'w+') as handle:
|
||||||
|
settings.write(handle)
|
||||||
|
|
||||||
|
|
||||||
|
def list_throttled_providers():
|
||||||
|
update_throttled_provider()
|
||||||
|
throttled_providers = []
|
||||||
|
if settings.general.enabled_providers:
|
||||||
|
for provider in settings.general.enabled_providers.lower().split(','):
|
||||||
|
reason, until, throttle_desc = tp.get(provider, (None, None, None))
|
||||||
|
throttled_providers.append([provider, reason, pretty.date(until)])
|
||||||
|
return throttled_providers
|
||||||
|
|
|
@ -53,7 +53,7 @@ from cork import Cork
|
||||||
from bottle import route, run, template, static_file, request, redirect, response, HTTPError, app, hook, abort
|
from bottle import route, run, template, static_file, request, redirect, response, HTTPError, app, hook, abort
|
||||||
from datetime import datetime, timedelta
|
from datetime import datetime, timedelta
|
||||||
from get_languages import load_language_in_db, language_from_alpha3
|
from get_languages import load_language_in_db, language_from_alpha3
|
||||||
from get_providers import get_providers, get_providers_auth
|
from get_providers import get_providers, get_providers_auth, list_throttled_providers
|
||||||
from get_series import *
|
from get_series import *
|
||||||
from get_episodes import *
|
from get_episodes import *
|
||||||
|
|
||||||
|
@ -1642,6 +1642,8 @@ def system():
|
||||||
elif job.trigger.__str__().startswith('cron'):
|
elif job.trigger.__str__().startswith('cron'):
|
||||||
task_list.append([job.name, get_time_from_cron(job.trigger.fields), next_run, job.id])
|
task_list.append([job.name, get_time_from_cron(job.trigger.fields), next_run, job.id])
|
||||||
|
|
||||||
|
throttled_providers = list_throttled_providers()
|
||||||
|
|
||||||
i = 0
|
i = 0
|
||||||
with open(os.path.join(args.config_dir, 'log', 'bazarr.log')) as f:
|
with open(os.path.join(args.config_dir, 'log', 'bazarr.log')) as f:
|
||||||
for i, l in enumerate(f, 1):
|
for i, l in enumerate(f, 1):
|
||||||
|
@ -1678,7 +1680,7 @@ def system():
|
||||||
operating_system=platform.platform(), python_version=platform.python_version(),
|
operating_system=platform.platform(), python_version=platform.python_version(),
|
||||||
config_dir=args.config_dir, bazarr_dir=os.path.normcase(os.getcwd()),
|
config_dir=args.config_dir, bazarr_dir=os.path.normcase(os.getcwd()),
|
||||||
base_url=base_url, task_list=task_list, row_count=row_count, max_page=max_page, page_size=page_size,
|
base_url=base_url, task_list=task_list, row_count=row_count, max_page=max_page, page_size=page_size,
|
||||||
releases=releases, current_port=settings.general.port)
|
releases=releases, current_port=settings.general.port, throttled_providers=throttled_providers)
|
||||||
|
|
||||||
|
|
||||||
@route(base_url + 'logs/<page:int>')
|
@route(base_url + 'logs/<page:int>')
|
||||||
|
|
|
@ -25,7 +25,11 @@
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
% from get_args import args
|
% from get_args import args
|
||||||
|
% from get_providers import update_throttled_provider
|
||||||
|
% update_throttled_provider()
|
||||||
|
|
||||||
|
% import ast
|
||||||
|
% import datetime
|
||||||
% import os
|
% import os
|
||||||
% import sqlite3
|
% import sqlite3
|
||||||
% from config import settings
|
% from config import settings
|
||||||
|
@ -46,7 +50,8 @@
|
||||||
% c = conn.cursor()
|
% c = conn.cursor()
|
||||||
% wanted_series = c.execute("SELECT COUNT(*) FROM table_episodes WHERE missing_subtitles != '[]'" + monitored_only_query_string_sonarr).fetchone()
|
% wanted_series = c.execute("SELECT COUNT(*) FROM table_episodes WHERE missing_subtitles != '[]'" + monitored_only_query_string_sonarr).fetchone()
|
||||||
% wanted_movies = c.execute("SELECT COUNT(*) FROM table_movies WHERE missing_subtitles != '[]'" + monitored_only_query_string_radarr).fetchone()
|
% wanted_movies = c.execute("SELECT COUNT(*) FROM table_movies WHERE missing_subtitles != '[]'" + monitored_only_query_string_radarr).fetchone()
|
||||||
|
% from get_providers import list_throttled_providers
|
||||||
|
% throttled_providers_count = len(eval(str(settings.general.throtteled_providers)))
|
||||||
<div id="divmenu" class="ui container">
|
<div id="divmenu" class="ui container">
|
||||||
<div class="ui grid">
|
<div class="ui grid">
|
||||||
<div class="middle aligned row">
|
<div class="middle aligned row">
|
||||||
|
@ -96,7 +101,13 @@
|
||||||
Settings
|
Settings
|
||||||
</a>
|
</a>
|
||||||
<a class="item" href="{{base_url}}system">
|
<a class="item" href="{{base_url}}system">
|
||||||
<i class="laptop icon"></i>
|
<i class="laptop icon">
|
||||||
|
% if throttled_providers_count:
|
||||||
|
<div class="floating ui tiny yellow label" style="left:90% !important;top:0.5em !important;">
|
||||||
|
{{throttled_providers_count}}
|
||||||
|
</div>
|
||||||
|
% end
|
||||||
|
</i>
|
||||||
System
|
System
|
||||||
</a>
|
</a>
|
||||||
<a id="donate" class="item" href="https://beerpay.io/morpheus65535/bazarr">
|
<a id="donate" class="item" href="https://beerpay.io/morpheus65535/bazarr">
|
||||||
|
|
|
@ -54,9 +54,18 @@
|
||||||
<div id="logout" class="ui icon button" data-tooltip="Logout" data-inverted=""><i class="sign-out icon"></i></div>
|
<div id="logout" class="ui icon button" data-tooltip="Logout" data-inverted=""><i class="sign-out icon"></i></div>
|
||||||
% end
|
% end
|
||||||
</div>
|
</div>
|
||||||
<div class="ui top attached tabular menu">
|
% import datetime
|
||||||
|
% throttled_providers_count = len(eval(str(settings.general.throtteled_providers)))
|
||||||
|
<div class="ui top attached tabular menu">
|
||||||
<a class="tabs item active" data-tab="tasks">Tasks</a>
|
<a class="tabs item active" data-tab="tasks">Tasks</a>
|
||||||
<a class="tabs item" data-tab="logs">Logs</a>
|
<a class="tabs item" data-tab="logs">Logs</a>
|
||||||
|
<a class="tabs item" data-tab="providers">Providers
|
||||||
|
% if throttled_providers_count:
|
||||||
|
<div class="ui tiny yellow label">
|
||||||
|
{{throttled_providers_count}}
|
||||||
|
</div>
|
||||||
|
% end
|
||||||
|
</a>
|
||||||
<a class="tabs item" data-tab="status">Status</a>
|
<a class="tabs item" data-tab="status">Status</a>
|
||||||
<a class="tabs item" data-tab="releases">Releases</a>
|
<a class="tabs item" data-tab="releases">Releases</a>
|
||||||
</div>
|
</div>
|
||||||
|
@ -120,6 +129,28 @@
|
||||||
%end
|
%end
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="ui bottom attached tab segment" data-tab="providers">
|
||||||
|
<div class="content">
|
||||||
|
<table class="ui very basic table">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>Name</th>
|
||||||
|
<th>Status</th>
|
||||||
|
<th>Next retry</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
%for provider in throttled_providers:
|
||||||
|
<tr>
|
||||||
|
<td>{{provider[0]}}</td>
|
||||||
|
<td>{{provider[1] if provider[1] is not None else "Good"}}</td>
|
||||||
|
<td>{{provider[2] if provider[2] is not "now" else "-"}}</td>
|
||||||
|
</tr>
|
||||||
|
%end
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="ui bottom attached tab segment" data-tab="status">
|
<div class="ui bottom attached tab segment" data-tab="status">
|
||||||
<div class="ui dividing header">About</div>
|
<div class="ui dividing header">About</div>
|
||||||
<div class="twelve wide column">
|
<div class="twelve wide column">
|
||||||
|
|
Loading…
Reference in a new issue