Re: Nouvelle version de XML TV Fr : Comment ça va fonctionner ?
Posté : jeu. 4 juin 2020 08:14
TV en direct | Radio | Informatique
https://forum.racacax.fr/
1/ pour une epg online (site web), voir du coté des suisses. Bravo à eux ! https://xmltv.ch/ , ou voir avec remysimpson.
Code : Tout sélectionner
<item> <title> E P G V_0.40</title>
<link>$doregex[EPG]</link>
<thumbnail></thumbnail>
<regex> <name>EPG</name>
<listrepeat><![CDATA[
<title>[COLOR skyblue][EPG.param3][/COLOR] [COLOR yellow][EPG.param1][EPG.param2][/COLOR] [COLOR slategrey][EPG.param5][/COLOR]
[B]> [EPG.param4] <[/B] </title>
<info>[EPG.param5]</info>
<link>NA</link>
<thumbnail></thumbnail>
]]></listrepeat>
<expres><![CDATA[#$pyFunction
def GetLSProData(page_data,Cookie_Jar,m):
import requests, re, time
# -*- coding: utf-8 -*-
# EPG
matriz = []
epgurl = 'http://SSSS:8000/xmltv.php?username=UUUU&password=PPPP'
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10; Win64; x64; rv:68.0) Gecko/20100101 Firefox/68.0'}
sourcetext = requests.get(epgurl, headers = headers , timeout=300).text
#FULL EPG
#expression = '(?s)<programme (start="[^"]+") (stop="[^"]+") channel="([^"]+)" ><title>([^<]+)<\/title><desc\/*>([^<]*)<\/'
#EPG FR ONLY
expression = '(?s)<programme (start="[^"<]+") (stop="[^"<]+") channel="(?i)([^"<]+fR[^"<]*)" ><title>([^<]+)<\/title><desc\/*>([^<]*)<\/'
infos = re.findall(expression,sourcetext)
for i , v in enumerate(infos) :
v0 = infos [i][0] #start
v1 = infos [i][1] #stop
v2 = infos [i][2] #ch
v3 = infos [i][3] #titl
v4 = infos [i][4] #description
#traitement
v2 = v2.replace(''','\'').replace('\\\/','/')
v3 = v3.replace('\n',' ').replace('"','"').replace(''','\'').replace('\\\/','/')
v4 = v4.replace('\n',' ').replace('"','"').replace(''','\'').replace('\\\/','/')
#print v0
#print v1
#print v2
#print v3
#print v4
w0 = v0.split(" ")
x0 = w0[0][7:15]
y0 = w0[0][15:21]
z0 = w0[1][0:5]
t0 = int(y0)+int(z0)*100 + 100 + 100 #because gmt+1 and summertime=+1
#print (t0)
numt0 = int(t0/100)
numD0 = int(x0[6:8])
if (numt0>=2400) :
numt0= numt0-2400
numD0= numD0+1
else :
pass
#print (numt0)
H0 = (str(numt0)[-4:-2].zfill(1))
M0 = (str(numt0)[-2:].zfill(2))
#print (numD0)
#print(H0)
#print (M0)
w1 = v1.split(" ")
x1 = w1[0][6:14]
y1 = w1[0][14:20]
z1 = w1[1][0:5]
t1 = int(y1)+int(z1)*100 + 100 + 100 #because gmt+1 and summertime=+1
#print (t1)
numt1 = int(t1/100)
numD1 = int(x1[6:8])
if (numt1>=2400) :
numt1= numt1-2400
numD1= numD1+1
else :
pass
#print (numt1)
H1 = (str(numt1)[-4:-2].zfill(1))
M1 = (str(numt1)[-2:].zfill(2))
#print (numD1)
#print (H1)
#print (M1)
#print "Starting"
strdate0 = str(numD0)+"/"+x0[4:6] +" "
strtime0 = str(H0) +"H"+str(M0)
#print (strdate0)
#print (strtime0)
start = " [COLOR orange]"+strdate0+"[/COLOR] "+strtime0
#print (start)
#print "Ending"
strdate1 = str(numD1)+"/"+x1[4:6].zfill(2)
strtime1 = str(H1) +"H"+str(M1)
#print (strdate1)
#print (strtime1)
stop = "->"+strtime1
#print (stop)
date_time_str = strdate1+"/"+x1[0:4]+x1[4:4]+" "+strtime1
try :
date_time_obj = time.strptime(date_time_str, '%d/%m/%Y %HH%M')
#print(date_time_obj)
timenow = time.localtime()
#print (timenow)
if date_time_obj <= timenow :
#print "passé"
i=i+1
else :
#print "futur"
gv = (start,stop,v2,v3,v4)
matriz.append(gv)
except :
#print "data error"
i=i+1
return (matriz)
]]></expres>
<page></page>
</regex>
</item>
Hello, pour compléter l'excellent post de Juju, j'utilise également le fichier dispo ici -->
Hi,Jayabs a écrit : ↑mer. 17 juin 2020 06:45 Hello, pour compléter l'excellent post de Juju, j'utilise également le fichier dispo ici -->
https://www.digital3d.com/Comment/See/54
Très complet.
++
Hi,smirnoff13 a écrit : ↑sam. 27 juin 2020 11:32 Bonjour a tous,
Je me permet de demander ici si quelqu’un sais ou il y aurais un EPG fonctionnel de dispo, car j’ai beau essayer celui de racacax ou d'autre cela ne fonction pas.
En vous remerciant.
Bonjour,logounet a écrit : ↑dim. 28 juin 2020 08:16Hi,smirnoff13 a écrit : ↑sam. 27 juin 2020 11:32 Bonjour a tous,
Je me permet de demander ici si quelqu’un sais ou il y aurais un EPG fonctionnel de dispo, car j’ai beau essayer celui de racacax ou d'autre cela ne fonction pas.
En vous remerciant.
C'est quoi le problème?
@+