forked from theotherp/nzbhydra
/
nzbhydra.py
72 lines (61 loc) · 2.48 KB
/
nzbhydra.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
from os.path import dirname, join, abspath
from sys import path
base_path = dirname(abspath(__file__))
path.insert(0, join(base_path, 'nzbhydra'))
path.insert(0, join(base_path, 'libs'))
import os
import argparse
import requests
import webbrowser
import nzbhydra.config as config
from furl import furl
from nzbhydra import log
from nzbhydra import indexers
from nzbhydra import database
from nzbhydra import web
from nzbhydra.versioning import check_for_new_version
os.chdir(base_path)
requests.packages.urllib3.disable_warnings()
logger = None
def run():
global logger
parser = argparse.ArgumentParser(description='NZBHydra')
parser.add_argument('--config', action='store', help='Settings file to load', default="settings.cfg")
parser.add_argument('--database', action='store', help='Database file to load', default="nzbhydra.db")
parser.add_argument('--host', action='store', help='Host to run on')
parser.add_argument('--port', action='store', help='Port to run on', type=int)
parser.add_argument('--nobrowser', action='store_true', help='Don\'t open URL on startup', default=False)
args = parser.parse_args()
parser.print_help()
settings_file = args.config
database_file = args.database
print("Loading settings from %s" % settings_file)
config.load(settings_file)
config.save(settings_file) # Write any new settings back to the file
logger = log.setup_custom_logger('root')
logger.info("Started")
logger.info("Loading database file %s" % database_file)
if not os.path.exists(database_file):
database.init_db(database_file)
else:
database.update_db(database_file)
database.db.init(database_file)
indexers.read_indexers_from_config()
if config.mainSettings.debug.get():
logger.info("Debug mode enabled")
host = config.mainSettings.host.get() if args.host is None else args.host
port = config.mainSettings.port.get() if args.port is None else args.port
logger.info("Starting web app on %s:%d" % (host, port))
f = furl()
f.host = "127.0.0.1"
f.port = port
f.scheme = "https" if config.mainSettings.ssl.get() else "http"
if not args.nobrowser and config.mainSettings.startup_browser.get():
logger.info("Opening browser to %s" % f.url)
webbrowser.open_new(f.url)
else:
logger.info("Go to %s for the frontend (or whatever your public IP is)" % f.url)
check_for_new_version()
web.run(host, port)
if __name__ == '__main__':
run()