From b44709ff5a27389e948a4561b068f0b8a7f41f0c Mon Sep 17 00:00:00 2001 From: marco Date: Sun, 31 May 2020 18:19:00 +0200 Subject: [PATCH] =?UTF-8?q?eliminati=20server=20non=20pi=C3=B9=20esistenti?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- servers/bitertv.json | 47 ---------- servers/bitertv.py | 24 ----- servers/bitshare.json | 53 ----------- servers/bitshare.py | 19 ---- servers/estream.json | 46 ---------- servers/estream.py | 35 -------- servers/filebebo.json | 42 --------- servers/filebebo.py | 36 -------- servers/filevideo.json | 42 --------- servers/filevideo.py | 42 --------- servers/flix555.json | 42 --------- servers/flix555.py | 44 --------- servers/freakshare.json | 45 ---------- servers/freakshare.py | 18 ---- servers/jplayer.json | 42 --------- servers/jplayer.py | 43 --------- servers/manyvideos.json | 42 --------- servers/manyvideos.py | 38 -------- servers/megadrive.json | 42 --------- servers/megadrive.py | 27 ------ servers/openload.json | 45 ---------- servers/openload.py | 183 -------------------------------------- servers/rapidvideo.json | 42 --------- servers/rapidvideo.py | 53 ----------- servers/streamango.json | 54 ----------- servers/streamango.py | 74 --------------- servers/streamcherry.json | 45 ---------- servers/streamcherry.py | 77 ---------------- servers/streamcloud.json | 59 ------------ servers/streamcloud.py | 78 ---------------- servers/thevideome.json | 42 --------- servers/thevideome.py | 45 ---------- servers/thevideos.json | 41 --------- servers/thevideos.py | 29 ------ servers/verystream.json | 45 ---------- servers/verystream.py | 55 ------------ servers/videofiles.json | 42 --------- servers/videofiles.py | 39 -------- servers/videoz.json | 42 --------- servers/videoz.py | 34 ------- servers/vidgot.json | 42 --------- servers/vidzi.json | 46 ---------- servers/vidzi.py | 38 -------- 43 files changed, 2019 deletions(-) delete mode 100644 servers/bitertv.json delete mode 100644 servers/bitertv.py delete mode 100644 servers/bitshare.json delete mode 100644 servers/bitshare.py delete mode 100644 servers/estream.json delete mode 100644 servers/estream.py delete mode 100644 servers/filebebo.json delete mode 100644 servers/filebebo.py delete mode 100644 servers/filevideo.json delete mode 100644 servers/filevideo.py delete mode 100644 servers/flix555.json delete mode 100644 servers/flix555.py delete mode 100644 servers/freakshare.json delete mode 100644 servers/freakshare.py delete mode 100644 servers/jplayer.json delete mode 100644 servers/jplayer.py delete mode 100644 servers/manyvideos.json delete mode 100644 servers/manyvideos.py delete mode 100644 servers/megadrive.json delete mode 100644 servers/megadrive.py delete mode 100644 servers/openload.json delete mode 100644 servers/openload.py delete mode 100755 servers/rapidvideo.json delete mode 100755 servers/rapidvideo.py delete mode 100644 servers/streamango.json delete mode 100644 servers/streamango.py delete mode 100644 servers/streamcherry.json delete mode 100644 servers/streamcherry.py delete mode 100755 servers/streamcloud.json delete mode 100755 servers/streamcloud.py delete mode 100755 servers/thevideome.json delete mode 100755 servers/thevideome.py delete mode 100644 servers/thevideos.json delete mode 100644 servers/thevideos.py delete mode 100644 servers/verystream.json delete mode 100644 servers/verystream.py delete mode 100644 servers/videofiles.json delete mode 100644 servers/videofiles.py delete mode 100644 servers/videoz.json delete mode 100644 servers/videoz.py delete mode 100644 servers/vidgot.json delete mode 100644 servers/vidzi.json delete mode 100644 servers/vidzi.py diff --git a/servers/bitertv.json b/servers/bitertv.json deleted file mode 100644 index 9a4caa4c..00000000 --- a/servers/bitertv.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "active": true, - "find_videos": { - "ignore_urls": [], - "patterns": [ - { - "pattern": "(http://b.ter.tv/v/[A-z0-9]+)", - "url": "\\1" - }, - { - "pattern": "(https://byter.tv/v/[A-z0-9]+)", - "url": "\\1" - } - ] - }, - "free": true, - "id": "bitertv", - "name": "Bitertv", - "settings": [ - { - "default": false, - "enabled": true, - "id": "black_list", - "label": "@60654", - "type": "bool", - "visible": true - }, - { - "default": 0, - "enabled": true, - "id": "favorites_servers_list", - "label": "@60655", - "lvalues": [ - "No", - "1", - "2", - "3", - "4", - "5" - ], - "type": "list", - "visible": false - } - ], - "thumbnail": "https://s18.postimg.cc/f56rayqq1/logo-bitertv.png", - "version": 1 -} diff --git a/servers/bitertv.py b/servers/bitertv.py deleted file mode 100644 index 9e898962..00000000 --- a/servers/bitertv.py +++ /dev/null @@ -1,24 +0,0 @@ -# -*- coding: utf-8 -*- -from core import httptools -from core import scrapertools -from platformcode import config -from platformcode import logger - -headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/61.0.3163.100 Safari/537.36'} - -def test_video_exists(page_url): - logger.info("(page_url='%s')" % page_url) - data = httptools.downloadpage(page_url).data - if "Archive no Encontrado" in data or "File has been removed" in data: - return False, config.get_localized_string(70449) % "bitertv" - return True, "" - - -def get_video_url(page_url, user="", password="", video_password=""): - logger.info("(page_url='%s')" % page_url) - video_urls = [] - data = httptools.downloadpage(page_url).data - patron = "(?s)file: '([^']+)" - file = scrapertools.find_single_match(data, patron) - video_urls.append([".MP4 [bitertv]", file]) - return video_urls diff --git a/servers/bitshare.json b/servers/bitshare.json deleted file mode 100644 index 52d1cae9..00000000 --- a/servers/bitshare.json +++ /dev/null @@ -1,53 +0,0 @@ -{ - "active": true, - "find_videos": { - "ignore_urls": [], - "patterns": [ - { - "pattern": "(bitshare.com/files/[^/]+/[\\w.+\\-_]+)", - "url": "http://\\1" - }, - { - "pattern": "(bitshare.com/files/[a-z0-9]+)[^/a-z0-9]", - "url": "http://\\1" - }, - { - "pattern": "(bitshare.com/\\?f=[\\w+]+)", - "url": "http://\\1" - } - ] - }, - "free": false, - "id": "bitshare", - "name": "bitshare", - "premium": [ - "realdebrid", - "alldebrid" - ], - "settings": [ - { - "default": false, - "enabled": true, - "id": "black_list", - "label": "@60654", - "type": "bool", - "visible": true - }, - { - "default": 0, - "enabled": true, - "id": "favorites_servers_list", - "label": "@60655", - "lvalues": [ - "No", - "1", - "2", - "3", - "4", - "5" - ], - "type": "list", - "visible": false - } - ] -} \ No newline at end of file diff --git a/servers/bitshare.py b/servers/bitshare.py deleted file mode 100644 index 08acfe94..00000000 --- a/servers/bitshare.py +++ /dev/null @@ -1,19 +0,0 @@ -# -*- coding: utf-8 -*- - -from core import httptools -from platformcode import logger - - -def test_video_exists(page_url): - logger.info("(page_url='%s')" % page_url) - data = httptools.downloadpage(page_url).data - if "Error - Archivo no disponible" in data or "Por favor seleccione el archivo a cargar" in data: - return False, "Archivo no encontrado" - patron = '()' - return True, "" - - -def get_video_url(page_url, premium=False, user="", password="", video_password=""): - logger.info("(page_url='%s')" % page_url) - video_urls = [] - return video_urls diff --git a/servers/estream.json b/servers/estream.json deleted file mode 100644 index dfcae14c..00000000 --- a/servers/estream.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "active": false, - "find_videos": { - "ignore_urls": [], - "patterns": [ - { - "pattern": "https://estream.to/embed-([a-z0-9]+).html", - "url": "https://estream.to/\\1.html" - }, - { - "pattern": "https://estream.xyz/embed-([a-z0-9]+).html", - "url": "https://estream.to/\\1.html" - } - ] - }, - "free": true, - "id": "estream", - "name": "estream", - "settings": [ - { - "default": false, - "enabled": true, - "id": "black_list", - "label": "@60654", - "type": "bool", - "visible": true - }, - { - "default": 0, - "enabled": true, - "id": "favorites_servers_list", - "label": "@60655", - "lvalues": [ - "No", - "1", - "2", - "3", - "4", - "5" - ], - "type": "list", - "visible": false - } - ], - "thumbnail": "https://s14.postimg.cc/ibd54ayf5/estream.png" -} diff --git a/servers/estream.py b/servers/estream.py deleted file mode 100644 index 24c63a34..00000000 --- a/servers/estream.py +++ /dev/null @@ -1,35 +0,0 @@ -# -*- coding: utf-8 -*- -# -------------------------------------------------------- -# Conector Estream By Alfa development Group -# -------------------------------------------------------- -import re - -from core import httptools -from platformcode import config -from platformcode import logger - - -def test_video_exists(page_url): - logger.info("(page_url='%s')" % page_url) - - data = httptools.downloadpage(page_url) - - if data.code == 404: - return False, config.get_localized_string(70449) % "Estream" - - return True, "" - - -def get_video_url(page_url, premium=False, user="", password="", video_password=""): - logger.info("url=" + page_url) - - video_urls = [] - data = httptools.downloadpage(page_url).data - data = re.sub(r'"|\n|\r|\t| |
|\s{2,}', "", data) - patron = "|\s{2,}', "", data) - return data - -def test_video_exists(page_url): - logger.info("(page_url='%s')" % page_url) - data = get_source(page_url) - - if "File was deleted" in data or "File Not Found" in data: - return False, config.get_localized_string(70449) % "Filebebo" - - return True, "" - - -def get_video_url(page_url, premium=False, user="", password="", video_password=""): - logger.info("url=" + page_url) - video_urls = [] - data = get_source(page_url) - url = scrapertools.find_single_match(data, "(eval.*?)\s*") - dec_data = jsunpack.unpack(enc_data) - - video_urls = [] - media_urls = scrapertools.find_multiple_matches(dec_data, '\{file\s*:\s*"([^"]+)",label\s*:\s*"([^"]+)"\}') - for media_url, label in media_urls: - ext = scrapertools.get_filename_from_url(media_url)[-4:] - video_urls.append(["%s %sp [filevideo]" % (ext, label), media_url]) - - video_urls.reverse() - m3u8 = scrapertools.find_single_match(dec_data, '\{file\:"(.*?.m3u8)"\}') - if m3u8: - title = video_urls[-1][0].split(" ", 1)[1] - video_urls.insert(0, [".m3u8 %s" % title, m3u8]) - - for video_url in video_urls: - logger.info("%s - %s" % (video_url[0], video_url[1])) - - return video_urls diff --git a/servers/flix555.json b/servers/flix555.json deleted file mode 100644 index f642474c..00000000 --- a/servers/flix555.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "active": false, - "find_videos": { - "ignore_urls": [], - "patterns": [ - { - "pattern": "flix555.com/(?:embed-|)([A-z0-9]+)", - "url": "https://flix555.com/embed-\\1.html" - } - ] - }, - "free": true, - "id": "flix555", - "name": "flix555", - "settings": [ - { - "default": false, - "enabled": true, - "id": "black_list", - "label": "@60654", - "type": "bool", - "visible": true - }, - { - "default": 0, - "enabled": true, - "id": "favorites_servers_list", - "label": "@60655", - "lvalues": [ - "No", - "1", - "2", - "3", - "4", - "5" - ], - "type": "list", - "visible": false - } - ], - "thumbnail": "https://flix555.com/img/logo.png" -} diff --git a/servers/flix555.py b/servers/flix555.py deleted file mode 100644 index 87484ada..00000000 --- a/servers/flix555.py +++ /dev/null @@ -1,44 +0,0 @@ -# -*- coding: utf-8 -*- -import re - -from core import httptools, scrapertools -from lib import jsunpack -from platformcode import config -from platformcode import logger - -data = "" -def test_video_exists(page_url): - resp = httptools.downloadpage(page_url) - global data - data = resp.data - if resp.code == 404 or 'File Not Found' in resp.data or "File is no longer available" in resp.data: - return False, config.get_localized_string(70449) % "flix555" - return True, "" - -def get_video_url(page_url, premium=False, user="", password="", video_password=""): - logger.info() - itemlist = [] - - packed = scrapertools.find_single_match(data, "") - unpacked = jsunpack.unpack(packed) - # ~ logger.info(unpacked) - unpacked = re.sub(r'\n|\r|\t|\s{2,}', "", unpacked) - subtitles = scrapertools.find_single_match(unpacked, r'tracks:\s*\[\{\s*file\s*:\s*"([^"]*)"\s*,\s*label') - if "empty." in subtitles: subtitles = "" - matches = scrapertools.find_multiple_matches(unpacked, 'file\s*:\s*"([^"]*)"\s*,\s*label\s*:\s*"([^"]*)"') - if matches: - for url, lbl in matches: - - if url.endswith('.srt') or url.endswith('.vtt'): - #subtitles += url - continue - - itemlist.append(['.mp4 (%s) [flix555]' % lbl, url, 0, subtitles]) - - url = scrapertools.find_single_match(unpacked, 'file\s*:\s*"([^"]*)"\s*') - if url: - if not url.endswith('.srt') or not url.endswith('.vtt'): - itemlist.append(['.m3u8 [flix555]', url, 0, subtitles]) - - return itemlist - diff --git a/servers/freakshare.json b/servers/freakshare.json deleted file mode 100644 index 4b2575b0..00000000 --- a/servers/freakshare.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "active": true, - "find_videos": { - "ignore_urls": [], - "patterns": [ - { - "pattern": "(freakshare.com/files/[^/]+/[^\"'\\n ]+)", - "url": "http://\\1" - } - ] - }, - "free": false, - "id": "freakshare", - "name": "freakshare", - "premium": [ - "realdebrid", - "alldebrid" - ], - "settings": [ - { - "default": false, - "enabled": true, - "id": "black_list", - "label": "@60654", - "type": "bool", - "visible": true - }, - { - "default": 0, - "enabled": true, - "id": "favorites_servers_list", - "label": "@60655", - "lvalues": [ - "No", - "1", - "2", - "3", - "4", - "5" - ], - "type": "list", - "visible": false - } - ] -} \ No newline at end of file diff --git a/servers/freakshare.py b/servers/freakshare.py deleted file mode 100644 index 92f9f92f..00000000 --- a/servers/freakshare.py +++ /dev/null @@ -1,18 +0,0 @@ -# -*- coding: utf-8 -*- - -from core import httptools -from platformcode import logger - - -def test_video_exists(page_url): - logger.info("(page_url='%s')" % page_url) - data = httptools.downloadpage(page_url).data - if "Este archivo no existe" in data: - return False, "Archivo no existe" - return True, "" - - -def get_video_url(page_url, premium=False, user="", password="", video_password=""): - logger.info("(page_url='%s')" % page_url) - video_urls = [] - return video_urls diff --git a/servers/jplayer.json b/servers/jplayer.json deleted file mode 100644 index ff1281c4..00000000 --- a/servers/jplayer.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "active": true, - "find_videos": { - "ignore_urls": [], - "patterns": [ - { - "pattern": "jplayer.net/v/([A-z0-9_-]+)", - "url": "https://www.jplayer.net/api/source/\\1" - } - ] - }, - "free": true, - "id": "jplayer", - "name": "jplayer", - "settings": [ - { - "default": false, - "enabled": true, - "id": "black_list", - "label": "@60654", - "type": "bool", - "visible": true - }, - { - "default": 0, - "enabled": true, - "id": "favorites_servers_list", - "label": "@60655", - "lvalues": [ - "No", - "1", - "2", - "3", - "4", - "5" - ], - "type": "list", - "visible": false - } - ], - "thumbnail": "" -} diff --git a/servers/jplayer.py b/servers/jplayer.py deleted file mode 100644 index 19048363..00000000 --- a/servers/jplayer.py +++ /dev/null @@ -1,43 +0,0 @@ -# -*- coding: utf-8 -*- -# -------------------------------------------------------- -# Conector jplayer By Alfa development Group -# -------------------------------------------------------- -import sys - -from platformcode import config - -PY3 = False -if sys.version_info[0] >= 3: PY3 = True; unicode = str; unichr = chr; long = int - -if PY3: - #from future import standard_library - #standard_library.install_aliases() - import urllib.parse as urllib # Es muy lento en PY2. En PY3 es nativo -else: - import urllib # Usamos el nativo de PY2 que es más rápido - -from core import httptools -from core import jsontools -from platformcode import logger - - -def test_video_exists(page_url): - logger.info("(page_url='%s')" % page_url) - data = httptools.downloadpage(page_url).data - if "no longer exists" in data or "to copyright issues" in data: - return False, config.get_localized_string(70449) % "jplayer" - return True, "" - - -def get_video_url(page_url, user="", password="", video_password=""): - logger.info("(page_url='%s')" % page_url) - video_urls = [] - post = urllib.urlencode({"r":"", "d":"www.jplayer.net"}) - data = httptools.downloadpage(page_url, post=post).data - json = jsontools.load(data)["data"] - for _url in json: - url = _url["file"] - label = _url["label"] - video_urls.append([label +" [jplayer]", url]) - - return video_urls diff --git a/servers/manyvideos.json b/servers/manyvideos.json deleted file mode 100644 index 81cbe42e..00000000 --- a/servers/manyvideos.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "active": true, - "find_videos": { - "ignore_urls": [], - "patterns": [ - { - "pattern": "https://manyvideos.xyz/embed/([A-z0-9]+)", - "url": "https://manyvideos.xyz/embed/\\1" - } - ] - }, - "free": true, - "id": "manyvideos", - "name": "manyvideos", - "settings": [ - { - "default": false, - "enabled": true, - "id": "black_list", - "label": "@60654", - "type": "bool", - "visible": true - }, - { - "default": 0, - "enabled": true, - "id": "favorites_servers_list", - "label": "@60655", - "lvalues": [ - "No", - "1", - "2", - "3", - "4", - "5" - ], - "type": "list", - "visible": false - } - ], - "thumbnail": "" -} diff --git a/servers/manyvideos.py b/servers/manyvideos.py deleted file mode 100644 index 971e2a22..00000000 --- a/servers/manyvideos.py +++ /dev/null @@ -1,38 +0,0 @@ -# -*- coding: utf-8 -*- -# -------------------------------------------------------- -# Conector manyvideos By Alfa development Group -# -------------------------------------------------------- -import base64 - -from core import httptools -from core import scrapertools -from lib import jsunpack -from platformcode import config -from platformcode import logger - - -def test_video_exists(page_url): - - response = httptools.downloadpage(page_url) - - if not response.sucess or \ - "Not Found" in response.data \ - or "File was deleted" in response.data \ - or "is no longer available" in response.data: - return False, config.get_localized_string(70449) % "manyvideos" - return True, "" - - -def get_video_url(page_url, premium=False, user="", password="", video_password=""): - logger.info() - video_urls = [] - data = httptools.downloadpage(page_url).data - data = scrapertools.find_single_match(data, 'JuicyCodes.Run\(([^\)]+)\)') - data = data.replace("+", "") - data = base64.b64decode(data) - unpack = jsunpack.unpack(data) - matches = scrapertools.find_multiple_matches(unpack, '"file":"([^"]+)","label":"([^"]+)"') - for url,quality in matches: - url = url.replace("v2.", "v1.") - video_urls.append(["[manyvideos] %s" % quality, url]) - return video_urls diff --git a/servers/megadrive.json b/servers/megadrive.json deleted file mode 100644 index da5d8b62..00000000 --- a/servers/megadrive.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "active": true, - "find_videos": { - "ignore_urls": [], - "patterns": [ - { - "pattern": "megadrive.co/embed/([A-z0-9]+)", - "url": "https://megadrive.co/embed/\\1" - } - ] - }, - "free": true, - "id": "megadrive", - "name": "megadrive", - "settings": [ - { - "default": false, - "enabled": true, - "id": "black_list", - "label": "@60654", - "type": "bool", - "visible": true - }, - { - "default": 0, - "enabled": true, - "id": "favorites_servers_list", - "label": "@60655", - "lvalues": [ - "No", - "1", - "2", - "3", - "4", - "5" - ], - "type": "list", - "visible": false - } - ], - "thumbnail": "https://s8.postimg.cc/kr5olxmad/megadrive1.png" -} diff --git a/servers/megadrive.py b/servers/megadrive.py deleted file mode 100644 index c6974984..00000000 --- a/servers/megadrive.py +++ /dev/null @@ -1,27 +0,0 @@ -# -*- coding: utf-8 -*- -from core import httptools -from core import scrapertools -from platformcode import config -from platformcode import logger - - -def test_video_exists(page_url): - logger.info("(page_url='%s')" % page_url) - data = httptools.downloadpage(page_url).data - if "no longer exists" in data or "to copyright issues" in data: - return False, "[Megadrive] El video ha sido borrado" - if "please+try+again+later." in data: - return False, "[Megadrive] Error de Megadrive, no se puede generar el enlace al video" - if "File has been removed due to inactivity" in data: - return False, config.get_localized_string(70449) % "Megadrive" - return True, "" - - -def get_video_url(page_url, user="", password="", video_password=""): - logger.info("(page_url='%s')" % page_url) - data = httptools.downloadpage(page_url).data - video_urls = [] - videourl = scrapertools.find_single_match(data, "(.*?)

