Ivars 6 年之前
父節點
當前提交
3dff89cdc2
共有 3 個文件被更改,包括 330 次插入279 次删除
  1. 76
    26
      PlayStream.py
  2. 243
    253
      PlayStream.wpr
  3. 11
    0
      changelog.md

+ 76
- 26
PlayStream.py 查看文件

@@ -6,7 +6,7 @@
6 6
 # Used fragments of code from enigma2-plugin-tv3play by Taapat (https://github.com/Taapat/enigma2-plugin-tv3play)
7 7
 #
8 8
 
9
-__version__ = "0.7o"
9
+__version__ = "0.7s"
10 10
 __id__ = "playstream"
11 11
 __title__ = "PlayStream"
12 12
 __author__ = "ivars777@gmail.com"
@@ -77,7 +77,9 @@ config.plugins.playstream.overwrite_download = ConfigYesNo(default = False)
77 77
 #config.plugins.playstream.size = ConfigSelection({"400x240":"400x240","220x132":"220x132","100x60":"100x60"}, default="220x132")
78 78
 config.plugins.playstream.clear_tmp = ConfigYesNo(default = True)
79 79
 config.plugins.playstream.check_update = ConfigYesNo(default = True)
80
-
80
+config.plugins.playstream.streams_file = ConfigText(default="streams.cfg")
81
+config.plugins.playstream.streams_file_remote = ConfigText(default="ftp://user:password@host/hdd/streams.cfg")
82
+config.plugins.playstream.use_streams_file_remote = ConfigYesNo(default = False)
81 83
 
82 84
 class CustomContextFactory(ClientContextFactory):
83 85
     def __init__(self, hostname = None):
@@ -145,7 +147,26 @@ class MainScreen(Screen):
145 147
         self.history = []
146 148
 
147 149
         reload(ContentSources)
148
-        self.sources = ContentSources.ContentSources(os.path.join(cur_directory, "content", "sources"))
150
+        sources_directory = os.path.join(cur_directory, "content", "sources")
151
+        print "**** streams_file_remote=", config.plugins.playstream.use_streams_file_remote.value
152
+        if config.plugins.playstream.use_streams_file_remote.value:
153
+            try:
154
+                self.sources = ContentSources.ContentSources(sources_directory, config.plugins.playstream.streams_file_remote.value)
155
+                print "Remote stream file opened"
156
+            except Exception as e:
157
+                try:
158
+                    self.sources = ContentSources.ContentSources(sources_directory, config.plugins.playstream.streams_file.value)
159
+                    print "Streams_file fallback"
160
+                    self.msg2("Remote streams file is not available, fallback to local")
161
+                except Exception as e:
162
+                    self.msg2(e.message)
163
+        else:
164
+            try:
165
+                self.sources = ContentSources.ContentSources(sources_directory, config.plugins.playstream.streams_file.value)
166
+                print "Local stream file opened"
167
+            except Exception as e:
168
+                self.msg2(e.message)
169
+
149 170
         self.config = self.sources.plugins["config"]
150 171
         self.cur_menu = ("Home","config::home","","Sākums") #
151 172
         self.content = self.sources.get_content(self.cur_menu[1])
@@ -395,9 +416,18 @@ class MainScreen(Screen):
395 416
             ("Aditional information","info","Display additional information about item"),
396 417
             ("Add to bouquet","bouquet","Add current item to Enigma2 bouquet"),
397 418
             ("Add to favorites","favorites","Add current item to PlayStrem favorites"),
419
+        ]
420
+        if "config::" in self.cur_menu[1]:
421
+            lst.extend([
422
+            ("Rename item","rename","Rename list item"),
423
+            ("Move item","move","Move list item"),
424
+            ("Delete item","delete","Delete list item"),
425
+            ("Add submenu","add_list","Add submenu before selected item"),
426
+            ])
427
+        lst.extend([
398 428
             ("Show active downloads","download_list","Show active downloads list"),
399 429
             ("Set download folder","download_folder","Set download folder")
400
-        ]
430
+        ])
401 431
         if self.sources.is_video(self.current[1]):
402 432
             lst.extend([
403 433
             ("Download video to default folder","download","Download video to default folder"),
@@ -410,13 +440,6 @@ class MainScreen(Screen):
410 440
             ("Download list to default folder","download","Download videos in list (if any)"),
411 441
             ("Download list, ask folder","download2","Download videos in list (if any), ask download folder"),
412 442
             ])
413
-        if "config::" in self.cur_menu[1]:
414
-            lst.extend([
415
-            ("Rename item","rename","Rename list item"),
416
-            ("Move item","move","Move list item"),
417
-            ("Delete item","delete","Delete list item"),
418
-            ("Add submenu","add_list","Add submenu before selected item"),
419
-            ])
420 443
         title = self.current[0]
421 444
         self.session.openWithCallback(self.cb_item_menu, ChoiceBox, title = title, list = lst) #TODO
422 445
 
@@ -440,22 +463,9 @@ class MainScreen(Screen):
440 463
         elif answer[1] == "favorites":
