- riorganizzate le impostazioni - aggiunte descrizioni tag qualità su cb01 (presto anche sugli altri) - aggiunto il supporto alle serie di polpotv - fixato server mystream - fix Rinumerazione per episodi Nuovi
79 lines
2.9 KiB
Python
Executable File
79 lines
2.9 KiB
Python
Executable File
# -*- coding: utf-8 -*-
|
|
|
|
from __future__ import print_function
|
|
|
|
from core import httptools
|
|
from core import scrapertools
|
|
from platformcode import logger
|
|
|
|
|
|
def test_video_exists(page_url):
|
|
logger.info("page_url='%s')" % page_url)
|
|
data = httptools.downloadpage(url=page_url).data
|
|
if "<h1>404 Not Found</h1>" in data:
|
|
return False, "El archivo no existe<br/>en streamcloud o ha sido borrado."
|
|
elif "<h1>File Not Found</h1>" in data:
|
|
return False, "El archivo no existe<br/>en streamcloud o ha sido borrado."
|
|
elif "<h1>Archivo no encontrado</h1>" in data:
|
|
return False, "El archivo no existe<br/>en streamcloud o ha sido borrado."
|
|
else:
|
|
return True, ""
|
|
|
|
|
|
def get_video_url(page_url, premium=False, user="", password="", video_password=""):
|
|
logger.info("url=" + page_url)
|
|
# Lo pide una vez
|
|
headers = [
|
|
['User-Agent', 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14']]
|
|
data = httptools.downloadpage(page_url, headers=headers).data
|
|
|
|
media_url = scrapertools.find_single_match(data, 'file\: "([^"]+)"')
|
|
|
|
if len(media_url) == 0:
|
|
post = ""
|
|
matches = scrapertools.find_multiple_matches(data, '<input.*?name="([^"]+)".*?value="([^"]*)">')
|
|
for inputname, inputvalue in matches:
|
|
post += inputname + "=" + inputvalue + "&"
|
|
post = post.replace("op=download1", "op=download2")
|
|
data = httptools.downloadpage(page_url, post=post).data
|
|
if 'id="justanotice"' in data:
|
|
logger.info("data=" + data)
|
|
logger.info("Ha saltado el detector de adblock")
|
|
return []
|
|
# Extrae la URL
|
|
media_url = scrapertools.find_single_match(data, 'file\: "([^"]+)"')
|
|
video_urls = []
|
|
video_urls.append([scrapertools.get_filename_from_url(media_url)[-4:] + " [streamcloud]", media_url+"|Referer="+page_url])
|
|
for video_url in video_urls:
|
|
logger.info("%s - %s" % (video_url[0], video_url[1]))
|
|
return video_urls
|
|
|
|
|
|
if __name__ == "__main__":
|
|
import getopt
|
|
import sys
|
|
options, arguments = getopt.getopt(sys.argv[1:], "", ["video_url=", "login=", "password="])
|
|
video_url = ""
|
|
login = ""
|
|
password = ""
|
|
logger.info("%s %s" % (str(options), str(arguments)))
|
|
for option, argument in options:
|
|
print(option, argument)
|
|
if option == "--video_url":
|
|
video_url = argument
|
|
elif option == "--login":
|
|
login = argument
|
|
elif option == "--password":
|
|
password = argument
|
|
else:
|
|
assert False, "Opcion desconocida"
|
|
if video_url == "":
|
|
print("ejemplo de invocacion")
|
|
print("streamcloud --video_url http://xxx --login usuario --password secreto")
|
|
else:
|
|
if login != "":
|
|
premium = True
|
|
else:
|
|
premium = False
|
|
print(get_video_url(video_url, premium, login, password))
|