KoD 0.4 (#57)
* fix next page
* testing new filmontv
* Wstream quick fix, no resolution displayed :(
* new filmontv
* now regex is ok
* fix .po files
* +netlovers
* working on filmontv
* fix debriders
* new updater
* updater
* fix crash
* fix updater and re-add dev mode
* new url eurostreaming
* Delete netlovers.py
* Delete netlovers.json
* -net from menù
* fix eurostreaming: numero stagione e newest (#50)
* fix canale
* fix newest
* fix numero puntata
* cleanup
* cleanup 2
* fix updater crash on windows
* Fix Animeworld
* Nuovo Autorenumber
* initial background downloader support
* ops
* Update channels.json
* Update channels.json
* fix openload
* move json update to cohesist with updater
* disable json url updates
* fix typo
* fix typo 2
* Add files via upload
* Add files via upload
* fix autoplay in community channels
* fix toonitalia
* Fix Toonitalia
* workaround serietvsubita
* Nuova Rinumerazione Automatica
* Fix per Rinumerazione Automatica
* workaround updater
* Fix on air
* ops
* Personalizzazione sezione "Oggi in TV"
* Aggiunto orario sezione Oggi in TV
* aggiunto bit.ly (#56)
* aggiunto bit.ly
* Aggiunta personalizzazione homepage
* Revert "initial background downloader support"
This reverts commit f676ab0f
* KoD 0.4
This commit is contained in:
@@ -44,7 +44,7 @@ def get_video_url(page_url, premium=False, user="", password="", video_password=
|
||||
from lib import unshortenit
|
||||
data, status = unshortenit.unshorten(url)
|
||||
logger.info("Data - Status zcrypt vcrypt.net: [%s] [%s] " %(data, status))
|
||||
elif 'linkup' in url:
|
||||
elif 'linkup' in url or 'bit.ly' in url:
|
||||
idata = httptools.downloadpage(url).data
|
||||
data = scrapertoolsV2.find_single_match(idata, "<iframe[^<>]*src=\\'([^'>]*)\\'[^<>]*>")
|
||||
#fix by greko inizio
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"patterns": [
|
||||
{
|
||||
"pattern": "(?:openload|oload|openloads).*?/(?:embed|f|e|f[0-9])/([0-9a-zA-Z-_]+)",
|
||||
"url": "https://openload.co/embed/\\1/"
|
||||
"url": "https://oload.stream/embed/\\1/"
|
||||
}
|
||||
]
|
||||
},
|
||||
|
||||
+12
-9
@@ -3,8 +3,11 @@
|
||||
from core import httptools
|
||||
from core import jsontools
|
||||
from core import scrapertools
|
||||
from core.servertools import get_server_host
|
||||
from platformcode import config, logger
|
||||
|
||||
host = "https://" + get_server_host('openload')[0]
|
||||
|
||||
|
||||
def test_video_exists(page_url):
|
||||
logger.info("(page_url='%s')" % page_url)
|
||||
@@ -21,6 +24,7 @@ def test_video_exists(page_url):
|
||||
|
||||
return True, ""
|
||||
|
||||
|
||||
def get_video_url(page_url, premium=False, user="", password="", video_password=""):
|
||||
logger.info()
|
||||
itemlist = []
|
||||
@@ -104,14 +108,13 @@ def decode(code, parseInt, _0x59ce16, _1x4bfb36):
|
||||
|
||||
_0x145894 += 1
|
||||
|
||||
|
||||
url = "https://openload.co/stream/%s?mime=true" % _0x1bf6e5
|
||||
url = host + "/stream/%s?mime=true" % _0x1bf6e5
|
||||
return url
|
||||
|
||||
|
||||
def login():
|
||||
logger.info()
|
||||
data = httptools.downloadpage('https://openload.co').data
|
||||
data = httptools.downloadpage(host).data
|
||||
_csrf = scrapertools.find_single_match(data, '<input type="hidden" name="_csrf" value="([^"]+)">')
|
||||
|
||||
post = {
|
||||
@@ -120,7 +123,7 @@ def login():
|
||||
'LoginForm[rememberMe]' : 1,
|
||||
'_csrf' : _csrf
|
||||
}
|
||||
data = httptools.downloadpage('https://openload.co/login', post = post).data
|
||||
data = httptools.downloadpage(host + '/login', post = post).data
|
||||
|
||||
if 'Login key has already been sent.' in data:
|
||||
while True :
|
||||
@@ -134,7 +137,7 @@ def login():
|
||||
break
|
||||
else:
|
||||
post['LoginForm[loginkey]'] = code
|
||||
data = httptools.downloadpage('https://openload.co/login', post = post).data
|
||||
data = httptools.downloadpage(host + '/login', post = post).data
|
||||
|
||||
if 'Welcome back,' in data: break
|
||||
|
||||
@@ -145,14 +148,14 @@ def get_api_keys():
|
||||
api_key = config.get_setting('api_key', __file__)
|
||||
if not api_key or not api_login:
|
||||
login()
|
||||
data = httptools.downloadpage('https://openload.co/account').data
|
||||
data = httptools.downloadpage(host + '/account').data
|
||||
post = {
|
||||
'FTPKey[password]' : config.get_setting('password', __file__),
|
||||
'_csrf' : scrapertools.find_single_match(data, '<input type="hidden" name="_csrf" value="([^"]+)">')
|
||||
}
|
||||
|
||||
|
||||
data = httptools.downloadpage('https://openload.co/account', post = post).data
|
||||
data = httptools.downloadpage(host + '/account', post = post).data
|
||||
api_login = scrapertools.find_single_match(data, '<tr><td>ID:</td><td>([^<]+)</td></tr>')
|
||||
api_key = scrapertools.find_single_match(data, 'Your FTP Password/API Key is: ([^<]+) </div>')
|
||||
config.set_setting('api_login', api_login, __file__)
|
||||
@@ -168,12 +171,12 @@ def get_link_api(page_url):
|
||||
|
||||
file_id = scrapertools.find_single_match(page_url, '(?:embed|f)/([0-9a-zA-Z-_]+)')
|
||||
|
||||
data = httptools.downloadpage("https://api.openload.co/1/file/dlticket?file=%s&login=%s&key=%s" % (file_id, api_login, api_key)).data
|
||||
data = httptools.downloadpage(host + "/api/1/file/dlticket?file=%s&login=%s&key=%s" % (file_id, api_login, api_key)).data
|
||||
data = jsontools.load_json(data)
|
||||
# logger.info(data)
|
||||
if data["status"] == 200:
|
||||
ticket = data["result"]["ticket"]
|
||||
data = httptools.downloadpage("https://api.openload.co/1/file/dl?file=%s&ticket=%s" % (file_id, ticket)).data
|
||||
data = httptools.downloadpage(host + "/api/1/file/dl?file=%s&ticket=%s" % (file_id, ticket)).data
|
||||
data = jsontools.load(data)
|
||||
|
||||
return data['result']['url'].replace("https", "http")
|
||||
|
||||
@@ -9,11 +9,7 @@
|
||||
{
|
||||
"pattern": "wstream.video/(?:embed-|videos/|video/)?([a-z0-9A-Z]+)",
|
||||
"url": "http:\/\/wstream.video\/\\1"
|
||||
},
|
||||
{
|
||||
"pattern": "wstream.video/(?:embed-|videos/|video/)?([a-z0-9A-Z]+)",
|
||||
"url": "http:\/\/wstream.video\/video\/\\1"
|
||||
}
|
||||
}
|
||||
],
|
||||
"ignore_urls": [ ]
|
||||
},
|
||||
|
||||
+5
-6
@@ -24,15 +24,14 @@ def get_video_url(page_url, premium=False, user="", password="", video_password=
|
||||
video_urls = []
|
||||
|
||||
data = httptools.downloadpage(page_url, headers=headers).data.replace('https', 'http')
|
||||
# logger.info("[wstream.py] data=" + data)
|
||||
logger.info("[wstream.py] data=" + data)
|
||||
vid = scrapertools.find_multiple_matches(data, 'download_video.*?>.*?<.*?<td>([^\,,\s]+)')
|
||||
|
||||
headers.append(['Referer', page_url])
|
||||
post_data = scrapertools.find_single_match(data,"</div>\s*<script type='text/javascript'>(eval.function.p,a,c,k,e,.*?)\s*</script>")
|
||||
if post_data != "":
|
||||
from lib import jsunpack
|
||||
data = jsunpack.unpack(post_data)
|
||||
|
||||
logger.info("[wstream.py] data=" + data)
|
||||
block = scrapertools.find_single_match(data, 'sources:\s*\[[^\]]+\]')
|
||||
if block: data = block
|
||||
|
||||
@@ -41,7 +40,7 @@ def get_video_url(page_url, premium=False, user="", password="", video_password=
|
||||
i = 0
|
||||
|
||||
for media_url in media_urls:
|
||||
video_urls.append([vid[i] + " mp4 [wstream] ", media_url + '|' + _headers])
|
||||
video_urls.append([vid[i] if vid else 'video' + " mp4 [wstream] ", media_url + '|' + _headers])
|
||||
i = i + 1
|
||||
|
||||
for video_url in video_urls:
|
||||
@@ -54,7 +53,7 @@ def find_videos(data):
|
||||
encontrados = set()
|
||||
devuelve = []
|
||||
|
||||
patronvideos = r"wstream.video/(?:embed-)?([a-z0-9A-Z]+)"
|
||||
patronvideos = r"wstream.video/(?:embed-|videos/|video/)?([a-z0-9A-Z]+)"
|
||||
logger.info("[wstream.py] find_videos #" + patronvideos + "#")
|
||||
matches = re.compile(patronvideos, re.DOTALL).findall(data)
|
||||
|
||||
@@ -69,4 +68,4 @@ def find_videos(data):
|
||||
else:
|
||||
logger.info(" url duplicada=" + url)
|
||||
|
||||
return devuelve
|
||||
return devuelve
|
||||
Reference in New Issue
Block a user