new src for the sat update dialog

This commit is contained in:
DYefremov
2018-05-10 23:28:51 +03:00
parent 81ad19043a
commit 8d405d223a
4 changed files with 19 additions and 23 deletions

View File

@@ -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.

View File

@@ -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

View File

@@ -1456,6 +1456,7 @@
<property name="can_focus">False</property>
<property name="title" translatable="yes">Satellites update</property>
<property name="modal">True</property>
<property name="default_height">480</property>
<property name="destroy_with_parent">True</property>
<property name="type_hint">dialog</property>
<property name="skip_pager_hint">True</property>
@@ -1868,7 +1869,6 @@
</child>
<child>
<object class="GtkScrolledWindow" id="sat_update_scrolled_window">
<property name="height_request">-1</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="shadow_type">in</property>

View File

@@ -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):