diff --git a/platformcode/recaptcha.py b/platformcode/recaptcha.py
index 3d34b640..b2bd1f58 100644
--- a/platformcode/recaptcha.py
+++ b/platformcode/recaptcha.py
@@ -7,6 +7,7 @@ from core import scrapertools
from platformcode import config
from platformcode import platformtools
+lang = 'it'
class Recaptcha(xbmcgui.WindowXMLDialog):
def Start(self, key, referer):
@@ -14,9 +15,9 @@ class Recaptcha(xbmcgui.WindowXMLDialog):
self.key = key
self.headers = {'Referer': self.referer}
- api_js = httptools.downloadpage("http://www.google.com/recaptcha/api.js?hl=es").data
- version = scrapertools.find_single_match(api_js, 'po.src = \'(.*?)\';').split("/")[5]
- self.url = "http://www.google.com/recaptcha/api/fallback?k=%s&hl=es&v=%s&t=2&ff=true" % (self.key, version)
+ api_js = httptools.downloadpage("http://www.google.com/recaptcha/api.js?hl=" + lang).data
+ version = scrapertools.find_single_match(api_js, 'po.src\s*=\s*\'(.*?)\';').split("/")[5]
+ self.url = "http://www.google.com/recaptcha/api/fallback?k=" + self.key + "&hl=" + lang + "&v=" + version + "&t=2&ff=true"
self.doModal()
# Reload
if self.result == {}:
@@ -27,7 +28,7 @@ class Recaptcha(xbmcgui.WindowXMLDialog):
def update_window(self):
data = httptools.downloadpage(self.url, headers=self.headers).data
self.message = scrapertools.find_single_match(data,
- '
(.*?)(?:|
)').replace(
+ '
(.*?)(?:|
)').replace(
"", "[B]").replace("", "[/B]")
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)
@@ -56,13 +57,13 @@ class Recaptcha(xbmcgui.WindowXMLDialog):
self.close()
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
for r in self.result:
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, '
.*?>([^<]+)<')
if self.result:
platformtools.dialog_notification("Captcha Correcto", "La verificación ha concluido")
diff --git a/resources/language/English/strings.po b/resources/language/English/strings.po
index 5afba248..f817700b 100644
--- a/resources/language/English/strings.po
+++ b/resources/language/English/strings.po
@@ -5880,4 +5880,12 @@ msgstr ""
msgctxt "#707432"
msgid "Disabled"
+msgstr ""
+
+msgctxt "#707433"
+msgid "Delete"
+msgstr ""
+
+msgctxt "#707434"
+msgid "reCaptcha verification failed"
msgstr ""
\ No newline at end of file
diff --git a/resources/language/Italian/strings.po b/resources/language/Italian/strings.po
index 7aa2497c..3eed066d 100644
--- a/resources/language/Italian/strings.po
+++ b/resources/language/Italian/strings.po
@@ -5884,4 +5884,12 @@ msgstr "Attivato"
msgctxt "#707432"
msgid "Disabed"
-msgstr "Disattivato"
\ No newline at end of file
+msgstr "Disattivato"
+
+msgctxt "#707433"
+msgid "Delete"
+msgstr "Cancella"
+
+msgctxt "#707434"
+msgid "reCaptcha verification failed"
+msgstr "Verifica reCaptcha fallita"
\ No newline at end of file
diff --git a/resources/skins/Default/720p/Recaptcha.xml b/resources/skins/Default/720p/Recaptcha.xml
index 0d824514..403dfe6f 100644
--- a/resources/skins/Default/720p/Recaptcha.xml
+++ b/resources/skins/Default/720p/Recaptcha.xml
@@ -32,7 +32,7 @@
Controls/KeyboardKeyNF.pngcentercenter
-
+
100131000310013
@@ -48,7 +48,7 @@
Controls/KeyboardKeyNF.pngcentercenter
-
+
100021000410002
@@ -64,7 +64,7 @@
Controls/KeyboardKeyNF.pngcentercenter
-
+
100031000510003
diff --git a/servers/wstream.py b/servers/wstream.py
index 37de2ad0..0f90e741 100644
--- a/servers/wstream.py
+++ b/servers/wstream.py
@@ -9,7 +9,7 @@ except ImportError:
import urllib
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']]
@@ -24,26 +24,30 @@ def test_video_exists(page_url):
resp = httptools.downloadpage(page_url)
global data
data = resp.data
- page_url = resp.url
- if '/streaming.php' in page_url in page_url:
- code = httptools.downloadpage(page_url, headers=headers, follow_redirects=False).headers['location'].split('/')[-1].replace('.html','')
- 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
+ captcha = platformtools.show_recaptcha(scrapertools.find_single_match(data, 'data-sitekey="([^"]+)'), page_url)
+ if captcha:
+ page_url = resp.url
+ if '/streaming.php' in page_url in page_url:
+ code = httptools.downloadpage(page_url, headers=headers, follow_redirects=False).headers['location'].split('/')[-1].replace('.html','')
+ 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"""|>)""")
- if possibleParam:
- post = urllib.urlencode({param[0]: param[1] for param in possibleParam if param[0]})
- if post:
- data = httptools.downloadpage(page_url, headers=headers, post=post, follow_redirects=True).data
+ possibleParam = scrapertools.find_multiple_matches(data, r"""|>)""")
+ if possibleParam:
+ post = urllib.urlencode({param[0]: param[1] for param in possibleParam if param[0]})
+ if post:
+ data = httptools.downloadpage(page_url, headers=headers, post=post, follow_redirects=True).data
+ else:
+ int_bckup_method()
else:
int_bckup_method()
- else:
- int_bckup_method()
- if "Not Found" in data or "File was deleted" in data:
- return False, config.get_localized_string(70449) % 'Wstream'
- return True, ""
+ if "Not Found" in data or "File was deleted" in data:
+ return False, config.get_localized_string(70449) % 'Wstream'
+ return True, ""
+ else:
+ return False, config.get_localized_string(707434)
# Returns an array of possible video url's from the page_url