2 # create links for picon
3 # usage: create_picon_providers lamedb
4 # run in picon directory.
5 # It will read the servicenames from the lamedb and create symlinks
6 # for the servicereference names.
10 f = open(sys.argv[1]).readlines()
12 f = f[f.index("services\n")+1:-3]
15 ref = [int(x, 0x10) for x in f[0][:-1].split(':')]
17 name = name.replace('\xc2\x87', '').replace('\xc2\x86', '')
19 fields = f[2].split(',')
20 if len(fields) and fields[0][0] is 'p':
21 provider = fields[0].split(':')[1]
30 servicetype = 'unknown'
32 sat = str(ref[1]/16/16/16/16)
34 # SID:NS:TSID:ONID:STYPE:UNUSED(channelnumber in enigma1)
37 # REFTYPE:FLAGS:STYPE:SID:TSID:ONID:NS:PARENT_SID:PARENT_TSID:UNUSED
40 refstr = "1:0:%X:%X:%X:%X:%X:0:0:0" % (ref[4], ref[0], ref[2], ref[3], ref[1])
41 refstr = refstr.replace(':', '_')
43 filename = name + ".png"
44 linkname = refstr + ".png"
46 filename = filename.replace('/', '_').replace('\\', '_').replace('&', '_').replace('\'', '').replace('"', '').replace('`', '').replace('*', '_').replace('?', '_').replace(' ', '_').replace('(', '_').replace(')', '_')
47 provider = provider.replace('/', '_').replace('\\', '_').replace('&', '_').replace('\'', '').replace('"', '').replace('`', '').replace('*', '_').replace('?', '_').replace(' ', '_').replace('(', '_').replace(')', '_')
48 filename = filename.replace('\n', '')
49 provider = provider.replace('\n', '')
51 for i in range(len(filename)):
52 if ord(filename[i]) > 127:
53 filename = filename[0:i] + '_' + filename[i + 1:]
55 for i in range(len(provider)):
56 if ord(provider[i]) > 127:
57 provider = provider[0:i] + '_' + provider[i + 1:]
59 filename = sat + "_" + provider + "_" + servicetype + "_" + filename
61 sat = sat[0:2] + '.' + sat[-1:] + 'e'
65 os.makedirs(sat + '/' + servicetype)
69 print sat[0:2] + '.' + sat[-1:] + 'E' + '_' + "%X" % ref[0] + '.png'
71 os.rename(sat[0:-1] + 'E' + '_' + "%X" % ref[0] + '.png', sat + '/' + servicetype + '/' + filename)
76 os.symlink(filename, sat + '/' + servicetype + '/' + linkname)