aggiunti server anavids, streamtape, vidmoly
fix animeworld
This commit is contained in:
@@ -138,5 +138,5 @@ def findvideos(item):
|
|||||||
support.log('findvideos', item)
|
support.log('findvideos', item)
|
||||||
return support.hdpass_get_servers(item)
|
return support.hdpass_get_servers(item)
|
||||||
|
|
||||||
def play(item):
|
# def play(item):
|
||||||
return support.hdpass_get_url(item)
|
# return support.hdpass_get_url(item)
|
||||||
+33
-37
@@ -145,48 +145,44 @@ def findvideos(item):
|
|||||||
import time
|
import time
|
||||||
support.log(item)
|
support.log(item)
|
||||||
itemlist = []
|
itemlist = []
|
||||||
matches = support.match(item, patron=r'class="tab.*?data-name="([0-9]+)">', headers=headers)
|
matches = support.match(item, patron=r'data-name="([0-9]+)">', headers=headers)
|
||||||
data = matches.data
|
data = matches.data
|
||||||
matches = matches.matches
|
matches = matches.matches
|
||||||
videoData = ''
|
videoData = []
|
||||||
|
|
||||||
for serverid in matches:
|
for serverid in matches:
|
||||||
if not item.number: item.number = support.scrapertools.find_single_match(item.title, r'(\d+) -')
|
if not item.number: item.number = support.match(item.title, patron=r'(\d+) -').match
|
||||||
block = support.scrapertools.find_multiple_matches(data, 'data-id="' + serverid + '">(.*?)<div class="server')
|
block = support.match(data, patron=r'data-id="' + serverid + r'">(.*?)<div class="server').match
|
||||||
ID = support.scrapertools.find_single_match(str(block), r'<a data-id="([^"]+)" data-base="' + (item.number if item.number else '1') + '"')
|
ID = support.match(block, patron=r'<a data-id="([^"]+)" data-base="' + (item.number if item.number else '1') + '"').match
|
||||||
support.log('ID= ',serverid)
|
|
||||||
if id:
|
if serverid == '18':
|
||||||
if serverid == '26':
|
url = support.match('%s/ajax/episode/serverPlayer?id=%s' % (host, ID), patron=r'source src="([^"]+)"', debug=False).match
|
||||||
matches = support.match('%s/ajax/episode/serverPlayer?id=%s' % (host, item.url.split('/')[-1]), patron=r'<a href="([^"]+)"', ).matches
|
itemlist.append(
|
||||||
for url in matches:
|
support.Item(
|
||||||
videoData += '\n' + url
|
channel=item.channel,
|
||||||
else:
|
action="play",
|
||||||
try:
|
title='diretto',
|
||||||
dataJson = support.httptools.downloadpage('%s/ajax/episode/info?id=%s&server=%s&ts=%s' % (host, ID, serverid, int(time.time())), headers=[['x-requested-with', 'XMLHttpRequest']]).data
|
quality='',
|
||||||
json = jsontools.load(dataJson)
|
url=url,
|
||||||
support.log(json)
|
server='directo',
|
||||||
if 'keepsetsu' in json['grabber']:
|
fulltitle=item.fulltitle,
|
||||||
matches = support.match(json['grabber'], patron=r'<iframe\s*src="([^"]+)"'),matches
|
show=item.show,
|
||||||
for url in matches:
|
contentType=item.contentType,
|
||||||
videoData += '\n' + url
|
folder=False))
|
||||||
else:
|
|
||||||
videoData += '\n' + json['grabber']
|
elif serverid == '26':
|
||||||
|
matches = support.match('%s/ajax/episode/serverPlayer?id=%s' % (host, item.url.split('/')[-1]), patron=r'<a href="([^"]+)"', ).matches
|
||||||
|
for url in matches:
|
||||||
|
videoData.append(url)
|
||||||
|
else:
|
||||||
|
try:
|
||||||
|
dataJson = support.match('%s/ajax/episode/info?id=%s&server=%s&ts=%s' % (host, ID, serverid, int(time.time())), headers=[['x-requested-with', 'XMLHttpRequest']]).data
|
||||||
|
json = jsontools.load(dataJson)
|
||||||
|
support.log(json)
|
||||||
|
videoData.append(json['grabber'])
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
|
||||||
if serverid == '28':
|
|
||||||
itemlist.append(
|
|
||||||
support.Item(
|
|
||||||
channel=item.channel,
|
|
||||||
action="play",
|
|
||||||
title='diretto',
|
|
||||||
quality='',
|
|
||||||
url=json['grabber'],
|
|
||||||
server='directo',
|
|
||||||
fulltitle=item.fulltitle,
|
|
||||||
show=item.show,
|
|
||||||
contentType=item.contentType,
|
|
||||||
folder=False))
|
|
||||||
except:
|
|
||||||
pass
|
|
||||||
|
|
||||||
return support.server(item, videoData, itemlist)
|
return support.server(item, videoData, itemlist)
|
||||||
|
|
||||||
|
|||||||
@@ -126,6 +126,3 @@ def newest(categoria):
|
|||||||
def findvideos(item):
|
def findvideos(item):
|
||||||
support.log('findvideos ->', item)
|
support.log('findvideos ->', item)
|
||||||
return support.hdpass_get_servers(item)
|
return support.hdpass_get_servers(item)
|
||||||
|
|
||||||
def play(item):
|
|
||||||
return support.hdpass_get_url(item)
|
|
||||||
@@ -143,6 +143,3 @@ def findvideos(item):
|
|||||||
matches = support.match(url,patron=r'<a href="([^"]+)">(\d+)<', patronBlock=r'<h3>EPISODIO</h3><ul>(.*?)</ul>').matches
|
matches = support.match(url,patron=r'<a href="([^"]+)">(\d+)<', patronBlock=r'<h3>EPISODIO</h3><ul>(.*?)</ul>').matches
|
||||||
if matches: item.url = support.urlparse.urljoin(url, matches[-1][0])
|
if matches: item.url = support.urlparse.urljoin(url, matches[-1][0])
|
||||||
return support.hdpass_get_servers(item)
|
return support.hdpass_get_servers(item)
|
||||||
|
|
||||||
def play(item):
|
|
||||||
return support.hdpass_get_url(item)
|
|
||||||
+39
-19
@@ -34,38 +34,44 @@ from specials import autoplay
|
|||||||
def hdpass_get_servers(item):
|
def hdpass_get_servers(item):
|
||||||
def get_hosts(url, quality):
|
def get_hosts(url, quality):
|
||||||
ret = []
|
ret = []
|
||||||
page = httptools.downloadpage(url).data
|
page = httptools.downloadpage(url, CF=False).data
|
||||||
|
|
||||||
mir = scrapertools.find_single_match(page, patron_mir)
|
mir = scrapertools.find_single_match(page, patron_mir)
|
||||||
|
|
||||||
for mir_url, srv in scrapertools.find_multiple_matches(mir, patron_option):
|
with futures.ThreadPoolExecutor() as executor:
|
||||||
mir_url = scrapertools.decodeHtmlentities(mir_url)
|
thL = []
|
||||||
ret.append(Item(channel=item.channel,
|
for mir_url, srv in scrapertools.find_multiple_matches(mir, patron_option):
|
||||||
action="play",
|
mir_url = scrapertools.decodeHtmlentities(mir_url)
|
||||||
fulltitle=item.fulltitle,
|
log(mir_url)
|
||||||
quality=quality,
|
it = Item(channel=item.channel,
|
||||||
show=item.show,
|
action="play",
|
||||||
thumbnail=item.thumbnail,
|
fulltitle=item.fulltitle,
|
||||||
contentType=item.contentType,
|
quality=quality,
|
||||||
title=srv,
|
show=item.show,
|
||||||
server=srv,
|
thumbnail=item.thumbnail,
|
||||||
url= mir_url))
|
contentType=item.contentType,
|
||||||
|
title=srv,
|
||||||
|
# server=srv,
|
||||||
|
url= mir_url)
|
||||||
|
thL.append(executor.submit(hdpass_get_url, it))
|
||||||
|
for res in futures.as_completed(thL):
|
||||||
|
if res.result():
|
||||||
|
ret.append(res.result()[0])
|
||||||
return ret
|
return ret
|
||||||
# Carica la pagina
|
# Carica la pagina
|
||||||
itemlist = []
|
itemlist = []
|
||||||
if 'hdpass' in item.url or 'hdplayer' in item.url:
|
if 'hdpass' in item.url or 'hdplayer' in item.url:
|
||||||
url = item.url
|
url = item.url
|
||||||
else:
|
else:
|
||||||
data = httptools.downloadpage(item.url).data.replace('\n', '')
|
data = httptools.downloadpage(item.url, CF=False).data.replace('\n', '')
|
||||||
patron = r'<iframe(?: id="[^"]+")? width="[^"]+" height="[^"]+" src="([^"]+)"[^>]+><\/iframe>'
|
patron = r'<iframe(?: id="[^"]+")? width="[^"]+" height="[^"]+" src="([^"]+)"[^>]+><\/iframe>'
|
||||||
url = scrapertools.find_single_match(data, patron).replace("?alta", "")
|
url = scrapertools.find_single_match(data, patron)
|
||||||
url = url.replace("&download=1", "")
|
url = url.replace("&download=1", "")
|
||||||
if 'hdpass' not in url and 'hdplayer' not in url:
|
if 'hdpass' not in url and 'hdplayer' not in url:
|
||||||
return itemlist
|
return itemlist
|
||||||
if not url.startswith('http'):
|
if not url.startswith('http'):
|
||||||
url = 'https:' + url
|
url = 'https:' + url
|
||||||
|
|
||||||
data = httptools.downloadpage(url).data
|
data = httptools.downloadpage(url, CF=False).data
|
||||||
patron_res = '<div class="buttons-bar resolutions-bar">(.*?)<div class="buttons-bar'
|
patron_res = '<div class="buttons-bar resolutions-bar">(.*?)<div class="buttons-bar'
|
||||||
patron_mir = '<div class="buttons-bar hosts-bar">(.*?)<div id="fake'
|
patron_mir = '<div class="buttons-bar hosts-bar">(.*?)<div id="fake'
|
||||||
patron_option = r'<a href="([^"]+?)".*?>([^<]+?)</a>'
|
patron_option = r'<a href="([^"]+?)".*?>([^<]+?)</a>'
|
||||||
@@ -84,7 +90,7 @@ def hdpass_get_servers(item):
|
|||||||
|
|
||||||
def hdpass_get_url(item):
|
def hdpass_get_url(item):
|
||||||
patron_media = r'<iframe allowfullscreen custom-src="([^"]+)'
|
patron_media = r'<iframe allowfullscreen custom-src="([^"]+)'
|
||||||
data = httptools.downloadpage(item.url).data
|
data = httptools.downloadpage(item.url, CF=False).data
|
||||||
item.url = base64.b64decode(scrapertools.find_single_match(data, patron_media))
|
item.url = base64.b64decode(scrapertools.find_single_match(data, patron_media))
|
||||||
return [item]
|
return [item]
|
||||||
|
|
||||||
@@ -1126,7 +1132,7 @@ def server(item, data='', itemlist=[], headers='', AutoPlay=True, CheckLinks=Tru
|
|||||||
|
|
||||||
item.title = typo(item.contentTitle.strip(),'bold') if item.contentType == 'movie' or (config.get_localized_string(30161) in item.title) else item.title
|
item.title = typo(item.contentTitle.strip(),'bold') if item.contentType == 'movie' or (config.get_localized_string(30161) in item.title) else item.title
|
||||||
|
|
||||||
videoitem.plot= typo(videoitem.title, 'bold') + typo(videoitem.quality, '_ [] bold')
|
videoitem.plot= typo(videoitem.title, 'bold') + (typo(videoitem.quality, '_ [] bold') if item.quality else '')
|
||||||
videoitem.title = (item.title if item.channel not in ['url'] else '') + (typo(videoitem.title, '_ color kod [] bold') if videoitem.title else "") + (typo(videoitem.quality, '_ color kod []') if videoitem.quality else "")
|
videoitem.title = (item.title if item.channel not in ['url'] else '') + (typo(videoitem.title, '_ color kod [] bold') if videoitem.title else "") + (typo(videoitem.quality, '_ color kod []') if videoitem.quality else "")
|
||||||
videoitem.fulltitle = item.fulltitle
|
videoitem.fulltitle = item.fulltitle
|
||||||
videoitem.show = item.show
|
videoitem.show = item.show
|
||||||
@@ -1291,3 +1297,17 @@ def addQualityTag(item, itemlist, data, patron):
|
|||||||
folder=False))
|
folder=False))
|
||||||
else:
|
else:
|
||||||
log('nessun tag qualità trovato')
|
log('nessun tag qualità trovato')
|
||||||
|
|
||||||
|
def get_jwplayer_mediaurl(data, srvName):
|
||||||
|
video_urls = []
|
||||||
|
block = scrapertools.find_single_match(data, r'sources: \[([^\]]+)\]')
|
||||||
|
sources = scrapertools.find_multiple_matches(block, r'file:\s*"([^"]+)"(?:,label:\s*"([^"]+)")?')
|
||||||
|
if not sources:
|
||||||
|
sources = scrapertools.find_multiple_matches(data, r'src:\s*"([^"]+)",\s*type:\s*"[^"]+",[^,]+,\s*label:\s*"([^"]+)"')
|
||||||
|
for url, quality in sources:
|
||||||
|
quality = 'auto' if not quality else quality
|
||||||
|
if url.split('.')[-1] != 'mpd':
|
||||||
|
video_urls.append(['.' + url.split('.')[-1] + ' [' + quality + '] [' + srvName + ']', url])
|
||||||
|
|
||||||
|
video_urls.sort(key=lambda x: x[0].split()[1])
|
||||||
|
return video_urls
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
{
|
||||||
|
"active": true,
|
||||||
|
"find_videos": {
|
||||||
|
"ignore_urls": [],
|
||||||
|
"patterns": [
|
||||||
|
{
|
||||||
|
"pattern": "anavids.com/((?:embed-)?[0-9a-zA-Z]+)",
|
||||||
|
"url": "https://anavids.com/\\1.html"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"free": true,
|
||||||
|
"id": "anavids",
|
||||||
|
"name": "AnaVids",
|
||||||
|
"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://supervideo.tv/images/logo-player.png"
|
||||||
|
}
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
from core import httptools, support
|
||||||
|
from core import scrapertools
|
||||||
|
from platformcode import config, logger
|
||||||
|
|
||||||
|
|
||||||
|
def test_video_exists(page_url):
|
||||||
|
logger.info("(page_url='%s')" % page_url)
|
||||||
|
|
||||||
|
data = httptools.downloadpage(page_url, cookies=False).data
|
||||||
|
if 'File you are looking for is not found.' in data:
|
||||||
|
return False, config.get_localized_string(70449) % "AvaVids"
|
||||||
|
|
||||||
|
return True, ""
|
||||||
|
|
||||||
|
|
||||||
|
def get_video_url(page_url, premium=False, user="", password="", video_password=""):
|
||||||
|
logger.info("url=" + page_url)
|
||||||
|
data = httptools.downloadpage(page_url).data
|
||||||
|
video_urls = support.get_jwplayer_mediaurl(data, 'AvaVids')
|
||||||
|
return video_urls
|
||||||
@@ -1,8 +1,12 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
import urllib
|
import sys
|
||||||
|
if sys.version_info[0] >= 3:
|
||||||
|
import urllib.parse as urllib
|
||||||
|
else:
|
||||||
|
import urllib
|
||||||
|
|
||||||
from core import httptools, jsontools
|
from core import httptools, jsontools
|
||||||
from platformcode import logger
|
from platformcode import logger, config
|
||||||
|
|
||||||
|
|
||||||
def test_video_exists(page_url):
|
def test_video_exists(page_url):
|
||||||
@@ -11,7 +15,7 @@ def test_video_exists(page_url):
|
|||||||
data_json = httptools.downloadpage(page_url.replace('/v/', '/api/source/'), headers=[['x-requested-with', 'XMLHttpRequest']], post=post).data
|
data_json = httptools.downloadpage(page_url.replace('/v/', '/api/source/'), headers=[['x-requested-with', 'XMLHttpRequest']], post=post).data
|
||||||
json = jsontools.load(data_json)
|
json = jsontools.load(data_json)
|
||||||
if not json['data']:
|
if not json['data']:
|
||||||
return False, "Video not found"
|
return False, config.get_localized_string(70449) % "AnimeWorld"
|
||||||
|
|
||||||
return True, ""
|
return True, ""
|
||||||
|
|
||||||
@@ -27,7 +31,7 @@ def get_video_url(page_url, user="", password="", video_password=""):
|
|||||||
media_url = file['file']
|
media_url = file['file']
|
||||||
label = file['label']
|
label = file['label']
|
||||||
extension = file['type']
|
extension = file['type']
|
||||||
video_urls.append([label + " " + extension + ' [animeworld]', media_url])
|
video_urls.append([label + " " + extension + ' [AnimeWorld]', media_url])
|
||||||
|
|
||||||
|
|
||||||
return video_urls
|
return video_urls
|
||||||
|
|||||||
+2
-10
@@ -1,6 +1,6 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
from core import httptools
|
from core import httptools, support
|
||||||
from core import scrapertools
|
from core import scrapertools
|
||||||
from platformcode import config, logger
|
from platformcode import config, logger
|
||||||
|
|
||||||
@@ -17,15 +17,7 @@ def test_video_exists(page_url):
|
|||||||
|
|
||||||
def get_video_url(page_url, premium=False, user="", password="", video_password=""):
|
def get_video_url(page_url, premium=False, user="", password="", video_password=""):
|
||||||
logger.info("url=" + page_url)
|
logger.info("url=" + page_url)
|
||||||
video_urls = []
|
|
||||||
data = httptools.downloadpage(page_url).data
|
data = httptools.downloadpage(page_url).data
|
||||||
# logger.info(data)
|
# logger.info(data)
|
||||||
block = scrapertools.find_single_match(data, r'sources: \[([^\]]+)\]')
|
video_urls = support.get_jwplayer_mediaurl(data, 'Onlystream')
|
||||||
sources = scrapertools.find_multiple_matches(block, r'file:\s*"([^"]+)"(?:,label:\s*"([^"]+)")?')
|
|
||||||
if not sources:
|
|
||||||
sources = scrapertools.find_multiple_matches(data, r'src:\s*"([^"]+)",\s*type:\s*"[^"]+",[^,]+,\s*label:\s*"([^"]+)"')
|
|
||||||
for url, quality in sources:
|
|
||||||
quality = 'auto' if not quality else quality
|
|
||||||
video_urls.append(['.' + url.split('.')[-1] + ' [' + quality + '] [Onlystream]', url])
|
|
||||||
video_urls.sort(key=lambda x: x[0].split()[1])
|
|
||||||
return video_urls
|
return video_urls
|
||||||
|
|||||||
@@ -0,0 +1,42 @@
|
|||||||
|
{
|
||||||
|
"active": true,
|
||||||
|
"find_videos": {
|
||||||
|
"ignore_urls": [],
|
||||||
|
"patterns": [
|
||||||
|
{
|
||||||
|
"pattern": "https?://streamtape\\.com/e/(\\w+)",
|
||||||
|
"url": "https://streamtape.com/e/\\1"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"free": true,
|
||||||
|
"id": "streamtape",
|
||||||
|
"name": "Streamtape",
|
||||||
|
"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": ""
|
||||||
|
}
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
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 "Video not found" in data:
|
||||||
|
return False, config.get_localized_string(70449) % "Streamtape"
|
||||||
|
return True, ""
|
||||||
|
|
||||||
|
|
||||||
|
def get_video_url(page_url, premium=False, user="", password="", video_password=""):
|
||||||
|
logger.info("url=" + page_url)
|
||||||
|
video_urls = []
|
||||||
|
global data
|
||||||
|
|
||||||
|
url = scrapertools.find_single_match(data, 'id="videolink"[^>]+>\n?\s*//(.*?)<')
|
||||||
|
if url:
|
||||||
|
media_url = 'https://' + url + '&stream=1'
|
||||||
|
video_urls.append([".mp4 [Streamtape]", media_url])
|
||||||
|
|
||||||
|
return video_urls
|
||||||
+2
-6
@@ -3,7 +3,7 @@
|
|||||||
import time
|
import time
|
||||||
import urllib
|
import urllib
|
||||||
|
|
||||||
from core import httptools
|
from core import httptools, support
|
||||||
from core import scrapertools
|
from core import scrapertools
|
||||||
from platformcode import logger, config
|
from platformcode import logger, config
|
||||||
|
|
||||||
@@ -29,9 +29,5 @@ def get_video_url(page_url, premium=False, user="", password="", video_password=
|
|||||||
time.sleep(6)
|
time.sleep(6)
|
||||||
data = httptools.downloadpage(page_url_post, post=post).data
|
data = httptools.downloadpage(page_url_post, post=post).data
|
||||||
logger.info("(data page_url='%s')" % data)
|
logger.info("(data page_url='%s')" % data)
|
||||||
sources = scrapertools.find_single_match(data, r'sources: \[([^\]]+)\]')
|
video_urls = support.get_jwplayer_mediaurl(data, 'Turbovid')
|
||||||
|
|
||||||
for media_url in scrapertools.find_multiple_matches(sources, '"([^"]+)"'):
|
|
||||||
ext = scrapertools.get_filename_from_url(media_url)[-4:]
|
|
||||||
video_urls.append(["%s [%s]" % (ext, server), media_url])
|
|
||||||
return video_urls
|
return video_urls
|
||||||
|
|||||||
@@ -0,0 +1,46 @@
|
|||||||
|
{
|
||||||
|
"active": true,
|
||||||
|
"find_videos": {
|
||||||
|
"ignore_urls": [],
|
||||||
|
"patterns": [
|
||||||
|
{
|
||||||
|
"pattern": "https?://vidmoly.net/(?:embed-)?(\\w+)\\.html",
|
||||||
|
"url": "https://vidmoly.net/embed-\\1.html"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"pattern": "https?://fasturl.ga/(?:embed-)?(\\w+)\\.html",
|
||||||
|
"url": "https://vidmoly.net/embed-\\1.html"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"free": true,
|
||||||
|
"id": "vidmoly",
|
||||||
|
"name": "Vidmoly",
|
||||||
|
"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": ""
|
||||||
|
}
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
|
||||||
|
from core import httptools, support
|
||||||
|
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 "Not Found" in data:
|
||||||
|
return False, config.get_localized_string(70449) % "Vidmoly"
|
||||||
|
return True, ""
|
||||||
|
|
||||||
|
|
||||||
|
def get_video_url(page_url, premium=False, user="", password="", video_password=""):
|
||||||
|
logger.info("url=" + page_url)
|
||||||
|
global data
|
||||||
|
video_urls = support.get_jwplayer_mediaurl(data, 'Vidmoly')
|
||||||
|
|
||||||
|
return video_urls
|
||||||
Reference in New Issue
Block a user