441 464
             lists = self.config.get_lists()
442 465
             lists2 = [(self.config.get_title(l),l) for l in lists]
443
-            print lists2
466
+            #print lists2
444 467
             self.session.openWithCallback(self.cb_favorites, ChoiceBox, title="Selected menu item will be added",list = lists2)
445 468
 
446
-        elif answer[1] in ("download2","download3"):  # ask download folder before
447
-            self.session.openWithCallback(self.download_prepare, LocationBox,"Select download folder","",config.plugins.playstream.download_dir.value,config.plugins.playstream.locations,False,"Select folder",None,True,True)
448
-
449
-        elif answer[1] == 'download':
450
-            self.download_prepare(config.plugins.playstream.download_dir.value)
451
-
452
-        elif answer[1] == 'download_list':
453
-            self.download_list()
454
-
455
-        elif answer[1] == 'download_folder':
456
-            #downloadDir = "/media/hdd/movie" #config.plugins.playstream.downloadDir.value TODO
457
-            self.session.openWithCallback(self.cb_download_dir, LocationBox,"Select download folder","",config.plugins.playstream.download_dir.value,config.plugins.playstream.locations,False,"Select folder",None,True,True)
458
-
459 469
         elif answer[1] == "delete":
460 470
             lst = self.cur_menu[1].replace("config::","")
461 471
             #print lst
@@ -464,6 +474,15 @@ class MainScreen(Screen):
464 474
             txt = "'%s' deleted from favourite stream list '%s'"%(self.current[0],lst)
465 475
             self.session.open(MessageBox, txt, MessageBox.TYPE_INFO,timeout=5)
466 476
 
477
+        elif answer[1] == "move":
478
+            lst = self.cur_menu[1].replace("config::","")
479
+            items = self.config.get_list_items(lst)
480
+            self.session.openWithCallback(self.cb_move, ChoiceBox, title="Move berore selected item",list = items)
481
+            #self.session.open(MessageBox, "Not yet implemented!", MessageBox.TYPE_INFO)
482
+            #self.config.write_streams()
483
+            #txt = "'%s' deleted from favourite stream list '%s'"%(self.current[0],lst)
484
+            #self.session.open(MessageBox, txt, MessageBox.TYPE_INFO,timeout=5)
485
+
467 486
         elif answer[1] == "rename":
468 487
             #name2 = "Renamed"
469 488
             self.session.openWithCallback(self.cb_rename,VirtualKeyBoard, title="Enter new item name", text=self.current[0])
@@ -471,6 +490,20 @@ class MainScreen(Screen):
471 490
         elif answer[1] == "add_list":
472 491
             self.session.open(MessageBox, "Not yet implemented!", MessageBox.TYPE_INFO,timeout=5)
473 492
             pass #TODO
493
+
494
+        elif answer[1] in ("download2","download3"):  # ask download folder before
495
+            self.session.openWithCallback(self.download_prepare, LocationBox,"Select download folder","",config.plugins.playstream.download_dir.value,config.plugins.playstream.locations,False,"Select folder",None,True,True)
496
+
497
+        elif answer[1] == 'download':
498
+            self.download_prepare(config.plugins.playstream.download_dir.value)
499
+
500
+        elif answer[1] == 'download_list':
501
+            self.download_list()
502
+
503
+        elif answer[1] == 'download_folder':
504
+            #downloadDir = "/media/hdd/movie" #config.plugins.playstream.downloadDir.value TODO
505
+            self.session.openWithCallback(self.cb_download_dir, LocationBox,"Select download folder","",config.plugins.playstream.download_dir.value,config.plugins.playstream.locations,False,"Select folder",None,True,True)
506
+
474 507
         return
475 508
 
476 509
     def download_prepare(self, download_dir=""):
@@ -673,6 +706,20 @@ class MainScreen(Screen):
673 706
         self.session.open(MessageBox, txt, MessageBox.TYPE_INFO,timeout=3)
674 707
         #self.session.openWithCallback(self.callMyMsg, MessageBox, _("Do you want to exit the plugin?"), MessageBox.TYPE_INFO)
675 708
 
709
+    def cb_move(self,answer):
710
+        print "cb_move",answer,self.current
711
+        self.session.open(MessageBox, "Not yet implemented!", MessageBox.TYPE_INFO)
712
+        return
713
+
714
+        #if not answer:
715
+        #    return
716
+        #value = answer[1]
717
+        #self.config.add_item(value,self.current)
718
+        #self.config.write_streams()
719
+        #txt = "'%s' added to favourite stream list '%s'"%(self.current[0],value)
720
+        #self.session.open(MessageBox, txt, MessageBox.TYPE_INFO,timeout=3)
721
+        #self.session.openWithCallback(self.callMyMsg, MessageBox, _("Do you want to exit the plugin?"), MessageBox.TYPE_INFO)
722
+
676 723
     def config_screen(self):
677 724
         self.session.open(ConfigScreen,self)
678 725
 
