Tema: EPG XMLTV
Ver Mensaje Individual
Antiguo 02/11/2015, 15:11   #27
Alucard24
Usuario Registrado
 
Fecha de ingreso: 24/ene/2015
Mensajes: 32
Alucard24 está en el buen camino
cuelgo el script: (espero que al autor no le moleste)

import httplib
import xml.etree.ElementTree as ET
import datetime
import shutil

date1 = datetime.date.today()
date2 = date1 + datetime.timedelta(days=5)
sdate1 = date1.strftime("%Y-%m-%d")
sdate2 = date2.strftime("%Y-%m-%d")

print "establecemos las fechas"
print sdate1, sdate2


def patch_http_response_read(func):
def inner(*args):
try:
return func(*args)
except httplib.IncompleteRead, e:
return e.partial

return inner


httplib.HTTPResponse.read = patch_http_response_read(httplib.HTTPResponse.read)

params = "fechaInicio="+ sdate1 +"&fechaFin="+ sdate2 +"&genero=0&formato=xml&selPredefinicion=0&cadena%5B%5D=C4&cadena%5B%5D=LA2&cadena%5B%5D=T5&cadena%5B%5D=TVE&cadena%5B%5D=MV3&cadena%5B%5D=A3&cadena%5B%5D=SEXTA&cadena%5B%5D=NONSTP&cadena%5B%5D=FOXGE&cadena%5B%5D=NEOX&cadena%5B%5D=SCI-FI&cadena%5B%5D=FOXCR&cadena%5B%5D=PCM&cadena%5B%5D=FDFIC&cadena%5B%5D=SET&cadena%5B%5D=CPSER&cadena%5B%5D=COSMO&cadena%5B%5D=AXN&cadena%5B%5D=MV2&cadena%5B%5D=AMC&cadena%5B%5D=TNT&cadena%5B%5D=MTV&cadena%5B%5D=CL13&cadena%5B%5D=DCESP&cadena%5B%5D=SUNDAN&cadena%5B%5D=CPCOME&cadena%5B%5D=CPCOLE&cadena%5B%5D=CPXTRA&cadena%5B%5D=MV1&cadena%5B%5D=TCM&cadena%5B%5D=CPACCI&cadena%5B%5D=PARCH&cadena%5B%5D=HOLLYW&cadena%5B%5D=CPPART&cadena%5B%5D=CPLI2&cadena%5B%5D=CPLIG2&cadena%5B%5D=CPFUT&cadena%5B%5D=CPLIGA&cadena%5B%5D=IBERAL&cadena%5B%5D=CFERIA&cadena%5B%5D=CAZPES&cadena%5B%5D=TDEP&cadena%5B%5D=MVMTGP&cadena%5B%5D=BARNA&cadena%5B%5D=MVF1&cadena%5B%5D=GOLF%2B&cadena%5B%5D=CPDEP&cadena%5B%5D=CPD2&cadena%5B%5D=GARAGE&cadena%5B%5D=REALM&cadena%5B%5D=VJR&cadena%5B%5D=ODISEA&cadena%5B%5D=NATGW&cadena%5B%5D=NATGEO&cadena%5B%5D=HIST&cadena%5B%5D=BIOGRA&cadena%5B%5D=DCRMAX&cadena%5B%5D=CACOC&cadena%5B%5D=ENERGY&cadena%5B%5D=NOVA&cadena%5B%5D=DIVINI&cadena%5B%5D=DECASA&cadena%5B%5D=DCH&cadena%5B%5D=PANDA&cadena%5B%5D=PLAYDC&cadena%5B%5D=CLANTV&cadena%5B%5D=BOING&cadena%5B%5D=NICKJR&cadena%5B%5D=NICK&cadena%5B%5D=DCHXD&cadena%5B%5D=MEZZO&cadena%5B%5D=SOLMUS&cadena%5B%5D=VH1&cadena%5B%5D=40TV&cadena%5B%5D=BL&cadena%5B%5D=CNN&cadena%5B%5D=RTESP&cadena%5B%5D=NBC&cadena%5B%5D=FOXNWS&cadena%5B%5D=ENW&cadena%5B%5D=RUSSIA&cadena%5B%5D=GALAV&cadena%5B%5D=ORBE21&cadena%5B%5D=ANTV&cadena%5B%5D=PBOY&cadena%5B%5D=HDTQ10&cadena%5B%5D=HDTQ2&cadena%5B%5D=TQ6&cadena%5B%5D=TQ1&cadena%5B%5D=TQ2&cadena%5B%5D=TQ3&cadena%5B%5D=TQ4&cadena%5B%5D=TQ5"

headers = {"Content-type": "application/x-www-form-urlencoded","Accept": "application/xml"}

conn = httplib.HTTPConnection("comunicacion.canalplus.es")
conn.request("POST", "/guiaProgramacion/exportar", params, headers)
response = conn.getresponse()

print "comenzamos a leer el fichero"
myxml = response.read()
print "finalizamos de leer el fichero"
root = ET.fromstring(myxml)
pases = root.findall(".//pase")
canales = []

print "comenzamos a crear el xml"

tv = ET.Element("tv")

for ps in pases:
cadena = ps.attrib["cadena"]
if canales.count(cadena) == 0:
canales.append(cadena)
channel = ET.SubElement(tv, "channel", id=cadena)
ET.SubElement(channel, "display", lang="es").text = cadena
ET.SubElement(channel, "url").text = "http://www.plus.es"

for index,ps2 in enumerate(pases):
fecha = ps2.attrib["fecha"].replace("-","")
start = fecha + ps2.find('hora').text.replace(":","") + " +0200"
stop = start;
channel = ps2.attrib["cadena"]
titulo = ps2.find('titulo').text
descripcion_corta = ps2.find('descripcion_corta').text

if titulo == descripcion_corta:
title = descripcion_corta
else:
title = descripcion_corta + " - " + titulo

desc = ps2.find('sinopsis_larga').text
category = ps2.find('tipo_ficha').text
if index+1 < len(pases):
nextchannel = pases[index+1].attrib["cadena"]
if channel == nextchannel:
fechafinal = pases[index+1].attrib["fecha"].replace("-","")
stop = fechafinal + pases[index+1].find('hora').text.replace(":","") + " +0200"

programme = ET.SubElement(tv, "programme", start=start, stop=stop, channel=channel)
ET.SubElement(programme, "title", lang="es").text = title
ET.SubElement(programme, "desc", lang="es").text = desc
ET.SubElement(programme, "category", lang="es").text = category

print "finalizamos de crear el xml"

tree = ET.ElementTree(tv)
tree.write("C:/EPG/guide.xml")

print "salvado a disco el xml"
Alucard24 está desconectado
Respuesta rápida a este mensaje
Responder Citando Subir