def servers_menu(item): # from core.support import dbg; dbg() from core import servertools from core.item import Item from platformcode import config, platformtools from specials import setting names = [] ids = [] if item.type == 'debriders': action = 'server_debrid_config' server_list = list(servertools.get_debriders_list().keys()) for server in server_list: server_parameters = servertools.get_server_parameters(server) if server_parameters['has_settings']: names.append(server_parameters['name']) ids.append(server) select = platformtools.dialog_select( config.get_localized_string(60552), names) if select != -1: ID = ids[select] it = Item(channel='settings', action=action, config=ID) setting.server_debrid_config(it) else: action = 'server_config' server_list = list(servertools.get_servers_list().keys()) for server in sorted(server_list): server_parameters = servertools.get_server_parameters(server) if server_parameters["has_settings"] and [ x for x in server_parameters["settings"] if x["id"] not in ["black_list", "white_list"] ]: names.append(server_parameters['name']) ids.append(server) select = platformtools.dialog_select( config.get_localized_string(60538), names) if select != -1: ID = ids[select] it = Item(channel='settings', action=action, config=ID) setting.server_config(it) if select != -1: servers_menu(item)
def registerOrLogin(page_url, forced=False): if not forced and config.get_setting('username', server='hdmario') and config.get_setting('password', server='hdmario'): login() else: if platformtools.dialog_yesno('HDmario', 'Questo server necessita di un account, ne hai già uno oppure vuoi tentare una registrazione automatica?', yeslabel='Accedi', nolabel='Tenta registrazione'): from specials import setting from core.item import Item setting.server_config(Item(config='hdmario')) login() else: logger.info('Registrazione automatica in corso') import random import string randEmail = ''.join(random.choice(string.ascii_letters + string.digits) for i in range(random.randint(9, 14))) + '@gmail.com' randPsw = ''.join(random.choice(string.ascii_letters + string.digits) for i in range(10)) logger.info('email: ' + randEmail) logger.info('pass: '******'loggedin' in httptools.downloadpage(baseUrl + '/register/', post={'email': randEmail, 'email_confirmation': randEmail, 'password': randPsw, 'password_confirmation': randPsw}).url if rq: config.set_setting('username', randEmail, server='hdmario') config.set_setting('password', randPsw, server='hdmario') platformtools.dialog_ok('HDmario', 'Registrato automaticamente con queste credenziali:\nemail:' + randEmail + '\npass: '******'HDmario', 'Impossibile registrarsi automaticamente') logger.info('Registrazione completata') global page, data page = httptools.downloadpage(page_url) data = page.data
def registerOrLogin(page_url): if config.get_setting('username', server='hdmario') and config.get_setting( 'password', server='hdmario'): if login(): return True action = platformtools.dialog_yesno( 'HDmario', 'Questo server necessita di un account, ne hai già uno oppure vuoi tentare una registrazione automatica?', yeslabel='Accedi', nolabel='Tenta registrazione', customlabel='Annulla') if action == 1: # accedi from specials import setting from core.item import Item user_pre = config.get_setting('username', server='hdmario') password_pre = config.get_setting('password', server='hdmario') setting.server_config(Item(config='hdmario')) user_post = config.get_setting('username', server='hdmario') password_post = config.get_setting('password', server='hdmario') if user_pre != user_post or password_pre != password_post: return registerOrLogin(page_url) else: return [] elif action == 0: # tenta registrazione import random import string logger.debug('Registrazione automatica in corso') mailbox = Gmailnator() randPsw = ''.join( random.choice(string.ascii_letters + string.digits) for i in range(10)) # captcha = httptools.downloadpage(baseUrl + '/captchaInfo').json logger.debug('email: ' + mailbox.address) logger.debug('pass: '******'/register/', email=True, password=True, email_default=mailbox.address, password_default=randPsw) if not reg: return False regPost = httptools.downloadpage(baseUrl + '/register/', post={ 'email': reg['email'], 'email_confirmation': reg['email'], 'password': reg['password'], 'password_confirmation': reg['password'] }) # 'captchaUuid': captcha['captchaUuid'], # 'captcha': reg['captcha']}) if '/register' in regPost.url: error = scrapertools.htmlclean( scrapertools.find_single_match( regPost.data, 'Impossibile proseguire.*?</div>')) error = scrapertools.unescape( scrapertools.re.sub('\n\s+', ' ', error)) platformtools.dialog_ok('HDmario', error) return False if reg['email'] == mailbox.address: if "L'indirizzo email è già stato utilizzato" in regPost.data: # httptools.downloadpage(baseUrl + '/forgotPassword', post={'email': reg['email']}) platformtools.dialog_ok('HDmario', 'Indirizzo mail già utilizzato') return False mail = mailbox.waitForMail() if mail: checkUrl = scrapertools.find_single_match( mail.body, 'href="([^"]+)">Premi qui').replace(r'\/', '/') logger.debug('CheckURL: ' + checkUrl) httptools.downloadpage(checkUrl) config.set_setting('username', mailbox.address, server='hdmario') config.set_setting('password', randPsw, server='hdmario') platformtools.dialog_ok( 'HDmario', 'Registrato automaticamente con queste credenziali:\nemail:' + mailbox.address + '\npass: '******'HDmario', 'Impossibile registrarsi automaticamente') return False else: platformtools.dialog_ok( 'HDmario', 'Hai modificato la mail quindi KoD non sarà in grado di effettuare la verifica in autonomia, apri la casella ' + reg['email'] + ' e clicca sul link. Premi ok quando fatto') logger.debug('Registrazione completata') else: return False return True