From f34269245cb19fd91d3690e83e4346e7742dcb75 Mon Sep 17 00:00:00 2001
From: mac12m99 <10120390+mac12m99@users.noreply.github.com>
Date: Mon, 11 Oct 2021 20:59:00 +0200
Subject: [PATCH] Fix altacommunity
---
channels/altadefinizionecommunity.py | 166 ++++++++++++++-------------
core/support.py | 1 +
2 files changed, 86 insertions(+), 81 deletions(-)
diff --git a/channels/altadefinizionecommunity.py b/channels/altadefinizionecommunity.py
index 4f94d201..9aa5452f 100644
--- a/channels/altadefinizionecommunity.py
+++ b/channels/altadefinizionecommunity.py
@@ -9,13 +9,13 @@ from core import scrapertools, httptools
def findhost(url):
- global register_url
- register_url = url
return support.match(url, patron=r'Accedi').match
-host = config.get_channel_url(findhost)
-if not 'altadeifnizionecommunity' in host:
+host = config.get_channel_url(findhost)
+register_url = 'https://altaregistrazione.net'
+
+if 'altadefinizionecommunity' not in host:
config.get_channel_url(findhost, forceFindhost=True)
if host.endswith('/'):
@@ -42,6 +42,9 @@ def mainlist(item):
def search(item, text):
logger.debug("search ", text)
+ # per evitare fastidi da ricerca globale
+ if not item.globalsearch:
+ registerOrLogin()
item.args = 'search'
item.url = host + "/search?s={}&f={}".format(text.replace(' ', '+'), item.contentType)
@@ -58,6 +61,7 @@ def search(item, text):
@support.scrape
def genres(item):
+ registerOrLogin()
logger.debug(item)
data = support.httptools.downloadpage(item.url).data
blacklist= ['Film', 'Serie TV']
@@ -173,7 +177,7 @@ def play(item):
def resolve_url(item):
- # registerOrLogin()
+ registerOrLogin()
if '/watch-unsubscribed' not in item.url and '/watch-external' not in item.url:
playWindow = support.match(support.httptools.downloadpage(item.url, cloudscraper=True).data, patron='playWindow" href="([^"]+)')
video_url = playWindow.match
@@ -182,87 +186,87 @@ def resolve_url(item):
return item
-# def login():
-# r = support.httptools.downloadpage(host, cloudscraper=True)
-# Token = support.match(r.data, patron=r'name=\s*"_token"\s*value=\s*"([^"]+)', cloudscraper=True).match
-# if 'id="logged"' in r.data:
-# logger.info('Già loggato')
-# else:
-# logger.info('Login in corso')
-# post = {'_token': '',
-# 'form_action':'login',
-# 'email': config.get_setting('username', channel='altadefinizionecommunity'),
-# 'password':config.get_setting('password', channel='altadefinizionecommunity')}
+def login():
+ r = support.httptools.downloadpage(host, cloudscraper=True)
+ Token = support.match(r.data, patron=r'name=\s*"_token"\s*value=\s*"([^"]+)', cloudscraper=True).match
+ if 'id="logged"' in r.data:
+ logger.info('Già loggato')
+ else:
+ logger.info('Login in corso')
+ post = {'_token': '',
+ 'form_action':'login',
+ 'email': config.get_setting('username', channel='altadefinizionecommunity'),
+ 'password':config.get_setting('password', channel='altadefinizionecommunity')}
-# r = support.httptools.downloadpage(host + '/login', post=post, headers={'referer': host}, cloudscraper=True)
-# if not r.status_code in [200, 302] or 'Email o Password non validi' in r.data:
-# platformtools.dialog_ok('AltadefinizioneCommunity', 'Username/password non validi')
-# return False
+ r = support.httptools.downloadpage(host + '/login', post=post, headers={'referer': host}, cloudscraper=True)
+ if r.code not in [200, 302] or 'Email o Password non validi' in r.data:
+ platformtools.dialog_ok('AltadefinizioneCommunity', 'Username/password non validi')
+ return False
-# return 'id="logged"' in r.data
+ return 'id="logged"' in r.data
-# def registerOrLogin():
-# if config.get_setting('username', channel='altadefinizionecommunity') and config.get_setting('password', channel='altadefinizionecommunity'):
-# if login():
-# return True
+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')
+ 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: ' + randPsw)
-# reg = platformtools.dialog_register(register_url, email=True, password=True, email_default=mailbox.address, password_default=randPsw)
-# if not reg:
-# return False
-# regPost = httptools.downloadpage(register_url, post={'email': reg['email'], 'password': reg['password']}, cloudscraper=True)
+ 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: ' + randPsw)
+ reg = platformtools.dialog_register(register_url, email=True, password=True, email_default=mailbox.address, password_default=randPsw)
+ if not reg:
+ return False
+ regPost = httptools.downloadpage(register_url, post={'email': reg['email'], 'password': reg['password']}, cloudscraper=True)
-# if regPost.url == register_url:
-# error = scrapertools.htmlclean(scrapertools.find_single_match(regPost.data, 'Impossibile proseguire.*?'))
-# 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, ']+>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: ' + randPsw)
-# else:
-# platformtools.dialog_ok('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
+ if regPost.url == register_url:
+ error = scrapertools.htmlclean(scrapertools.find_single_match(regPost.data, 'Impossibile proseguire.*?'))
+ 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, ']+>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: ' + randPsw)
+ else:
+ platformtools.dialog_ok('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
+ return True
diff --git a/core/support.py b/core/support.py
index aba4f6b4..b9c39004 100755
--- a/core/support.py
+++ b/core/support.py
@@ -766,6 +766,7 @@ def menuItem(itemlist, filename, title='', action='', url='', contentType='undef
extra = extra,
args = args,
contentType = contentType,
+ globalsearch = not style
))