falls jemand ne idee zum vorherigen post hat, bin ich natürlich super dankbar, aber falls da keiner lust drauf hat weils massig code ist, kann ich das natürlich gut verstehen.
ich hab auch meinen ursprünglichen code zum xml problem mal erweitert, weil ich einen weg gefunden habe eine der fehlenden infos noch einzulesen.
blöde dabei ist nur, dass ich letztlich einen wert für serviceid bekomme, der in abhängigkeit vom servicename (=channelname) vorliegt.
ich bin nciht ganz sicher, wie ich jetzt die korrekte zuweisung hinkriege. aktuell schreibt er nämlich bei jedem eintrag die gleiche serviceid rein.
im prinzip nehme ich an muss eine abfrage rein, die schaut, ob channelname = servicename ist und dann die serviceid in die zeile schreibt. bin nur nicht sicher wie.
Code: Alles auswählen
import os
import sys
from Screens.MessageBox import MessageBox
from Plugins.Plugin import PluginDescriptor
from Components.FileList import FileList
from Screens.ChannelSelection import service_types_tv, service_types_radio
from enigma import eServiceReference, eServiceCenter
from xml.etree import ElementTree as etree
class ServiceReferenceChecker(MessageBox):
def __init__(self, session):
service_list = []
polarisation_info = {}
serviceid_info = {}
symbolrate_info = {}
os.getcwd()
kanallistexml = "/tmp/kanalliste.xml"
tree = etree.parse(kanallistexml)
serviceHandler = eServiceCenter.getInstance()
refstr = '%s ORDER BY name' % (service_types_tv)
servicelist = serviceHandler.list(eServiceReference(refstr))
channels = servicelist and servicelist.getContent("NSR", True)
counter = 0
if channels is not None:
for channel in channels:
counter += 1
serviceid = channel[1]
channelname = channel[0]
serviceid_info[channelname] = serviceid
for f in tree.findall('//Transponder'):
frequency = f.find('Frequency').text
polarisation = f.find('Polarisation').text
symbolrate = f.find('SymbolRate').text
polarisation_info[frequency] = polarisation
symbolrate_info[frequency] = symbolrate
for f in tree.findall('//Service'):
frequency = f.find('Frequency').text
service_list.append(f.find('ServiceName').text + '#' + f.find('Frequency').text + '#' + polarisation_info[frequency] + '#' + f.find('SatId').text + '#' + symbolrate_info[frequency] + '#' + f.find('VideoPid').text + '#' + f.find('AudioPid').text + '#' + f.find('Sid').text + '#' + serviceid_info[channelname])
Frequencyfinal = '\n'.join(service_list)
kanallistechannels = open("/tmp/kanalliste.channels", 'w')
print >> kanallistechannels, Frequencyfinal.encode('utf-8')
EDIT: hab nen eigenen thread für das problem des vorherigen posts erzeugt, damits hier übersichtlich auf xml begrenzt bleibt.