' ) - if not code or code == "" or code is None: - code = scrapertools.find_single_match(data, '

(.*?)

' ) - _0x59ce16 = eval(scrapertools.find_single_match(data, '_0x59ce16=([^;]+)').replace('parseInt', 'int')) - _1x4bfb36 = eval(scrapertools.find_single_match(data, '_1x4bfb36=([^;]+)').replace('parseInt', 'int')) - parseInt = eval(scrapertools.find_single_match(data, '_0x30725e,(\(parseInt.*?)\),').replace('parseInt', 'int')) - url = decode(code, parseInt, _0x59ce16, _1x4bfb36) - url = httptools.downloadpage(url, only_headers=True, follow_redirects=False).headers.get('location') - extension = scrapertools.find_single_match(url, '(\..{,3})\?') - itemlist.append([extension, url, 0,subtitle]) - - except Exception: - logger.info() - if config.get_setting('api', __file__): - url = get_link_api(page_url) - extension = scrapertools.find_single_match(url, '(\..{,3})\?') - if url: - itemlist.append([extension, url, 0,subtitle]) - logger.debug(itemlist) - - return itemlist - - -def decode(code, parseInt, _0x59ce16, _1x4bfb36): - logger.info() - import math - - _0x1bf6e5 = '' - ke = [] - - for i in range(0, len(code[0:9*8]),8): - ke.append(int(code[i:i+8],16)) - - _0x439a49 = 0 - _0x145894 = 0 - - while _0x439a49 < len(code[9*8:]): - _0x5eb93a = 64 - _0x896767 = 0 - _0x1a873b = 0 - _0x3c9d8e = 0 - while True: - if _0x439a49 + 1 >= len(code[9*8:]): - _0x5eb93a = 143; - - _0x3c9d8e = int(code[9*8+_0x439a49:9*8+_0x439a49+2], 16) - _0x439a49 +=2 - - if _0x1a873b < 6*5: - _0x332549 = _0x3c9d8e & 63 - _0x896767 += _0x332549 << _0x1a873b - else: - _0x332549 = _0x3c9d8e & 63 - _0x896767 += int(_0x332549 * math.pow(2, _0x1a873b)) - - _0x1a873b += 6 - if not _0x3c9d8e >= _0x5eb93a: break - - # _0x30725e = _0x896767 ^ ke[_0x145894 % 9] ^ _0x59ce16 ^ parseInt ^ _1x4bfb36 - _0x30725e = _0x896767 ^ ke[_0x145894 % 9] ^ parseInt ^ _1x4bfb36 - _0x2de433 = _0x5eb93a * 2 + 127 - - for i in range(4): - _0x3fa834 = chr(((_0x30725e & _0x2de433) >> (9*8/ 9)* i) - 1) - if _0x3fa834 != '$': - _0x1bf6e5 += _0x3fa834 - _0x2de433 = (_0x2de433 << (9*8/ 9)) - - _0x145894 += 1 - - url = host + "/stream/%s?mime=true" % _0x1bf6e5 - return url - - -def login(): - logger.info() - data = httptools.downloadpage(host).data - _csrf = scrapertools.find_single_match(data, '') - - post = { - 'LoginForm[email]' : config.get_setting('user', __file__), - 'LoginForm[password]' : config.get_setting('passowrd', __file__), - 'LoginForm[rememberMe]' : 1, - '_csrf' : _csrf - } - data = httptools.downloadpage(host + '/login', post = post).data - - if 'Login key has already been sent.' in data: - while True : - if 'Invalid login key.' in data: - platformtools.dialog_ok('openload', 'El código introducido no es válido\nrevisa tu correo e introduce el código correcto') - - code = platformtools.dialog_input( post.get('LoginForm[loginkey]', ''), - 'Introduzca el código que ha sido enviado a \'%s\'' % 'r_dav' - ) - if not code: - break - else: - post['LoginForm[loginkey]'] = code - data = httptools.downloadpage(host + '/login', post = post).data - - if 'Welcome back,' in data: break - - -def get_api_keys(): - logger.info() - api_login = config.get_setting('api_login', __file__) - api_key = config.get_setting('api_key', __file__) - if not api_key or not api_login: - login() - data = httptools.downloadpage(host + '/account').data - post = { - 'FTPKey[password]' : config.get_setting('password', __file__), - '_csrf' : scrapertools.find_single_match(data, '') - } - - - data = httptools.downloadpage(host + '/account', post = post).data - api_login = scrapertools.find_single_match(data, 'ID:([^<]+)') - api_key = scrapertools.find_single_match(data, 'Your FTP Password/API Key is: ([^<]+) ') - config.set_setting('api_login', api_login, __file__) - config.set_setting('api_key', api_key, __file__) - - return api_login, api_key - - -def get_link_api(page_url): - logger.info() - - api_login, api_key = get_api_keys() - - file_id = scrapertools.find_single_match(page_url, '(?:embed|f)/([0-9a-zA-Z-_]+)') - - 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(host + "/api/1/file/dl?file=%s&ticket=%s" % (file_id, ticket)).data - data = jsontools.load(data) - - return data['result']['url'].replace("https", "http") diff --git a/servers/rapidvideo.json b/servers/rapidvideo.json deleted file mode 100755 index f6f6bf5a..00000000 --- a/servers/rapidvideo.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "active": false, - "find_videos": { - "ignore_urls": [], - "patterns": [ - { - "pattern": "(?:rapidvideo|rapidvid).(?:org|com|to|is)/(?:\\?v=|e/|embed/|v/|d/)([A-z0-9]+)", - "url": "https://www.rapidvideo.com/e/\\1" - } - ] - }, - "free": true, - "id": "rapidvideo", - "name": "rapidvideo", - "settings": [ - { - "default": false, - "enabled": true, - "id": "black_list", - "label": "@60654", - "type": "bool", - "visible": true - }, - { - "default": 0, - "enabled": true, - "id": "favorites_servers_list", - "label": "@60655", - "lvalues": [ - "No", - "1", - "2", - "3", - "4", - "5" - ], - "type": "list", - "visible": false - } - ], - "thumbnail": "https://s26.postimg.cc/y5arjad1l/rapidvideo1.png" -} diff --git a/servers/rapidvideo.py b/servers/rapidvideo.py deleted file mode 100755 index 7031d40f..00000000 --- a/servers/rapidvideo.py +++ /dev/null @@ -1,53 +0,0 @@ -# -*- coding: utf-8 -*- - -from core import httptools -from core import scrapertools -from platformcode import config, logger - - -def test_video_exists(page_url): - logger.info("(page_url='%s')" % page_url) - response = httptools.downloadpage(page_url) - if response.code == 404: - return False, config.get_localized_string(70449) % "RapidVideo" - if not response.data or "urlopen error [Errno 1]" in str(response.code): - if config.is_xbmc(): - return False, config.get_localized_string(70302) % "RapidVideo" - elif config.get_platform() == "plex": - return False, config.get_localized_string(70303) % "RapidVideo" - elif config.get_platform() == "mediaserver": - return False, config.get_localized_string(70304) % "RapidVideo" - if "Object not found" in response.data: - return False, config.get_localized_string(70449) % "RapidVideo" - if response.code == 500: - return False, config.get_localized_string(70524) % "RapidVideo" - - return True, "" - - -def get_video_url(page_url, premium=False, user="", password="", video_password=""): - logger.info("url=" + page_url) - video_urls = [] - data = httptools.downloadpage(page_url).data - post = "confirm.x=77&confirm.y=76&block=1" - if "Please click on this button to open this video" in data: - data = httptools.downloadpage(page_url, post=post).data - patron = 'https://www.rapidvideo.com/e/[^"]+' - match = scrapertools.find_multiple_matches(data, patron) - if match: - for url1 in match: - res = scrapertools.find_single_match(url1, '=(\w+)') - data = httptools.downloadpage(url1).data - if "Please click on this button to open this video" in data: - data = httptools.downloadpage(url1, post=post).data - url = scrapertools.find_single_match(data, 'source src="([^"]+)') - ext = scrapertools.get_filename_from_url(url)[-4:] - video_urls.append(['%s %s [rapidvideo]' % (ext, res), url]) - else: - patron = 'src="([^"]+)" type="video/([^"]+)" label="([^"]+)"' - match = scrapertools.find_multiple_matches(data, patron) - if match: - for url, ext, res in match: - video_urls.append(['.%s %s [Rapidvideo]' % (ext, res), url]) - - return video_urls diff --git a/servers/streamango.json b/servers/streamango.json deleted file mode 100644 index ff06ea3b..00000000 --- a/servers/streamango.json +++ /dev/null @@ -1,54 +0,0 @@ -{ - "active": false, - "find_videos": { - "ignore_urls": [], - "patterns": [ - { - "pattern": "streamango.com/(?:embed|f)/([A-z0-9]+)", - "url": "http://streamango.com/embed/\\1" - }, - { - "pattern": "https://fruitadblock.net/embed/([A-z0-9]+)", - "url": "http://streamango.com/embed/\\1" - }, - { - "pattern": "https://streamangos.com/e/([A-z0-9]+)", - "url": "http://streamango.com/embed/\\1" - } - ] - }, - "free": true, - "id": "streamango", - "name": "streamango", - "premium": [ - "realdebrid", - "alldebrid" - ], - "settings": [ - { - "default": false, - "enabled": true, - "id": "black_list", - "label": "@60654", - "type": "bool", - "visible": true - }, - { - "default": 0, - "enabled": true, - "id": "favorites_servers_list", - "label": "@60655", - "lvalues": [ - "No", - "1", - "2", - "3", - "4", - "5" - ], - "type": "list", - "visible": false - } - ], - "thumbnail": "http://i.imgur.com/o8XR8fL.png" -} diff --git a/servers/streamango.py b/servers/streamango.py deleted file mode 100644 index cc5e48cc..00000000 --- a/servers/streamango.py +++ /dev/null @@ -1,74 +0,0 @@ -# -*- coding: utf-8 -*- - -from core import httptools -from core import scrapertools -from platformcode import config, logger - - -def test_video_exists(page_url): - logger.info("(page_url='%s')" % page_url) - - data = httptools.downloadpage(page_url).data - if "We are unable to find the video" in data: - return False, config.get_localized_string(70449) % "Streamango" - - return True, "" - - -def get_video_url(page_url, premium=False, user="", password="", video_password=""): - logger.info("(page_url='%s')" % page_url) - - data = httptools.downloadpage(page_url).data - - video_urls = [] - - matches = scrapertools.find_multiple_matches(data, "type:\"video/([^\"]+)\",src:d\('([^']+)',(.*?)\).+?height:(\d+)") - - for ext, encoded, code, quality in matches: - - media_url = decode(encoded, int(code)) - media_url = media_url.replace("@","") - if not media_url.startswith("http"): - media_url = "http:" + media_url - video_urls.append([".%s %sp [streamango]" % (ext, quality), media_url]) - - video_urls.reverse() - for video_url in video_urls: - logger.info("%s - %s" % (video_url[0], video_url[1])) - - return video_urls - - -def decode(encoded, code): - logger.info("encoded '%s', code '%s'" % (encoded, code)) - - _0x59b81a = "" - k = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=' - k = k[::-1] - - count = 0 - - for index in range(0, len(encoded) - 1): - while count <= len(encoded) - 1: - _0x4a2f3a = k.index(encoded[count]) - count += 1 - _0x29d5bf = k.index(encoded[count]) - count += 1 - _0x3b6833 = k.index(encoded[count]) - count += 1 - _0x426d70 = k.index(encoded[count]) - count += 1 - - _0x2e4782 = ((_0x4a2f3a << 2) | (_0x29d5bf >> 4)) - _0x2c0540 = (((_0x29d5bf & 15) << 4) | (_0x3b6833 >> 2)) - _0x5a46ef = ((_0x3b6833 & 3) << 6) | _0x426d70 - _0x2e4782 = _0x2e4782 ^ code - - _0x59b81a = str(_0x59b81a) + chr(_0x2e4782) - - if _0x3b6833 != 64: - _0x59b81a = str(_0x59b81a) + chr(_0x2c0540) - if _0x3b6833 != 64: - _0x59b81a = str(_0x59b81a) + chr(_0x5a46ef) - - return _0x59b81a diff --git a/servers/streamcherry.json b/servers/streamcherry.json deleted file mode 100644 index e9c41dbf..00000000 --- a/servers/streamcherry.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "active": false, - "find_videos": { - "ignore_urls": [], - "patterns": [ - { - "pattern": "streamcherry.com/(?:embed|f)/([A-z0-9]+)", - "url": "http://streamcherry.com/embed/\\1" - } - ] - }, - "free": true, - "id": "streamcherry", - "name": "streamcherry", - "premium": [ - "realdebrid" - ], - "settings": [ - { - "default": false, - "enabled": true, - "id": "black_list", - "label": "@60654", - "type": "bool", - "visible": true - }, - { - "default": 0, - "enabled": true, - "id": "favorites_servers_list", - "label": "@60655", - "lvalues": [ - "No", - "1", - "2", - "3", - "4", - "5" - ], - "type": "list", - "visible": false - } - ], - "thumbnail": "http://i.imgur.com/l45Tk0G.png" -} diff --git a/servers/streamcherry.py b/servers/streamcherry.py deleted file mode 100644 index 3cff360e..00000000 --- a/servers/streamcherry.py +++ /dev/null @@ -1,77 +0,0 @@ -# -*- coding: utf-8 -*- -# -------------------------------------------------------- -# Conector para streamcherry -# -------------------------------------------------------- -from core import httptools -from core import scrapertools -from platformcode import config -from platformcode import logger - - -def test_video_exists(page_url): - logger.info("(page_url='%s')" % page_url) - - data = httptools.downloadpage(page_url).data - if "We are unable to find the video" in data: - return False, config.get_localized_string(70449) % "streamcherry" - - return True, "" - - -def get_video_url(page_url, premium=False, user="", password="", video_password=""): - logger.info("(page_url='%s')" % page_url) - - data = httptools.downloadpage(page_url).data - - video_urls = [] - - matches = scrapertools.find_multiple_matches(data, "type:\"video/([^\"]+)\",src:d\('([^']+)',(.*?)\).+?height:(\d+)") - - for ext, encoded, code, quality in matches: - - media_url = decode(encoded, int(code)) - media_url = media_url.replace("@","") - if not media_url.startswith("http"): - media_url = "http:" + media_url - video_urls.append([".%s %sp [streamcherry]" % (ext, quality), media_url]) - - video_urls.reverse() - for video_url in video_urls: - logger.info("%s - %s" % (video_url[0], video_url[1])) - - return video_urls - - -def decode(encoded, code): - logger.info("encoded '%s', code '%s'" % (encoded, code)) - - _0x59b81a = "" - k = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=' - k = k[::-1] - - count = 0 - - for index in range(0, len(encoded) - 1): - while count <= len(encoded) - 1: - _0x4a2f3a = k.index(encoded[count]) - count += 1 - _0x29d5bf = k.index(encoded[count]) - count += 1 - _0x3b6833 = k.index(encoded[count]) - count += 1 - _0x426d70 = k.index(encoded[count]) - count += 1 - - _0x2e4782 = ((_0x4a2f3a << 2) | (_0x29d5bf >> 4)) - _0x2c0540 = (((_0x29d5bf & 15) << 4) | (_0x3b6833 >> 2)) - _0x5a46ef = ((_0x3b6833 & 3) << 6) | _0x426d70 - _0x2e4782 = _0x2e4782 ^ code - - _0x59b81a = str(_0x59b81a) + chr(_0x2e4782) - - if _0x3b6833 != 64: - _0x59b81a = str(_0x59b81a) + chr(_0x2c0540) - if _0x3b6833 != 64: - _0x59b81a = str(_0x59b81a) + chr(_0x5a46ef) - - return _0x59b81a diff --git a/servers/streamcloud.json b/servers/streamcloud.json deleted file mode 100755 index ca902581..00000000 --- a/servers/streamcloud.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "active": false, - "find_videos": { - "ignore_urls": [ - "http://streamcloud.eu/stylesheets", - "http://streamcloud.eu/control", - "http://streamcloud.eu/xupload", - "http://streamcloud.eu/js", - "http://streamcloud.eu/favicon", - "http://streamcloud.eu/reward", - "http://streamcloud.eu/login", - "http://streamcloud.eu/deliver", - "http://streamcloud.eu/faq", - "http://streamcloud.eu/tos", - "http://streamcloud.eu/checkfiles", - "http://streamcloud.eu/contact", - "http://streamcloud.eu/serve" - ], - "patterns": [ - { - "pattern": "(streamcloud.eu/[a-z0-9]+)", - "url": "http://\\1" - } - ] - }, - "free": true, - "id": "streamcloud", - "name": "streamcloud", - "premium": [ - "alldebrid" - ], - "settings": [ - { - "default": false, - "enabled": true, - "id": "black_list", - "label": "@60654", - "type": "bool", - "visible": true - }, - { - "default": 0, - "enabled": true, - "id": "favorites_servers_list", - "label": "@60655", - "lvalues": [ - "No", - "1", - "2", - "3", - "4", - "5" - ], - "type": "list", - "visible": false - } - ], - "thumbnail": "server_streamcloud.png" -} diff --git a/servers/streamcloud.py b/servers/streamcloud.py deleted file mode 100755 index f7828b66..00000000 --- a/servers/streamcloud.py +++ /dev/null @@ -1,78 +0,0 @@ -# -*- coding: utf-8 -*- - -from __future__ import print_function - -from core import httptools -from core import scrapertools -from platformcode import logger - - -def test_video_exists(page_url): - logger.info("page_url='%s')" % page_url) - data = httptools.downloadpage(url=page_url).data - if "