@@ -991,7 +1038,10 @@ class ConfigScreen(ConfigListScreen,Screen):
991 1038
             getConfigListEntry(_("TMP folder"), config.plugins.playstream.tmp_dir),
992 1039
             getConfigListEntry(_("Clear tmp folder on exit"), config.plugins.playstream.clear_tmp),
993 1040
             getConfigListEntry(_("Start playstreamproxy"), config.plugins.playstream.streamproxy_start),
994
-            getConfigListEntry(_("Check new plugin version in feed"), config.plugins.playstream.check_update)
1041
+            getConfigListEntry(_("Check new plugin version in feed"), config.plugins.playstream.check_update),
1042
+            getConfigListEntry(_("Content config file"), config.plugins.playstream.streams_file),
1043
+            getConfigListEntry(_("Remote content config file"), config.plugins.playstream.streams_file_remote),
1044
+            getConfigListEntry(_("User remote content config file"), config.plugins.playstream.use_streams_file_remote),
995 1045
         ]
996 1046
         ConfigListScreen.__init__(self, self.list, session = self.session)
997 1047
         self["title"] = Label()

+ 243
- 253
PlayStream.wpr 查看文件

@@ -5121,8 +5121,8 @@ debug.var-col-widths = [0.3789319678127286,
5121 5121
 edit.bookmarks = {u'InfoScreen': (loc('PlayStream.py'),
5122 5122
                                   {'attrib-starts': [('InfoScreen',
5123 5123
         1100)],
5124
-                                   'first-line': 646L,
5125
-                                   'sel-line': 1122L})}
5124
+                                   'first-line': 696L,
5125
+                                   'sel-line': 1172L})}
5126 5126
 edit.file-encoding = {loc('streams.cfg'): 'utf_8'}
