Skip to content

Commit

Permalink
[bouquetwriter] add limited support for some common single-byte charsets
Browse files Browse the repository at this point in the history
For more info consult ETSI EN 300 468
  • Loading branch information
Huevos committed Mar 9, 2024
1 parent 7eb06d5 commit 5f5a1f8
Showing 1 changed file with 25 additions and 12 deletions.
37 changes: 25 additions & 12 deletions AutoBouquetsMaker/src/scanner/bouquetswriter.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,19 @@

from enigma import eDVBFrontendParametersSatellite

charsets = {
0x01: "iso-8859-5",
0x02: "iso-8859-6",
0x03: "iso-8859-7",
0x04: "iso-8859-8",
0x05: "iso-8859-9",
0x06: "iso-8859-10",
0x07: "iso-8859-11",
0x09: "iso-8859-13",
0x0A: "iso-8859-14",
0x0B: "iso-8859-15",
}


class BouquetsWriter():

Expand Down Expand Up @@ -141,12 +154,12 @@ def writeLamedb(self, path, transponders):
service_name = control_char_re.sub('', service["service_name"]).decode('latin-1').encode("utf8")
provider_name = control_char_re.sub('', service["provider_name"]).decode('latin-1').encode("utf8")
else:
service_name = control_char_re.sub('', six.ensure_text(six.ensure_str(service["service_name"], encoding='latin-1'), encoding='utf-8', errors='ignore'))
if "service_name_encoding" in service and service["service_name_encoding"] == 0x01:
service_name = service_name.encode("iso-8859-1").decode("iso-8859-5")
provider_name = control_char_re.sub('', six.ensure_text(six.ensure_str(service["provider_name"], encoding='latin-1'), encoding='utf-8', errors='ignore'))
if "provider_name_encoding" in service and service["provider_name_encoding"] == 0x01:
provider_name = provider_name.encode("iso-8859-1").decode("iso-8859-5")
service_name = control_char_re.sub('', service["service_name"])
if "service_name_encoding" in service and service["service_name_encoding"] in charsets:
service_name = service_name.encode("iso-8859-1").decode(charsets[service["service_name_encoding"]])
provider_name = control_char_re.sub('', service["provider_name"])
if "provider_name_encoding" in service and service["provider_name_encoding"] in charsets:
provider_name = provider_name.encode("iso-8859-1").decode(charsets[service["provider_name_encoding"]])
else:
service_name = service["service_name"]

Expand Down Expand Up @@ -293,12 +306,12 @@ def writeLamedb5(self, path, transponders):
service_name = control_char_re.sub('', service["service_name"]).decode('latin1').encode("utf8")
provider_name = control_char_re.sub('', service["provider_name"]).decode('latin1').encode("utf8")
else:
service_name = control_char_re.sub('', six.ensure_text(six.ensure_str(service["service_name"], encoding='latin1'), encoding='utf8', errors='ignore'))
if "service_name_encoding" in service and service["service_name_encoding"] == 0x01:
service_name = service_name.encode("iso-8859-1").decode("iso-8859-5")
provider_name = control_char_re.sub('', six.ensure_text(six.ensure_str(service["provider_name"], encoding='latin1'), encoding='utf8', errors='ignore'))
if "provider_name_encoding" in service and service["provider_name_encoding"] == 0x01:
provider_name = provider_name.encode("iso-8859-1").decode("iso-8859-5")
service_name = control_char_re.sub('', service["service_name"])
if "service_name_encoding" in service and service["service_name_encoding"] in charsets:
service_name = service_name.encode("iso-8859-1").decode(charsets[service["service_name_encoding"]])
provider_name = control_char_re.sub('', service["provider_name"])
if "provider_name_encoding" in service and service["provider_name_encoding"] in charsets:
provider_name = provider_name.encode("iso-8859-1").decode(charsets[service["provider_name_encoding"]])
else:
service_name = service["service_name"]

Expand Down

0 comments on commit 5f5a1f8

Please sign in to comment.