404 Not Found

" in data: - return False, "El archivo no existe
en streamcloud o ha sido borrado." - elif "

File Not Found

" in data: - return False, "El archivo no existe
en streamcloud o ha sido borrado." - elif "

Archivo no encontrado

" in data: - return False, "El archivo no existe
en streamcloud o ha sido borrado." - else: - return True, "" - - -def get_video_url(page_url, premium=False, user="", password="", video_password=""): - logger.info("url=" + page_url) - # Lo pide una vez - headers = [ - ['User-Agent', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14']] - data = httptools.downloadpage(page_url, headers=headers).data - - media_url = scrapertools.find_single_match(data, 'file\: "([^"]+)"') - - if len(media_url) == 0: - post = "" - matches = scrapertools.find_multiple_matches(data, '') - for inputname, inputvalue in matches: - post += inputname + "=" + inputvalue + "&" - post = post.replace("op=download1", "op=download2") - data = httptools.downloadpage(page_url, post=post).data - if 'id="justanotice"' in data: - logger.info("data=" + data) - logger.info("Ha saltado el detector de adblock") - return [] - # Extrae la URL - media_url = scrapertools.find_single_match(data, 'file\: "([^"]+)"') - video_urls = [] - video_urls.append([scrapertools.get_filename_from_url(media_url)[-4:] + " [streamcloud]", media_url+"|Referer="+page_url]) - for video_url in video_urls: - logger.info("%s - %s" % (video_url[0], video_url[1])) - return video_urls - - -if __name__ == "__main__": - import getopt - import sys - options, arguments = getopt.getopt(sys.argv[1:], "", ["video_url=", "login=", "password="]) - video_url = "" - login = "" - password = "" - logger.info("%s %s" % (str(options), str(arguments))) - for option, argument in options: - print(option, argument) - if option == "--video_url": - video_url = argument - elif option == "--login": - login = argument - elif option == "--password": - password = argument - else: - assert False, "Opcion desconocida" - if video_url == "": - print("ejemplo de invocacion") - print("streamcloud --video_url http://xxx --login usuario --password secreto") - else: - if login != "": - premium = True - else: - premium = False - print(get_video_url(video_url, premium, login, password)) diff --git a/servers/thevideome.json b/servers/thevideome.json deleted file mode 100755 index 77103016..00000000 --- a/servers/thevideome.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "active": false, - "find_videos": { - "ignore_urls": [], - "patterns": [ - { - "pattern": "(?:thevideo.me|tvad.me|thevideo.ch|thevideo.us)/(?:embed-|)([A-z0-9]+)", - "url": "https://thevideo.me/embed-\\1.html" - } - ] - }, - "free": true, - "id": "thevideome", - "name": "thevideome", - "settings": [ - { - "default": false, - "enabled": true, - "id": "black_list", - "label": "@60654", - "type": "bool", - "visible": true - }, - { - "default": 0, - "enabled": true, - "id": "favorites_servers_list", - "label": "@60655", - "lvalues": [ - "No", - "1", - "2", - "3", - "4", - "5" - ], - "type": "list", - "visible": false - } - ], - "thumbnail": "https://s26.postimg.cc/fzmu2c761/thevideo.me1.png" -} diff --git a/servers/thevideome.py b/servers/thevideome.py deleted file mode 100755 index 89308046..00000000 --- a/servers/thevideome.py +++ /dev/null @@ -1,45 +0,0 @@ -# -*- coding: utf-8 -*- - -import sys -PY3 = False -if sys.version_info[0] >= 3: PY3 = True; unicode = str; unichr = chr; long = int - -if PY3: - #from future import standard_library - #standard_library.install_aliases() - import urllib.parse as urllib # Es muy lento en PY2. En PY3 es nativo -else: - import urllib # Usamos el nativo de PY2 que es más rápido - -from core import httptools -from core import scrapertools -from platformcode import logger - - -def test_video_exists(page_url): - logger.info("(page_url='%s')" % page_url) - #Deshabilitamos el server hasta nueva orden - return False, "[Thevideo.me] Servidor deshabilitado" - - page_url = httptools.downloadpage(page_url, follow_redirects=False, only_headers=True).headers.get("location", "") - data = httptools.downloadpage(page_url).data - if "File was deleted" in data or "Page Cannot Be Found" in data or "Video not found" in data: - return False, "[thevideo.me] El archivo ha sido eliminado o no existe" - return True, "" - - -def get_video_url(page_url, premium=False, user="", password="", video_password=""): - logger.info("url=" + page_url) - video_urls = [] - post = {} - post = urllib.urlencode(post) - if not "embed" in page_url: - page_url = page_url.replace("https://thevideo.me/", "https://thevideo.me/embed-") + ".html" - url = httptools.downloadpage(page_url, follow_redirects=False, only_headers=True).headers.get("location", "") - data = httptools.downloadpage("https://vev.io/api/serve/video/" + scrapertools.find_single_match(url, "embed/([A-z0-9]+)"), post=post).data - bloque = scrapertools.find_single_match(data, 'qualities":\{(.*?)\}') - matches = scrapertools.find_multiple_matches(bloque, '"([^"]+)":"([^"]+)') - for res, media_url in matches: - video_urls.append( - [scrapertools.get_filename_from_url(media_url)[-4:] + " (" + res + ") [thevideo.me]", media_url]) - return video_urls diff --git a/servers/thevideos.json b/servers/thevideos.json deleted file mode 100644 index 7776a6ac..00000000 --- a/servers/thevideos.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "active": true, - "find_videos": { - "ignore_urls": [], - "patterns": [ - { - "pattern": "thevideos.tv/(?:embed-|)([a-z0-9A-Z]+)", - "url": "http://thevideos.tv/embed-\\1.html" - } - ] - }, - "free": true, - "id": "thevideos", - "name": "thevideos", - "settings": [ - { - "default": false, - "enabled": true, - "id": "black_list", - "label": "@60654", - "type": "bool", - "visible": true - }, - { - "default": 0, - "enabled": true, - "id": "favorites_servers_list", - "label": "@60655", - "lvalues": [ - "No", - "1", - "2", - "3", - "4", - "5" - ], - "type": "list", - "visible": false - } - ] -} \ No newline at end of file diff --git a/servers/thevideos.py b/servers/thevideos.py deleted file mode 100644 index a6e0fce7..00000000 --- a/servers/thevideos.py +++ /dev/null @@ -1,29 +0,0 @@ -# -*- coding: utf-8 -*- - -from core import httptools -from core import scrapertools -from lib import jsunpack -from platformcode import logger - - -def get_video_url(page_url, premium=False, user="", password="", video_password=""): - logger.info("url=" + page_url) - - data = httptools.downloadpage(page_url).data - - match = scrapertools.find_single_match(data, "<script type='text/javascript'>(.*?)</script>") - if match.startswith("eval"): - match = jsunpack.unpack(match) - - # Extrae la URL - # {file:"http://95.211.81.229/kj2vy4rle46vtaw52bsj4ooof6meikcbmwimkrthrahbmy4re3eqg3buhoza/v.mp4",label:"240p" - video_urls = [] - media_urls = scrapertools.find_multiple_matches(match, '\{file\:"([^"]+)",label:"([^"]+)"') - subtitle = scrapertools.find_single_match(match, 'tracks: \[\{file: "([^"]+)", label: "Spanish"') - for media_url, quality in media_urls: - video_urls.append([media_url[-4:] + " [thevideos] " + quality, media_url, 0, subtitle]) - - for video_url in video_urls: - logger.info("%s - %s" % (video_url[0], video_url[1])) - - return video_urls diff --git a/servers/verystream.json b/servers/verystream.json deleted file mode 100644 index a7b506ed..00000000 --- a/servers/verystream.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "active": false, - "find_videos": { - "ignore_urls": [], - "patterns": [ - { - "pattern": "(?:verystream|woof.tube).*?/(?:e|stream)/([0-9a-zA-Z-_]+)", - "url": "https://verystream.com/e/\\1/" - } - ] - }, - "free": true, - "id": "verystream", - "name": "verystream", - "premium": [ - "realdebrid" - ], - "settings": [ - { - "default": false, - "enabled": true, - "id": "black_list", - "label": "@60654", - "type": "bool", - "visible": true - }, - { - "default": 0, - "enabled": true, - "id": "favorites_servers_list", - "label": "@60655", - "lvalues": [ - "No", - "1", - "2", - "3", - "4", - "5" - ], - "type": "list", - "visible": false - } - ], - "thumbnail": "server_verystream.png" - } \ No newline at end of file diff --git a/servers/verystream.py b/servers/verystream.py deleted file mode 100644 index 92a3510b..00000000 --- a/servers/verystream.py +++ /dev/null @@ -1,55 +0,0 @@ -# -*- coding: utf-8 -*- -# Verystream server tool -# Developed by KOD for KOD -# KOD - Kodi on Demand Team - -from core import httptools -from core import scrapertools -from platformcode import config, logger - - -def test_video_exists(page_url): - logger.info("(page_url='%s')" % page_url) - - header = {} - if "|" in page_url: - page_url, referer = page_url.split("|", 1) - header = {'Referer': referer} - data = httptools.downloadpage(page_url, headers=header, cookies=False).data - if 'not found!' in data: - data = httptools.downloadpage(page_url.replace("/e/", "/stream/"), headers=header, cookies=False).data - if 'not found!' in data: - return False, config.get_localized_string(70449) % "Verystream" - - return True, "" - -def get_video_url(page_url, premium=False, user="", password="", video_password=""): - logger.info() - itemlist = [] - - header = {} - if "|" in page_url: - page_url, referer = page_url.split("|", 1) - header = {'Referer': referer} - - data = httptools.downloadpage(page_url, cookies=False, headers=header).data - subtitle = scrapertools.find_single_match(data, '<track kind="captions" src="([^"]+)" srclang="it"') - - try: - code = scrapertools.find_single_match(data, '<p style="" class="" id="videolink">(.*?)</p>' ) - url = "https://verystream.com/gettoken/" + code + "?mime=true" - url = httptools.downloadpage(url, only_headers=True, follow_redirects=False).headers.get('location') - extension = scrapertools.find_single_match(url, '(\..{,3})\?') - itemlist.append([extension, url, 0,subtitle]) - - except Exception: - logger.info() - if config.get_setting('api', __file__): - url = get_link_api(page_url) - extension = scrapertools.find_single_match(url, '(\..{,3})\?') - if url: - itemlist.append([extension, url, 0,subtitle]) - logger.debug(itemlist) - - return itemlist - diff --git a/servers/videofiles.json b/servers/videofiles.json deleted file mode 100644 index aa4890cb..00000000 --- a/servers/videofiles.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "active": false, - "find_videos": { - "ignore_urls": [], - "patterns": [ - { - "pattern": "https://videofiles.net/(?:embed-|)([A-z0-9]+)", - "url": "https://videofiles.net/embed-\\1.html" - } - ] - }, - "free": true, - "id": "videofiles", - "name": "videofiles", - "settings": [ - { - "default": false, - "enabled": true, - "id": "black_list", - "label": "@60654", - "type": "bool", - "visible": true - }, - { - "default": 0, - "enabled": true, - "id": "favorites_servers_list", - "label": "@60655", - "lvalues": [ - "No", - "1", - "2", - "3", - "4", - "5" - ], - "type": "list", - "visible": false - } - ], - "thumbnail": "https://videofiles.net/img/logo.png" -} \ No newline at end of file diff --git a/servers/videofiles.py b/servers/videofiles.py deleted file mode 100644 index 89562b2f..00000000 --- a/servers/videofiles.py +++ /dev/null @@ -1,39 +0,0 @@ -# -*- coding: utf-8 -*- -# -------------------------------------------------------- -# Conector Videofiles By Alfa development Group -# -------------------------------------------------------- -import re - -from core import httptools -from platformcode import config -from platformcode import logger - -data = "" -def test_video_exists(page_url): - logger.info("(page_url='%s')" % page_url) - - data = httptools.downloadpage(page_url) - - if not data.sucess or "Not Found" in data.data or "File was deleted" in data.data or "is no longer available" in data.data: - return False, config.get_localized_string(70449) % "Videofiles" - global data - data = data.data - return True, "" - - -def get_video_url(page_url, premium=False, user="", password="", video_password=""): - logger.info("url=" + page_url) - - video_urls = [] - patron = 'src: "([^"]+)", type: "([^"]+)", res: (\d+),' - matches = re.compile(patron, re.DOTALL).findall(data) - - for url, ext, res in matches: - res = res+'p' - try: - ext = ext.split("/")[1] - except: - pass - video_urls.append(["%s (%s) [videofiles]" % (ext, res), url]) - - return video_urls diff --git a/servers/videoz.json b/servers/videoz.json deleted file mode 100644 index 0440df47..00000000 --- a/servers/videoz.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "active": true, - "find_videos": { - "ignore_urls": [], - "patterns": [ - { - "pattern": "videoz.me/(?:embed-|)([A-z0-9]+)", - "url": "https://videoz.me/embed-\\1.html" - } - ] - }, - "free": true, - "id": "videoz", - "name": "videoz", - "settings": [ - { - "default": false, - "enabled": true, - "id": "black_list", - "label": "@60654", - "type": "bool", - "visible": true - }, - { - "default": 0, - "enabled": true, - "id": "favorites_servers_list", - "label": "@60655", - "lvalues": [ - "No", - "1", - "2", - "3", - "4", - "5" - ], - "type": "list", - "visible": false - } - ], - "thumbnail": "https://i.imgur.com/FAPDkF6.png" -} \ No newline at end of file diff --git a/servers/videoz.py b/servers/videoz.py deleted file mode 100644 index a5ba7645..00000000 --- a/servers/videoz.py +++ /dev/null @@ -1,34 +0,0 @@ -# -*- coding: utf-8 -*- -# -------------------------------------------------------- -# Conector Videoz By Alfa development Group -# -------------------------------------------------------- -from core import httptools -from core import scrapertools -from lib import jsunpack -from platformcode import config -from platformcode import logger - - -def test_video_exists(page_url): - logger.info("(page_url='%s')" % page_url) - global data - data = httptools.downloadpage(page_url).data - if "Not Found" in data or "File was deleted" in data: - return False, config.get_localized_string(70449) % "Videoz" - return True, "" - - -def get_video_url(page_url, premium=False, user="", password="", video_password=""): - logger.info("url=" + page_url) - video_urls = [] - - packed = scrapertools.find_single_match(data, "text/javascript'>(eval.*?)\s*</script>") - unpacked = jsunpack.unpack(packed) - - media_url = scrapertools.find_single_match(unpacked, 'file:"([^"]+)"') - #media_url += "|Referer=%s" %page_url - if "m3u8" in media_url: - ext = "m3u8" - video_urls.append(["%s [videoz]" % (ext), media_url]) - - return video_urls diff --git a/servers/vidgot.json b/servers/vidgot.json deleted file mode 100644 index 407ef006..00000000 --- a/servers/vidgot.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "active": true, - "find_videos": { - "ignore_urls": [], - "patterns": [ - { - "pattern": "vidgot.com/(?:embed-|)([A-z0-9]+)", - "url": "http://www.vidgot.com/embed-\\1.html" - } - ] - }, - "free": true, - "id": "vidgot", - "name": "vidgot", - "settings": [ - { - "default": false, - "enabled": true, - "id": "black_list", - "label": "@60654", - "type": "bool", - "visible": true - }, - { - "default": 0, - "enabled": true, - "id": "favorites_servers_list", - "label": "@60655", - "lvalues": [ - "No", - "1", - "2", - "3", - "4", - "5" - ], - "type": "list", - "visible": false - } - ], - "thumbnail": "http://i.imgur.com/tAI34bF.png?1" -} \ No newline at end of file diff --git a/servers/vidzi.json b/servers/vidzi.json deleted file mode 100644 index a2ab07cd..00000000 --- a/servers/vidzi.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "active": true, - "find_videos": { - "ignore_urls": [], - "patterns": [ - { - "pattern": "vidzi.tv/embed-([a-z0-9A-Z]+)", - "url": "http://vidzi.tv/embed-\\1.html" - }, - { - "pattern": "vidzi.tv/([a-z0-9A-Z]+)", - "url": "http://vidzi.tv/embed-\\1.html" - } - ] - }, - "free": true, - "id": "vidzi", - "name": "vidzi", - "settings": [ - { - "default": false, - "enabled": true, - "id": "black_list", - "label": "@60654", - "type": "bool", - "visible": true - }, - { - "default": 0, - "enabled": true, - "id": "favorites_servers_list", - "label": "@60655", - "lvalues": [ - "No", - "1", - "2", - "3", - "4", - "5" - ], - "type": "list", - "visible": false - } - ], - "thumbnail": "https://s1.postimg.cc/597or3a31b/vidzi1.png" -} diff --git a/servers/vidzi.py b/servers/vidzi.py deleted file mode 100644 index c04e20e0..00000000 --- a/servers/vidzi.py +++ /dev/null @@ -1,38 +0,0 @@ -# -*- coding: utf-8 -*- -from core import httptools -from core import scrapertools -from lib import jsunpack -from platformcode import config -from platformcode import logger - - -def test_video_exists(page_url): - logger.info("(page_url='%s')" % page_url) - response = httptools.downloadpage(page_url) - if not response.sucess: - return False, config.get_localized_string(70449) % "Vidzi" - - return True, "" - - -def get_video_url(page_url, premium=False, user="", password="", video_password=""): - logger.info("url=" + page_url) - if not "embed" in page_url: - page_url = page_url.replace("http://vidzi.tv/", "http://vidzi.tv/embed-") + ".html" - - data = httptools.downloadpage(page_url).data - media_urls = scrapertools.find_multiple_matches(data, 'file\s*:\s*"([^"]+)"') - - if not media_urls: - data = scrapertools.find_single_match(data, - "<script type='text/javascript'>(eval\(function\(p,a,c,k,e,d.*?)</script>") - data = jsunpack.unpack(data) - media_urls = scrapertools.find_multiple_matches(data, 'file\s*:\s*"([^"]+)"') - - video_urls = [] - for media_url in media_urls: - ext = scrapertools.get_filename_from_url(media_url)[-4:] - if not media_url.endswith("vtt"): - video_urls.append(["%s [vidzi]" % ext, media_url]) - - return video_urls