5127 5127
 guimgr.overall-gui-state = {'windowing-policy': 'combined-window',
5128 5128
                             'windows': [{'name': 'CLLIF0zyp30ULG6MKhIRp1Beg6'\
@@ -5151,7 +5151,7 @@ guimgr.overall-gui-state = {'windowing-policy': 'combined-window',
5151 5151
                                {'tree-state': {'file-sort-method': 'by name',
5152 5152
         'list-files-first': False,
5153 5153
         'tree-states': {'deep': {'expanded-nodes': [],
5154
-                                 'selected-nodes': [(73,)],
5154
+                                 'selected-nodes': [(96,)],
5155 5155
                                  'top-node': (0,)}},
5156 5156
         'tree-style': 'deep'}}),
5157 5157
                               ('browser',
@@ -5710,18 +5710,18 @@ guimgr.overall-gui-state = {'windowing-policy': 'combined-window',
5710 5710
         'top-node': [('generic attribute',
5711 5711
                       loc('../../../../Python27/Lib/site-packages/win32com/client/dynamic.py'),
5712 5712
                       'ALL_INVOKE_TYPES')]},
5713
-        loc('unknown:<untitled> #2'): {'expanded-nodes': [],
5713
+        loc('unknown:<untitled> #4'): {'column-widths': [1.0],
5714
+                                       'expanded-nodes': [],
5714 5715
                                        'selected-nodes': [],
5715 5716
                                        'top-node': None},
5716
-        loc('unknown:<untitled> #1'): {'expanded-nodes': [],
5717
+        loc('unknown:<untitled> #2'): {'expanded-nodes': [],
5717 5718
                                        'selected-nodes': [],
5718 5719
                                        'top-node': None},
5719
-        loc('unknown:<untitled> #4'): {'column-widths': [1.0],
5720
+        loc('unknown:<untitled> #3'): {'column-widths': [1.0],
5720 5721
                                        'expanded-nodes': [],
5721 5722
                                        'selected-nodes': [],
5722 5723
                                        'top-node': None},
5723
-        loc('unknown:<untitled> #3'): {'column-widths': [1.0],
5724
-                                       'expanded-nodes': [],
5724
+        loc('unknown:<untitled> #1'): {'expanded-nodes': [],
5725 5725
                                        'selected-nodes': [],
5726 5726
                                        'top-node': None}},
5727 5727
                                 'browse_mode': u'Current Module',
@@ -5797,7 +5797,7 @@ guimgr.overall-gui-state = {'windowing-policy': 'combined-window',
5797 5797
                                        'fRegexFlags': 46,
5798 5798
                                        'fReplaceText': u'cb_download_dir',
5799 5799
                                        'fReverse': False,
5800
-                                       'fSearchText': u'epic',
5800
+                                       'fSearchText': u'streams_file_remote',
5801 5801
                                        'fStartPos': 0,
5802 5802
                                        'fStyle': 'text',
5803 5803
                                        'fWholeWords': False,
@@ -5909,277 +5909,268 @@ guimgr.overall-gui-state = {'windowing-policy': 'combined-window',
5909 5909
                        'toolbox-tree-sel': ''})],
5910 5910
         'primary_view_state': {'editor_states': ({'bookmarks': ([[loc('PlayStream.py'),
5911 5911
         {'attrib-starts': [('MainScreen',
5912
-                            91),
5913
-                           ('MainScreen.__init__',
5914
-                            92)],
5915
-         'first-line': 89L,
5916
-         'folded-linenos': [],
5917
-         'sel-line': 97L,
5918
-         'sel-line-start': 4383L,
5919
-         'selection_end': 4423L,
5920
-         'selection_start': 4419L,
5912
+                            93),
5913
+                           ('MainScreen.cb_item_menu',
5914
+                            441)],
5915
+         'first-line': 485L,
5916
+         'folded-linenos': [334L],
5917
+         'sel-line': 474L,
5918
+         'sel-line-start': 20942L,
5919
+         'selection_end': 20949L,
5920
+         'selection_start': 20949L,
5921 5921
          'zoom': 0L},
5922
-        1507829627.696],
5922
+        1520729521.3],
5923 5923
         [loc('PlayStream.py'),
5924 5924
          {'attrib-starts': [('MainScreen',
5925
-                             91),
5926
-                            ('MainScreen.__init__',
5927
-                             92)],
5928
-          'first-line': 94L,
5929
-          'folded-linenos': [],
5930
-          'sel-line': 102L,
5931
-          'sel-line-start': 4614L,
5932
-          'selection_end': 4636L,
5933
-          'selection_start': 4632L,
5925
+                             93),
5926
+                            ('MainScreen.download_prepare',
5927
+                             504)],
5928
+          'first-line': 492L,
5929
+          'folded-linenos': [334L],
5930
+          'sel-line': 508L,
5931
+          'sel-line-start': 22774L,
5932
+          'selection_end': 22774L,
5933
+          'selection_start': 22774L,
5934 5934
           'zoom': 0L},
5935
-         1507829642.19],
5935
+         1520729680.381],
5936 5936
         [loc('PlayStream.py'),
5937 5937
          {'attrib-starts': [('MainScreen',
5938
-                             91),
5939
-                            ('MainScreen.__init__',
5940
-                             92)],
5941
-          'first-line': 94L,
5942
-          'folded-linenos': [],
5943
-          'sel-line': 102L,
5944
-          'sel-line-start': 4614L,
5945
-          'selection_end': 4650L,
5946
-          'selection_start': 4648L,
5938
+                             93),
5939
+                            ('MainScreen.cb_move',
5940
+                             704)],
5941
+          'first-line': 701L,
5942
+          'folded-linenos': [334L],
5943
+          'sel-line': 712L,
5944
+          'sel-line-start': 31243L,
5945
+          'selection_end': 31253L,
5946
+          'selection_start': 31253L,
5947 5947
           'zoom': 0L},
5948
-         1507829643.542],
5948
+         1520730166.753],
5949 5949
         [loc('PlayStream.py'),
5950 5950
          {'attrib-starts': [('MainScreen',
5951
-                             91),
5952
-                            ('MainScreen.__init__',
5953
-                             92)],
5954
-          'first-line': 122L,
5955
-          'folded-linenos': [],
5956
-          'sel-line': 129L,
5957
-          'sel-line-start': 5716L,
5958
-          'selection_end': 5747L,
5959
-          'selection_start': 5747L,
5951
+                             93),
5952
+                            ('MainScreen.layout_finished',
5953
+                             133)],
5954
+          'first-line': 144L,
5955
+          'folded-linenos': [334L],
5956
+          'sel-line': 150L,
5957
+          'sel-line-start': 6838L,
5958
+          'selection_end': 6849L,
5959
+          'selection_start': 6849L,
5960 5960
           'zoom': 0L},
5961
-         1507829681.866],
5961
+         1520730504.623],
5962 5962
         [loc('PlayStream.py'),
5963 5963
          {'attrib-starts': [('MainScreen',
5964
-                             91),
5965
-                            ('MainScreen.back',
5966
-                             364)],
5967
-          'first-line': 356L,
5968
-          'folded-linenos': [],
5969
-          'sel-line': 366L,
5970
-          'sel-line-start': 15836L,
5971
-          'selection_end': 15853L,
5972
-          'selection_start': 15853L,
5964
+                             93),
5965
+                            ('MainScreen.layout_finished',
5966
+                             133)],
5967
+          'first-line': 144L,
5968
+          'folded-linenos': [334L],
5969
+          'sel-line': 156L,
5970
+          'sel-line-start': 7225L,
5971
+          'selection_end': 7253L,
5972
+          'selection_start': 7245L,
5973 5973
           'zoom': 0L},
5974
-         1507829754.074],
5974
+         1520730506.911],
5975 5975
         [loc('PlayStream.py'),
5976 5976
          {'attrib-starts': [('MainScreen',
5977
-                             91),
5978
-                            ('MainScreen.cancel',
5979
-                             373)],
5980
-          'first-line': 359L,
5981
-          'folded-linenos': [],
5982
-          'sel-line': 374L,
5983
-          'sel-line-start': 16030L,
5984
-          'selection_end': 16051L,
5985
-          'selection_start': 16051L,
5977
+                             93),
5978
+                            ('MainScreen.layout_finished',
5979
+                             133)],
5980
+          'first-line': 149L,
5981
+          'folded-linenos': [334L],
5982
+          'sel-line': 158L,
5983
+          'sel-line-start': 7352L,
5984
+          'selection_end': 7380L,
5985
+          'selection_start': 7372L,
5986 5986
           'zoom': 0L},
5987
-         1507831049.52],
5987
+         1520730508.241],
5988 5988
         [loc('PlayStream.py'),
5989 5989
          {'attrib-starts': [('MainScreen',
5990
-                             91),
5991
-                            ('MainScreen.ok',
5992
-                             264)],
5993
-          'first-line': 268L,
5994
-          'folded-linenos': [274L,
5995
-                             304L,
5996
-                             317L],
5997
-          'sel-line': 309L,
5998
-          'sel-line-start': 13551L,
5999
-          'selection_end': 13614L,
6000
-          'selection_start': 13602L,
5990
+                             93),
5991
+                            ('MainScreen.layout_finished',
5992
+                             133)],
5993
+          'first-line': 154L,
5994
+          'folded-linenos': [334L],
5995
+          'sel-line': 163L,
5996
+          'sel-line-start': 7581L,
5997
+          'selection_end': 7605L,
5998
+          'selection_start': 7597L,
6001 5999
           'zoom': 0L},
6002
-         1507831362.477],
6000
+         1520730508.806],
6003 6001
         [loc('PlayStream.py'),
6004
-         {'attrib-starts': [],
6005
-          'first-line': 0L,
6006
-          'folded-linenos': [274L,
6007
-                             304L,
6008
-                             317L],
6009
-          'sel-line': 4L,
6010
-          'sel-line-start': 181L,
6011
-          'selection_end': 253L,
6012
-          'selection_start': 252L,
6002
+         {'attrib-starts': [('MainScreen',
6003
+                             93),
6004
+                            ('MainScreen.ok',
6005
+                             281)],
6006
+          'first-line': 303L,
6007
+          'folded-linenos': [334L],
6008
+          'sel-line': 315L,
6009
+          'sel-line-start': 14155L,
6010
+          'selection_end': 14183L,
6011
+          'selection_start': 14175L,
6013 6012
           'zoom': 0L},
6014
-         1507831525.741],
6013
+         1520730509.756],
6015 6014
         [loc('PlayStream.py'),
6016 6015
          {'attrib-starts': [('MainScreen',
6017
-                             91),
6018
-                            ('MainScreen.__init__',
6019
-                             92)],
6020
-          'first-line': 87L,
6021
-          'folded-linenos': [274L,
6022
-                             304L,
6023
-                             317L],
6024
-          'sel-line': 98L,
6025
-          'sel-line-start': 4427L,
6026
-          'selection_end': 4447L,
6027
-          'selection_start': 4446L,
6016
+                             93),
6017
+                            ('MainScreen.ok',
6018
+                             281)],
6019
+          'first-line': 309L,
6020
+          'folded-linenos': [334L],
6021
+          'sel-line': 318L,
6022
+          'sel-line-start': 14267L,
6023
+          'selection_end': 14291L,
6024
+          'selection_start': 14283L,
6028 6025
           'zoom': 0L},
6029
-         1507831526.16],
6026
+         1520730510.98],
6030 6027
         [loc('PlayStream.py'),
6031 6028
          {'attrib-starts': [('MainScreen',
6032
-                             91),
6033
-                            ('MainScreen.layout_finished',
6034
-                             131)],
6035
-          'first-line': 133L,
6036
-          'folded-linenos': [274L,
6037
-                             304L,
6038
-                             317L],
6039
-          'sel-line': 144L,
6040
-          'sel-line-start': 6439L,
6041
-          'selection_end': 6459L,
6042
-          'selection_start': 6452L,
6029
+                             93),
6030
+                            ('MainScreen.download_prepare',
6031
+                             504)],
6032
+          'first-line': 500L,
6033
+          'folded-linenos': [334L],
6034
+          'sel-line': 512L,
6035
+          'sel-line-start': 23013L,
6036
+          'selection_end': 23034L,
6037
+          'selection_start': 23026L,
6043 6038
           'zoom': 0L},
6044
-         1507831529.254],
6039
+         1520730513.813],
6045 6040
         [loc('PlayStream.py'),
6046 6041
          {'attrib-starts': [('MainScreen',
6047
-                             91),
6048
-                            ('MainScreen.ok',
6049
-                             264)],
6050
-          'first-line': 266L,
6051
-          'folded-linenos': [274L,
6052
-                             317L],
6053
-          'sel-line': 306L,
6054
-          'sel-line-start': 13418L,
6055
-          'selection_end': 13458L,
6056
-          'selection_start': 13451L,
6042
+                             93),
6043
+                            ('MainScreen.download_prepare',
6044
+                             504)],
6045
+          'first-line': 507L,
6046
+          'folded-linenos': [334L],
6047
+          'sel-line': 519L,
6048
+          'sel-line-start': 23336L,
6049
+          'selection_end': 23360L,
6050
+          'selection_start': 23352L,
6057 6051
           'zoom': 0L},
