mirror of
https://github.com/morpheus65535/bazarr.git
synced 2025-04-23 22:27:17 -04:00
Proxy support #113
* Initial commit
* More development
* Update requirements
* Update init filr
* fix
* Added exclude settings
* Change wording
* Fix bad merge
* Hide setting if not selected proxy type
* revert disabled update check
* Fix for APScheduler import
* Revert "Fix for APScheduler import"
This reverts commit 0f4744d2c8
.
* Fix som Bugs
* Fix som Bugs
* Dynamicaly add or remove form validation rules for proxy
This commit is contained in:
parent
26ac122548
commit
4416799122
5 changed files with 2062 additions and 1816 deletions
47
bazarr.py
47
bazarr.py
|
@ -18,7 +18,7 @@ from init import *
|
|||
from update_db import *
|
||||
|
||||
|
||||
from get_settings import get_general_settings
|
||||
from get_settings import get_general_settings, get_proxy_settings
|
||||
import logging
|
||||
from logging.handlers import TimedRotatingFileHandler
|
||||
|
||||
|
@ -57,6 +57,16 @@ def configure_logging():
|
|||
|
||||
configure_logging()
|
||||
|
||||
import requests
|
||||
if get_proxy_settings()[0] != 'None':
|
||||
if get_proxy_settings()[3] != '' and get_proxy_settings()[4] != '':
|
||||
proxy = get_proxy_settings()[0] + '://' + get_proxy_settings()[3] + ':' + get_proxy_settings()[4] + '@' + get_proxy_settings()[1] + ':' + get_proxy_settings()[2]
|
||||
else:
|
||||
proxy = get_proxy_settings()[0] + '://' + get_proxy_settings()[1] + ':' + get_proxy_settings()[2]
|
||||
os.environ['HTTP_PROXY'] = str(proxy)
|
||||
os.environ['HTTPS_PROXY'] = str(proxy)
|
||||
os.environ['NO_PROXY'] = str(get_proxy_settings()[5])
|
||||
|
||||
from bottle import route, run, template, static_file, request, redirect, response, HTTPError, app
|
||||
import bottle
|
||||
bottle.TEMPLATE_PATH.insert(0, os.path.join(os.path.dirname(__file__), 'views/'))
|
||||
|
@ -68,7 +78,6 @@ from cork import Cork
|
|||
from json import dumps
|
||||
import itertools
|
||||
import operator
|
||||
import requests
|
||||
import pretty
|
||||
from datetime import datetime, timedelta
|
||||
from io import BytesIO
|
||||
|
@ -768,13 +777,14 @@ def settings():
|
|||
settings_notifier = c.fetchall()
|
||||
c.close()
|
||||
|
||||
from get_settings import get_general_settings, get_auth_settings, get_radarr_settings, get_sonarr_settings
|
||||
from get_settings import get_general_settings, get_proxy_settings, get_auth_settings, get_radarr_settings, get_sonarr_settings
|
||||
settings_general = get_general_settings()
|
||||
settings_proxy = get_proxy_settings()
|
||||
settings_auth = get_auth_settings()
|
||||
settings_sonarr = get_sonarr_settings()
|
||||
settings_radarr = get_radarr_settings()
|
||||
|
||||
return template('settings', __file__=__file__, bazarr_version=bazarr_version, settings_general=settings_general, settings_auth=settings_auth, settings_languages=settings_languages, settings_providers=settings_providers, settings_sonarr=settings_sonarr, settings_radarr=settings_radarr, settings_notifier=settings_notifier, base_url=base_url)
|
||||
return template('settings', __file__=__file__, bazarr_version=bazarr_version, settings_general=settings_general, settings_proxy=settings_proxy, settings_auth=settings_auth, settings_languages=settings_languages, settings_providers=settings_providers, settings_sonarr=settings_sonarr, settings_radarr=settings_radarr, settings_notifier=settings_notifier, base_url=base_url)
|
||||
|
||||
@route(base_url + 'save_settings', method='POST')
|
||||
@custom_auth_basic(check_credentials)
|
||||
|
@ -883,6 +893,35 @@ def save_settings():
|
|||
if after != before:
|
||||
configured()
|
||||
get_general_settings()
|
||||
|
||||
settings_proxy = get_proxy_settings()
|
||||
|
||||
if not cfg.has_section('proxy'):
|
||||
cfg.add_section('proxy')
|
||||
|
||||
settings_proxy_type = request.forms.get('settings_proxy_type')
|
||||
settings_proxy_url = request.forms.get('settings_proxy_url')
|
||||
settings_proxy_port = request.forms.get('settings_proxy_port')
|
||||
settings_proxy_username = request.forms.get('settings_proxy_username')
|
||||
settings_proxy_password = request.forms.get('settings_proxy_password')
|
||||
settings_proxy_exclude = request.forms.get('settings_proxy_exclude')
|
||||
|
||||
before_proxy_password = (unicode(settings_proxy[0]), unicode(settings_proxy[5]))
|
||||
if before_proxy_password[0] != settings_proxy_type:
|
||||
configured()
|
||||
if before_proxy_password[1] == settings_proxy_password:
|
||||
cfg.set('proxy', 'type', text_type(settings_proxy_type))
|
||||
cfg.set('proxy', 'url', text_type(settings_proxy_url))
|
||||
cfg.set('proxy', 'port', text_type(settings_proxy_port))
|
||||
cfg.set('proxy', 'username', text_type(settings_proxy_username))
|
||||
cfg.set('proxy', 'exclude', text_type(settings_proxy_exclude))
|
||||
else:
|
||||
cfg.set('proxy', 'type', text_type(settings_proxy_type))
|
||||
cfg.set('proxy', 'url', text_type(settings_proxy_url))
|
||||
cfg.set('proxy', 'port', text_type(settings_proxy_port))
|
||||
cfg.set('proxy', 'username', text_type(settings_proxy_username))
|
||||
cfg.set('proxy', 'password', text_type(settings_proxy_password))
|
||||
cfg.set('proxy', 'exclude', text_type(settings_proxy_exclude))
|
||||
|
||||
settings_auth = get_auth_settings()
|
||||
|
||||
|
|
|
@ -209,6 +209,55 @@ def get_auth_settings():
|
|||
return [type, username, password]
|
||||
|
||||
|
||||
def get_proxy_settings():
|
||||
cfg = ConfigParser()
|
||||
try:
|
||||
with open(config_file, 'r') as f:
|
||||
cfg.read_file(f)
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
if cfg.has_section('proxy'):
|
||||
if cfg.has_option('proxy', 'type'):
|
||||
proxy_type = cfg.get('proxy', 'type')
|
||||
else:
|
||||
proxy_type = 'None'
|
||||
|
||||
if cfg.has_option('proxy', 'url'):
|
||||
url = cfg.get('proxy', 'url')
|
||||
else:
|
||||
url = ''
|
||||
|
||||
if cfg.has_option('proxy', 'port'):
|
||||
port = cfg.get('proxy', 'port')
|
||||
else:
|
||||
port = ''
|
||||
|
||||
if cfg.has_option('proxy', 'username'):
|
||||
username = cfg.get('proxy', 'username')
|
||||
else:
|
||||
username = ''
|
||||
|
||||
if cfg.has_option('proxy', 'password'):
|
||||
password = cfg.get('proxy', 'password')
|
||||
else:
|
||||
password = ''
|
||||
|
||||
if cfg.has_option('proxy', 'exclude'):
|
||||
exclude = cfg.get('proxy', 'exclude')
|
||||
else:
|
||||
exclude = 'localhost,127.0.0.1'
|
||||
else:
|
||||
proxy_type = ''
|
||||
url = ''
|
||||
port = ''
|
||||
username = ''
|
||||
password = ''
|
||||
exclude = 'localhost,127.0.0.1'
|
||||
|
||||
return [proxy_type, url, port, username, password, exclude]
|
||||
|
||||
|
||||
def get_sonarr_settings():
|
||||
cfg = ConfigParser()
|
||||
try:
|
||||
|
|
12
init.py
12
init.py
|
@ -156,6 +156,18 @@ except sqlite3.OperationalError:
|
|||
cfg.set(section, 'use_embedded_subs', "False")
|
||||
cfg.set(section, 'only_monitored', "False")
|
||||
cfg.set(section, 'adaptive_searching', "False")
|
||||
|
||||
section = 'proxy'
|
||||
|
||||
if not cfg.has_section(section):
|
||||
cfg.add_section(section)
|
||||
|
||||
cfg.set(section, 'type', "None")
|
||||
cfg.set(section, 'url', "")
|
||||
cfg.set(section, 'port', "")
|
||||
cfg.set(section, 'username', "")
|
||||
cfg.set(section, 'password', "")
|
||||
cfg.set(section, 'exclude', "localhost,127.0.0.1")
|
||||
|
||||
section = 'auth'
|
||||
|
||||
|
|
|
@ -8,17 +8,17 @@ dogpile.cache>=0.6.5
|
|||
#enzyme>=0.4.1 <-- included in /libs
|
||||
gitpython>=2.1.9
|
||||
langdetect>=1.0.7
|
||||
Pillow>=5.1.0
|
||||
py-pretty>=1
|
||||
pycountry>=18.2.23
|
||||
pytz>=2018.4
|
||||
requests>=2.18.4
|
||||
#subliminal>=2.0.5 <-- included in /libs
|
||||
tzlocal>=1.5.1
|
||||
urllib3<1.23,>=1.21.1
|
||||
#urllib3<1.23,>=1.21.1
|
||||
waitress>=1.1.0
|
||||
configparser>=3.5.0
|
||||
backports.functools-lru-cache>=1.5
|
||||
pysocks>=1.6.8
|
||||
beaker>=1.10.0
|
||||
|
||||
#Subliminal requirements
|
||||
|
|
3766
views/settings.tpl
3766
views/settings.tpl
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue