def handle_get(self): """ Retrieves a list of possible categories with category id's Using the default url/api?cat http://yournewznaburl.com/api?t=caps&apikey=yourapikey """ name = self.get_argument('name') url = self.get_argument('url') key = self.get_argument('key') temp_provider = NewznabProvider(name, url, key) success, tv_categories, error = temp_provider.get_newznab_categories() return self.write(json_encode({'success': success, 'tv_categories': tv_categories, 'error': error}))
def handle_get(self): name = self.get_argument('name') provider_obj = NewznabProvider(name, '') if provider_obj.id not in sickrage.app.search_providers.newznab(): return self.write(json_encode({'success': provider_obj.id})) return self.write(json_encode({'error': 'Provider Name already exists as ' + name}))
sickrage.INDEXER_API = indexerApi sickrage.NAMECACHE = nameCache() sickrage.showList = [] sickrage.QUALITY_DEFAULT = 4 # hdtv sickrage.FLATTEN_FOLDERS_DEFAULT = 0 sickrage.NAMING_PATTERN = '' sickrage.NAMING_ABD_PATTERN = '' sickrage.NAMING_SPORTS_PATTERN = '' sickrage.NAMING_MULTI_EP = 1 sickrage.PROVIDER_ORDER = ["sick_beard_index"] sickrage.newznabProviderList = NewznabProvider.getProviderList(NewznabProvider.getDefaultProviders()) sickrage.torrentRssProviderList = TorrentRssProvider.getProviderList(TorrentRssProvider.getDefaultProviders()) sickrage.metadataProvideDict = get_metadata_generator_dict() sickrage.GUI_NAME = "slick" sickrage.THEME_NAME = "dark" sickrage.ROOT_DIR = sickrage.DATA_DIR = TESTDIR sickrage.PROG_DIR = os.path.abspath(os.path.join(TESTDIR, os.pardir, 'sickrage')) sickrage.GUI_DIR = os.path.join(sickrage.PROG_DIR, 'core', 'webserver', 'gui', sickrage.GUI_NAME) sickrage.CONFIG_FILE = os.path.join(sickrage.DATA_DIR, "config.ini") sickrage.CFG = ConfigObj(sickrage.CONFIG_FILE) sickrage.TV_DOWNLOAD_DIR = FILEDIR sickrage.HTTPS_CERT = "server.crt" sickrage.HTTPS_KEY = "server.key" sickrage.WEB_USERNAME = "******" sickrage.WEB_PASSWORD = "******" sickrage.WEB_COOKIE_SECRET = "sickrage"
def post(self, *args, **kwargs): results = [] # custom providers custom_providers = '' for curProviderStr in self.get_argument('provider_strings', '').split('!!!'): if not len(curProviderStr): continue custom_providers += '{}!!!'.format(curProviderStr) cur_type, cur_provider_data = curProviderStr.split('|', 1) if cur_type == "newznab": cur_name, cur_url, cur_key, cur_cat = cur_provider_data.split( '|') provider_obj = NewznabProvider(cur_name, cur_url, cur_key, cur_cat) provider_obj.name = cur_name provider_obj.key = cur_key provider_obj.catIDs = cur_cat sickrage.app.search_providers.newznab().update( **{provider_obj.id: provider_obj}) elif cur_type == "torrentrss": cur_name, cur_url, cur_cookies, cur_title_tag = cur_provider_data.split( '|') provider_obj = TorrentRssProvider(cur_name, cur_url, cur_cookies, cur_title_tag) provider_obj.name = cur_name provider_obj.cookies = cur_cookies provider_obj.titleTAG = cur_title_tag sickrage.app.search_providers.torrentrss().update( **{provider_obj.id: provider_obj}) sickrage.app.config.custom_providers = custom_providers # remove providers for p in list( set(sickrage.app.search_providers.provider_order).difference([ x.split(':')[0] for x in self.get_argument( 'provider_order', '').split('!!!') ])): provider_obj = sickrage.app.search_providers.all()[p] del sickrage.app.search_providers[provider_obj.type][p] # enable/disable/sort providers sickrage.app.search_providers.provider_order = [] for curProviderStr in self.get_argument('provider_order', '').split('!!!'): cur_provider, cur_enabled = curProviderStr.split(':') sickrage.app.search_providers.provider_order += [cur_provider] if cur_provider in sickrage.app.search_providers.all(): cur_prov_obj = sickrage.app.search_providers.all( )[cur_provider] cur_prov_obj.enabled = bool(try_int(cur_enabled)) # dynamically load provider settings for providerID, provider_obj in sickrage.app.search_providers.all( ).items(): try: provider_settings = { 'minseed': try_int(self.get_argument(providerID + '_minseed', 0)), 'minleech': try_int(self.get_argument(providerID + '_minleech', 0)), 'ratio': str(self.get_argument(providerID + '_ratio', '')).strip(), 'digest': str(self.get_argument(providerID + '_digest', '')).strip(), 'hash': str(self.get_argument(providerID + '_hash', '')).strip(), 'key': str(self.get_argument(providerID + '_key', '')).strip(), 'api_key': str(self.get_argument(providerID + '_api_key', '')).strip(), 'username': str(self.get_argument(providerID + '_username', '')).strip(), 'password': str(self.get_argument(providerID + '_password', '')).strip(), 'passkey': str(self.get_argument(providerID + '_passkey', '')).strip(), 'pin': str(self.get_argument(providerID + '_pin', '')).strip(), 'confirmed': checkbox_to_value( self.get_argument(providerID + '_confirmed', 0)), 'ranked': checkbox_to_value( self.get_argument(providerID + '_ranked', 0)), 'engrelease': checkbox_to_value( self.get_argument(providerID + '_engrelease', 0)), 'onlyspasearch': checkbox_to_value( self.get_argument(providerID + '_onlyspasearch', 0)), 'sorting': str(self.get_argument(providerID + '_sorting', 'seeders')).strip(), 'freeleech': checkbox_to_value( self.get_argument(providerID + '_freeleech', 0)), 'reject_m2ts': checkbox_to_value( self.get_argument(providerID + '_reject_m2ts', 0)), 'search_mode': str( self.get_argument(providerID + '_search_mode', 'eponly')).strip(), 'search_fallback': checkbox_to_value( self.get_argument(providerID + '_search_fallback', 0)), 'enable_daily': checkbox_to_value( self.get_argument(providerID + '_enable_daily', 0)), 'enable_backlog': checkbox_to_value( self.get_argument(providerID + '_enable_backlog', 0)), 'cat': try_int(self.get_argument(providerID + '_cat', 0)), 'subtitle': checkbox_to_value( self.get_argument(providerID + '_subtitle', 0)), 'cookies': str(self.get_argument(providerID + '_cookies', '')).strip().rstrip(';'), 'custom_url': str(self.get_argument(providerID + '_custom_url', '')).strip() } # update provider object [ setattr(provider_obj, k, v) for k, v in provider_settings.items() if hasattr(provider_obj, k) ] except Exception as e: continue # save provider settings sickrage.app.config.save() if len(results) > 0: [sickrage.app.log.error(x) for x in results] sickrage.app.alerts.error(_('Error(s) Saving Configuration'), '<br>\n'.join(results)) else: sickrage.app.alerts.message( _('[PROVIDERS] Configuration Encrypted and Saved to disk')) return self.redirect("/config/providers/")
sickrage.INDEXER_API = indexerApi sickrage.NAMECACHE = nameCache() sickrage.showList = [] sickrage.QUALITY_DEFAULT = 4 # hdtv sickrage.FLATTEN_FOLDERS_DEFAULT = 0 sickrage.NAMING_PATTERN = '' sickrage.NAMING_ABD_PATTERN = '' sickrage.NAMING_SPORTS_PATTERN = '' sickrage.NAMING_MULTI_EP = 1 sickrage.PROVIDER_ORDER = ["sick_beard_index"] sickrage.newznabProviderList = NewznabProvider.getProviderList( NewznabProvider.getDefaultProviders()) sickrage.torrentRssProviderList = TorrentRssProvider.getProviderList( TorrentRssProvider.getDefaultProviders()) sickrage.metadataProvideDict = get_metadata_generator_dict() sickrage.GUI_NAME = "slick" sickrage.THEME_NAME = "dark" sickrage.ROOT_DIR = sickrage.DATA_DIR = TESTDIR sickrage.PROG_DIR = os.path.abspath( os.path.join(TESTDIR, os.pardir, 'sickrage')) sickrage.GUI_DIR = os.path.join(sickrage.PROG_DIR, 'core', 'webserver', 'gui', sickrage.GUI_NAME) sickrage.CONFIG_FILE = os.path.join(sickrage.DATA_DIR, "config.ini") sickrage.CFG = ConfigObj(sickrage.CONFIG_FILE) sickrage.TV_DOWNLOAD_DIR = FILEDIR sickrage.HTTPS_CERT = "server.crt" sickrage.HTTPS_KEY = "server.key"