- Ottimizzata e migliorata la ricerca globale
- fix Mega
- altri cambiamenti minori
This commit is contained in:
marco
2020-05-31 11:46:47 +02:00
parent d26a2def96
commit d62113f9d2
143 changed files with 2775 additions and 9879 deletions
+2 -3
View File
@@ -7,7 +7,7 @@ from platformcode import config, logger
def test_video_exists(page_url):
logger.info("(page_url='%s')" % page_url)
global data
data = httptools.downloadpage(page_url, cookies=False).data
if 'File you are looking for is not found.' in data:
return False, config.get_localized_string(70449) % "AvaVids"
@@ -16,7 +16,6 @@ def test_video_exists(page_url):
def get_video_url(page_url, premium=False, user="", password="", video_password=""):
logger.info("url=" + page_url)
data = httptools.downloadpage(page_url).data
global data
video_urls = support.get_jwplayer_mediaurl(data, 'AvaVids')
return video_urls
+2 -3
View File
@@ -13,6 +13,7 @@ def test_video_exists(page_url):
logger.info("(page_url='%s')" % page_url)
post = urllib.urlencode({'r': '', 'd': 'animeworld.biz'})
data_json = httptools.downloadpage(page_url.replace('/v/', '/api/source/'), headers=[['x-requested-with', 'XMLHttpRequest']], post=post).data
global json
json = jsontools.load(data_json)
if not json['data']:
return False, config.get_localized_string(70449) % "AnimeWorld"
@@ -23,9 +24,7 @@ def test_video_exists(page_url):
def get_video_url(page_url, user="", password="", video_password=""):
logger.info("(page_url='%s')" % page_url)
video_urls = []
post = urllib.urlencode({'r': '', 'd': 'animeworld.biz'})
data_json = httptools.downloadpage(page_url.replace('/v/', '/api/source/'), headers=[['x-requested-with', 'XMLHttpRequest']], post=post).data
json = jsontools.load(data_json)
global json
if json['data']:
for file in json['data']:
media_url = file['file']
-50
View File
@@ -1,50 +0,0 @@
{
"active": true,
"find_videos": {
"ignore_urls": [],
"patterns": [
{
"pattern": "https://www.bitporno.com/(?:e|embed)/([A-z0-9]+)",
"url": "https://www.bitporno.com/e/\\1"
},
{
"pattern": "https://www.bitporno.com/\\?v=([A-z0-9]+)",
"url": "https://www.bitporno.com/e/\\1"
},
{
"pattern": "raptu.com/(?:\\?v=|embed/|e/|v/)([A-z0-9]+)",
"url": "https://www.bitporno.com/e/\\1"
}
]
},
"free": true,
"id": "bitp",
"name": "bitp",
"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/maiur9tmx/bitp1.png"
}
-35
View File
@@ -1,35 +0,0 @@
# -*- coding: utf-8 -*-
# ------------------------------------------------------------
# Alfa addon - KODI Plugin
# Conector para bitporno
# https://github.com/alfa-addon
# ------------------------------------------------------------
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 "Object not found" in data or "no longer exists" in data or '"sources": [false]' in data:
return False, config.get_localized_string(70449) % "bitp"
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
videourl = scrapertools.find_multiple_matches(data, '<source src="([^"]+)".*?label="([^"]+)"')
scrapertools.printMatches(videourl)
for scrapedurl, scrapedquality in videourl:
if "loadthumb" in scrapedurl:
continue
scrapedurl = scrapedurl.replace("\\","")
video_urls.append([scrapedquality + " [bitp]", scrapedurl])
video_urls.sort(key=lambda it: int(it[0].split("p ", 1)[0]))
return video_urls
-78
View File
@@ -1,78 +0,0 @@
{
"active": true,
"find_videos": {
"ignore_urls": [],
"patterns": [
{
"pattern": "(https://www.bravoporn.com/videos/[0-9]+/)",
"url": "\\1"
},
{
"pattern": "(https://www.bravotube.net/videos/[A-z0-9-]+/)",
"url": "\\1"
},
{
"pattern": "(https://xcafe.com/[0-9]+/)",
"url": "\\1"
},
{
"pattern": "(https://es.anyporn.com/[0-9]+/)",
"url": "\\1"
},
{
"pattern": "(https://www.alphaporno.com/videos/[A-z0-9-]+/)",
"url": "\\1"
},
{
"pattern": "(https://xbabe.com/videos/[A-z0-9-]+/)",
"url": "\\1"
},
{
"pattern": "(https://xcum.com/v/[0-9-]+/)",
"url": "\\1"
},
{
"pattern": "(https://sex3.com/[0-9-]+/)",
"url": "\\1"
},
{
"pattern": "(https://www.tubewolf.com/movies/[A-z0-9-]+/)",
"url": "\\1"
},
{
"pattern": "(https://anysex.com/[0-9]+/)",
"url": "\\1"
}
]
},
"free": true,
"id": "bravoporn",
"name": "bravoporn",
"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": ""
}
-26
View File
@@ -1,26 +0,0 @@
# -*- coding: utf-8 -*-
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)
global data, server
data = httptools.downloadpage(page_url).data
server = scrapertools.find_single_match(page_url, 'https://(?:www.|es.|)([A-z0-9-]+).(?:com|net)')
if "<h2>WE ARE SORRY</h2>" in data or '<title>404 Not Found</title>' in data:
return False, "[%s] El fichero no existe o ha sido borrado" %server
return True, ""
def get_video_url(page_url, video_password):
logger.info("(page_url='%s')" % page_url)
video_urls = []
patron = '<source (?:id="video_source_\d+" |data-fluid-hd |)src="([^"]+)".*?title="([^"]+)"'
matches = scrapertools.find_multiple_matches(data, patron)
for url,quality in matches:
url += "|Referer=%s" % page_url
logger.debug(url)
video_urls.append(["[%s] %s" %(server,quality), url])
return video_urls
-42
View File
@@ -1,42 +0,0 @@
{
"active": true,
"find_videos": {
"ignore_urls": [],
"patterns": [
{
"pattern": "(?:datoporn.com|dato.porn|datoporn.co)/(?:embed-|)([A-z0-9]+)",
"url": "http://dato.porn/embed-\\1.html"
}
]
},
"free": true,
"id": "datoporn",
"name": "datoporn",
"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/tBSWudd.png?1"
}
-47
View File
@@ -1,47 +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)
data = httptools.downloadpage(page_url).data
if 'Not Found' in data or 'File is no longer available' in data:
return False, config.get_localized_string(70449) % "Datoporn"
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
media_urls = scrapertools.find_multiple_matches(data, 'src: "([^"]+)",.*?label: "([^"]+)"')
if not media_urls:
match = scrapertools.find_single_match(data, "<script type='text/javascript'>(eval.function.p,a,c,k,e,d..*?)</script>")
try:
data = jsunpack.unpack(match)
except:
pass
media_urls = scrapertools.find_multiple_matches(data, 'file\:"([^"]+\.mp4)",label:"([^"]+)"')
# Extrae la URL
for media_url, res in media_urls:
try:
title = ".%s %s [datoporn]" % (media_url.rsplit('.', 1)[1], res)
except:
title = ".%s %s [datoporn]" % (media_url[-4:], res)
video_urls.append([title, media_url])
m3u8 = scrapertools.find_single_match(data, 'src\:"([^"]+\.m3u8)"')
if not m3u8:
m3u8 = str(scrapertools.find_multiple_matches(data, 'player.updateSrc\({src:.?"([^"]+\.m3u8)"')).replace("['", "").replace("']", "")
calidades = ['720p']
if m3u8:
video_urls.insert(0, [".m3u8 720p [datoporn]" , m3u8])
for video_url in video_urls:
logger.info("%s - %s" % (video_url[0], video_url[1]))
return video_urls
-42
View File
@@ -1,42 +0,0 @@
{
"active": true,
"find_videos": {
"ignore_urls": [],
"patterns": [
{
"pattern": "(https://www.eporner.com/hd-porn/[A-z0-9-]+/[A-z0-9-]+)",
"url": "\\1"
}
]
},
"free": true,
"id": "eporner",
"name": "eporner",
"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": ""
}
-49
View File
@@ -1,49 +0,0 @@
# -*- coding: utf-8 -*-
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)
global data
data = httptools.downloadpage(page_url).data
if "<h2>WE ARE SORRY</h2>" in data or '<title>404 Not Found</title>' in data:
return False, config.get_localized_string(70449) % "eporner"
return True, ""
def get_video_url(page_url, video_password):
logger.info("(page_url='%s')" % page_url)
video_urls = []
data = httptools.downloadpage(page_url).data
data = re.sub(r"\n|\r|\t|&nbsp;|<br>|<br/>", "", data)
patron = "EP: {vid: '([^']+)',hash: '([^']+)'"
vid, hash = re.compile(patron, re.DOTALL).findall(data)[0]
hash = int_to_base36(int(hash[0:8], 16)) + int_to_base36(int(hash[8:16], 16)) + int_to_base36(
int(hash[16:24], 16)) + int_to_base36(int(hash[24:32], 16))
url = "https://www.eporner.com/xhr/video/%s?hash=%s" % (vid, hash)
jsondata = httptools.downloadpage(url).json
for source in jsondata["sources"]["mp4"]:
url = jsondata["sources"]["mp4"][source]["src"]
title = source.split(" ")[0]
video_urls.append(["[eporner] %s"% title, url])
return video_urls
# return sorted(video_urls, key=lambda i: int(i[0].split("p")[1]))
def int_to_base36(num):
"""Converts a positive integer into a base36 string."""
assert num >= 0
digits = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'.lower()
res = ''
while not res or num > 0:
num, i = divmod(num, 36)
res = digits[i] + res
return res
-41
View File
@@ -1,41 +0,0 @@
{
"active": true,
"find_videos": {
"ignore_urls": [],
"patterns": [
{
"pattern": "http://tv.fakings.com/embed/([a-z0-9A-Z]+)/",
"url": "http://tv.fakings.com/embed/\\1/"
}
]
},
"free": true,
"id": "fakingstv",
"name": "fakingstv",
"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
}
]
}
-20
View File
@@ -1,20 +0,0 @@
# -*- coding: utf-8 -*-
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)
return True, ""
def get_video_url(page_url, premium=False, user="", password="", video_password=""):
logger.info("url=" + page_url)
data = httptools.downloadpage(page_url).page
media_url = scrapertools.find_single_match(data, '\'file\': \'([^"]+)\',')
video_urls = []
video_urls.append([scrapertools.get_filename_from_url(media_url)[-4:] + " [fakingstv]", media_url])
return video_urls
-58
View File
@@ -1,58 +0,0 @@
{
"active": true,
"find_videos": {
"ignore_urls": [],
"patterns": [
{
"pattern": "(https://www.gotporn.com/[A-z0-9-]+/[A-z0-9-]+)",
"url": "\\1"
},
{
"pattern": "(https://mylust.com/videos/[0-9]+/[A-z0-9-]+/)",
"url": "\\1"
},
{
"pattern": "(https://www.stileproject.com/embed/[0-9]+)",
"url": "\\1"
},
{
"pattern": "(https://www.pornwatchers.com/embed/[0-9]+)",
"url": "\\1"
},
{
"pattern": "(https://www.pornrabbit.com/embed/[0-9]+)",
"url": "\\1"
}
]
},
"free": true,
"id": "gotporn",
"name": "gotporn",
"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": ""
}
-26
View File
@@ -1,26 +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)
global data
data = httptools.downloadpage(page_url).data
if "<h2>WE ARE SORRY</h2>" in data or '<title>404 Not Found</title>' in data:
return False, config.get_localized_string(70449) % "Mixdrop"
return True, ""
def get_video_url(page_url, video_password):
logger.info("(page_url='%s')" % page_url)
video_urls = []
url = scrapertools.find_single_match(data,'<source (?:id="video_source_\d+" |)src="([^"]+)" type=(?:\'|")video/mp4(?:\'|")')
host = scrapertools.find_single_match(page_url, '(https://.*?.com)')
url += "|Referer=%s" % host
logger.debug(url)
server = scrapertools.find_single_match(page_url, 'https://(?:www.|)([A-z0-9-]+).com')
video_urls.append(["[%s]" %server, url])
return video_urls
-42
View File
@@ -1,42 +0,0 @@
{
"active": true,
"find_videos": {
"ignore_urls": [],
"patterns": [
{
"pattern": "https://hclips.com/embed/([0-9]+)",
"url": "\\1"
}
]
},
"free": true,
"id": "hclips",
"name": "hclips",
"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://hclips.com/favicon-194x194.png"
}
-41
View File
@@ -1,41 +0,0 @@
# -*- coding: utf-8 -*-
# --------------------------------------------------------
# Conector hclips By Alfa development Group
# --------------------------------------------------------
from core import httptools
from core import scrapertools
from platformcode import logger, config
def test_video_exists(page_url):
logger.info("(page_url='%s')" % page_url)
global data
data = httptools.downloadpage(page_url).data
if "<h2>WE ARE SORRY</h2>" in data or '<title>404 Not Found</title>' in data:
return False, config.get_localized_string(70449) % "hclips"
return True, ""
def get_video_url(page_url, premium=False, user="", password="", video_password=""):
logger.info("url=" + page_url)
video_urls = []
url = "https://hclips.com/api/videofile.php?video_id=%s&lifetime=8640000" % page_url
headers = {'Referer': "https://hclips.com/embed/%s/" % page_url}
data = httptools.downloadpage(url, headers=headers).data
texto = scrapertools.find_single_match(data, 'video_url":"([^"]+)"')
url = dec_url(texto)
url = "https://hclips.com%s" % url
media_url = httptools.downloadpage(url, only_headers=True).url
video_urls.append(["[hclips]", media_url])
return video_urls
def dec_url(txt):
#truco del mendrugo
# txt = txt.replace('\u0410', 'A').replace('\u0412', 'B').replace('\u0421', 'C').replace('\u0415', 'E').replace('\u041c', 'M').replace('~', '=').replace(',','/')
txt = txt.decode('unicode-escape').encode('utf8')
txt = txt.replace('А', 'A').replace('В', 'B').replace('С', 'C').replace('Е', 'E').replace('М', 'M').replace('~', '=').replace(',','/')
import base64
url = base64.b64decode(txt)
return url
-42
View File
@@ -1,42 +0,0 @@
{
"active": true,
"find_videos": {
"ignore_urls": [],
"patterns": [
{
"pattern": "http://www.iceporn.com/embed/([0-9]+)",
"url": "\\1"
}
]
},
"free": true,
"id": "iceporn",
"name": "iceporn",
"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": ""
}
-22
View File
@@ -1,22 +0,0 @@
# -*- coding: utf-8 -*-
from core import httptools
from core import scrapertools
from platformcode import logger
def get_video_url(page_url, video_password):
logger.info("(page_url='%s')" % page_url)
video_urls = []
url = "https://www.iceporn.com/player_config_json/?vid=%s&aid=0&domain_id=0&embed=0&ref=null&check_speed=0" %page_url
data = httptools.downloadpage(url).data
data = scrapertools.find_single_match(data, '"files":(.*?)"quality"')
patron = '"([lh])q":"([^"]+)"'
matches = scrapertools.find_multiple_matches(data, patron)
for quality, scrapedurl in matches:
url = scrapedurl.replace("\/", "/")
if "l" in quality: quality = "360"
if "h" in quality: quality = "720"
video_urls.append(["[iceporn] %s" %quality, url])
return video_urls
-69
View File
@@ -1,69 +0,0 @@
{
"active": true,
"find_videos": {
"ignore_urls": [],
"patterns": [
{
"pattern": "(https://www.javbangers.com/video/[0-9]+/[A-z0-9-]+/)",
"url": "\\1"
},
{
"pattern": "(https://www.fapnado.com/videos/[0-9]+/[A-z0-9-]+/)",
"url": "\\1"
},
{
"pattern": "(https://www.xozilla.com/videos/[0-9]+/[A-z0-9-]+/)",
"url": "\\1"
},
{
"pattern": "(https://www.camwhoresbay.com/videos/[0-9]+/[A-z0-9-]+/)",
"url": "\\1"
}, {
"pattern": "(https://www.analdin.com/es/videos/[0-9]+/[A-z0-9-]+/)",
"url": "\\1"
},
{
"pattern": "(https://www.javbangers.com/embed/\\w+)",
"url": "\\1"
},
{
"pattern": "(https://www.pornrewind.com/embed/\\w+)",
"url": "\\1"
},
{
"pattern": "(https://severeporn.com/embed/\\w+)",
"url": "\\1"
}
]
},
"free": true,
"id": "javwhores",
"name": "javwhores",
"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": ""
}
-44
View File
@@ -1,44 +0,0 @@
# -*- coding: utf-8 -*-
# --------------------------------------------------------
# Conector javwhores By Alfa development Group
# --------------------------------------------------------
import re
from core import httptools
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) % "javwhores"
# global video_url, license_code
# video_url = scrapertools.find_single_match(response.data, "video_url: '([^']+)'")
# license_code = scrapertools.find_single_match(response.data, "license_code: '([^']+)'")
return True, ""
def get_video_url(page_url, premium=False, user="", password="", video_password=""):
logger.info()
itemlist = []
data = httptools.downloadpage(page_url).data
if "video_url_text" in data:
patron = '(?:video_url|video_alt_url|video_alt_url[0-9]*):\s*\'([^\']+)\'.*?'
patron += '(?:video_url_text|video_alt_url_text|video_alt_url[0-9]*_text):\s*\'([^\']+)\''
else:
patron = 'video_url:\s*\'([^\']+)\'.*?'
patron += 'postfix:\s*\'([^\']+)\''
matches = re.compile(patron,re.DOTALL).findall(data)
for url,quality in matches:
itemlist.append(['%s' %quality, url])
logger.debug(quality + " : " + url)
return itemlist
# return [["[javwhores]", decode(video_url, license_code)]]
-42
View File
@@ -1,42 +0,0 @@
{
"active": true,
"find_videos": {
"ignore_urls": [],
"patterns": [
{
"pattern": "(https://www.keezmovies.com/video/[A-z0-9-]+)",
"url": "\\1"
}
]
},
"free": true,
"id": "keezmovies",
"name": "keezmovies",
"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": ""
}
-26
View File
@@ -1,26 +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)
global data
data = httptools.downloadpage(page_url).data
if "<h2>WE ARE SORRY</h2>" in data or '<title>404 Not Found</title>' in data:
return False, config.get_localized_string(70449) % "keezmovies"
return True, ""
def get_video_url(page_url, video_password):
logger.info("(page_url='%s')" % page_url)
video_urls = []
data = httptools.downloadpage(page_url).data
patron = '"quality_(\d+)p":"([^"]+)"'
matches = scrapertools.find_multiple_matches(data, patron)
for quality, scrapedurl in matches:
url = scrapedurl.replace("\/", "/").replace("\u0026", "&")
video_urls.append(["[keezmovies] %sp" %quality, url])
return video_urls
-42
View File
@@ -1,42 +0,0 @@
{
"active": true,
"find_videos": {
"ignore_urls": [],
"patterns": [
{
"pattern": "(https://mangovideo.pw/embed/\\d+)",
"url": "\\1"
}
]
},
"free": true,
"id": "mangovideo",
"name": "mangovideo",
"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": ""
}
-39
View File
@@ -1,39 +0,0 @@
# -*- coding: utf-8 -*-
# --------------------------------------------------------
# Conector mangovideo By Alfa development Group
# --------------------------------------------------------
from core import httptools
from core import scrapertools
from platformcode import config
from platformcode import logger
server = {'1': 'http://www.mangovideo.pw/contents/videos/', '7' : 'http://server9.mangovideo.pw/contents/videos/',
'8' : 'http://s10.mangovideo.pw/contents/videos/', '9' : 'http://server2.mangovideo.pw/contents/videos/',
'10' : 'http://server217.mangovideo.pw/contents/videos/', '11' : 'http://234.mangovideo.pw/contents/videos/',
'12' : 'http://98.mangovideo.pw/contents/videos/', '13' : 'http://68.mangovideo.pw/contents/videos/',
'15' : 'http://45.mangovideo.pw/contents/videos/'
}
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) % "mangovideo"
return True, ""
def get_video_url(page_url, premium=False, user="", password="", video_password=""):
logger.info()
video_urls = []
data = httptools.downloadpage(page_url).data
matches = scrapertools.find_multiple_matches(data, 'function/0/https://mangovideo.pw/get_file/(\d+)/\w+/(.*?.mp4)')
for scrapedserver,scrapedurl in matches:
scrapedserver = server.get(scrapedserver, scrapedserver)
url = scrapedserver + scrapedurl
video_urls.append(["[mangovideo]", url])
return video_urls
-74
View File
@@ -1,74 +0,0 @@
{
"active": true,
"find_videos": {
"ignore_urls": [],
"patterns": [
{
"pattern": "http://(www.nuvid.com)/embed/([0-9]+)",
"url": "https://\\1/player_config_json/?vid=\\2&aid=0&domain_id=0&embed=0&ref=null&check_speed=0"
},
{
"pattern": "http://(www.drtuber.com)/embed/([0-9]+)",
"url": "https://\\1/player_config_json/?vid=\\2&aid=0&domain_id=0&embed=0&ref=null&check_speed=0"
},
{
"pattern": "http://(www.iceporn.com)/embed/([0-9]+)",
"url": "https://\\1/player_config_json/?vid=\\2&aid=0&domain_id=0&embed=0&ref=null&check_speed=0"
},
{
"pattern": "http://(www.viptube.com)/embed/([0-9]+)",
"url": "https://\\1/player_config_json/?vid=\\2&aid=0&domain_id=0&embed=0&ref=null&check_speed=0"
},
{
"pattern": "http://(www.vivatube.com)/embed/([0-9]+)",
"url": "https://\\1/player_config_json/?vid=\\2&aid=0&domain_id=0&embed=0&ref=null&check_speed=0"
},
{
"pattern": "https://(www.tubeon.com)/es/video/([0-9]+)/",
"url": "https://\\1/player_config_json/?vid=\\2&aid=0&domain_id=0&embed=0&ref=null&check_speed=0"
},
{
"pattern": "https://(www.hd21.com)/es/video/([0-9]+)/",
"url": "https://\\1/player_config_json/?vid=\\2&aid=0&domain_id=0&embed=0&ref=null&check_speed=0"
},
{
"pattern": "https://(www.yeptube.com)/es/video/([0-9]+)/",
"url": "https://\\1/player_config_json/?vid=\\2&aid=0&domain_id=0&embed=0&ref=null&check_speed=0"
},
{
"pattern": "https://(www.winporn.com)/es/video/([0-9]+)/",
"url": "https://\\1/player_config_json/?vid=\\2&aid=0&domain_id=0&embed=0&ref=null&check_speed=0"
}
]
},
"free": true,
"id": "nuvid",
"name": "nuvid",
"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": ""
}
-23
View File
@@ -1,23 +0,0 @@
# -*- coding: utf-8 -*-
from core import httptools
from core import scrapertools
from platformcode import logger
def get_video_url(page_url, video_password):
logger.info("(page_url='%s')" % page_url)
video_urls = []
server = scrapertools.find_single_match(page_url, 'https://www.([A-z0-9-]+).com')
data = httptools.downloadpage(page_url).data
data = scrapertools.find_single_match(data, '"files":(.*?)"quality"')
patron = '"([lh])q":"([^"]+)"'
matches = scrapertools.find_multiple_matches(data, patron)
for quality, scrapedurl in matches:
url = scrapedurl.replace("\/", "/")
if "l" in quality: quality = "360p"
if "h" in quality: quality = "720p"
video_urls.append(["[%s] %s" %(server,quality), url])
return video_urls
-50
View File
@@ -1,50 +0,0 @@
{
"active": true,
"find_videos": {
"ignore_urls": [],
"patterns": [
{
"pattern": "https://(?:www.|)pornhub.com/embed/([A-z0-9]+)",
"url": "https://www.pornhub.com/view_video.php?viewkey=\\1"
},
{
"pattern": "(https://www.pornhub.com/view_video.php?viewkey=[A-z0-9]+)",
"url": "\\1"
},
{
"pattern": "(pornhub.com/view_video.php\\?viewkey=[A-z0-9]+)",
"url": "https://www.\\1"
}
]
},
"free": true,
"id": "pornhub",
"name": "pornhub",
"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": ""
}
-38
View File
@@ -1,38 +0,0 @@
# -*- coding: utf-8 -*-
# --------------------------------------------------------
# Conector pornhub By Alfa development Group
# --------------------------------------------------------
from core import httptools
from core import scrapertools
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 "removed" in response.data \
or not "defaultQuality" in response.data \
or "is no longer available" in response.data:
return False, config.get_localized_string(70449) % "pornhub"
return True, ""
def get_video_url(page_url, user="", password="", video_password=""):
logger.info()
video_urls = []
data = httptools.downloadpage(page_url).data
data = scrapertools.find_single_match(data, '<div id="vpContentContainer">(.*?)</script>')
data = data.replace('" + "', '')
videourl = scrapertools.find_multiple_matches(data, 'var quality_(\d+)p=(.*?);')
scrapertools.printMatches(videourl)
for scrapedquality,scrapedurl in videourl:
orden = scrapertools.find_multiple_matches(scrapedurl, '\*\/([A-z0-9]+)')
logger.debug(orden)
url= ""
for i in orden:
url += scrapertools.find_single_match(data, '%s="([^"]+)"' %i)
logger.debug(url)
video_urls.append([scrapedquality + "p [pornhub]", url])
return video_urls
-42
View File
@@ -1,42 +0,0 @@
{
"active": true,
"find_videos": {
"ignore_urls": [],
"patterns": [
{
"pattern": "(https://www.pornrewind.com/embed/\\w+)",
"url": "\\1"
}
]
},
"free": true,
"id": "pornrewind",
"name": "pornrewind",
"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": ""
}
-33
View File
@@ -1,33 +0,0 @@
# -*- coding: utf-8 -*-
# --------------------------------------------------------
# Conector pornrewind By Alfa development Group
# --------------------------------------------------------
from core import httptools
from core import scrapertools
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) % "pornrewind"
global video_url, license_code
video_url = scrapertools.find_single_match(response.data, "video_url: '([^']+)'")
license_code = scrapertools.find_single_match(response.data, "license_code: '([^']+)'")
return True, ""
def get_video_url(page_url, premium=False, user="", password="", video_password=""):
logger.info()
# mediaurl = decode(video_url, license_code)
mediaurl = video_url
if not mediaurl.startswith("https"):
mediaurl = "https://%s" % mediaurl
return [["[pornrewind]", mediaurl]]
-46
View File
@@ -1,46 +0,0 @@
{
"active": true,
"find_videos": {
"ignore_urls": [],
"patterns": [
{
"pattern": "https://embed.redtube.com/\\?id=([A-z0-9]+)",
"url": "https://es.redtube.com/\\1"
},
{
"pattern": "(https://es.redtube.com/[A-z0-9]+)",
"url": "\\1"
}
]
},
"free": true,
"id": "redtube",
"name": "redtube",
"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": ""
}
-34
View File
@@ -1,34 +0,0 @@
# -*- coding: utf-8 -*-
# --------------------------------------------------------
# Conector redtube By Alfa development Group
# --------------------------------------------------------
from core import httptools
from core import scrapertools
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) % "redtube"
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,'mediaDefinition: \[(.*?)\]')
logger.debug(data)
patron = '"defaultQuality":.*?,"quality":"([^"]+)","videoUrl"\:"([^"]+)"'
matches = scrapertools.find_multiple_matches(data, patron)
for quality,scrapedurl in matches:
url = scrapedurl.replace("\/", "/")
video_urls.append(["[redtube] %s" %quality, url])
return video_urls
-42
View File
@@ -1,42 +0,0 @@
{
"active": true,
"find_videos": {
"ignore_urls": [],
"patterns": [
{
"pattern": "(https://www.tube8.com/[A-z0-9-+]+/[A-z0-9-]+/[0-9]+/)",
"url": "\\1"
}
]
},
"free": true,
"id": "tube8",
"name": "tube8",
"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": ""
}
-26
View File
@@ -1,26 +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)
global data
data = httptools.downloadpage(page_url).data
if "<h2>WE ARE SORRY</h2>" in data or '<title>404 Not Found</title>' in data:
return False, config.get_localized_string(70449) % "tube8"
return True, ""
def get_video_url(page_url, video_password):
logger.info("(page_url='%s')" % page_url)
video_urls = []
data = httptools.downloadpage(page_url).data
patron = '"quality":(\d+),"videoUrl":"([^"]+)"'
matches = scrapertools.find_multiple_matches(data, patron)
for quality, scrapedurl in matches:
url = scrapedurl.replace("\/", "/").replace("\u0026", "&")
video_urls.append(["[tube8] %sp" %quality, url])
return video_urls
-42
View File
@@ -1,42 +0,0 @@
{
"active": true,
"find_videos": {
"ignore_urls": [],
"patterns": [
{
"pattern": "https://www.tubeon.com/es/video/([0-9]+)/",
"url": "\\1"
}
]
},
"free": true,
"id": "tubeon",
"name": "tubeon",
"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": ""
}
-22
View File
@@ -1,22 +0,0 @@
# -*- coding: utf-8 -*-
from core import httptools
from core import scrapertools
from platformcode import logger
def get_video_url(page_url, video_password):
logger.info("(page_url='%s')" % page_url)
video_urls = []
url = "https://www.tubeon.com/player_config_json/?vid=%s&aid=0&domain_id=0&embed=0&ref=null&check_speed=0" %page_url
data = httptools.downloadpage(url).data
data = scrapertools.find_single_match(data, '"files":(.*?)"quality"')
patron = '"([lh])q":"([^"]+)"'
matches = scrapertools.find_multiple_matches(data, patron)
for quality, scrapedurl in matches:
url = scrapedurl.replace("\/", "/")
if "l" in quality: quality = "360"
if "h" in quality: quality = "720"
video_urls.append(["[tubeon] %s" %quality, url])
return video_urls
-42
View File
@@ -1,42 +0,0 @@
{
"active": true,
"find_videos": {
"ignore_urls": [],
"patterns": [
{
"pattern": "(https://www.tubst.net/embed/\\w+)",
"url": "\\1"
}
]
},
"free": true,
"id": "tubst",
"name": "tubst",
"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": ""
}
-34
View File
@@ -1,34 +0,0 @@
# -*- coding: utf-8 -*-
# --------------------------------------------------------
# Conector tubst By Alfa development Group
# --------------------------------------------------------
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)
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) % "tubst"
return True, ""
def get_video_url(page_url, premium=False, user="", password="", video_password=""):
logger.info("(page_url='%s')" % page_url)
video_urls = []
data = httptools.downloadpage(page_url).data
patron = """source src="([^"]+).*?res\s*='([^']+)"""
match = scrapertools.find_multiple_matches(data, patron)
for media_url, calidad in match:
title = "%s [tubst]" % (calidad)
video_urls.append([title, media_url, int(calidad)])
video_urls.sort(key=lambda x: x[2])
for video_url in video_urls:
video_url[2] = 0
logger.info("%s - %s" % (video_url[0], video_url[1]))
return video_urls
-42
View File
@@ -1,42 +0,0 @@
{
"active": true,
"find_videos": {
"ignore_urls": [],
"patterns": [
{
"pattern": "https://(?:www.|)txxx.com/(?:embed|videos)/([0-9]+)",
"url": "\\1"
}
]
},
"free": true,
"id": "txxx",
"name": "txxx",
"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": ""
}
-29
View File
@@ -1,29 +0,0 @@
# -*- coding: utf-8 -*-
from core import httptools
from core import scrapertools
from platformcode import logger
def get_video_url(page_url, video_password):
logger.info("(page_url='%s')" % page_url)
video_urls = []
url= "https://txxx.com/api/videofile.php?video_id=%s&lifetime=864000" % page_url
ref= "https://txxx.com/embed/%s/" % page_url
headers = {'Referer': ref}
data = httptools.downloadpage(url, headers=headers).data
texto = scrapertools.find_single_match(data, '"video_url":"([^"]+)"')
url = dec_url(texto)
url = "https://txxx.com%s" % url
url = httptools.downloadpage(url, only_headers=True).url
video_urls.append(["[TXX]", url])
return video_urls
def dec_url(txt):
#truco del mendrugo
# txt = txt.replace('\u0410', 'A').replace('\u0412', 'B').replace('\u0421', 'C').replace('\u0415', 'E').replace('\u041c', 'M').replace('~', '=').replace(',','/')
txt = txt.decode('unicode-escape').encode('utf8')
txt = txt.replace('А', 'A').replace('В', 'B').replace('С', 'C').replace('Е', 'E').replace('М', 'M').replace('~', '=').replace(',','/')
import base64
url = base64.b64decode(txt)
return url
-42
View File
@@ -1,42 +0,0 @@
{
"active": true,
"find_videos": {
"ignore_urls": [],
"patterns": [
{
"pattern": "(https://(?:www|).vipporns.com/embed/\\w+)",
"url": "\\1"
}
]
},
"free": true,
"id": "vipporns",
"name": "vipporns",
"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": ""
}
-31
View File
@@ -1,31 +0,0 @@
# -*- coding: utf-8 -*-
# --------------------------------------------------------
# Conector vipporns By Alfa development Group
# --------------------------------------------------------
from lib.kt_player import decode
from core import httptools
from core import scrapertools
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) % "vipporns"
global video_url, license_code
video_url = scrapertools.find_single_match(response.data, "video_url: '([^']+)'")
license_code = scrapertools.find_single_match(response.data, "license_code: '([^']+)'")
return True, ""
def get_video_url(page_url, premium=False, user="", password="", video_password=""):
logger.info()
return [["[vipporns]", decode(video_url, license_code)]]
-42
View File
@@ -1,42 +0,0 @@
{
"active": true,
"find_videos": {
"ignore_urls": [],
"patterns": [
{
"pattern": "http://www.viptube.com/embed/([0-9]+)",
"url": "\\1"
}
]
},
"free": true,
"id": "viptube",
"name": "viptube",
"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": ""
}
-22
View File
@@ -1,22 +0,0 @@
# -*- coding: utf-8 -*-
from core import httptools
from core import scrapertools
from platformcode import logger
def get_video_url(page_url, video_password):
logger.info("(page_url='%s')" % page_url)
video_urls = []
url = "https://www.viptube.com/player_config_json/?vid=%s&aid=0&domain_id=0&embed=0&ref=null&check_speed=0" %page_url
data = httptools.downloadpage(url).data
data = scrapertools.find_single_match(data, '"files":(.*?)"quality"')
patron = '"([lh])q":"([^"]+)"'
matches = scrapertools.find_multiple_matches(data, patron)
for quality, scrapedurl in matches:
url = scrapedurl.replace("\/", "/")
if "l" in quality: quality = "360"
if "h" in quality: quality = "720"
video_urls.append(["[viptube] %s" %quality, url])
return video_urls
-42
View File
@@ -1,42 +0,0 @@
{
"active": true,
"find_videos": {
"ignore_urls": [],
"patterns": [
{
"pattern": "http://www.vivatube.com/embed/([0-9]+)",
"url": "\\1"
}
]
},
"free": true,
"id": "vivatube",
"name": "vivatube",
"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": ""
}
-22
View File
@@ -1,22 +0,0 @@
# -*- coding: utf-8 -*-
from core import httptools
from core import scrapertools
from platformcode import logger
def get_video_url(page_url, video_password):
logger.info("(page_url='%s')" % page_url)
video_urls = []
url = "https://www.vivatube.com/player_config_json/?vid=%s&aid=0&domain_id=0&embed=0&ref=null&check_speed=0" %page_url
data = httptools.downloadpage(url).data
data = scrapertools.find_single_match(data, '"files":(.*?)"quality"')
patron = '"([lh])q":"([^"]+)"'
matches = scrapertools.find_multiple_matches(data, patron)
for quality, scrapedurl in matches:
url = scrapedurl.replace("\/", "/")
if "l" in quality: quality = "360"
if "h" in quality: quality = "720"
video_urls.append(["[vivatube] %s" %quality, url])
return video_urls
+3 -8
View File
@@ -6,7 +6,7 @@ import requests
from core import httptools
from lib import vvvvid_decoder
from platformcode import logger
from platformcode import logger, config
# Creating persistent session
current_session = requests.Session()
@@ -16,19 +16,18 @@ headers = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:62.0) Gecko/2010010
login_page = 'https://www.vvvvid.it/user/login'
conn_id = current_session.get(login_page, headers=headers).json()['data']['conn_id']
payload = {'conn_id': conn_id}
# logger.info('CONNECTION ID= ' + str(payload))
def test_video_exists(page_url):
logger.info("(page_url='%s')" % page_url)
data = httptools.downloadpage(page_url).data
if "Not Found" in data or "File was deleted" in data:
return False, "[VVVVID] The file does not exist or has been deleted"
return False, config.get_localized_string(70449) % "VVVVID"
else:
page_url = page_url.replace("/show/","/#!show/")
show_id = re.findall("#!show/([0-9]+)/", page_url)[0]
name = re.findall(show_id + "/(.+?)/", page_url)
if not name: return False, "[VVVVID] The file does not exist or has been deleted"
if not name: return False, config.get_localized_string(70449) % "VVVVID"
return True, ""
@@ -45,20 +44,16 @@ def get_video_url(page_url, premium=False, user="", password="", video_password=
# Getting info from Site
json_url = "https://www.vvvvid.it/vvvvid/ondemand/" + show_id + '/season/' +season_id + '/'
# logger.info('URL= ' + json_url)
json_file = current_session.get(json_url, headers=headers, params=payload).json()
logger.info(json_file['data'])
# Search for the correct episode
for episode in json_file['data']:
# import web_pdb; web_pdb.set_trace()
if episode['video_id'] == int(video_id):
ep_title = '[B]' + episode['title'] + '[/B]'
embed_info = vvvvid_decoder.dec_ei(episode['embed_info'])
embed_info = embed_info.replace('manifest.f4m','master.m3u8').replace('http://','https://').replace('/z/','/i/')
# import web_pdb; web_pdb.set_trace()
video_urls.append([ep_title, str(embed_info)])
return video_urls
-42
View File
@@ -1,42 +0,0 @@
{
"active": true,
"find_videos": {
"ignore_urls": [],
"patterns": [
{
"pattern": "https://www.winporn.com/es/video/([0-9]+)/",
"url": "\\1"
}
]
},
"free": true,
"id": "winporn",
"name": "winporn",
"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": ""
}
-22
View File
@@ -1,22 +0,0 @@
# -*- coding: utf-8 -*-
from core import httptools
from core import scrapertools
from platformcode import logger
def get_video_url(page_url, video_password):
logger.info("(page_url='%s')" % page_url)
video_urls = []
url = "https://www.winporn.com/player_config_json/?vid=%s&aid=0&domain_id=0&embed=0&ref=null&check_speed=0" %page_url
data = httptools.downloadpage(url).data
data = scrapertools.find_single_match(data, '"files":(.*?)"quality"')
patron = '"([lh])q":"([^"]+)"'
matches = scrapertools.find_multiple_matches(data, patron)
for quality, scrapedurl in matches:
url = scrapedurl.replace("\/", "/")
if "l" in quality: quality = "360"
if "h" in quality: quality = "720"
video_urls.append(["[winporn] %s" %quality, url])
return video_urls
+1 -1
View File
@@ -30,7 +30,7 @@ def test_video_exists(page_url):
data = httptools.downloadpage(page_url, headers=headers, follow_redirects=True, verify=False).data
real_url = page_url
if "Not Found" in data or "File was deleted" in data:
if "Not Found" in data or "File was deleted" in data or 'Video is processing' in data:
return False, config.get_localized_string(70449) % 'Wstream'
else:
return True, ""
-42
View File
@@ -1,42 +0,0 @@
{
"active": true,
"find_videos": {
"ignore_urls": [],
"patterns": [
{
"pattern": "https://xdrive.cc/embed/([A-z0-9]+)",
"url": "https://xdrive.cc/embed/\\1"
}
]
},
"free": true,
"id": "xdrive",
"name": "xdrive",
"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.postimg.cc/MHyNdRPZ/xdrive.png"
}
-33
View File
@@ -1,33 +0,0 @@
# -*- coding: utf-8 -*-
# ------------------------------------------------------------
# Alfa addon - KODI Plugin
# Conector para xdrive
# https://github.com/alfa-addon
# ------------------------------------------------------------
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 "Object not found" in data or "no longer exists" in data or '"sources": [false]' in data:
return False, config.get_localized_string(70449) % "xdrive"
return True, ""
def get_video_url(page_url, user="", password="", video_password=""):
logger.info("(page_url='%s')" % page_url)
video_urls = []
data1 = httptools.downloadpage("https://xdrive.cc/geo_ip").data
_ip = scrapertools.find_single_match(data1, 'ip":"([^"]+)')
data = httptools.downloadpage(page_url).data
video_id = scrapertools.find_single_match(data, '&video_id=(\d+)')
data = httptools.downloadpage("https://xdrive.cc/secure_link?ip=%s&video_id=%s" %(_ip, video_id)).data.replace("\\","")
videourl = scrapertools.find_multiple_matches(data, '"([^"]+)"')
for scrapedurl in videourl:
video_urls.append(["[xdrive]", scrapedurl])
return video_urls
-42
View File
@@ -1,42 +0,0 @@
{
"active": true,
"find_videos": {
"ignore_urls": [],
"patterns": [
{
"pattern": "(?:http|s)://xhamster.com/(?:xembed.php\\?video=|embed/)([0-9]+)",
"url": "https://xhamster.com/embed/\\1"
}
]
},
"free": true,
"id": "xhamster",
"name": "xhamster",
"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": ""
}
-16
View File
@@ -1,16 +0,0 @@
# -*- coding: utf-8 -*-
from core import httptools
from core import scrapertools
from platformcode import logger
def get_video_url(page_url, video_password):
logger.info("(page_url='%s')" % page_url)
video_urls = []
data = httptools.downloadpage(page_url).data
patron = '"fallback":"([^"]+)","quality":"([0-9]+p)"'
matches = scrapertools.find_multiple_matches(data, patron)
for scrapedurl, quality in matches:
url = scrapedurl.replace("\/", "/")
video_urls.append(["[xhamster] %s" %quality, url])
return video_urls
-42
View File
@@ -1,42 +0,0 @@
{
"active": true,
"find_videos": {
"ignore_urls": [],
"patterns": [
{
"pattern": "(https://www.xstreamcdn.com/v/[A-z0-9_-]+)",
"url": "\\1"
}
]
},
"free": true,
"id": "xstreamcdn",
"name": "xstreamcdn",
"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://library.vodkr.com/media/24364/xstreamlogo.jpg"
}
-43
View File
@@ -1,43 +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 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 "ile was deleted" in data or "Page Cannot Be Found" in data or "<title>Sorry 404 not found" in data:
return False, "[xstreamcdn.com] 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)
data = httptools.downloadpage("https://xstreamcdn.com/api/source/" + scrapertools.find_single_match(page_url, "/v/([A-z0-9_-]+)"), post=post, add_referer=page_url).data
json_data = jsontools.load(data)
check = json_data['success']
if check == True:
for element in json_data['data']:
media_url = element['file']
res = element['label']
tipo = element['type']
video_urls.append([tipo + " (" + res + ") [xstreamcdn]", media_url])
return video_urls
-52
View File
@@ -1,52 +0,0 @@
{
"active": true,
"find_videos": {
"ignore_urls": [],
"patterns": [
{
"pattern": "https://(?:flashservice|www).xvideos.com/embedframe/([0-9]+)",
"url": "https://www.xvideos.com/video\\1/"
},
{
"pattern": "https://www.xvideos.com/video([0-9]+)/",
"url": "https://www.xvideos.com/video\\1/"
},
{
"pattern": "http://www.xvideos.com/video([0-9]+)/",
"url": "https://www.xvideos.com/video\\1/"
}
]
},
"free": true,
"id": "xvideos",
"name": "xvideos",
"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
}
]
}
-29
View File
@@ -1,29 +0,0 @@
# -*- coding: utf-8 -*-
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)
global data
data = httptools.downloadpage(page_url).data
if "Lo sentimos" in data or "File not found" in data or 'og:video">' in data:
return False, config.get_localized_string(70449) % "Xvideos"
return True, ""
def get_video_url(page_url, video_password):
logger.info("(page_url='%s')" % page_url)
video_urls = []
data = httptools.downloadpage(page_url).data
patron = 'html5player.setVideo(?:Url|H)(\w+)\(\'([^\']+)\'\)'
matches = re.compile(patron,re.DOTALL).findall(data)
for quality,url in matches:
if "LS" in quality: quality = "HLS"
video_urls.append(["[xvideos] %s" %quality, url])
return video_urls
-42
View File
@@ -1,42 +0,0 @@
{
"active": true,
"find_videos": {
"ignore_urls": [],
"patterns": [
{
"pattern": "(https://www.youporn.com/(?:embed|watch)/[0-9]+/[A-z0-9-]+/)",
"url": "\\1"
}
]
},
"free": true,
"id": "youporn",
"name": "youporn",
"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": ""
}
-16
View File
@@ -1,16 +0,0 @@
# -*- coding: utf-8 -*-
from core import httptools
from core import scrapertools
from platformcode import logger
def get_video_url(page_url, video_password):
logger.info("(page_url='%s')" % page_url)
video_urls = []
data = httptools.downloadpage(page_url).data
patron = '"format":"","quality":"([^"]+)","videoUrl":"([^"]+)"'
matches = scrapertools.find_multiple_matches(data, patron)
for quality, scrapedurl in matches:
url = scrapedurl.replace("\/", "/").replace("\u0026", "&")
video_urls.append(["[youporn] %sp" %quality, url])
return video_urls