def channels_menu(item): import channelselector from core import channeltools from core.item import Item from platformcode import config, platformtools from specials import setting names = [] ids = [] channel_list = channelselector.filterchannels("all") for channel in channel_list: if not channel.channel: continue channel_parameters = channeltools.get_channel_parameters( channel.channel) if channel_parameters["has_settings"]: names.append(channel.title) ids.append(channel.channel) select = platformtools.dialog_select(config.get_localized_string(60537), names) if select != -1: ID = ids[select] it = Item(channel='settings', action="channel_config", config=ID) setting.channel_config(it) return channels_menu(item)
def registerOrLogin(): if config.get_setting( 'username', channel='altadefinizionecommunity') and config.get_setting( 'password', channel='altadefinizionecommunity'): if login(): return True action = platformtools.dialog_yesno( 'AltadefinizioneCommunity', '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', channel='altadefinizionecommunity') password_pre = config.get_setting('password', channel='altadefinizionecommunity') setting.channel_config(Item(config='altadefinizionecommunity')) user_post = config.get_setting('username', channel='altadefinizionecommunity') password_post = config.get_setting('password', channel='altadefinizionecommunity') if user_pre != user_post or password_pre != password_post: return registerOrLogin() 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)) logger.debug('email: ' + mailbox.address) logger.debug('pass: '******'email': reg['email'], 'password': reg['password'] }, cloudscraper=True) if regPost.url == register_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('AltadefinizioneCommunity', error) return False if reg['email'] == mailbox.address: if "L'indirizzo email risulta già registrato" in regPost.data: # httptools.downloadpage(baseUrl + '/forgotPassword', post={'email': reg['email']}) platformtools.dialog_ok('AltadefinizioneCommunity', 'Indirizzo mail già utilizzato') return False mail = mailbox.waitForMail() if mail: checkUrl = scrapertools.find_single_match( mail.body, '<a href="([^"]+)[^>]+>Verifica').replace(r'\/', '/') logger.debug('CheckURL: ' + checkUrl) httptools.downloadpage(checkUrl, cloudscraper=True) config.set_setting('username', mailbox.address, channel='altadefinizionecommunity') config.set_setting('password', randPsw, channel='altadefinizionecommunity') platformtools.dialog_ok( 'AltadefinizioneCommunity', 'Registrato automaticamente con queste credenziali:\nemail:' + mailbox.address + '\npass: '******'AltadefinizioneCommunity', 'Impossibile registrarsi automaticamente') return False else: platformtools.dialog_ok( 'AltadefinizioneCommunity', '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