test recaptcha
This commit is contained in:
@@ -7,6 +7,7 @@ from core import scrapertools
|
|||||||
from platformcode import config
|
from platformcode import config
|
||||||
from platformcode import platformtools
|
from platformcode import platformtools
|
||||||
|
|
||||||
|
lang = 'it'
|
||||||
|
|
||||||
class Recaptcha(xbmcgui.WindowXMLDialog):
|
class Recaptcha(xbmcgui.WindowXMLDialog):
|
||||||
def Start(self, key, referer):
|
def Start(self, key, referer):
|
||||||
@@ -14,9 +15,9 @@ class Recaptcha(xbmcgui.WindowXMLDialog):
|
|||||||
self.key = key
|
self.key = key
|
||||||
self.headers = {'Referer': self.referer}
|
self.headers = {'Referer': self.referer}
|
||||||
|
|
||||||
api_js = httptools.downloadpage("http://www.google.com/recaptcha/api.js?hl=es").data
|
api_js = httptools.downloadpage("http://www.google.com/recaptcha/api.js?hl=" + lang).data
|
||||||
version = scrapertools.find_single_match(api_js, 'po.src = \'(.*?)\';').split("/")[5]
|
version = scrapertools.find_single_match(api_js, 'po.src\s*=\s*\'(.*?)\';').split("/")[5]
|
||||||
self.url = "http://www.google.com/recaptcha/api/fallback?k=%s&hl=es&v=%s&t=2&ff=true" % (self.key, version)
|
self.url = "http://www.google.com/recaptcha/api/fallback?k=" + self.key + "&hl=" + lang + "&v=" + version + "&t=2&ff=true"
|
||||||
self.doModal()
|
self.doModal()
|
||||||
# Reload
|
# Reload
|
||||||
if self.result == {}:
|
if self.result == {}:
|
||||||
@@ -27,7 +28,7 @@ class Recaptcha(xbmcgui.WindowXMLDialog):
|
|||||||
def update_window(self):
|
def update_window(self):
|
||||||
data = httptools.downloadpage(self.url, headers=self.headers).data
|
data = httptools.downloadpage(self.url, headers=self.headers).data
|
||||||
self.message = scrapertools.find_single_match(data,
|
self.message = scrapertools.find_single_match(data,
|
||||||
'<div class="rc-imageselect-desc-no-canonical">(.*?)(?:</label>|</div>)').replace(
|
'<div class="rc-imageselect-desc[a-z-]*">(.*?)(?:</label>|</div>)').replace(
|
||||||
"<strong>", "[B]").replace("</strong>", "[/B]")
|
"<strong>", "[B]").replace("</strong>", "[/B]")
|
||||||
self.token = scrapertools.find_single_match(data, 'name="c" value="([^"]+)"')
|
self.token = scrapertools.find_single_match(data, 'name="c" value="([^"]+)"')
|
||||||
self.image = "http://www.google.com/recaptcha/api2/payload?k=%s&c=%s" % (self.key, self.token)
|
self.image = "http://www.google.com/recaptcha/api2/payload?k=%s&c=%s" % (self.key, self.token)
|
||||||
@@ -56,13 +57,13 @@ class Recaptcha(xbmcgui.WindowXMLDialog):
|
|||||||
self.close()
|
self.close()
|
||||||
|
|
||||||
elif control == 10002:
|
elif control == 10002:
|
||||||
self.result = [int(k) for k in range(9) if self.result.get(k, False) == True]
|
self.result = [int(k) for k in range(9) if self.result.get(k, False)]
|
||||||
post = "c=%s" % self.token
|
post = "c=%s" % self.token
|
||||||
|
|
||||||
for r in self.result:
|
for r in self.result:
|
||||||
post += "&response=%s" % r
|
post += "&response=%s" % r
|
||||||
|
|
||||||
data = httptools.downloadpage(self.url, post, headers=self.headers).data
|
data = httptools.downloadpage(self.url, post=post, headers=self.headers).data
|
||||||
self.result = scrapertools.find_single_match(data, '<div class="fbc-verification-token">.*?>([^<]+)<')
|
self.result = scrapertools.find_single_match(data, '<div class="fbc-verification-token">.*?>([^<]+)<')
|
||||||
if self.result:
|
if self.result:
|
||||||
platformtools.dialog_notification("Captcha Correcto", "La verificación ha concluido")
|
platformtools.dialog_notification("Captcha Correcto", "La verificación ha concluido")
|
||||||
|
|||||||
@@ -5880,4 +5880,12 @@ msgstr ""
|
|||||||
|
|
||||||
msgctxt "#707432"
|
msgctxt "#707432"
|
||||||
msgid "Disabled"
|
msgid "Disabled"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgctxt "#707433"
|
||||||
|
msgid "Delete"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
msgctxt "#707434"
|
||||||
|
msgid "reCaptcha verification failed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
@@ -5884,4 +5884,12 @@ msgstr "Attivato"
|
|||||||
|
|
||||||
msgctxt "#707432"
|
msgctxt "#707432"
|
||||||
msgid "Disabed"
|
msgid "Disabed"
|
||||||
msgstr "Disattivato"
|
msgstr "Disattivato"
|
||||||
|
|
||||||
|
msgctxt "#707433"
|
||||||
|
msgid "Delete"
|
||||||
|
msgstr "Cancella"
|
||||||
|
|
||||||
|
msgctxt "#707434"
|
||||||
|
msgid "reCaptcha verification failed"
|
||||||
|
msgstr "Verifica reCaptcha fallita"
|
||||||
@@ -32,7 +32,7 @@
|
|||||||
<texturenofocus>Controls/KeyboardKeyNF.png</texturenofocus>
|
<texturenofocus>Controls/KeyboardKeyNF.png</texturenofocus>
|
||||||
<align>center</align>
|
<align>center</align>
|
||||||
<aligny>center</aligny>
|
<aligny>center</aligny>
|
||||||
<label>Aceptar</label>
|
<label>$ADDON[plugin.video.kod 70007]</label>
|
||||||
<onup>10013</onup>
|
<onup>10013</onup>
|
||||||
<ondown>10003</ondown>
|
<ondown>10003</ondown>
|
||||||
<onleft>10013</onleft>
|
<onleft>10013</onleft>
|
||||||
@@ -48,7 +48,7 @@
|
|||||||
<texturenofocus>Controls/KeyboardKeyNF.png</texturenofocus>
|
<texturenofocus>Controls/KeyboardKeyNF.png</texturenofocus>
|
||||||
<align>center</align>
|
<align>center</align>
|
||||||
<aligny>center</aligny>
|
<aligny>center</aligny>
|
||||||
<label>Cancelar</label>
|
<label>$ADDON[plugin.video.kod 707433]</label>
|
||||||
<onup>10002</onup>
|
<onup>10002</onup>
|
||||||
<ondown>10004</ondown>
|
<ondown>10004</ondown>
|
||||||
<onleft>10002</onleft>
|
<onleft>10002</onleft>
|
||||||
@@ -64,7 +64,7 @@
|
|||||||
<texturenofocus>Controls/KeyboardKeyNF.png</texturenofocus>
|
<texturenofocus>Controls/KeyboardKeyNF.png</texturenofocus>
|
||||||
<align>center</align>
|
<align>center</align>
|
||||||
<aligny>center</aligny>
|
<aligny>center</aligny>
|
||||||
<label>Recargar</label>
|
<label>$ADDON[plugin.video.kod 70008]</label>
|
||||||
<onup>10003</onup>
|
<onup>10003</onup>
|
||||||
<ondown>10005</ondown>
|
<ondown>10005</ondown>
|
||||||
<onleft>10003</onleft>
|
<onleft>10003</onleft>
|
||||||
|
|||||||
+21
-17
@@ -9,7 +9,7 @@ except ImportError:
|
|||||||
import urllib
|
import urllib
|
||||||
|
|
||||||
from core import httptools, scrapertools
|
from core import httptools, scrapertools
|
||||||
from platformcode import logger, config
|
from platformcode import logger, config, platformtools
|
||||||
|
|
||||||
headers = [['User-Agent', 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0']]
|
headers = [['User-Agent', 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:54.0) Gecko/20100101 Firefox/54.0']]
|
||||||
|
|
||||||
@@ -24,26 +24,30 @@ def test_video_exists(page_url):
|
|||||||
resp = httptools.downloadpage(page_url)
|
resp = httptools.downloadpage(page_url)
|
||||||
global data
|
global data
|
||||||
data = resp.data
|
data = resp.data
|
||||||
page_url = resp.url
|
captcha = platformtools.show_recaptcha(scrapertools.find_single_match(data, 'data-sitekey="([^"]+)'), page_url)
|
||||||
if '/streaming.php' in page_url in page_url:
|
if captcha:
|
||||||
code = httptools.downloadpage(page_url, headers=headers, follow_redirects=False).headers['location'].split('/')[-1].replace('.html','')
|
page_url = resp.url
|
||||||
logger.info('WCODE='+code)
|
if '/streaming.php' in page_url in page_url:
|
||||||
page_url = 'https://wstream.video/video.php?file_code=' + code
|
code = httptools.downloadpage(page_url, headers=headers, follow_redirects=False).headers['location'].split('/')[-1].replace('.html','')
|
||||||
data = httptools.downloadpage(page_url, headers=headers, follow_redirects=True).data
|
logger.info('WCODE='+code)
|
||||||
|
page_url = 'https://wstream.video/video.php?file_code=' + code
|
||||||
|
data = httptools.downloadpage(page_url, headers=headers, follow_redirects=True).data
|
||||||
|
|
||||||
possibleParam = scrapertools.find_multiple_matches(data, r"""<input.*?(?:name=["']([^'"]+).*?value=["']([^'"]*)['"]>|>)""")
|
possibleParam = scrapertools.find_multiple_matches(data, r"""<input.*?(?:name=["']([^'"]+).*?value=["']([^'"]*)['"]>|>)""")
|
||||||
if possibleParam:
|
if possibleParam:
|
||||||
post = urllib.urlencode({param[0]: param[1] for param in possibleParam if param[0]})
|
post = urllib.urlencode({param[0]: param[1] for param in possibleParam if param[0]})
|
||||||
if post:
|
if post:
|
||||||
data = httptools.downloadpage(page_url, headers=headers, post=post, follow_redirects=True).data
|
data = httptools.downloadpage(page_url, headers=headers, post=post, follow_redirects=True).data
|
||||||
|
else:
|
||||||
|
int_bckup_method()
|
||||||
else:
|
else:
|
||||||
int_bckup_method()
|
int_bckup_method()
|
||||||
else:
|
|
||||||
int_bckup_method()
|
|
||||||
|
|
||||||
if "Not Found" in data or "File was deleted" in data:
|
if "Not Found" in data or "File was deleted" in data:
|
||||||
return False, config.get_localized_string(70449) % 'Wstream'
|
return False, config.get_localized_string(70449) % 'Wstream'
|
||||||
return True, ""
|
return True, ""
|
||||||
|
else:
|
||||||
|
return False, config.get_localized_string(707434)
|
||||||
|
|
||||||
|
|
||||||
# Returns an array of possible video url's from the page_url
|
# Returns an array of possible video url's from the page_url
|
||||||
|
|||||||
Reference in New Issue
Block a user