From 8d405d223a4f813c9e47e2bad57ebb52c62e4f97 Mon Sep 17 00:00:00 2001 From: DYefremov Date: Thu, 10 May 2018 23:28:51 +0300 Subject: [PATCH] new src for the sat update dialog --- README.md | 6 +++--- app/tools/satellites.py | 19 +++++++++---------- app/ui/satellites_dialog.glade | 2 +- app/ui/satellites_dialog.py | 15 ++++++--------- 4 files changed, 19 insertions(+), 23 deletions(-) diff --git a/README.md b/README.md index f0ba082c..ce8d6061 100644 --- a/README.md +++ b/README.md @@ -20,9 +20,9 @@ Clipboard is **"rubber"**. There is an accumulation before the insertion! * **Ctrl + Up, Down, PageUp, PageDown, Home, End** - move selected items in the list. ### Extra: * Multiple selections in lists only with Space key (as in file managers). -* Ability to import IPTV into bouquet (Neutrino WEBTV) from m3u files. -* Tool for downloading picons from lyngsat.com. -* Preview (playing) IPTV or other streams directly from the bouquet list(should be installed VLC). +* Ability to import IPTV into bouquet (Neutrino WEBTV) from m3u files. +* Ability to download picons and update satellites (transponders) from web. +* Preview (playing) IPTV or other streams directly from the bouquet list(should be installed VLC). ### Minimum requirements: Python >= 3.5.2 and GTK+ 3 with PyGObject bindings. #### Note. diff --git a/app/tools/satellites.py b/app/tools/satellites.py index 83863eda..420fee52 100644 --- a/app/tools/satellites.py +++ b/app/tools/satellites.py @@ -2,9 +2,8 @@ for replace or update current satellites.xml file. """ import re -from enum import Enum - import requests +from enum import Enum from html.parser import HTMLParser from app.eparser import Satellite, Transponder @@ -71,6 +70,7 @@ class SatellitesParser(HTMLParser): pass def get_satellites_list(self, source): + """ Getting complete list of satellites. """ self.reset() self._rows.clear() self._source = source @@ -156,26 +156,25 @@ class SatellitesParser(HTMLParser): def get_transponders_for_lyng_sat(self, trs): """ Parsing transponders for LyngSat """ frq_pol_pattern = re.compile("(\d{4,5}).*([RLHV])(.*\d$)") - sr_fec_pattern = re.compile("(\d{4,5})-(\d/\d) (.*PSK).*$") - # sys_pattern = re.compile("(DVB-S|DVB-S2).*") + sr_fec_pattern = re.compile("^(\d{4,5})-(\d/\d)(.+PSK)?(.*)?$") + sys_pattern = re.compile("(DVB-S[2]?)(.*)?") zeros = "000" for r in filter(lambda x: len(x) > 8, self._rows): freq = re.match(frq_pol_pattern, r[2]) if not freq: continue frq, pol = freq.group(1), freq.group(2) - sr_fec = re.match(sr_fec_pattern, r[-3]) if not sr_fec: continue sr, fec, mod = sr_fec.group(1), sr_fec.group(2), sr_fec.group(3) - # if not sys: - # continue - sys = "" + mod = mod.strip() if mod else "Auto" + sys = re.match(sys_pattern, r[-4]) + if not sys: + continue + sys = sys.group(1) trs.append(Transponder(frq + zeros, sr + zeros, pol, fec, sys, mod, None, None, None)) - return trs - if __name__ == "__main__": pass diff --git a/app/ui/satellites_dialog.glade b/app/ui/satellites_dialog.glade index 23de40ff..b6c6121a 100644 --- a/app/ui/satellites_dialog.glade +++ b/app/ui/satellites_dialog.glade @@ -1456,6 +1456,7 @@ False Satellites update True + 480 True dialog True @@ -1868,7 +1869,6 @@ - -1 True True in diff --git a/app/ui/satellites_dialog.py b/app/ui/satellites_dialog.py index 72fdd2d7..d0456731 100644 --- a/app/ui/satellites_dialog.py +++ b/app/ui/satellites_dialog.py @@ -251,9 +251,7 @@ class SatellitesDialog: returns selected path or None """ model, paths = view.get_selection().get_selected_rows() - paths_count = len(paths) - - if paths_count > 1: + if len(paths) > 1: show_dialog(DialogType.ERROR, self._dialog, message) return @@ -263,9 +261,8 @@ class SatellitesDialog: def on_remove(view): selection = view.get_selection() model, paths = selection.get_selected_rows() - itrs = [model.get_iter(path) for path in paths] - for itr in itrs: + for itr in [model.get_iter(path) for path in paths]: model.remove(itr) def on_save(self, view): @@ -581,10 +578,10 @@ class SatellitesUpdateDialog: self._download_task = False def on_selected_toggled(self, toggle, path): - model = self._filter_model - itr = self._filter_model.convert_iter_to_child_iter(model.get_iter(path)) - model.get_model().set_value(itr, 4, not toggle.get_active()) - self.update_receive_button_state(model) + s_model = self._sat_view.get_model() + itr = self._filter_model.convert_iter_to_child_iter(s_model.convert_iter_to_child_iter(s_model.get_iter(path))) + self._filter_model.get_model().set_value(itr, 4, not toggle.get_active()) + self.update_receive_button_state(self._filter_model) @run_idle def update_receive_button_state(self, model):