KoD 1.1
- Ottimizzata e migliorata la ricerca globale - fix Mega - altri cambiamenti minori
This commit is contained in:
+2
-3
@@ -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
|
||||
|
||||
@@ -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']
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
@@ -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
|
||||
|
||||
@@ -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": ""
|
||||
}
|
||||
@@ -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
|
||||
@@ -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"
|
||||
}
|
||||
@@ -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
|
||||
@@ -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": ""
|
||||
}
|
||||
@@ -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| |<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
|
||||
|
||||
@@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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
|
||||
@@ -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": ""
|
||||
}
|
||||
@@ -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
|
||||
@@ -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"
|
||||
}
|
||||
@@ -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
|
||||
@@ -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": ""
|
||||
}
|
||||
@@ -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
|
||||
|
||||
@@ -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": ""
|
||||
}
|
||||
@@ -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)]]
|
||||
@@ -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": ""
|
||||
}
|
||||
@@ -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
|
||||
@@ -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": ""
|
||||
}
|
||||
@@ -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
|
||||
@@ -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": ""
|
||||
}
|
||||
@@ -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
|
||||
@@ -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": ""
|
||||
}
|
||||
@@ -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
|
||||
@@ -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": ""
|
||||
}
|
||||
@@ -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]]
|
||||
@@ -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": ""
|
||||
}
|
||||
@@ -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
|
||||
@@ -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": ""
|
||||
}
|
||||
@@ -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
|
||||
@@ -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": ""
|
||||
}
|
||||
@@ -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
|
||||
|
||||
@@ -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": ""
|
||||
}
|
||||
@@ -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
|
||||
@@ -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": ""
|
||||
}
|
||||
@@ -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
|
||||
@@ -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": ""
|
||||
}
|
||||
@@ -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)]]
|
||||
@@ -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": ""
|
||||
}
|
||||
@@ -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
|
||||
|
||||
@@ -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": ""
|
||||
}
|
||||
@@ -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
@@ -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
|
||||
@@ -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": ""
|
||||
}
|
||||
@@ -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
@@ -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, ""
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
@@ -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
|
||||
@@ -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": ""
|
||||
}
|
||||
@@ -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
|
||||
@@ -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"
|
||||
}
|
||||
@@ -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
|
||||
@@ -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
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -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
|
||||
@@ -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": ""
|
||||
}
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user