6058
-         1507831597.851],
6052
+         1520730517.47],
6059 6053
         [loc('PlayStream.py'),
6060 6054
          {'attrib-starts': [('MainScreen',
6061
-                             91),
6062
-                            ('MainScreen.back',
6063
-                             364)],
6064
-          'first-line': 356L,
6065
-          'folded-linenos': [274L,
6066
-                             317L],
6067
-          'sel-line': 369L,
6068
-          'sel-line-start': 15901L,
6069
-          'selection_end': 15925L,
6070
-          'selection_start': 15925L,
6055
+                             93),
6056
+                            ('MainScreen.download_prepare',
6057
+                             504)],
6058
+          'first-line': 512L,
6059
+          'folded-linenos': [334L],
6060
+          'sel-line': 521L,
6061
+          'sel-line-start': 23433L,
6062
+          'selection_end': 23457L,
6063
+          'selection_start': 23449L,
6071 6064
           'zoom': 0L},
6072
-         1507831644.478],
6065
+         1520730518.156],
6073 6066
         [loc('PlayStream.py'),
6074
-         {'attrib-starts': [],
6075
-          'first-line': 0L,
6076
-          'folded-linenos': [274L,
6077
-                             317L],
6078
-          'sel-line': 8L,
6079
-          'sel-line-start': 397L,
6080
-          'selection_end': 416L,
6081
-          'selection_start': 416L,
6082
-          'zoom': 0L},
6083
-         1507979460.326],
6084
-        [loc('changelog.md'),
6085
-         {'attrib-starts': [],
6086
-          'first-line': 0L,
6087
-          'folded-linenos': [],
6088
-          'sel-line': 0L,
6089
-          'sel-line-start': 0L,
6090
-          'selection_end': 6L,
6091
-          'selection_start': 6L,
6067
+         {'attrib-starts': [('MainScreen',
6068
+                             93),
6069
+                            ('MainScreen.download_prepare',
6070
+                             504)],
6071
+          'first-line': 517L,
6072
+          'folded-linenos': [334L],
6073
+          'sel-line': 526L,
6074
+          'sel-line-start': 23643L,
6075
+          'selection_end': 23667L,
6076
+          'selection_start': 23659L,
6092 6077
           'zoom': 0L},
6093
-         1508001991.368],
6078
+         1520730523.631],
6094 6079
         [loc('PlayStream.py'),
6095
-         {'attrib-starts': [],
6096
-          'first-line': 0L,
6097
-          'folded-linenos': [274L,
6098
-                             317L],
6099
-          'sel-line': 8L,
6100
-          'sel-line-start': 397L,
6101
-          'selection_end': 416L,
6102
-          'selection_start': 416L,
6080
+         {'attrib-starts': [('MainScreen',
6081
+                             93),
6082
+                            ('MainScreen.video_download_stop',
6083
+                             730)],
6084
+          'first-line': 720L,
6085
+          'folded-linenos': [334L],
6086
+          'sel-line': 732L,
6087
+          'sel-line-start': 32127L,
6088
+          'selection_end': 32144L,
6089
+          'selection_start': 32135L,
6103 6090
           'zoom': 0L},
6104
-         1508001995.995],
6091
+         1520730526.858],
6105 6092
         [loc('PlayStream.py'),
6106 6093
          {'attrib-starts': [('MainScreen',
6107
-                             91),
6094
+                             93),
6108 6095
                             ('MainScreen.layout_finished',
6109
-                             131)],
6110
-          'first-line': 127L,
6111
-          'folded-linenos': [274L,
6112
-                             317L],
6113
-          'sel-line': 136L,
6114
-          'sel-line-start': 6000L,
6115
-          'selection_end': 6081L,
6116
-          'selection_start': 6074L,
6096
+                             133)],
6097
+          'first-line': 151L,
6098
+          'folded-linenos': [334L],
6099
+          'sel-line': 157L,
6100
+          'sel-line-start': 7314L,
6101
+          'selection_end': 7329L,
6102
+          'selection_start': 7329L,
6117 6103
           'zoom': 0L},
