def save_and_restart_if_needed(section=None): # Save to the configfile restart = config.write_config(section) # Check if restart is needed if restart: return {'restart': True} else: # For some reason the config needs to be read again, otherwise all pages get an error config.read_config() send_websocket_notification('Config saved.') return {}
def save_and_restart_if_needed(return_tmpl_file): # Save to the configfile restart = config.write_config() # Check if restart is needed if restart: # Restart the runner in the background scheduler.restart_app() tmpl = Template(file="interface/templates/system/restart.tmpl") tmpl.message = "Saved config. Auto restart in progress..." return str(tmpl) else: # For some reason the config needs to be read again, otherwise all pages get an error config.read_config() utils.add_notification_message("Config saved") redirect_referer("/config")
def save_config(self, subeng, checksub, scandisk, skiphiddendirs, subnl, postprocesscmd, path, logfile, videopaths, launchbrowser, fallbacktoeng, downloadeng, username, password, webroot, skipshow, lognum, loglevelconsole, logsize, loglevel, loghttpaccess, logreversed, webserverip, webserverport, usernamemapping, notifymail, notifygrowl, notifynma, notifytwitter, mailsrv, mailfromaddr, mailtoaddr, mailusername, mailpassword, mailsubject, mailencryption, mailauth, growlhost, growlport, growlpass, nmaapi, twitterkey, twittersecret, notifyen, notifynl, notifyprowl, prowlapi, prowlpriority, notifypushalot, pushalotapi, mmsdefault=None, mmsquality=None, mmscodec=None, mmsreleasegroup=None, subliminalproviders=None): # Set all internal variables autosubliminal.PATH = path autosubliminal.VIDEOPATHS = videopaths.split('\r\n') autosubliminal.LOGFILE = logfile autosubliminal.LOGHTTPACCESS = loghttpaccess autosubliminal.LOGREVERSED = logreversed autosubliminal.FALLBACKTOENG = fallbacktoeng autosubliminal.DOWNLOADENG = downloadeng autosubliminal.SUBENG = subeng autosubliminal.SUBNL = subnl autosubliminal.NOTIFYEN = notifyen autosubliminal.NOTIFYNL = notifynl autosubliminal.POSTPROCESSCMD = postprocesscmd autosubliminal.LAUNCHBROWSER = launchbrowser autosubliminal.SKIPHIDDENDIRS = skiphiddendirs # Set match options and minmatchscore autosubliminal.MATCHQUALITY = False autosubliminal.MATCHCODEC = False autosubliminal.MATCHRELEASEGROUP = False autosubliminal.MINMATCHSCORE = 0 # If not checked, the value will be default None, if checked, it will contain a value if mmsdefault: # mmsdefault is the minimal default score (which cannot be edited, so no flag is needed) autosubliminal.MINMATCHSCORE += autosubliminal.MINMATCHSCOREDEFAULT if mmsquality: autosubliminal.MINMATCHSCORE += 2 autosubliminal.MATCHQUALITY = True if mmscodec: autosubliminal.MINMATCHSCORE += 2 autosubliminal.MATCHCODEC = True if mmsreleasegroup: autosubliminal.MINMATCHSCORE += 6 autosubliminal.MATCHRELEASEGROUP = True # Subliminal providers(convert list to comma separated string if multiple are selected) if subliminalproviders and not isinstance(subliminalproviders, basestring): autosubliminal.SUBLIMINALPROVIDERS = ','.join([str(provider) for provider in subliminalproviders]) else: # Just one selected or None (in this case, None will be saved and no providers will be used) autosubliminal.SUBLIMINALPROVIDERS = subliminalproviders autosubliminal.SCHEDULERSCANDISK = int(scandisk) autosubliminal.SCHEDULERCHECKSUB = int(checksub) autosubliminal.LOGLEVEL = int(loglevel) autosubliminal.LOGNUM = int(lognum) autosubliminal.LOGSIZE = int(logsize) autosubliminal.LOGLEVELCONSOLE = int(loglevelconsole) autosubliminal.WEBSERVERIP = webserverip autosubliminal.WEBSERVERPORT = int(webserverport) autosubliminal.USERNAME = username autosubliminal.PASSWORD = password autosubliminal.WEBROOT = webroot autosubliminal.SKIPSHOW = config.string_to_dict(skipshow) autosubliminal.USERNAMEMAPPING = config.string_to_dict(usernamemapping) # Set all internal notify variables autosubliminal.NOTIFYMAIL = notifymail autosubliminal.MAILSRV = mailsrv autosubliminal.MAILFROMADDR = mailfromaddr autosubliminal.MAILTOADDR = mailtoaddr autosubliminal.MAILUSERNAME = mailusername autosubliminal.MAILPASSWORD = mailpassword autosubliminal.MAILSUBJECT = mailsubject autosubliminal.MAILENCRYPTION = mailencryption autosubliminal.MAILAUTH = mailauth autosubliminal.NOTIFYGROWL = notifygrowl autosubliminal.GROWLHOST = growlhost autosubliminal.GROWLPORT = growlport autosubliminal.GROWLPASS = growlpass autosubliminal.NOTIFYNMA = notifynma autosubliminal.NMAAPI = nmaapi autosubliminal.NOTIFYTWITTER = notifytwitter autosubliminal.TWITTERKEY = twitterkey autosubliminal.TWITTERSECRET = twittersecret autosubliminal.NOTIFYPROWL = notifyprowl autosubliminal.PROWLAPI = prowlapi autosubliminal.PROWLPRIORITY = int(prowlpriority) autosubliminal.NOTIFYPUSHALOT = notifypushalot autosubliminal.PUSHALOTAPI = pushalotapi # Now save to the configfile restart = config.write_config() # Check if restart is needed if restart: # Restart the runner in the background threading.Thread(target=autosubliminal.runner.restart).start() tmpl = PageTemplate(file="interface/templates/restart.tmpl") else: # For some reason the needs to be read again, otherwise all pages get an error config.read_config(autosubliminal.CONFIGFILE) tmpl = PageTemplate(file="interface/templates/message.tmpl") tmpl.message = "Config saved.<br><a href='" + autosubliminal.WEBROOT + "'>Return</a>" return str(tmpl)
def initialize(): global CONFIGFILE, CONFIGVERSION, CONFIGUPGRADED, \ GITHUBURL, VERSIONURL, USERAGENT, SYSENCODING, TIMEOUT, MESSAGEQUEUE, WANTEDQUEUE, WANTEDQUEUELOCK, \ SCHEDULERS, SCANDISK, CHECKSUB, CHECKVERSION, \ DBFILE, DBVERSION, \ DAEMON, STARTED, PID, \ MOBILE, MOBILEUSERAGENTS, \ APIKEY, API, APICALLS, APICALLSLASTRESET, APICALLSRESETINT, APICALLSMAX, \ PATH, VIDEOPATHS, DEFAULTLANGUAGE, DEFAULTLANGUAGESUFFIX, ADDITIONALLANGUAGES, \ SCANDISKINTERVAL, CHECKSUBINTERVAL, CHECKVERSIONINTERVAL, CHECKVERSIONAUTOUPDATE, SCANEMBEDDEDSUBS, \ SKIPHIDDENDIRS, MINVIDEOFILESIZE, MAXDBRESULTS, \ LOGFILE, LOGLEVEL, LOGSIZE, LOGNUM, LOGHTTPACCESS, LOGDETAILEDFORMAT, LOGREVERSED, LOGLEVELCONSOLE, \ WEBSERVERIP, WEBSERVERPORT, WEBROOT, USERNAME, PASSWORD, LAUNCHBROWSER, \ SHOWMINMATCHSCORE, SHOWMINMATCHSCOREDEFAULT, SHOWMATCHSOURCE, SHOWMATCHQUALITY, SHOWMATCHCODEC, \ SHOWMATCHRELEASEGROUP, \ MOVIEMINMATCHSCORE, MOVIEMINMATCHSCOREDEFAULT, MOVIEMATCHSOURCE, MOVIEMATCHQUALITY, MOVIEMATCHCODEC, \ MOVIEMATCHRELEASEGROUP, \ SUBLIMINALPROVIDERSENTRYPOINT, SUBLIMINALPROVIDERS, SUBLIMINALPROVIDERLIST, SUBLIMINALPROVIDERCONFIGS, \ INCLUDEHEARINGIMPAIRED, ADDIC7EDUSERNAME, ADDIC7EDPASSWORD, OPENSUBTITLESUSERNAME, OPENSUBTITLESPASSWORD, \ USERSHOWNAMEMAPPING, USERSHOWNAMEMAPPINGUPPER, SHOWNAMEMAPPING, SHOWNAMEMAPPINGUPPER, \ USERMOVIENAMEMAPPING, USERMOVIENAMEMAPPINGUPPER, MOVIENAMEMAPPING, MOVIENAMEMAPPINGUPPER, \ SKIPSHOW, SKIPSHOWUPPER, \ SKIPMOVIE, SKIPMOVIEUPPER, \ NOTIFY, NOTIFYMAIL, MAILSRV, MAILFROMADDR, MAILTOADDR, MAILUSERNAME, MAILPASSWORD, MAILSUBJECT, MAILAUTH, \ MAILENCRYPTION, NOTIFYTWITTER, TWITTERKEY, TWITTERSECRET, NOTIFYPUSHALOT, PUSHALOTAPI, \ NOTIFYPUSHOVER, PUSHOVERKEY, PUSHOVERAPI, PUSHOVERDEVICES, NOTIFYNMA, NMAAPI, \ NOTIFYGROWL, GROWLHOST, GROWLPORT, GROWLPASS, NOTIFYPROWL, PROWLAPI, PROWLPRIORITY, \ NOTIFYPUSHBULLET, PUSHBULLETAPI, \ POSTPROCESS, POSTPROCESSUTF8ENCODING, SHOWPOSTPROCESSCMD, SHOWPOSTPROCESSCMDARGS, MOVIEPOSTPROCESSCMD, \ MOVIEPOSTPROCESSCMDARGS # Fake some entry points to get libraries working without installation _fake_entry_points() # Get fake subliminal providers entry point SUBLIMINALPROVIDERSENTRYPOINT = pkg_resources.get_entry_info( dist='fake_entry_points', group=None, name='subliminal.providers') # Subliminal settings _initialize_subliminal() # Version settings GITHUBURL = "https://github.com/h3llrais3r/Auto-Subliminal" VERSIONURL = "https://raw.github.com/h3llrais3r/Auto-Subliminal/master/autosubliminal/version.py" USERAGENT = "Auto-Subliminal/" + version.RELEASE_VERSION # Default http timeout TIMEOUT = 300 # Message queue (list of message dicts with 'message' and 'severity' key) # Possible values for 'severity' are: 'info', 'warning', 'error' MESSAGEQUEUE = [] # Wanted queue settings WANTEDQUEUE = [] WANTEDQUEUELOCK = False # Scheduler settings SCHEDULERS = {} # Startup settings STARTED = False # Mobile settings MOBILE = True MOBILEUSERAGENTS = [ "midp", "240x320", "blackberry", "netfront", "nokia", "panasonic", "portalmmm", "sharp", "sie-", "sonyericsson", "symbian", "windows ce", "benq", "mda", "mot-", "opera mini", "philips", "pocket pc", "sagem", "samsung", "sda", "sgh-", "vodafone", "xda", "palm", "iphone", "ipod", "ipad", "android", "windows phone" ] # API settings # Currently not used anymore (perhaps reuse it for tvdb api calls when a custom tvdb api key is needed?) APIKEY = "" API = "http://.../%s/" % APIKEY APICALLSLASTRESET = time.time() APICALLSRESETINT = 86400 APICALLSMAX = 300 APICALLS = APICALLSMAX # Score settings SHOWMINMATCHSCOREDEFAULT = 110 MOVIEMINMATCHSCOREDEFAULT = 35 # Webserver settings LAUNCHBROWSER = True # Config file settings CONFIGUPGRADED = False if CONFIGFILE is None: CONFIGFILE = "config.properties" config.read_config() if CONFIGUPGRADED: print "INFO: Config seems to be upgraded. Writing config." config.write_config() print "INFO: Writing config done." # Change to the new work directory if os.path.exists(PATH): os.chdir(PATH) else: print "ERROR: PATH does not exist, check config" os._exit(1) # Database DBFILE = 'database.db' db.initialize() # Logging logger.initialize()
def initialize(): global VIDEOPATHS, FALLBACKTOENG, SUBENG, LOGFILE, SUBNL, LOGLEVEL, SKIPHIDDENDIRS, \ SUBNL, LOGLEVEL, LOGLEVELCONSOLE, LOGSIZE, LOGNUM, LOGHTTPACCESS, LOGREVERSED, SKIPSHOW, SKIPSHOWUPPER, \ USERNAMEMAPPING, USERNAMEMAPPINGUPPER, NAMEMAPPING, NAMEMAPPINGUPPER, \ SHOWID_CACHE, POSTPROCESSCMD, CONFIGFILE, WORKDIR, NOTIFYEN, NOTIFYNL, \ MINMATCHSCORE, MINMATCHSCOREDEFAULT, MATCHQUALITY, MATCHCODEC, MATCHRELEASEGROUP, \ MAILSRV, MAILFROMADDR, MAILTOADDR, MAILUSERNAME, CONFIGVERSION, CONFIGUPGRADED, \ MAILPASSWORD, MAILSUBJECT, MAILENCRYPTION, \ GROWLHOST, GROWLPORT, GROWLPASS, \ TWITTERKEY, TWITTERSECRET, NMAAPI, NOTIFYMAIL, NOTIFYGROWL, NOTIFYTWITTER, NOTIFYNMA, \ WANTEDQUEUE, \ APIKEY, API, TIMEOUT, APICALLS, \ APICALLSLASTRESET, APICALLSRESETINT, APICALLSMAX, \ SCHEDULERSCANDISK, SCHEDULERCHECKSUB, SCHEDULERDOWNLOADSUBS, \ DAEMON, NOTIFYPROWL, PROWLAPI, PROWLPRIORITY, PUSHALOTAPI, NOTIFYPUSHALOT, \ SUBLIMINALPROVIDERSENTRYPOINT, SUBLIMINALPROVIDERS, SUBLIMINALPROVIDERLIST, SUBLIMINALCACHEFILE, DOGPILECACHEFILE, \ DBFILE, MOBILEUSERAGENTS, MOBILEAUTOSUB, \ USERAGENT, VERSIONURL, \ STARTED, PID DBFILE = 'database.db' SUBLIMINALPROVIDERSENTRYPOINT = pkg_resources.get_entry_info(dist='subliminal', group=None, name='subliminal.providers') SUBLIMINALCACHEFILE = 'subliminal.cache.dbm' DOGPILECACHEFILE = 'dogpile.cache.dbm' release = version.RELEASE_VERSION.split(' ')[0] versionnumber = version.RELEASE_VERSION.split(' ')[1] VERSIONURL = 'https://raw.github.com/h3llrais3r/Auto-Subliminal/master/autosubliminal/version.py' USERAGENT = 'Auto-Subliminal/' + versionnumber + release.lower()[0] WANTEDQUEUE = [] MINMATCHSCOREDEFAULT = 35 # Currently not used anymore (perhaps reuse it for tvdb api calls when a custom tvdb api key is needed?) APIKEY = "" API = "http://.../%s/" % APIKEY # Default http timeout TIMEOUT = 300 MOBILEUSERAGENTS = ["midp", "240x320", "blackberry", "netfront", "nokia", "panasonic", "portalmmm", "sharp", "sie-", "sonyericsson", "symbian", "windows ce", "benq", "mda", "mot-", "opera mini", "philips", "pocket pc", "sagem", "samsung", "sda", "sgh-", "vodafone", "xda", "palm", "iphone", "ipod", "ipad", "android", "windows phone"] MOBILEAUTOSUB = True # API settings APICALLSLASTRESET = time.time() APICALLSRESETINT = 86400 APICALLSMAX = 300 APICALLS = APICALLSMAX # Config file settings if CONFIGFILE is None: CONFIGFILE = "config.properties" config.read_config(CONFIGFILE) if CONFIGUPGRADED: print "INFO: Config seems to be upgraded. Writing config." config.write_config() print "INFO: Writing config done." # Change to the new work directory if os.path.exists(autosubliminal.PATH): os.chdir(autosubliminal.PATH) else: print "ERROR: PATH does not exist, check config" os._exit(1) # Database db.initialize() # Logging logger.initialize() # Subliminal settings _initialize_subliminal()
def initialize(): global CONFIGFILE, CONFIGVERSION, CONFIGUPGRADED, \ CACHEDIR, DEREFERURL, GITHUBURL, VERSIONURL, USERAGENT, SYSENCODING, TIMEOUT, WANTEDQUEUE, WANTEDQUEUELOCK, \ WEBSOCKETMESSAGEQUEUE, WEBSOCKETBROADCASTER, SCHEDULERS, SCANDISK, SCANLIBRARY, CHECKSUB, CHECKVERSION, \ DEVELOPER, \ TVDBAPIKEY, TVDBURL, IMDBURL, SHOWINDEXER, MOVIEINDEXER, \ DBFILE, DBVERSION, DBTIMESTAMPFORMAT, \ PYTHONVERSION, DAEMON, STARTED, PID, UUID, \ PATH, VIDEOPATHS, DEFAULTLANGUAGE, DEFAULTLANGUAGESUFFIX, ADDITIONALLANGUAGES, MANUALSEARCHWITHSCORING, \ SCANDISKINTERVAL, CHECKSUBINTERVAL, CHECKSUBDEADLINE, CHECKSUBDELTA, CHECKVERSIONINTERVAL, \ CHECKVERSIONAUTOUPDATE, SCANEMBEDDEDSUBS, SCANHARDCODEDSUBS, SKIPHIDDENDIRS, DETECTINVALIDSUBLANGUAGE, \ DETECTEDLANGUAGEPROBABILITY, MINVIDEOFILESIZE, MAXDBRESULTS, TIMESTAMPFORMAT, \ LIBRARYMODE, LIBRARYPATHS, SCANLIBRARYINTERVAL, \ LOGFILE, LOGLEVEL, LOGSIZE, LOGNUM, LOGHTTPACCESS, LOGEXTERNALLIBS, LOGDETAILEDFORMAT, LOGREVERSED, \ LOGLEVELCONSOLE, \ WEBSERVERIP, WEBSERVERPORT, WEBROOT, USERNAME, PASSWORD, LAUNCHBROWSER, \ SHOWMINMATCHSCORE, SHOWMINMATCHSCOREDEFAULT, SHOWMATCHSOURCE, SHOWMATCHQUALITY, SHOWMATCHCODEC, \ SHOWMATCHRELEASEGROUP, \ MOVIEMINMATCHSCORE, MOVIEMINMATCHSCOREDEFAULT, MOVIEMATCHSOURCE, MOVIEMATCHQUALITY, MOVIEMATCHCODEC, \ MOVIEMATCHRELEASEGROUP, \ SUBLIMINALPROVIDERMANAGER, SUBLIMINALPROVIDERS, SUBLIMINALPROVIDERCONFIGS, \ SUBTITLEUTF8ENCODING, MANUALREFINEVIDEO, REFINEVIDEO, PREFERHEARINGIMPAIRED, \ ADDIC7EDUSERNAME, ADDIC7EDPASSWORD, OPENSUBTITLESUSERNAME, OPENSUBTITLESPASSWORD, \ SHOWNAMEMAPPING, ADDIC7EDSHOWNAMEMAPPING, ALTERNATIVESHOWNAMEMAPPING, \ MOVIENAMEMAPPING, ALTERNATIVEMOVIENAMEMAPPING, \ SKIPSHOW, SKIPMOVIE, \ NOTIFY, NOTIFYMAIL, MAILSRV, MAILFROMADDR, MAILTOADDR, MAILUSERNAME, MAILPASSWORD, MAILSUBJECT, MAILAUTH, \ MAILENCRYPTION, NOTIFYTWITTER, TWITTERKEY, TWITTERSECRET, NOTIFYPUSHALOT, PUSHALOTAPI, \ NOTIFYPUSHOVER, PUSHOVERKEY, PUSHOVERAPI, PUSHOVERDEVICES, \ NOTIFYGROWL, GROWLHOST, GROWLPORT, GROWLPASS, GROWLPRIORITY, NOTIFYPROWL, PROWLAPI, PROWLPRIORITY, \ NOTIFYPUSHBULLET, PUSHBULLETAPI, NOTIFYTELEGRAM, TELEGRAMBOTAPI, TELEGRAMCHATID, \ POSTPROCESS, POSTPROCESSINDIVIDUAL, POSTPROCESSUTF8ENCODING, SHOWPOSTPROCESSCMD, SHOWPOSTPROCESSCMDARGS, \ MOVIEPOSTPROCESSCMD, MOVIEPOSTPROCESSCMDARGS # Fake some entry points to get libraries working without installation _fake_entry_points() # Check python version PYTHONVERSION = get_python_version_strict() python_version_changed = _check_python_version_change() # System settings PATH = os.path.abspath(getcwd()) CACHEDIR = os.path.abspath(os.path.join(PATH, 'cache')) DEREFERURL = 'http://www.dereferer.org/?' GITHUBURL = 'https://github.com/h3llrais3r/Auto-Subliminal' VERSIONURL = 'https://raw.github.com/h3llrais3r/Auto-Subliminal/master/autosubliminal/version.py' USERAGENT = 'Auto-Subliminal/' + version.RELEASE_VERSION TIMEOUT = 300 # Wanted queue settings WANTEDQUEUE = [] WANTEDQUEUELOCK = False # Websocket settings WEBSOCKETMESSAGEQUEUE = [] # Scheduler settings SCHEDULERS = {} # Developer settings DEVELOPER = False # Indexer settings TVDBAPIKEY = '76F2D5362F45C5EC' TVDBURL = 'http://thetvdb.com/?tab=series&id=' IMDBURL = 'http://www.imdb.com/title/' SHOWINDEXER = ShowIndexer() MOVIEINDEXER = MovieIndexer() # Startup settings STARTED = False UUID = uuid.uuid4() # Generate random uuid each time we initialize the application # Webserver settings LAUNCHBROWSER = True # Score settings SHOWMINMATCHSCOREDEFAULT = 330 MOVIEMINMATCHSCOREDEFAULT = 90 # Cache settings _init_cache(python_version_changed) # Guessit settings _init_guessit() # Subliminal settings SUBLIMINALPROVIDERMANAGER = _init_subliminal(python_version_changed) SUBLIMINALPROVIDERCONFIGS = {} # Langdetect settings _init_langdetect() # Config settings CONFIGUPGRADED = False if CONFIGFILE is None: CONFIGFILE = 'config.properties' config.read_config(True) if CONFIGUPGRADED: print('INFO: Config seems to be upgraded. Writing config.') config.write_config() print('INFO: Writing config done.') # Change to the new work directory if os.path.exists(PATH): os.chdir(PATH) else: print('ERROR: PATH does not exist, check config.') os._exit(1) # Database settings DBFILE = 'database.db' DBTIMESTAMPFORMAT = '%Y-%m-%d %H:%M:%S' db.initialize() # Logging settings logger.initialize()
def initialize(): global CONFIGFILE, CONFIGVERSION, CONFIGUPGRADED, \ CACHEDIR, DEREFERURL, GITHUBURL, VERSIONURL, USERAGENT, SYSENCODING, TIMEOUT, WANTEDQUEUE, WANTEDQUEUELOCK, \ WEBSOCKETMESSAGEQUEUE, WEBSOCKETBROADCASTER, SCHEDULERS, SCANDISK, SCANLIBRARY, CHECKSUB, CHECKVERSION, \ DEVELOPER, \ TVDBAPIKEY, TVDBURL, IMDBURL, SHOWINDEXER, MOVIEINDEXER, \ DBFILE, DBVERSION, DBTIMESTAMPFORMAT, \ PYTHONVERSION, DAEMON, STARTED, PID, UUID, \ PATH, VIDEOPATHS, DEFAULTLANGUAGE, DEFAULTLANGUAGESUFFIX, ADDITIONALLANGUAGES, MANUALSEARCHWITHSCORING, \ SCANDISKINTERVAL, CHECKSUBINTERVAL, CHECKSUBDEADLINE, CHECKSUBDELTA, CHECKVERSIONINTERVAL, \ CHECKVERSIONAUTOUPDATE, SCANEMBEDDEDSUBS, SCANHARDCODEDSUBS, SKIPHIDDENDIRS, DETECTINVALIDSUBLANGUAGE, \ DETECTEDLANGUAGEPROBABILITY, MINVIDEOFILESIZE, MAXDBRESULTS, TIMESTAMPFORMAT, \ LIBRARYMODE, LIBRARYPATHS, SCANLIBRARYINTERVAL, \ LOGFILE, LOGLEVEL, LOGSIZE, LOGNUM, LOGHTTPACCESS, LOGEXTERNALLIBS, LOGDETAILEDFORMAT, LOGREVERSED, \ LOGLEVELCONSOLE, \ WEBSERVERIP, WEBSERVERPORT, WEBROOT, USERNAME, PASSWORD, LAUNCHBROWSER, \ SHOWMINMATCHSCORE, SHOWMINMATCHSCOREDEFAULT, SHOWMATCHSOURCE, SHOWMATCHQUALITY, SHOWMATCHCODEC, \ SHOWMATCHRELEASEGROUP, \ MOVIEMINMATCHSCORE, MOVIEMINMATCHSCOREDEFAULT, MOVIEMATCHSOURCE, MOVIEMATCHQUALITY, MOVIEMATCHCODEC, \ MOVIEMATCHRELEASEGROUP, \ SUBLIMINALPROVIDERMANAGER, SUBLIMINALPROVIDERS, SUBLIMINALPROVIDERCONFIGS, \ SUBTITLEUTF8ENCODING, MANUALREFINEVIDEO, REFINEVIDEO, PREFERHEARINGIMPAIRED, \ ADDIC7EDUSERNAME, ADDIC7EDPASSWORD, OPENSUBTITLESUSERNAME, OPENSUBTITLESPASSWORD, \ SHOWNAMEMAPPING, ADDIC7EDSHOWNAMEMAPPING, ALTERNATIVESHOWNAMEMAPPING, \ MOVIENAMEMAPPING, ALTERNATIVEMOVIENAMEMAPPING, \ SKIPSHOW, SKIPMOVIE, \ NOTIFY, NOTIFYMAIL, MAILSRV, MAILFROMADDR, MAILTOADDR, MAILUSERNAME, MAILPASSWORD, MAILSUBJECT, MAILAUTH, \ MAILENCRYPTION, NOTIFYTWITTER, TWITTERKEY, TWITTERSECRET, NOTIFYPUSHALOT, PUSHALOTAPI, \ NOTIFYPUSHOVER, PUSHOVERKEY, PUSHOVERAPI, PUSHOVERDEVICES, \ NOTIFYGROWL, GROWLHOST, GROWLPORT, GROWLPASS, GROWLPRIORITY, NOTIFYPROWL, PROWLAPI, PROWLPRIORITY, \ NOTIFYPUSHBULLET, PUSHBULLETAPI, NOTIFYTELEGRAM, TELEGRAMBOTAPI, TELEGRAMCHATID, \ POSTPROCESS, POSTPROCESSINDIVIDUAL, POSTPROCESSUTF8ENCODING, SHOWPOSTPROCESSCMD, SHOWPOSTPROCESSCMDARGS, \ MOVIEPOSTPROCESSCMD, MOVIEPOSTPROCESSCMDARGS # Fake some entry points to get libraries working without installation _fake_entry_points() # Check python version PYTHONVERSION = get_python_version_strict() python_version_changed = _check_python_version_change() # System settings PATH = os.path.abspath(getcwd()) CACHEDIR = os.path.abspath(os.path.join(PATH, 'cache')) DEREFERURL = 'http://www.dereferer.org/?' GITHUBURL = 'https://github.com/h3llrais3r/Auto-Subliminal' VERSIONURL = 'https://raw.github.com/h3llrais3r/Auto-Subliminal/master/autosubliminal/version.py' USERAGENT = 'Auto-Subliminal/' + version.RELEASE_VERSION TIMEOUT = 300 # Wanted queue settings WANTEDQUEUE = [] WANTEDQUEUELOCK = False # Websocket settings WEBSOCKETMESSAGEQUEUE = [] # Scheduler settings SCHEDULERS = {} # Developer settings DEVELOPER = False # Indexer settings TVDBAPIKEY = '76F2D5362F45C5EC' TVDBURL = 'http://thetvdb.com/?tab=series&id=' IMDBURL = 'http://www.imdb.com/title/' SHOWINDEXER = ShowIndexer() MOVIEINDEXER = MovieIndexer() # Startup settings STARTED = False UUID = uuid.uuid4( ) # Generate random uuid each time we initialize the application # Webserver settings LAUNCHBROWSER = True # Score settings SHOWMINMATCHSCOREDEFAULT = 330 MOVIEMINMATCHSCOREDEFAULT = 90 # Cache settings _init_cache(python_version_changed) # Guessit settings _init_guessit() # Subliminal settings SUBLIMINALPROVIDERMANAGER = _init_subliminal(python_version_changed) SUBLIMINALPROVIDERCONFIGS = {} # Langdetect settings _init_langdetect() # Config settings CONFIGUPGRADED = False if CONFIGFILE is None: CONFIGFILE = 'config.properties' config.read_config(True) if CONFIGUPGRADED: print('INFO: Config seems to be upgraded. Writing config.') config.write_config() print('INFO: Writing config done.') # Change to the new work directory if os.path.exists(PATH): os.chdir(PATH) else: print('ERROR: PATH does not exist, check config.') os._exit(1) # Database settings DBFILE = 'database.db' DBTIMESTAMPFORMAT = '%Y-%m-%d %H:%M:%S' db.initialize() # Logging settings logger.initialize()
def initialize(): global CONFIGFILE, CONFIGVERSION, CONFIGUPGRADED, \ GITHUBURL, VERSIONURL, USERAGENT, SYSENCODING, TIMEOUT, MESSAGEQUEUE, WANTEDQUEUE, WANTEDQUEUELOCK, \ SCHEDULERS, SCANDISK, CHECKSUB, CHECKVERSION, \ DBFILE, DBVERSION, \ DAEMON, STARTED, PID, \ MOBILE, MOBILEUSERAGENTS, \ APIKEY, API, APICALLS, APICALLSLASTRESET, APICALLSRESETINT, APICALLSMAX, \ PATH, VIDEOPATHS, DEFAULTLANGUAGE, DEFAULTLANGUAGESUFFIX, ADDITIONALLANGUAGES, \ SCANDISKINTERVAL, CHECKSUBINTERVAL, CHECKVERSIONINTERVAL, CHECKVERSIONAUTOUPDATE, SCANEMBEDDEDSUBS, \ SKIPHIDDENDIRS, MINVIDEOFILESIZE, MAXDBRESULTS, \ LOGFILE, LOGLEVEL, LOGSIZE, LOGNUM, LOGHTTPACCESS, LOGDETAILEDFORMAT, LOGREVERSED, LOGLEVELCONSOLE, \ WEBSERVERIP, WEBSERVERPORT, WEBROOT, USERNAME, PASSWORD, LAUNCHBROWSER, \ SHOWMINMATCHSCORE, SHOWMINMATCHSCOREDEFAULT, SHOWMATCHSOURCE, SHOWMATCHQUALITY, SHOWMATCHCODEC, \ SHOWMATCHRELEASEGROUP, \ MOVIEMINMATCHSCORE, MOVIEMINMATCHSCOREDEFAULT, MOVIEMATCHSOURCE, MOVIEMATCHQUALITY, MOVIEMATCHCODEC, \ MOVIEMATCHRELEASEGROUP, \ SUBLIMINALPROVIDERSENTRYPOINT, SUBLIMINALPROVIDERS, SUBLIMINALPROVIDERLIST, SUBLIMINALPROVIDERCONFIGS, \ INCLUDEHEARINGIMPAIRED, ADDIC7EDUSERNAME, ADDIC7EDPASSWORD, OPENSUBTITLESUSERNAME, OPENSUBTITLESPASSWORD, \ USERSHOWNAMEMAPPING, USERSHOWNAMEMAPPINGUPPER, SHOWNAMEMAPPING, SHOWNAMEMAPPINGUPPER, \ USERMOVIENAMEMAPPING, USERMOVIENAMEMAPPINGUPPER, MOVIENAMEMAPPING, MOVIENAMEMAPPINGUPPER, \ SKIPSHOW, SKIPSHOWUPPER, \ SKIPMOVIE, SKIPMOVIEUPPER, \ NOTIFY, NOTIFYMAIL, MAILSRV, MAILFROMADDR, MAILTOADDR, MAILUSERNAME, MAILPASSWORD, MAILSUBJECT, MAILAUTH, \ MAILENCRYPTION, NOTIFYTWITTER, TWITTERKEY, TWITTERSECRET, NOTIFYPUSHALOT, PUSHALOTAPI, \ NOTIFYPUSHOVER, PUSHOVERKEY, PUSHOVERAPI, PUSHOVERDEVICES, NOTIFYNMA, NMAAPI, \ NOTIFYGROWL, GROWLHOST, GROWLPORT, GROWLPASS, NOTIFYPROWL, PROWLAPI, PROWLPRIORITY, \ NOTIFYPUSHBULLET, PUSHBULLETAPI, \ POSTPROCESS, POSTPROCESSUTF8ENCODING, SHOWPOSTPROCESSCMD, SHOWPOSTPROCESSCMDARGS, MOVIEPOSTPROCESSCMD, \ MOVIEPOSTPROCESSCMDARGS # Fake some entry points to get libraries working without installation _fake_entry_points() # Get fake subliminal providers entry point SUBLIMINALPROVIDERSENTRYPOINT = pkg_resources.get_entry_info(dist='fake_entry_points', group=None, name='subliminal.providers') # Subliminal settings _initialize_subliminal() # Version settings GITHUBURL = "https://github.com/h3llrais3r/Auto-Subliminal" VERSIONURL = "https://raw.github.com/h3llrais3r/Auto-Subliminal/master/autosubliminal/version.py" USERAGENT = "Auto-Subliminal/" + version.RELEASE_VERSION # Default http timeout TIMEOUT = 300 # Message queue (list of message dicts with 'message' and 'severity' key) # Possible values for 'severity' are: 'info', 'warning', 'error' MESSAGEQUEUE = [] # Wanted queue settings WANTEDQUEUE = [] WANTEDQUEUELOCK = False # Scheduler settings SCHEDULERS = {} # Startup settings STARTED = False # Mobile settings MOBILE = True MOBILEUSERAGENTS = ["midp", "240x320", "blackberry", "netfront", "nokia", "panasonic", "portalmmm", "sharp", "sie-", "sonyericsson", "symbian", "windows ce", "benq", "mda", "mot-", "opera mini", "philips", "pocket pc", "sagem", "samsung", "sda", "sgh-", "vodafone", "xda", "palm", "iphone", "ipod", "ipad", "android", "windows phone"] # API settings # Currently not used anymore (perhaps reuse it for tvdb api calls when a custom tvdb api key is needed?) APIKEY = "" API = "http://.../%s/" % APIKEY APICALLSLASTRESET = time.time() APICALLSRESETINT = 86400 APICALLSMAX = 300 APICALLS = APICALLSMAX # Score settings SHOWMINMATCHSCOREDEFAULT = 110 MOVIEMINMATCHSCOREDEFAULT = 35 # Webserver settings LAUNCHBROWSER = True # Config file settings CONFIGUPGRADED = False if CONFIGFILE is None: CONFIGFILE = "config.properties" config.read_config() if CONFIGUPGRADED: print "INFO: Config seems to be upgraded. Writing config." config.write_config() print "INFO: Writing config done." # Change to the new work directory if os.path.exists(PATH): os.chdir(PATH) else: print "ERROR: PATH does not exist, check config" os._exit(1) # Database DBFILE = 'database.db' db.initialize() # Logging logger.initialize()