From 240d724b590f60b79fdf9ee967fb83ffb147add1 Mon Sep 17 00:00:00 2001 From: Dmitriy Yefremov Date: Wed, 17 Jan 2018 01:18:02 +0300 Subject: [PATCH] picons name format for neutrino --- app/picons/picons.py | 8 ++++---- app/ui/picons_dialog.glade | 10 ++++------ app/ui/picons_dialog.py | 14 ++++++++++++-- 3 files changed, 20 insertions(+), 12 deletions(-) diff --git a/app/picons/picons.py b/app/picons/picons.py index c7a50725..c571fa66 100644 --- a/app/picons/picons.py +++ b/app/picons/picons.py @@ -68,7 +68,7 @@ class PiconsParser(HTMLParser): pass @staticmethod - def parse(open_path, picons_path, tmp_path, on_id): + def parse(open_path, picons_path, tmp_path, on_id, profile=Profile.ENIGMA_2): with open(open_path, encoding="utf-8", errors="replace") as f: parser = PiconsParser() parser.reset() @@ -78,7 +78,7 @@ class PiconsParser(HTMLParser): os.makedirs(picons_path, exist_ok=True) for p in picons: try: - picon_file_name = picons_path + PiconsParser.format(p.ssid, on_id, p.v_pid, Profile.ENIGMA_2) + picon_file_name = picons_path + PiconsParser.format(p.ssid, on_id, p.v_pid, profile) shutil.copyfile(tmp_path + "www.lyngsat.com/" + p.ref.lstrip("."), picon_file_name) except (TypeError, ValueError) as e: log("Picons format parse error: {} {} {}".format(p.ref, p.ssid, p.v_pid) + "\n" + str(e)) @@ -86,11 +86,11 @@ class PiconsParser(HTMLParser): @staticmethod def format(ssid, on_id, v_pid, profile: Profile): + tr_id = int(ssid[:-2] if len(ssid) < 4 else ssid[:2]) if profile is Profile.ENIGMA_2: - tr_id = int(ssid[:-2] if len(ssid) < 4 else ssid[:2]) return "1_0_{}_{:X}_{:X}_{:X}_1680000_0_0_0.png".format(1 if v_pid else 2, int(ssid), tr_id, int(on_id)) elif profile is Profile.NEUTRINO_MP: - return "{:x}{}{:x}".format(int(ssid[:-2]), "0070", int(ssid)) + return "{:x}{:04x}{:04x}.png".format(tr_id, int(on_id), int(ssid)) else: return "{}.png".format(ssid) diff --git a/app/ui/picons_dialog.glade b/app/ui/picons_dialog.glade index dcb2b7a4..d676cd04 100644 --- a/app/ui/picons_dialog.glade +++ b/app/ui/picons_dialog.glade @@ -78,7 +78,6 @@ True - False True network-transmit-receive-symbolic @@ -172,7 +171,7 @@ - + Enigma2 (default) True True @@ -180,7 +179,7 @@ 0 True True - radiobutton2 + neutrino_mp_radio_button False @@ -189,16 +188,15 @@ - + Neutrino-MP True - False True False 0 True True - radiobutton1 + enigma2_radio_button False diff --git a/app/ui/picons_dialog.py b/app/ui/picons_dialog.py index 96773b71..c70c8817 100644 --- a/app/ui/picons_dialog.py +++ b/app/ui/picons_dialog.py @@ -52,6 +52,8 @@ class PiconsDialog: self._message_label = builder.get_object("info_bar_message_label") self._load_providers_tool_button = builder.get_object("load_providers_tool_button") self._receive_tool_button = builder.get_object("receive_tool_button") + self._enigma2_radio_button = builder.get_object("enigma2_radio_button") + self._neutrino_mp_radio_button = builder.get_object("neutrino_mp_radio_button") # style self._style_provider = Gtk.CssProvider() self._style_provider.load_from_path(UI_RESOURCES_PATH + "style.css") @@ -124,7 +126,7 @@ class PiconsDialog: GLib.io_add_watch(self._current_process.stderr, GLib.IO_IN, self.write_to_buffer) self._current_process.wait() path = self._TMP_DIR + self._BASE_URL + url[url.rfind("/") + 1:] - PiconsParser.parse(path, self._picons_path, self._TMP_DIR, provider.on_id) + PiconsParser.parse(path, self._picons_path, self._TMP_DIR, provider.on_id, self.get_picons_format()) self.show_info_message("Done", Gtk.MessageType.INFO) def write_to_buffer(self, fd, condition): @@ -166,7 +168,7 @@ class PiconsDialog: @run_task def upload_picons(self): - if self._current_process.poll() is None: + if self._current_process is not None and self._current_process.poll() is None: self.show_dialog("The task is already running!", DialogType.ERROR) return @@ -210,6 +212,14 @@ class PiconsDialog: def show_dialog(self, message, dialog_type): show_dialog(dialog_type, self._dialog, message) + def get_picons_format(self): + picon_format = Profile.ENIGMA_2 + + if self._neutrino_mp_radio_button.get_active(): + picon_format = Profile.NEUTRINO_MP + + return picon_format + if __name__ == "__main__": pass