satellites dialog skeleton

This commit is contained in:
DYefremov
2018-04-23 23:14:07 +03:00
parent 3f0738d874
commit 7f096df998
3 changed files with 189 additions and 33 deletions

View File

@@ -61,11 +61,9 @@ class SatellitesParser(HTMLParser):
request = requests.get(url=self._url, headers=self._HEADERS)
reason = request.reason
if reason == "OK":
print(reason)
self.feed(request.text)
if self._rows:
for num, sat in enumerate(filter(lambda x: all(x) and len(x) == 5, self._rows)):
print(num + 1, sat)
return list(filter(lambda x: all(x) and len(x) == 5, self._rows))
else:
print(reason)

View File

@@ -839,30 +839,63 @@
<column type="gchararray"/>
</columns>
</object>
<object class="GtkListStore" id="satellites_list_store"/>
<object class="GtkListStore" id="source_urls_list_store"/>
<object class="GtkListStore" id="satellites_list_store">
<columns>
<!-- column-name name -->
<column type="gchararray"/>
<!-- column-name pos -->
<column type="gchararray"/>
<!-- column-name type -->
<column type="gchararray"/>
<!-- column-name url -->
<column type="gchararray"/>
<!-- column-name selected -->
<column type="gboolean"/>
</columns>
</object>
<object class="GtkListStore" id="source_urls_list_store">
<columns>
<!-- column-name source -->
<column type="gchararray"/>
</columns>
<data>
<row>
<col id="0">FlySat</col>
</row>
</data>
</object>
<object class="GtkDialog" id="satellites_dialog">
<property name="width_request">480</property>
<property name="can_focus">False</property>
<property name="title" translatable="yes">Satellites download tool</property>
<property name="resizable">False</property>
<property name="modal">True</property>
<property name="destroy_with_parent">True</property>
<property name="type_hint">dialog</property>
<property name="skip_pager_hint">True</property>
<child internal-child="vbox">
<object class="GtkBox" id="satellites_dialog_vbox">
<property name="width_request">320</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">2</property>
<child internal-child="action_area">
<object class="GtkButtonBox" id="satellites_dialog_action_area">
<property name="can_focus">False</property>
<property name="layout_style">end</property>
<property name="layout_style">center</property>
<child>
<placeholder/>
</child>
<child>
<placeholder/>
<object class="GtkButton" id="button2">
<property name="label">gtk-close</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="receives_default">True</property>
<property name="use_stock">True</property>
<property name="always_show_image">True</property>
</object>
<packing>
<property name="expand">True</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
</object>
<packing>
@@ -876,22 +909,13 @@
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
<property name="spacing">2</property>
<child>
<object class="GtkLabel" id="label4">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="label" translatable="yes">Not implemented yet!</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkBox" id="box3">
<object class="GtkBox" id="source_box">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="halign">center</property>
<property name="spacing">2</property>
<child>
<object class="GtkLabel" id="label1">
<property name="visible">True</property>
@@ -905,10 +929,17 @@
</packing>
</child>
<child>
<object class="GtkComboBox" id="combobox1">
<object class="GtkComboBox" id="source_combo_box">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="model">source_urls_list_store</property>
<property name="active">0</property>
<child>
<object class="GtkCellRendererText" id="source_cellrenderertext"/>
<attributes>
<attribute name="text">0</attribute>
</attributes>
</child>
</object>
<packing>
<property name="expand">False</property>
@@ -917,6 +948,17 @@
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">0</property>
</packing>
</child>
<child>
<object class="GtkSeparator" id="sat_separator_2">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
@@ -924,13 +966,76 @@
</packing>
</child>
<child>
<object class="GtkTreeView" id="satellites_tree_view">
<property name="height_request">100</property>
<object class="GtkScrolledWindow" id="satellites_tree_view_scrolledwindow">
<property name="height_request">150</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="model">satellites_list_store</property>
<child internal-child="selection">
<object class="GtkTreeSelection" id="treeview-selection2"/>
<property name="shadow_type">in</property>
<child>
<object class="GtkTreeView" id="satellites_tree_view">
<property name="height_request">100</property>
<property name="visible">True</property>
<property name="can_focus">True</property>
<property name="model">satellites_list_store</property>
<child internal-child="selection">
<object class="GtkTreeSelection" id="treeview-selection2"/>
</child>
<child>
<object class="GtkTreeViewColumn" id="satellite_column">
<property name="title" translatable="yes">Satellite</property>
<child>
<object class="GtkCellRendererText" id="satellite_name_cellrenderertext"/>
<attributes>
<attribute name="text">0</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn" id="satellite_pos_column">
<property name="title" translatable="yes">Position</property>
<child>
<object class="GtkCellRendererText" id="satellite_position_cellrenderertext"/>
<attributes>
<attribute name="text">1</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn" id="satellite_type_column">
<property name="title" translatable="yes">Type</property>
<child>
<object class="GtkCellRendererText" id="satellite_type_cellrenderertext"/>
<attributes>
<attribute name="text">2</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn" id="sat_url_column">
<property name="title" translatable="yes">Url</property>
<child>
<object class="GtkCellRendererText" id="satellite_url_cellrenderertext"/>
<attributes>
<attribute name="text">3</attribute>
</attributes>
</child>
</object>
</child>
<child>
<object class="GtkTreeViewColumn" id="sat_selected_column">
<property name="title" translatable="yes">Selected</property>
<child>
<object class="GtkCellRendererToggle" id="satellite_selected_cellrenderertoggle"/>
<attributes>
<attribute name="activatable">4</attribute>
</attributes>
</child>
</object>
</child>
</object>
</child>
</object>
<packing>
@@ -940,16 +1045,57 @@
</packing>
</child>
<child>
<object class="GtkSeparator" id="separator4">
<object class="GtkSeparator" id="sat_separator">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">3</property>
</packing>
</child>
<child>
<object class="GtkToolbar" id="satellites_dialog_toolbar">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="show_arrow">False</property>
<child>
<object class="GtkToolButton" id="satellites_receive_toolbutton">
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="is_important">True</property>
<property name="label" translatable="yes">Receive</property>
<property name="use_underline">True</property>
<property name="stock_id">gtk-goto-bottom</property>
<signal name="clicked" handler="on_satellites_receive" swapped="no"/>
</object>
<packing>
<property name="expand">True</property>
<property name="homogeneous">True</property>
</packing>
</child>
<style>
<class name="primary-toolbar"/>
</style>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">4</property>
</packing>
</child>
<child>
<object class="GtkSeparator" id="sat_separator_3">
<property name="visible">True</property>
<property name="can_focus">False</property>
</object>
<packing>
<property name="expand">False</property>
<property name="fill">True</property>
<property name="position">5</property>
</packing>
</child>
</object>
<packing>
<property name="expand">False</property>

View File

@@ -1,10 +1,12 @@
from app.ui.uicommons import Gtk, UI_RESOURCES_PATH, TEXT_DOMAIN
from app.commons import run_idle
from app.tools.satellites import SatellitesParser
from ..uicommons import Gtk, UI_RESOURCES_PATH, TEXT_DOMAIN
class SatellitesDownloaderDialog:
def __init__(self, transient, options):
handlers = {}
handlers = {"on_satellites_receive": self.on_satellites_receive}
builder = Gtk.Builder()
builder.set_translation_domain(TEXT_DOMAIN)
@@ -19,6 +21,16 @@ class SatellitesDownloaderDialog:
self._dialog.run()
self._dialog.destroy()
@run_idle
def on_satellites_receive(self, item):
parser = SatellitesParser(url="https://www.flysat.com/satlist.php")
sats = parser.get_satellites()
if sats:
model = self._satellites_tree_view.get_model()
model.clear()
for sat in sats:
model.append((sat[1], sat[2], sat[3], sat[0], False))
if __name__ == "__main__":
pass