6118
-         1508002000.083],
6104
+         1520730990.901],
6119 6105
         [loc('PlayStream.py'),
6120
-         {'attrib-starts': [('MainScreen',
6121
-                             91),
6122
-                            ('MainScreen.decode_finished',
6123
-                             232)],
6124
-          'first-line': 230L,
6125
-          'folded-linenos': [274L,
6126
-                             317L],
6127
-          'sel-line': 242L,
6128
-          'sel-line-start': 10657L,
6129
-          'selection_end': 10679L,
6130
-          'selection_start': 10672L,
6106
+         {'attrib-starts': [('ConfigScreen',
6107
+                             1023),
6108
+                            ('ConfigScreen.__init__',
6109
+                             1025)],
6110
+          'first-line': 1026L,
6111
+          'folded-linenos': [334L],
6112
+          'sel-line': 1038L,
6113
+          'sel-line-start': 44109L,
6114
+          'selection_end': 44218L,
6115
+          'selection_start': 44199L,
6131 6116
           'zoom': 0L},
6132
-         1508002010.046],
6117
+         1520730995.581],
6133 6118
         [loc('PlayStream.py'),
6134
-         {'attrib-starts': [('StreamInfo',
6135
-                             1150),
6136
-                            ('StreamInfo.download_finished',
6137
-                             1199)],
6138
-          'first-line': 1189L,
6139
-          'folded-linenos': [274L,
6140
-                             317L],
6141
-          'sel-line': 1201L,
6142
-          'sel-line-start': 50727L,
6143
-          'selection_end': 50754L,
6144
-          'selection_start': 50751L,
6119
+         {'attrib-starts': [('ConfigScreen',
6120
+                             1023),
6121
+                            ('ConfigScreen.__init__',
6122
+                             1025)],
6123
+          'first-line': 1030L,
6124
+          'folded-linenos': [334L],
6125
+          'sel-line': 1039L,
6126
+          'sel-line-start': 44221L,
6127
+          'selection_end': 44339L,
6128
+          'selection_start': 44320L,
6145 6129
           'zoom': 0L},
6146
-         1508002013.231],
6130
+         1520730997.006],
6147 6131
         [loc('PlayStream.py'),
6148
-         {'attrib-starts': [('StreamInfo',
6149
-                             1150),
6150
-                            ('StreamInfo.download_finished',
6151
-                             1199)],
6152
-          'first-line': 1196L,
6153
-          'folded-linenos': [274L,
6154
-                             317L],
6155
-          'sel-line': 1208L,
6156
-          'sel-line-start': 51174L,
6157
-          'selection_end': 51203L,
6158
-          'selection_start': 51203L,
6132
+         {'attrib-starts': [],
6133
+          'first-line': 75L,
6134
+          'folded-linenos': [334L],
6135
+          'sel-line': 80L,
6136
+          'sel-line-start': 3841L,
6137
+          'selection_end': 3886L,
6138
+          'selection_start': 3867L,
6159 6139
           'zoom': 0L},
6160
-         1508002130.982],
6140
+         1520730997.75],
6141
+        [loc('PlayStream.py'),
6142
+         {'attrib-starts': [],
6143
+          'first-line': 75L,
6144
+          'folded-linenos': [334L],
6145
+          'sel-line': 81L,
6146
+          'sel-line-start': 3952L,
6147
+          'selection_end': 4001L,
6148
+          'selection_start': 3982L,
6149
+          'zoom': 0L},
6150
+         1520730998.238],
6161 6151
         [loc('PlayStream.py'),
6162 6152
          {'attrib-starts': [('MainScreen',
6163
-                             91)],
6164
-          'first-line': 83L,
6165
-          'folded-linenos': [274L,
6166
-                             317L],
6167
-          'sel-line': 91L,
6168
-          'sel-line-start': 4196L,
6169
-          'selection_end': 4212L,
6170
-          'selection_start': 4202L,
6153
+                             93),
6154
+                            ('MainScreen.layout_finished',
6155
+                             133)],
6156
+          'first-line': 138L,
6157
+          'folded-linenos': [334L],
6158
+          'sel-line': 150L,
6159
+          'sel-line-start': 6838L,
6160
+          'selection_end': 6898L,
6161
+          'selection_start': 6879L,
6171 6162
           'zoom': 0L},
6172
-         1508002139.334]],
6163
+         1520730999.326]],
6173 6164
         20),
6174 6165
         'current-loc': loc('PlayStream.py'),
6175 6166
         'editor-state-list': [(loc('changelog.md'),
6176 6167
                                {'attrib-starts': [],
6177 6168
                                 'first-line': 0L,
6178 6169
                                 'folded-linenos': [],
6179
-                                'sel-line': 0L,
6180
-                                'sel-line-start': 0L,
6181
-                                'selection_end': 6L,
6182
-                                'selection_start': 6L,
6170
+                                'sel-line': 2L,
6171
+                                'sel-line-start': 69L,
6172
+                                'selection_end': 69L,
6173
+                                'selection_start': 69L,
6183 6174
                                 'zoom': 0L}),
6184 6175
                               (loc('plugin.py'),
6185 6176
                                {'attrib-starts': [],
@@ -6192,16 +6183,15 @@ guimgr.overall-gui-state = {'windowing-policy': 'combined-window',
6192 6183
                                 'zoom': 0L}),
6193 6184
                               (loc('PlayStream.py'),
6194 6185
                                {'attrib-starts': [('MainScreen',
6195
-        91),
6196
-        ('MainScreen.decode_finished',
6197
-         232)],
6198
-                                'first-line': 226L,
6199
-                                'folded-linenos': [274L,
6200
-        317L],
6201
-                                'sel-line': 236L,
6202
-                                'sel-line-start': 10439L,
6203
-                                'selection_end': 10477L,
6204
-                                'selection_start': 10468L,
6186
+        93),
6187
+        ('MainScreen.layout_finished',
6188
+         133)],
6189
+                                'first-line': 156L,
6190
+                                'folded-linenos': [338L],
6191
+                                'sel-line': 151L,
6192
+                                'sel-line-start': 6937L,
6193
+                                'selection_end': 6972L,
6194
+                                'selection_start': 6972L,
6205 6195
                                 'zoom': 0L}),
6206 6196
                               (loc('VideoDownload.py'),
6207 6197
                                {'attrib-starts': [('VideoDownloadList',
@@ -6335,7 +6325,6 @@ guimgr.overall-gui-state = {'windowing-policy': 'combined-window',
6335 6325
         u'content/sources/SourceBase.py',
6336 6326
         u'content/sources/cinemalive.py',
6337 6327
         u'imake.bat',
6338
-        u'plugin.py',
6339 6328
         u'skin.xml',
6340 6329
         u'test_download.py',
6341 6330
         u'../python/Tools/BoundFunction.py',
@@ -6343,6 +6332,7 @@ guimgr.overall-gui-state = {'windowing-policy': 'combined-window',
6343 6332
         u'../python/skin.py',
6344 6333
         u'../../../../Python27/Lib/site-packages/twisted/internet/_sslverify.py',
6345 6334
         u'changelog.md',
6335
+        u'plugin.py',
6346 6336
         u'PlayStream.py']},
6347 6337
         'saved_notebook_display': None,
6348 6338
         'split_percents': {0: 0.4733405875952122},
@@ -6359,6 +6349,7 @@ guimgr.overall-gui-state = {'windowing-policy': 'combined-window',
6359 6349
                          1880,
6360 6350
                          1100)}]}
6361 6351
 guimgr.recent-documents = [loc('PlayStream.py'),
6352
+                           loc('plugin.py'),
6362 6353
                            loc('changelog.md'),
6363 6354
                            loc('../../../../Python27/Lib/site-packages/twisted/internet/_sslverify.py'),
6364 6355
                            loc('skin.xml'),
@@ -6369,8 +6360,7 @@ guimgr.recent-documents = [loc('PlayStream.py'),
6369 6360
                            loc('test_download.py'),
6370 6361
                            loc('../python/Tools/BoundFunction.py'),
6371 6362
                            loc('../python/skin.py'),
6372
-                           loc('../python/enigma.py'),
6373
-                           loc('plugin.py')]
6363
+                           loc('../python/enigma.py')]
6374 6364
 guimgr.visual-state = {loc('../../$pylib/main6.py'): {'attrib-starts': [('pa'\
6375 6365
         'rse_arguments',
6376 6366
         9)],
@@ -7582,26 +7572,26 @@ search.replace-history = [u'cb_download_dir',
7582 7572
                           u'filmix.me',
7583 7573
                           u'self',
7584 7574
                           u'current']
7585
-search.search-history = [u'decoded',
7575
+search.search-history = [u'streams_file_remote',
7576
+                         u'self.msg2',
7577
+                         u'self.msg',
7578
+                         u'delete',
7579
+                         u'move',
7580
+                         u'add',
7581
+                         u'"add"',
7582
+                         u'streams_file',
7583
+                         u'Contents',
7584
+                         u'streams_fi',
7585
+                         u'msg',
7586
+                         u'tmp_dir',
7587
+                         u'self.config',
7588
+                         u'sources',
7589
+                         u'decoded',
7586 7590
                          u'history',
7587 7591
                          u'exit',
7588 7592
                          u'warning',
7589 7593
                          u'warn',
7590
-                         u'war',
7591
-                         u'PictureData',
7592
-                         u'tls',
7593
-                         u'picturedata',
7594
-                         u'decode_finished',
7595
-                         u'picture',
7596
-                         u'callbac',
7597
-                         u'etimer',
7598
-                         u'ClientTLSOptions',
7599
-                         u'key_exit',
7600
-                         u'back',
7601
-                         u'downloadPage',
7602
-                         u'download_image_failed',
7603
-                         u'boundFunction',
7604
-                         u'resolveFilename']
7594
+                         u'war']
7605 7595
 testing.stored-results = (1,
7606 7596
                           [],
7607 7597
                           {})

+ 11
- 0
changelog.md 查看文件

@@ -1,3 +1,14 @@
1
+**0.7s** (10.03.2018)
2
+- [change] Delete un Move favorītos stradā
3
+
4
+**0.7r** (10.03.2018)
5
+- [change] uzlabota ltc informācija
6
+- [feature] iespēja opcijās norādīt streams.cfg faila atrašanos/nosaukumu gan lokālā failu sistēmā gan ftp (ftp://user:password@host/path/too/streams.cfg), gan http (rakstīšana netiek atbalstīta)
7
+- [change] filmix rādā visus tulkojumus/strīmus (agrak tikai pirmo)
8
+
9
+**0.7p** (12.12.2017)
10
+- [change] salabots euronews
11
+
1 12
 **0.7o** (10.12.2017)
2 13
 - [change] salabots ltc search
3 14
 - [change] salabots filmix search