Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save ThomasBoettner/49fc5d16ae4e28a5eb730c475f2f5d94 to your computer and use it in GitHub Desktop.
Save ThomasBoettner/49fc5d16ae4e28a5eb730c475f2f5d94 to your computer and use it in GitHub Desktop.
#!/usr/bin/python
import requests
import re
Enigma = '192.168.1.110'
ExportFile = 'test.txt'
# -*- coding: iso-8859-1 -*-
# function using partition, like partition, but drops the separators
def find_between( s, first, last ):
try:
start = s.index( first ) + len( first )
end = s.index( last, start )
return s[start:end]
except ValueError:
return ""
r = requests.get('http://' + Enigma + '/web/getallservices')
r = str(r.content)
#r = str(r.encode("utf-8"))
r = r.replace('\\n', '')
r = r.replace('\\t', '')
r = r.replace('</e2servicename></e2service>', '')
r = r.replace('</e2servicereference><e2servicename>', ';')
r = r.replace('</e2servicelist></e2bouquet></e2servicelistrecursive>', '')
r = r.replace('<e2servicereference>', '')
ar = r.split('<e2service>')
# open export file
f = open(ExportFile,"w")
for i in ar:
# write to the config.json file
# Suche nach <e2bouquet> für die erkennung des jeweilige bouquet
if "bouquet;" in i :
if '</e2servicelist>' in i :
#split eg. 1:0:1:1AF8:3FE:1:C00000:0:0:0:;Russia Today</e2servicelist></e2bouquet><e2bouquet>1:7:1:0:0:0:0:0:0:0:FROM BOUQUET "userbouquet.Rai.tv" ORDER BY bouquet;Rai</e2servicename><e2servicelist>
ai = i.split('</e2servicelist>')
#ai[0] is the Channel-ID and Channel-Name eg. 1:0:1:1AF8:3FE:1:C00000:0:0:0:;Russia Today
aServiceid_channel = ai[0].split(';')
# write the config.json file
f.write(' {')
f.write('\n')
f.write(' "accessory": "HTTP-SWITCH",')
f.write('\n')
f.write(' "name": "' + aServiceid_channel[1] + '",')
f.write('\n')
f.write(' "switchType": "stateless",')
f.write('\n')
f.write(' "offUrl": "http://' + Enigma + '/web/zap?sRef=' + aServiceid_channel[0] + '"')
f.write('\n')
f.write(' },')
f.write('\n')
sServiceid_channel = find_between( ai[1], "bouquet;", "</e2servicename>" )
aServiceid_channel = sServiceid_channel.split(';')
if len(aServiceid_channel) == 1 :
f.write('\n')
f.write(sServiceid_channel)
f.write('\n')
else:
#extract bouquet between bouquet;Free-TV</e2servicename>
sBouquet = find_between( i, "bouquet;", "</e2servicename>" )
aBouquet = sBouquet.split(';')
if len(aBouquet) == 1 :
f.write(sBouquet)
f.write('\n')
else:
#print(find_between( ai[1], "bouquet;", "</e2servicename>" ))
aServiceid_channel = i.split(';')
# write the config.json file
f.write(' {')
f.write('\n')
f.write(' "accessory": "HTTP-SWITCH",')
f.write('\n')
f.write(' "name": "' + aServiceid_channel[1] + '",')
f.write('\n')
f.write(' "switchType": "stateless",')
f.write('\n')
f.write(' "offUrl": "http://' + Enigma + '/web/zap?sRef=' + aServiceid_channel[0] + '"')
f.write('\n')
f.write(' },')
f.write('\n')
# {
# "accessory": "HTTP-SWITCH",
# "name": "Pro7",
# "switchType": "stateless",
# "offUrl": "http://XXX.XXX.XXX.XXX/web/zap?sRef=1:0:19:EF75:3F9:1:C00000:0:0:0:"
# }
f.close()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment