From d7fbf0fce0082d2b6eef7c86380e7a74a1ed4a95 Mon Sep 17 00:00:00 2001 From: Dmitriy Yefremov Date: Sat, 7 Oct 2017 17:33:40 +0300 Subject: [PATCH] added file chooser dialog for data path, little ui changes --- main/__init__.py | 5 + main/data/lamedb_example | 944 +++++++++++++++++++++++++++++++++++++++ main/editor_ui.glade | 133 +++++- main/eparser/__init__.py | 3 +- main/eparser/bouquets.py | 2 + main/eparser/lamedb.py | 6 +- main/eparser/satxml.py | 4 + main/properties.py | 12 +- main/ui.py | 80 ++-- 9 files changed, 1142 insertions(+), 47 deletions(-) create mode 100644 main/__init__.py create mode 100644 main/data/lamedb_example diff --git a/main/__init__.py b/main/__init__.py new file mode 100644 index 00000000..77c354c0 --- /dev/null +++ b/main/__init__.py @@ -0,0 +1,5 @@ +from main.ui import start_app as start + +if __name__ == "__main__": + start() + diff --git a/main/data/lamedb_example b/main/data/lamedb_example new file mode 100644 index 00000000..028baaef --- /dev/null +++ b/main/data/lamedb_example @@ -0,0 +1,944 @@ +eDVB services /4/ +transponders +01680000:0001:0070 + s 12322060:27500000:3:3:360:2:0:1:2:0:2:-1:1:0 +/ +01680000:0002:0070 + s 11861740:27500000:3:3:360:2:0:1:2:0:2:-1:1:0 +/ +01680000:0004:0070 + s 12437120:27500000:3:3:360:2:0:1:2:0:2:-1:1:0 +/ +01680000:0007:0070 + s 12245000:27500000:3:3:360:2:0:1:2:0:2:-1:1:0 +/ +01680000:0009:0070 + s 12207000:27500000:3:3:360:2:0:1:2:0:2:-1:1:0 +/ +01680000:000a:0070 + s 12264500:27500000:2:3:360:2:0 +/ +01680000:000b:0070 + s 12341000:27500000:2:3:360:2:0 +/ +01680000:000c:0070 + s 12398780:27500000:3:3:360:2:0:1:2:0:2:-1:1:0 +/ +01680000:000d:0070 + s 11766000:27500000:1:3:360:2:0 +/ +01680000:000e:0070 + s 11823000:27500000:3:3:360:2:0:1:2:0:2:-1:1:0 +/ +01680000:0011:0070 + s 11938460:27500000:3:3:360:2:0:1:2:0:2:-1:1:0 +/ +01680000:0012:0070 + s 11976820:27500000:3:3:360:2:0:1:2:0:2:-1:1:0 +/ +01680000:0013:0070 + s 11900100:27500000:3:3:360:2:0:1:2:0:2:-1:1:0 +/ +01680000:0014:0070 + s 12130260:27500000:3:3:360:2:0:1:2:0:2:-1:1:0 +/ +01680000:0015:0070 + s 12091900:27500000:3:3:360:2:0:1:2:0:2:-1:1:0 +/ +01680000:0016:0070 + s 12015180:27500000:3:3:360:2:0:1:2:0:2:-1:1:0 +/ +0168affb:0008:0070 + s 12283000:27500000:3:3:360:2:0:1:2:0:2:-1:1:0 +/ +0168affc:0008:0070 + s 12284000:27500000:1:3:360:2:0 +/ +end +services +00c9:01680000:0002:0070:1:0 +Fashion One (4K) +p:HTB+,c:0000ce,c:010132,c:0300ce,c:050001,C:0500 +4e8b:01680000:0014:0070:25:0 +1HD +p:HTB+,C:0500 +00ca:01680000:0002:0070:1:0 +HOME 4K (TECT) +p:HTB+,C:0500 +03f7:01680000:000a:0070:1:0 +ТВОЙ ДОМ +p:HTB+,C:0500 +0480:01680000:000b:0070:2:0 +Детское радио +p:HTB+ +02e5:01680000:0007:0070:2:0 +Юмор FM +p:HTB+ +02e6:01680000:0007:0070:2:0 +Радио Для Двоих +p:HTB+ +02e7:01680000:0007:0070:2:0 +Романтика +p:HTB+ +02e8:01680000:0007:0070:2:0 +Авторадио +p:HTB+ +02e9:01680000:0007:0070:2:0 +Радио Ваня +p:HTB+ +02ea:01680000:0007:0070:2:0 +ENERGY FM +p:HTB+ +02eb:01680000:0007:0070:2:0 +DFM +p:HTB+ +02ec:01680000:0007:0070:2:0 +Русское радио +p:HTB+ +02ed:01680000:0007:0070:2:0 +HIT FM +p:HTB+ +02ee:01680000:0007:0070:2:0 +Maximum +p:HTB+ +02ef:01680000:0007:0070:2:0 +Business FM +p:HTB+ +02f2:01680000:0007:0070:2:0 +Комсомольская правда +p:HTB+ +02f3:01680000:0007:0070:2:0 +Relax FM +p:HTB+ +02f4:01680000:0007:0070:2:0 +Эхо Москвы +p:HTB+ +02f5:01680000:0007:0070:2:0 +Радио МИР +p:HTB+ +02f6:01680000:0007:0070:2:0 +Love Radio +p:HTB+ +02f7:01680000:0007:0070:2:0 +Радио Шансон +p:HTB+ +02f8:01680000:0007:0070:2:0 +Детское радио +p:HTB+ +1f53:01680000:000a:0070:12:0 +VAHD3100S DOWNLOAD SVC +p:HTB+,f:40 +1b58:01680000:000a:0070:12:0 +OPENTEL 1740V OTA +p:HTB+ +025d:01680000:0015:0070:12:0 +Neotion Update Service +p:HTB+,f:40 +1f5e:01680000:0015:0070:12:0 +KMedia +p:HTB+ +0265:01680000:0015:0070:12:0 +Neotion CAM PRO +p:HTB+,f:40 +1f68:01680000:000a:0070:12:0 +Jiuzhou 1HD SSU +p:HTB+ +1f7f:01680000:000a:0070:12:0 +SMiT +p:HTB+,f:40 +1f80:01680000:000a:0070:12:0 +SMiT+ +p:HTB+,f:40 +0884:01680000:0015:0070:12:0 +TEST2180 +p:HTB+,f:40 +028c:01680000:0015:0070:12:0 +SPro16 +p:HTB+,f:40 +028d:0168affb:0008:0070:12:0 +SPro16 +p:HTB+,f:40 +028d:0168affc:0008:0070:12:0 +SPro16 +p:HTB+,f:40 +0296:01680000:000b:0070:12:0 +SPro16 +p:HTB+,f:40 +0297:01680000:000d:0070:12:0 +SPro16 +p:HTB+,f:40 +0709:01680000:0012:0070:22:0 +Первый канал +2 +p:HTB+,C:0500 +070a:01680000:0012:0070:22:0 +HTB +2 +p:HTB+,C:0500 +070b:01680000:0012:0070:22:0 +ТВЦ +2 +p:HTB+,C:0500 +070c:01680000:0012:0070:22:0 +ТНТ +2 +p:HTB+,C:0500 +070f:01680000:0012:0070:22:0 +ТРО +p:HTB+,C:0500 +0710:01680000:0012:0070:22:0 +History +p:HTB+,C:0500 +0711:01680000:0012:0070:22:0 +MCM Top +p:HTB+,C:0500 +0712:01680000:0012:0070:22:0 +Астрахань 24 +p:HTB+,C:0500 +0713:01680000:0012:0070:22:0 +Outdoor Channel +p:HTB+,C:0500 +0714:01680000:0012:0070:22:0 +RU.TV +p:HTB+,C:0500 +0515:01680000:000d:0070:22:0 +МАТЧ! АРЕНА +p:HTB+,C:0500,f:40 +0715:01680000:0012:0070:22:0 +Travel Channel +p:HTB+,C:0500 +0516:01680000:000d:0070:22:0 +МАТЧ! БОЕЦ +p:HTB+,C:0500,f:40 +0716:01680000:0012:0070:22:0 +RTД (русск.) +p:HTB+,C:0500 +0517:01680000:000d:0070:22:0 +МАТЧ! ИГРА +p:HTB+,C:0500,f:40 +0518:01680000:000d:0070:22:0 +МАТЧ! НАШ СПОРТ +p:HTB+,C:0500,f:40 +0718:01680000:0012:0070:22:0 +RTG TV +p:HTB+,C:0500 +0519:01680000:000d:0070:22:0 +МАТЧ! ФУТБОЛ 1 +p:HTB+,C:0500,f:40 +051a:01680000:000d:0070:22:0 +МАТЧ! ФУТБОЛ 2 +p:HTB+,C:0500,f:40 +071a:01680000:0012:0070:22:0 +BRIDGE TV DANCE +p:HTB+,C:0500 +051b:01680000:000d:0070:22:0 +МАТЧ! ФУТБОЛ 3 +p:HTB+,C:0500,f:40 +051c:01680000:000d:0070:22:0 +ОТР +p:HTB+,C:0500,f:40 +071c:01680000:0012:0070:22:0 +THT4 +p:HTB+,C:0500 +051d:01680000:000d:0070:22:0 +ИНФОКАНАЛ НТВ-ПЛЮС +p:HTB+,C:0500 +071d:01680000:0012:0070:22:0 +Ani +p:HTB+,C:0500 +051e:01680000:000d:0070:22:0 +Доктор +p:HTB+,C:0500 +071e:01680000:0012:0070:22:0 +История +p:HTB+,C:0500 +051f:01680000:000d:0070:22:0 +Звезда +p:HTB+,C:0500 +071f:01680000:0012:0070:22:0 +МИР 24 +p:HTB+,C:0500 +0520:01680000:000d:0070:22:0 +Канал Disney +p:HTB+,c:0000d4,c:010138,c:0300d4,c:050001,C:0500 +0720:01680000:0012:0070:22:0 +Царьград +p:HTB+,C:0500 +0321:0168affb:0008:0070:22:0 +Animal Planet +p:HTB+,C:0500 +0321:0168affc:0008:0070:22:0 +Animal Planet +p:HTB+,C:0500 +0521:01680000:000d:0070:22:0 +МУЗ +p:HTB+,C:0500,f:40 +0721:01680000:0012:0070:22:0 +Санкт-Петербург +p:HTB+,C:0500 +0322:0168affb:0008:0070:22:0 +Cartoon Network +p:HTB+,C:0500,f:40 +0322:0168affc:0008:0070:22:0 +Cartoon Network +p:HTB+,C:0500 +0522:01680000:000d:0070:22:0 +НАШ ФУТБОЛ +p:HTB+,C:0500,f:40 +0323:0168affb:0008:0070:22:0 +Discovery Channel +p:HTB+,C:0500 +0323:0168affc:0008:0070:22:0 +Discovery Channel +p:HTB+,C:0500 +0523:01680000:000d:0070:22:0 +НТВ +p:HTB+,C:0500 +0324:0168affb:0008:0070:22:0 +НСТ +p:HTB+,C:0500 +0324:0168affc:0008:0070:22:0 +НСТ +p:HTB+,C:0500 +0524:01680000:000d:0070:22:0 +Телеканал 360 +p:HTB+,C:0500 +0325:0168affb:0008:0070:22:0 +DTX +p:HTB+,C:0500 +0325:0168affc:0008:0070:22:0 +DTX +p:HTB+,C:0500 +0525:01680000:000d:0070:22:0 +РБК-ТВ +p:HTB+,C:0500 +0326:0168affb:0008:0070:22:0 +Fox Life +p:HTB+,C:0500,f:40 +0326:0168affc:0008:0070:22:0 +Fox Life +p:HTB+,C:0500 +0526:01680000:000d:0070:22:0 +Телеканал КХЛ +p:HTB+,C:0500 +0327:0168affb:0008:0070:22:0 +ID Xtra +p:HTB+,C:0500,f:40 +0327:0168affc:0008:0070:22:0 +ID Xtra +p:HTB+,C:0500 +0527:01680000:000d:0070:22:0 +ТНТ +p:HTB+,C:0500 +0328:0168affb:0008:0070:22:0 +O! +p:HTB+,C:0500,f:40 +0328:0168affc:0008:0070:22:0 +O! +p:HTB+,C:0500,f:40 +0528:01680000:000d:0070:22:0 +Ю-ТВ +p:HTB+,C:0500 +0329:0168affb:0008:0070:22:0 +MTV +p:HTB+,C:0500 +0329:0168affc:0008:0070:22:0 +MTV +p:HTB+,C:0500,f:40 +032a:0168affb:0008:0070:22:0 +MTV Dance +p:HTB+,C:0500 +032a:0168affc:0008:0070:22:0 +MTV Dance +p:HTB+,C:0500 +052a:01680000:000d:0070:22:0 +World Fashion +p:HTB+,C:0500,f:40 +032b:0168affb:0008:0070:22:0 +MTV Hits +p:HTB+,C:0500 +032b:0168affc:0008:0070:22:0 +MTV Hits +p:HTB+,C:0500 +052b:01680000:000d:0070:22:0 +Shop&Show +p:HTB+,C:0500,f:40 +032c:0168affb:0008:0070:22:0 +MTV Rocks +p:HTB+,C:0500 +032c:0168affc:0008:0070:22:0 +MTV Rocks +p:HTB+,C:0500 +052c:01680000:000d:0070:22:0 +THT MUSIC +p:HTB+,C:0500 +032d:0168affb:0008:0070:22:0 +National Geographic +p:HTB+,C:0500,f:40 +032d:0168affc:0008:0070:22:0 +National Geographic +p:HTB+,C:0500 +032e:0168affb:0008:0070:22:0 +Nick Jr. +p:HTB+,C:0500,f:40 +032e:0168affc:0008:0070:22:0 +Nick Jr. +p:HTB+,C:0500 +032f:0168affb:0008:0070:22:0 +TLC +p:HTB+,C:0500,f:40 +032f:0168affc:0008:0070:22:0 +TLC +p:HTB+,C:0500,f:40 +0330:0168affb:0008:0070:22:0 +VH1 Classic +p:HTB+,C:0500,f:40 +0330:0168affc:0008:0070:22:0 +VH1 Classic +p:HTB+,C:0500,f:40 +0331:0168affb:0008:0070:22:0 +VH1 European +p:HTB+,C:0500 +0331:0168affc:0008:0070:22:0 +VH1 European +p:HTB+,C:0500 +0332:0168affb:0008:0070:22:0 +БОБЁР +p:HTB+,C:0500 +0332:0168affc:0008:0070:22:0 +БОБЁР +p:HTB+,C:0500 +0333:0168affb:0008:0070:22:0 +Время: далекое и близкое +p:HTB+,C:0500 +0333:0168affc:0008:0070:22:0 +Время: далекое и близкое +p:HTB+,C:0500 +0334:0168affb:0008:0070:22:0 +Дом Кино +p:HTB+,C:0500 +0334:0168affc:0008:0070:22:0 +Дом Кино +p:HTB+,c:0000dc,c:010140,c:0300dc,c:050001,C:0500 +0335:0168affb:0008:0070:22:0 +Boomerang +p:HTB+,C:0500 +0335:0168affc:0008:0070:22:0 +Boomerang +p:HTB+,C:0500,f:40 +0835:01680000:0015:0070:22:0 +2X2 +p:HTB+,C:0500 +0336:0168affb:0008:0070:22:0 +Карусель +p:HTB+,c:0000de,c:010142,c:02020a,c:0300de,c:050001,C:0500 +0336:0168affc:0008:0070:22:0 +Карусель +p:HTB+,C:0500 +0836:01680000:0015:0070:22:0 +A1 +p:HTB+,C:0500 +0337:0168affb:0008:0070:22:0 +Музыка Первого +p:HTB+,C:0500,f:40 +0337:0168affc:0008:0070:22:0 +Музыка Первого +p:HTB+,C:0500,f:40 +0837:01680000:0015:0070:22:0 +AMEDIA HIT +p:HTB+,C:0500 +0338:0168affb:0008:0070:22:0 +ТЕЛЕКАФЕ +p:HTB+,C:0500,f:40 +0338:0168affc:0008:0070:22:0 +ТЕЛЕКАФЕ +p:HTB+,C:0500,f:40 +0838:01680000:0015:0070:22:0 +Amedia Premium +p:HTB+,C:0500 +083a:01680000:0015:0070:22:0 +CBS Reality +p:HTB+,C:0500 +083b:01680000:0015:0070:22:0 +ЕвроКино +p:HTB+,C:0500 +083c:01680000:0015:0070:22:0 +Теленовелла +p:HTB+,C:0500 +083d:01680000:0015:0070:22:0 +НАШЕ ТВ +p:HTB+,C:0500 +083e:01680000:0015:0070:22:0 +Bollywood +p:HTB+,C:0500 +083f:01680000:0015:0070:22:0 +Русский Иллюзион +p:HTB+,C:0500 +0840:01680000:0015:0070:22:0 +AMC +p:HTB+,C:0500 +0841:01680000:0015:0070:22:0 +ТВЦ +p:HTB+,c:0000d5,c:010139,c:020201,c:0300d5,c:050001,C:0500 +0842:01680000:0015:0070:22:0 +Москва 24 +p:HTB+,C:0500,f:40 +0843:01680000:0015:0070:22:0 +Совершенно секретно +p:HTB+,C:0500 +0844:01680000:0015:0070:22:0 +TВ-21М +p:HTB+,C:0500 +0845:01680000:0015:0070:22:0 +A2 +p:HTB+,c:0000d9,c:01013d,c:020205,c:0300d9,c:050001,C:0500 +0846:01680000:0015:0070:22:0 +BRIDGE TV +p:HTB+,C:0500 +0847:01680000:0015:0070:22:0 +BRIDGE TV Русский Хит +p:HTB+,C:0500 +0848:01680000:0015:0070:22:0 +Playboy TV +p:HTB+,C:0500,f:40 +0849:01680000:0015:0070:22:0 +TiJi +p:HTB+,C:0500,f:40 +084a:01680000:0015:0070:22:0 +Gulli Girl +p:HTB+,C:0500 +054b:01680000:000d:0070:22:0 +ПП Тест2 +p:HTB+,C:0500,f:40 +084b:01680000:0015:0070:22:0 +BBC World News +p:HTB+,C:0500 +084c:01680000:0015:0070:22:0 +Первый МЕТЕО +p:HTB+,C:0500 +044d:01680000:000b:0070:22:0 +Первый канал +p:HTB+,C:0500 +084d:01680000:0015:0070:22:0 +КРИК-Тв +p:HTB+,C:0500,f:40 +044e:01680000:000b:0070:22:0 +Домашний +p:HTB+,C:0500 +084e:01680000:0015:0070:22:0 +Russian extreme TV +p:HTB+,C:0500 +044f:01680000:000b:0070:22:0 +Кубань 24 ОРБИТА +p:HTB+ +084f:01680000:0015:0070:22:0 +ПРОСВЕЩЕНИЕ +p:HTB+,C:0500 +0450:01680000:000b:0070:22:0 +ТВ Губерния +p:HTB+,C:0500 +0451:01680000:000b:0070:22:0 +СТС +p:HTB+,c:0000cd,c:010131,c:0300cd,c:050001,C:0500 +0452:01680000:000b:0070:22:0 +CTC Love +p:HTB+,C:0500 +0453:01680000:000b:0070:22:0 +ТДК +p:HTB+,C:0500 +0454:01680000:000b:0070:22:0 +ТНВ-Планета +p:HTB+,C:0500 +0455:01680000:000b:0070:22:0 +Че +p:HTB+,c:0000d1,c:010135,c:0300d1,c:050001,C:0500 +0555:01680000:000d:0070:22:0 +TEST VIRTUAL +p:HTB+,C:0500,f:40 +0456:01680000:000b:0070:22:0 +Discovery Science +p:HTB+,C:0500 +0457:01680000:000b:0070:22:0 +NHK WORLD TV +p:HTB+,f:40 +0458:01680000:000b:0070:22:0 +Детский +p:HTB+,c:0000d4,c:010138,c:0300d4,c:050001,C:0500 +0459:01680000:000b:0070:22:0 +Зоопарк +p:HTB+,C:0500 +045a:01680000:000b:0070:22:0 +КИНО ТВ +p:HTB+,C:0500 +045b:01680000:000b:0070:22:0 +Комедия +p:HTB+,C:0500 +045c:01680000:000b:0070:22:0 +Россия 1 +2 +p:HTB+,C:0500 +0065:01680000:0001:0070:22:0 +365 дней ТВ +p:HTB+,C:0500 +0066:01680000:0001:0070:22:0 +Авто Плюс +p:HTB+,C:0500 +0067:01680000:0001:0070:22:0 +Европа Плюс ТВ +p:HTB+,C:0500 +0068:01680000:0001:0070:22:0 +ИНДИЙСКОЕ КИНО +p:HTB+,C:0500 +0069:01680000:0001:0070:22:0 +КИНОМИКС +p:HTB+,C:0500 +006a:01680000:0001:0070:22:0 +КИНОСВИДАНИЕ +p:HTB+,C:0500 +006b:01680000:0001:0070:22:0 +КИНОХИТ +p:HTB+,C:0500 +006c:01680000:0001:0070:22:0 +КИНОКОМЕДИЯ +p:HTB+,C:0500 +006d:01680000:0001:0070:22:0 +Кто есть кто +p:HTB+,C:0500 +006e:01680000:0001:0070:22:0 +Кухня ТВ +p:HTB+,C:0500 +006f:01680000:0001:0070:22:0 +Ля-минор ТВ +p:HTB+,C:0500 +0071:01680000:0001:0070:22:0 +КИНОСЕРИЯ +p:HTB+,C:0500 +0073:01680000:0001:0070:22:0 +РОДНОЕ КИНО +p:HTB+,C:0500 +0075:01680000:0001:0070:22:0 +Ностальгия +p:HTB+,C:0500 +0078:01680000:0001:0070:22:0 +Русская ночь +p:HTB+,C:0500 +007a:01680000:0001:0070:22:0 +Hustler TV +p:HTB+,C:0500 +007b:01680000:0001:0070:22:0 +ЖАРА +p:HTB+,C:0500 +0191:01680000:0004:0070:22:0 +Detektiv.tv +p:HTB+,C:0500 +0192:01680000:0004:0070:22:0 +PEH TB +2 +p:HTB+,C:0500 +0193:01680000:0004:0070:22:0 +Карусель +3 +p:HTB+,C:0500 +0194:01680000:0004:0070:22:0 +Fine Living +p:HTB+,C:0500 +0195:01680000:0004:0070:22:0 +Fashion TV Network +p:HTB+,C:0500 +0196:01680000:0004:0070:22:0 +НТВ Право +p:HTB+,C:0500 +0198:01680000:0004:0070:22:0 +НТВ Сериал +p:HTB+,C:0500 +0199:01680000:0004:0070:22:0 +ACB TV +p:HTB+,C:0500 +019a:01680000:0004:0070:22:0 +Звезда +2 +p:HTB+,C:0500 +019b:01680000:0004:0070:22:0 +Архыз 24 +p:HTB+,C:0500 +019c:01680000:0004:0070:22:0 +МИР +4 +p:HTB+,C:0500 +019d:01680000:0004:0070:22:0 +Пятый канал +2 +p:HTB+,C:0500 +4a9d:01680000:0013:0070:22:0 +Телеканал Да Винчи +p:HTB+,C:0500 +019f:01680000:0004:0070:22:0 +НТВ Стиль +p:HTB+,C:0500 +01a0:01680000:0004:0070:22:0 +Food Network +p:HTB+,C:0500 +4aa1:01680000:0013:0070:22:0 +Viasat Explore +p:HTB+,C:0500 +01a2:01680000:0004:0070:22:0 +ЖИВИ! +p:HTB+,C:0500 +4aa2:01680000:0013:0070:22:0 +Viasat History +p:HTB+,C:0500 +01a3:01680000:0004:0070:22:0 +Сарафан +p:HTB+,C:0500 +4aa3:01680000:0013:0070:22:0 +Viasat Nature +p:HTB+,C:0500 +01a4:01680000:0004:0070:22:0 +Страна +p:HTB+,C:0500 +01a5:01680000:0004:0070:22:0 +Русский бестселлер +p:HTB+,C:0500 +4aa5:01680000:0013:0070:22:0 +Extreme Sports +p:HTB+,C:0500 +01a6:01680000:0004:0070:22:0 +БОКС ТВ +p:HTB+,C:0500 +01a7:01680000:0004:0070:22:0 +Game Show +p:HTB+,C:0500 +4aa7:01680000:0013:0070:22:0 +Первый образовательный +p:HTB+,C:0500 +01a8:01680000:0004:0070:22:0 +Русский роман +p:HTB+,C:0500 +4aa8:01680000:0013:0070:22:0 +ДОМАШНИЕ ЖИВОТНЫЕ +p:HTB+,C:0500 +01a9:01680000:0004:0070:22:0 +В гостях у сказки +p:HTB+,C:0500 +4aa9:01680000:0013:0070:22:0 +ПСИХОЛОГИЯ21 +p:HTB+,C:0500 +01aa:01680000:0004:0070:22:0 + +p:HTB+,C:0500 +01ab:01680000:0004:0070:22:0 +Duck +p:HTB+,C:0500 +4aab:01680000:0013:0070:22:0 +FOX +p:HTB+,C:0500 +4aac:01680000:0013:0070:22:0 +Nat Geo Wild +p:HTB+,C:0500 +4aad:01680000:0013:0070:22:0 +АРМЕНИЯ ТВ +p:HTB+,C:0500 +4ab0:01680000:0013:0070:22:0 +Мама +p:HTB+,C:0500 +4ab1:01680000:0013:0070:22:0 +Paramount Channel +p:HTB+,C:0500 +4ab6:01680000:0013:0070:22:0 +Mezzo +p:HTB+,C:0500 +4ab7:01680000:0013:0070:22:0 +БСТ +p:HTB+,C:0500 +4ab8:01680000:0013:0070:22:0 +Первый Вегетарианский +p:HTB+,C:0500 +02bd:01680000:0007:0070:22:0 +8 канал +p:HTB+ +02be:01680000:0007:0070:22:0 +ABTO24 +p:HTB+,C:0500 +02bf:01680000:0007:0070:22:0 +Детский мир/Телеклуб +p:HTB+,C:0500 +02c0:01680000:0007:0070:22:0 +Eurosport 1 +p:HTB+,C:0500 +02c1:01680000:0007:0070:22:0 +Bloomberg Television +p:HTB+,C:0500 +02c3:01680000:0007:0070:22:0 +FRANCE 24 +p:HTB+,C:0500 +02c4:01680000:0007:0070:22:0 +JimJam +p:HTB+,C:0500 +02c5:01680000:0007:0070:22:0 +Nickelodeon +p:HTB+,C:0500 +02c6:01680000:0007:0070:22:0 +SONY CHANNEL +p:HTB+,C:0500 +02c7:01680000:0007:0070:22:0 +Sony Sci-Fi +p:HTB+,C:0500 +02c9:01680000:0007:0070:22:0 +Travel+Adventure +p:HTB+,C:0500 +02ca:01680000:0007:0070:22:0 +Продвижение +p:HTB+,C:0500 +02cb:01680000:0007:0070:22:0 +Загородная жизнь +p:HTB+,C:0500 +02cc:01680000:0007:0070:22:0 +Радость моя +p:HTB+,C:0500 +02cd:01680000:0007:0070:22:0 +ДОН 24 +p:HTB+,C:0500 +02ce:01680000:0007:0070:22:0 +Грозный +p:HTB+,C:0500 +02cf:01680000:0007:0070:22:0 +Мир сериала +p:HTB+,C:0500 +02d0:01680000:0007:0070:22:0 +Брянская Губерния +p:HTB+,C:0500 +02d1:01680000:0007:0070:22:0 +Первый Ярославский +p:HTB+,C:0500 +02d2:01680000:0007:0070:22:0 +Любимое Кино +p:HTB+,C:0500 +02d3:01680000:0007:0070:22:0 +TRiCK +p:HTB+,C:0500 +02d4:01680000:0007:0070:22:0 +Шансон-ТВ +p:HTB+,C:0500 +03e9:01680000:000a:0070:22:0 +Россия 1 +p:HTB+,C:0500 +03ea:01680000:000a:0070:22:0 +МАТЧ! +p:HTB+,C:0500,f:40 +03eb:01680000:000a:0070:22:0 +Пятый канал +p:HTB+,c:0000cb,c:01012f,c:0201f7,c:0300cb,c:050001,C:0500 +03ec:01680000:000a:0070:22:0 +РЕН ТВ +p:HTB+,c:0000cc,c:010130,c:0300cc,c:050001,C:0500 +03ed:01680000:000a:0070:22:0 +Россия К +p:HTB+,C:0500 +03ee:01680000:000a:0070:22:0 +Россия 24 +p:HTB+,c:0000ce,c:010132,c:0300ce,c:050001,C:0500 +03ef:01680000:000a:0070:22:0 +СПАС +p:HTB+,C:0500 +03f0:01680000:000a:0070:22:0 +ТВ-3 +p:HTB+,C:0500 +03f1:01680000:000a:0070:22:0 +ПЯТНИЦА +p:HTB+,c:0000d1,c:010135,c:0300d1,c:050001,C:0500 +03f2:01680000:000a:0070:22:0 +МИР +p:HTB+,C:0500 +03f3:01680000:000a:0070:22:0 +Shopping Live +p:HTB+,f:40 +03f4:01680000:000a:0070:22:0 +Shop24 +p:HTB+,C:0500,f:40 +03f5:01680000:000a:0070:22:0 +RT (арабский) +p:HTB+,C:0500,f:40 +03f6:01680000:000a:0070:22:0 +RT (испанский) +p:HTB+,C:0500,f:40 +2f47:01680000:000c:0070:25:0 +HD Life +p:HTB+,C:0500 +2f49:01680000:000c:0070:25:0 +Discovery Channel HD +p:HTB+,C:0500 +2f4a:01680000:000c:0070:25:0 +Телеканал КХЛ HD +p:HTB+,C:0500 +057c:01680000:000e:0070:25:0 +MTV Live HD +p:HTB+,C:0500 +057f:01680000:000e:0070:25:0 +МИР HD +p:HTB+,C:0500 +4e85:01680000:0014:0070:25:0 +Nat Geo Wild HD +p:HTB+,C:0500 +4e86:01680000:0014:0070:25:0 +RTG HD +p:HTB+,C:0500 +4e87:01680000:0014:0070:25:0 +Mezzo Live HD +p:HTB+,C:0500 +4e88:01680000:0014:0070:25:0 +MGM HD +p:HTB+,C:0500 +4e89:01680000:0014:0070:25:0 +Первый канал HD +p:HTB+,c:0000cd,c:010131,c:0201f9,c:0300cd,c:050001,C:0500 +4e8a:01680000:0014:0070:25:0 +Россия 1 HD +p:HTB+,C:0500,f:40 +6592:01680000:0009:0070:25:0 +National Geographic HD +p:HTB+,C:0500 +6593:01680000:0009:0070:25:0 +Amedia Premium HD +p:HTB+,C:0500 +6594:01680000:0009:0070:25:0 +History HD +p:HTB+,C:0500 +6595:01680000:0009:0070:25:0 +TLC HD +p:HTB+,C:0500 +6596:01680000:0009:0070:25:0 +Travel Channel HD +p:HTB+,C:0500 +0899:01680000:0016:0070:25:0 +HTB HD +p:HTB+,c:0000c9,c:01012d,c:0300c9,c:050001,C:0500 +089a:01680000:0016:0070:25:0 +Animal Planet HD +p:HTB+,C:0500,f:40 +089b:01680000:0016:0070:25:0 +КОННЫЙ МИР HD +p:HTB+,C:0500 +089c:01680000:0016:0070:25:0 +МАТЧ! HD +p:HTB+,C:0500,f:40 +089d:01680000:0016:0070:25:0 +Дом Кино Премиум HD +p:HTB+,C:0500 +089e:01680000:0016:0070:25:0 +BRIDGE HD +p:HTB+,C:0500 +089f:01680000:0016:0070:25:0 +THT HD +p:HTB+,c:0000cf,c:010133,c:0300cf,c:050001,C:0500 +42cd:01680000:0011:0070:25:0 +FOX HD +p:HTB+,C:0500 +42d1:01680000:0011:0070:25:0 +Viasat Nature/History HD +p:HTB+,C:0500 +1f51:01680000:000a:0070:100:0 +12264V SID 0x1f51 +p:DVB-S QPSK 12264V 36.0°E,f:40 +0003:01680000:000a:0070:135:0 +EPG TECT +p:HTB+,C:0500,f:40 +0002:01680000:000a:0070:136:0 +Имена групп каналов +p:HTB+,C:0500,f:40 +0032:01680000:000a:0070:139:0 +010D011320 +p:HTB+,f:40 +003c:01680000:000a:0070:139:0 +010E01130F +p:HTB+,f:40 +end \ No newline at end of file diff --git a/main/editor_ui.glade b/main/editor_ui.glade index b7cb3fa7..17199eae 100644 --- a/main/editor_ui.glade +++ b/main/editor_ui.glade @@ -179,7 +179,6 @@ Satellites editor True False - image1 False @@ -602,6 +601,67 @@ + + False + + dialog + main_window + save + + + False + vertical + 2 + + + False + end + + + gtk-undo + True + True + True + True + + + True + True + 0 + + + + + gtk-ok + True + True + True + True + 0.55000001192092896 + + + True + True + 1 + + + + + False + False + 0 + + + + + + + + + button2 + button1 + + False Options @@ -620,6 +680,7 @@ False + end end @@ -632,7 +693,7 @@ True True - 0 + 2 @@ -646,20 +707,21 @@ True True - 1 + 3 False False - 1 + 0 True False + True True @@ -731,6 +793,8 @@ True True root + emblem-personal + False 0 @@ -744,6 +808,8 @@ False root + emblem-nowrite + False password @@ -755,7 +821,7 @@ False True - 1 + 0 @@ -768,7 +834,7 @@ False True - 2 + 1 @@ -846,7 +912,7 @@ False True - 3 + 2 @@ -858,7 +924,58 @@ False True - 4 + 3 + + + + + True + False + True + + + True + False + Data directory: + 0 + + + 0 + 0 + + + + + True + True + /data + gtk-open + False + Select + + + + 0 + 1 + + + + + False + True + 5 + + + + + True + False + + + False + True + 2 + 6 diff --git a/main/eparser/__init__.py b/main/eparser/__init__.py index 139597f9..e37a3f28 100644 --- a/main/eparser/__init__.py +++ b/main/eparser/__init__.py @@ -1,2 +1,3 @@ - +if __name__ == "__main__": + pass diff --git a/main/eparser/bouquets.py b/main/eparser/bouquets.py index e69de29b..244a421f 100644 --- a/main/eparser/bouquets.py +++ b/main/eparser/bouquets.py @@ -0,0 +1,2 @@ +if __name__ == "__main__": + pass diff --git a/main/eparser/lamedb.py b/main/eparser/lamedb.py index d9bc0f2e..111eca9f 100644 --- a/main/eparser/lamedb.py +++ b/main/eparser/lamedb.py @@ -2,7 +2,7 @@ from collections import namedtuple Channel = namedtuple("Channel", ["name", "service", "freq", "fec"]) -FILE_PATH = "files/lamedb" +FILE_PATH = "files/lamedb_example" with open(FILE_PATH) as file: lines = file.readlines() @@ -13,3 +13,7 @@ for l in lines: print(lines) + +if __name__ == "__main__": + pass + diff --git a/main/eparser/satxml.py b/main/eparser/satxml.py index a206dcfe..fe519c71 100644 --- a/main/eparser/satxml.py +++ b/main/eparser/satxml.py @@ -34,3 +34,7 @@ for elem in dom.getElementsByTagName("sat"): for sat in satellites: print(sat) + + +if __name__ == "__main__": + pass diff --git a/main/properties.py b/main/properties.py index cced6085..5b34a0f7 100644 --- a/main/properties.py +++ b/main/properties.py @@ -2,12 +2,15 @@ import json import os from pathlib import Path + CONFIG_PATH = str(Path.home()) + "/.config/demon-editor/" CONFIG_FILE = CONFIG_PATH + "config.json" +DATA_PATH = "data/" def get_config(): os.makedirs(os.path.dirname(CONFIG_PATH), exist_ok=True) # create dir if not exist + os.makedirs(os.path.dirname(DATA_PATH), exist_ok=True) if not os.path.isfile(CONFIG_FILE) or os.stat(CONFIG_FILE).st_size == 0: with open(CONFIG_FILE, "w") as default_config_file: json.dump(get_default_settings(), default_config_file) @@ -27,12 +30,9 @@ def get_default_settings(): "user": "root", "password": "root", "services_path": "/etc/enigma2/", "user_bouquet_path": "/etc/enigma2/", - "satellites_xml_path": "/etc/tuxbox/"} + "satellites_xml_path": "/etc/tuxbox/", + "data_dir_path": "/data"} if __name__ == "__main__": - prop = get_config() - print(prop) - prop["host"] = "192.168.1.11" - write_config(prop) - print(get_config()) + pass diff --git a/main/ui.py b/main/ui.py index 6929dfb5..1298c78e 100644 --- a/main/ui.py +++ b/main/ui.py @@ -1,11 +1,12 @@ import gi from ftplib import FTP -from properties import get_config, write_config +from main.properties import get_config, write_config gi.require_version('Gtk', '3.0') from gi.repository import Gtk -status_bar = None +__status_bar = None +__options = get_config() def on_about_app(item): @@ -16,40 +17,63 @@ def on_about_app(item): dialog.destroy() +def get_handlers(): + return { + "on_close_main_window": Gtk.main_quit, + "on_about_app": on_about_app, + "on_preferences": on_preferences, + "on_connect": on_connect, + "on_data_dir_field_icon_press": on_path_open + } + + +def on_path_open(*args): + builder = Gtk.Builder() + builder.add_from_file("editor_ui.glade") + dialog = builder.get_object("path_chooser_dialog") + response = dialog.run() + if response == -12: # for fix assertion 'gtk_widget_get_can_default (widget)' failed + args[0].set_text(dialog.get_filename()) + dialog.destroy() + + def on_preferences(item): builder = Gtk.Builder() builder.add_from_file("editor_ui.glade") + builder.connect_signals(get_handlers()) dialog = builder.get_object("settings_dialog") - options = get_config() host_field = builder.get_object("host_field") - host_field.set_text(options["host"]) + host_field.set_text(__options["host"]) port_field = builder.get_object("port_field") - port_field.set_text(options["port"]) + port_field.set_text(__options["port"]) login_field = builder.get_object("login_field") - login_field.set_text(options["user"]) + login_field.set_text(__options["user"]) password_field = builder.get_object("password_field") - password_field.set_text(options["password"]) + password_field.set_text(__options["password"]) services_field = builder.get_object("services_field") - services_field.set_text(options["services_path"]) + services_field.set_text(__options["services_path"]) user_bouquet_field = builder.get_object("user_bouquet_field") - user_bouquet_field.set_text(options["user_bouquet_path"]) + user_bouquet_field.set_text(__options["user_bouquet_path"]) satellites_xml_field = builder.get_object("satellites_xml_field") - satellites_xml_field.set_text(options["satellites_xml_path"]) + satellites_xml_field.set_text(__options["satellites_xml_path"]) + data_dir_field = builder.get_object("data_dir_field") + data_dir_field.set_text(__options["data_dir_path"]) if dialog.run() == Gtk.ResponseType.OK: - options["host"] = host_field.get_text() - options["port"] = port_field.get_text() - options["user"] = login_field.get_text() - options["password"] = password_field.get_text() - options["services_path"] = services_field.get_text() - options["user_bouquet_path"] = user_bouquet_field.get_text() - options["satellites_xml_path"] = satellites_xml_field.get_text() - write_config(options) + __options["host"] = host_field.get_text() + __options["port"] = port_field.get_text() + __options["user"] = login_field.get_text() + __options["password"] = password_field.get_text() + __options["services_path"] = services_field.get_text() + __options["user_bouquet_path"] = user_bouquet_field.get_text() + __options["satellites_xml_path"] = satellites_xml_field.get_text() + __options["data_dir_path"] = data_dir_field.get_text() + write_config(__options) dialog.destroy() def on_connect(item): - connect(get_config()) + connect(__options) def connect(properties): @@ -57,27 +81,21 @@ def connect(properties): try: with FTP(properties["host"]) as ftp: ftp.login(user=properties["user"], passwd=properties["password"]) - status_bar.push(1, ftp.voidcmd("NOOP")) + __status_bar.push(1, ftp.voidcmd("NOOP")) ftp.cwd(properties["services_path"]) ftp.retrlines("LIST") except Exception as e: - status_bar.remove_all(1) - status_bar.push(1, getattr(e, "message", repr(e))) # Or maybe so: getattr(e, 'message', str(e)) + __status_bar.remove_all(1) + __status_bar.push(1, getattr(e, "message", repr(e))) # Or maybe so: getattr(e, 'message', str(e)) def init_ui(): - handlers = { - "on_close_main_window": Gtk.main_quit, - "on_about_app": on_about_app, - "on_preferences": on_preferences, - "on_connect": on_connect - } builder = Gtk.Builder() builder.add_from_file("editor_ui.glade") main_window = builder.get_object("main_window") - global status_bar - status_bar = builder.get_object("status_bar") - builder.connect_signals(handlers) + global __status_bar + __status_bar = builder.get_object("status_bar") + builder.connect_signals(get_handlers()) main_window.show_all()