from re import sub from Tools.Directories import fileExists, resolveFilename, SCOPE_CURRENT_SKIN import xml.etree.cElementTree entities = [('ä', u'\xe4'), ('ä', u'\xe4'), ('ü', u'\xfc'), ('ü', u'\xfc'), ('ö', u'\xf6'), ('ö', u'\xf6'), ('Ä', u'\xc4'), ('Ä', u'\xc4'), ('Ü', u'\xdc'), ('Ü', u'\xdc'), ('Ö', u'\xd6'), ('Ö', u'\xd6'), ('ß', u'\xdf'), ('ß', u'\xdf'), ('…', u'...'), ('–', u'-'), (' ', u' '), ('"', u'"'), ('&', u'&'), (''', u"'"), ('<', u'<'), ('>', u'>'), ('<', u'<'), ('>', u'>'), (' ', u' '), ('&', u'&'), ('"', u'"'), (''', u"'")] def nab_strip_html(html): html = html.replace('\n', ' ') html = sub('\\s\\s+', ' ', html) html = sub('', '\n', html) html = sub('', '\n', html) html = sub('', '-', html) html = html.replace('', '\n') return nab_strip_pass1(html) def nab_strip_pass1(html): html = sub('<(.*?)>', '', html) html.replace('Ä', '\xc3\x84') html.replace('ä', '\xc3\xa4') html.replace('ä', '\xc3\xa4') html.replace('ü', '\xc3\xbc') html.replace('ü', '\xc3\xbc') html.replace('ö', '\xc3\xb6') html.replace('ö', '\xc3\xb6') html.replace('Ä', '\xc3\x84') html.replace('Ä', '\xc3\x84') html.replace('Ü', '\xc3\x9c') html.replace('Ü', '\xc3\x9c') html.replace('Ö', '\xc3\x96') html.replace('Ö', '\xc3\x96') html.replace('ß', '\xc3\x9f') html.replace('ß', '\xc3\x9f') html.replace('<', '<') html.replace('>', '>') html.replace(' ', ' ') html.replace('&', '&') html.replace('"', '"') html.replace(''', "'") return html def nab_Read_CCCinfoCfg(): myhost = '127.0.0.1' myuser = mypass = '' myport = '16001' if fileExists('/etc/delcccaminfo'): f = open('/etc/delcccaminfo', 'r') for line in f.readlines(): line = line.strip() if line.find('HOST ADDRESS:') != -1: myhost = line[13:] elif line.find('WEBINFO USERNAME:') != -1: myuser = line[17:] elif line.find('WEBINFO PASSWORD:') != -1: mypass = line[17:] elif line.find('WEBINFO LISTEN PORT:') != -1: myport = line[20:] f.close() myurl = 'http://' + myhost + ':' + myport if myuser and mypass: myurl = 'http://' + myuser + ':' + mypass + '@' + myhost + ':' + myport return [myhost, myuser, mypass, myport, myurl] def nab_Write_CCCinfoCfg(mycfg): out = open('/etc/delcccaminfo', 'w') strview = 'HOST ADDRESS:' + mycfg[0] + '\n' out.write(strview) strview = 'WEBINFO USERNAME:' + mycfg[1] + '\n' out.write(strview) strview = 'WEBINFO PASSWORD:' + mycfg[2] + '\n' out.write(strview) strview = 'WEBINFO LISTEN PORT:' + mycfg[3] + '\n' out.write(strview) out.close() def DeliteGetSkinPath(): myskinpath = resolveFilename(SCOPE_CURRENT_SKIN, '') if myskinpath == '/usr/share/enigma2/': myskinpath = '/usr/share/enigma2/skin_default/' return myskinpath def nab_Detect_Machine(): machine = 'dm8000' if fileExists('/etc/bhmachine'): f = open('/etc/bhmachine', 'r') machine = f.readline().strip() f.close() return machine def BhU_get_Version(): ver = '' if fileExists('/boot/blackhole/version'): f = open('/boot/blackhole/version', 'r') ver = f.readline().strip() f.close() return ver def BhU_check_proc_version(): ver = '' if fileExists('/boot/blackhole/version'): f = open('/boot/blackhole/version', 'r') ver = f.readline().strip() f.close() return ver def BhU_checkSkinVersion(skinfile): version = '2.0.0' authors = ['Army', 'Matrix10', 'capa'] ret = 'Sorry this skin is not compatible with the current Black Hole image version.' curversion = int(version.replace('.', '')) fullfile = '/usr/share/enigma2/' + skinfile checkver = False checkauth = False if fileExists(fullfile): f = open(fullfile) for line in f.readlines(): if line.find('black hole version:') != -1: parts = line.strip().split(':') ver = int(parts[1].strip().replace('.', '')) if ver >= curversion: checkver = True elif line.find('skin author:') != -1: parts = line.strip().split(':') auth = parts[1].strip() for a in authors: if a == auth: checkauth = True f.close() if checkver == True: if checkauth == True: ret = 'passed' return ret def BhU_find_hdd(): hdd = '' hdds = ['sda', 'sdb', 'sdc', 'sdd', 'sde', 'sdf'] for device in hdds: filename = '/sys/block/%s/removable' % device if fileExists(filename): if file(filename).read().strip() == '0': hdd = device break return hdd