Ivars 7 years ago
parent
commit
0a6fc5fa91

+ 40
- 15
PlayStream.py View File

1
 #!/usr/bin/env python
1
 #!/usr/bin/env python
2
 # coding=utf8
2
 # coding=utf8
3
-# This file is part of PlayStream - enigma2 plugin to play video streams from various sources
3
+# This file is part of PlayStream - enigma2 plughhhhin to play video streams from various sources
4
 # Copyright (c) 2016 ivars777 (ivars777@gmail.com)
4
 # Copyright (c) 2016 ivars777 (ivars777@gmail.com)
5
 # Distributed under the GNU GPL v3. For full terms see http://www.gnu.org/licenses/gpl-3.0.en.html
5
 # Distributed under the GNU GPL v3. For full terms see http://www.gnu.org/licenses/gpl-3.0.en.html
6
 # Used fragments of code from enigma2-plugin-tv3play by Taapat (https://github.com/Taapat/enigma2-plugin-tv3play)
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.7e"
9
+__version__ = "0.7o"
10
 __id__ = "playstream"
10
 __id__ = "playstream"
11
 __title__ = "PlayStream"
11
 __title__ = "PlayStream"
12
 __author__ = "ivars777@gmail.com"
12
 __author__ = "ivars777@gmail.com"
49
 from Tools.LoadPixmap import LoadPixmap
49
 from Tools.LoadPixmap import LoadPixmap
50
 from skin import loadSkin
50
 from skin import loadSkin
51
 from twisted.web.client import downloadPage,defer,reactor
51
 from twisted.web.client import downloadPage,defer,reactor
52
+try:
53
+    # available since twisted 14.0
54
+    from twisted.internet._sslverify import ClientTLSOptions
55
+except ImportError:
56
+    ClientTLSOptions = None
57
+from twisted.internet.ssl import ClientContextFactory
52
 
58
 
53
 from plugin_locale import _
59
 from plugin_locale import _
54
-import ContentSources
55
-import util
60
+from content import ContentSources
61
+from content import util
56
 from VideoDownload import DownloadJob, HLSDownloadJob,VideoDownloadList
62
 from VideoDownload import DownloadJob, HLSDownloadJob,VideoDownloadList
57
-from Downloader import get_header, get_ext
63
+from content.Downloader import get_header, get_ext
58
 #import enigma2_api
64
 #import enigma2_api
59
 
65
 
60
 e2 = None
66
 e2 = None
72
 config.plugins.playstream.clear_tmp = ConfigYesNo(default = True)
78
 config.plugins.playstream.clear_tmp = ConfigYesNo(default = True)
73
 config.plugins.playstream.check_update = ConfigYesNo(default = True)
79
 config.plugins.playstream.check_update = ConfigYesNo(default = True)
74
 
80
 
81
+
82
+class CustomContextFactory(ClientContextFactory):
83
+    def __init__(self, hostname = None):
84
+        self.hostname = hostname
85
+    def getContext(self):
86
+        ctx = self._contextFactory(self.method)
87
+        if self.hostname and ClientTLSOptions:
88
+            ClientTLSOptions(self.hostname, ctx)
89
+        return ctx
90
+
75
 #####################################################################################################################
91
 #####################################################################################################################
76
 class MainScreen(Screen):
92
 class MainScreen(Screen):
77
     def __init__(self, session):
93
     def __init__(self, session):
129
         self.history = []
145
         self.history = []
130
 
146
 
131
         reload(ContentSources)
147
         reload(ContentSources)
132
-        self.sources = ContentSources.ContentSources(os.path.join(cur_directory,"sources"))
148
+        self.sources = ContentSources.ContentSources(os.path.join(cur_directory, "content", "sources"))
133
         self.config = self.sources.plugins["config"]
149
         self.config = self.sources.plugins["config"]
134
         self.cur_menu = ("Home","config::home","","Sākums") #
150
         self.cur_menu = ("Home","config::home","","Sākums") #
135
         self.content = self.sources.get_content(self.cur_menu[1])
151
         self.content = self.sources.get_content(self.cur_menu[1])
195
                 image_path = os.path.join(config.plugins.playstream.tmp_dir.value, fname)
211
                 image_path = os.path.join(config.plugins.playstream.tmp_dir.value, fname)
196
                 self.download_image(image_path, image_url)
212
                 self.download_image(image_path, image_url)
197
             else: # local file
213
             else: # local file
198
-                image_path = os.path.join(cur_directory,image_url)
214
+                image_path = os.path.join(cur_directory, "picons", image_url)
199
                 self.start_decode(image_path,image_url)
215
                 self.start_decode(image_path,image_url)
200
 
216
 
201
     def start_decode(self,image_path,image_url):
217
     def start_decode(self,image_path,image_url):
204
         sc = AVSwitch().getFramebufferScale()
220
         sc = AVSwitch().getFramebufferScale()
205
         if  not self.picloads.has_key(image_path):
221
         if  not self.picloads.has_key(image_path):
206
             self.picloads[image_path] = ePicLoad()
222
             self.picloads[image_path] = ePicLoad()
207
-            self.picloads[image_path].PictureData.get().append(boundFunction(self.decode_finished, image_path))
223
+            try:
224
+                self.picloads[image_path].PictureData.get().append(boundFunction(self.decode_finished, image_path))
225
+            except:
226
+                self.picloads[image_path].PictureData.connect(boundFunction(self.decode_finished, image_path))
208
             self.picloads[image_path].setPara((self["pic"].instance.size().width(),
227
             self.picloads[image_path].setPara((self["pic"].instance.size().width(),
209
                                           self["pic"].instance.size().height(),
228
                                           self["pic"].instance.size().height(),
210
                                           sc[0], sc[1], True, 0, "#00000000"))
229
                                           sc[0], sc[1], True, 0, "#00000000"))
211
-            #print image_path,image_url
230
+            print image_path,image_url
212
             self.picloads[image_path].startDecode(image_path)
231
             self.picloads[image_path].startDecode(image_path)
213
 
232
 
214
     def decode_finished(self, image_path, picInfo = None):
233
     def decode_finished(self, image_path, picInfo = None):
230
         #print "Image download started",self.downloading,image_path,image_url
249
         #print "Image download started",self.downloading,image_path,image_url
231
         self.downloading += 1
250
         self.downloading += 1
232
         self.images[image_url] = -1
251
         self.images[image_url] = -1
233
-        downloadPage(image_url, image_path).addCallback(boundFunction(self.download_image_finished, image_path, image_url)).addErrback(boundFunction(self.download_image_failed, image_path, image_url))
252
+        downloadPage(image_url, image_path, CustomContextFactory(image_url.split("/")[2])).addCallback(boundFunction(self.download_image_finished, image_path, image_url)).addErrback(boundFunction(self.download_image_failed, image_path, image_url))
234
 
253
 
235
     def download_image_finished(self, image_path, image_url, result):
254
     def download_image_finished(self, image_path, image_url, result):
236
         self.downloading -= 1
255
         self.downloading -= 1
311
         data = self.current[1]
330
         data = self.current[1]
312
         source = data.split("::")[0]
331
         source = data.split("::")[0]
313
         if self.sources.is_video(data) and "get_info" in dir(self.sources.plugins[source]):
332
         if self.sources.is_video(data) and "get_info" in dir(self.sources.plugins[source]):
314
-            self.sources.plugins
333
+            #self.sources.plugins
315
             try:
334
             try:
316
                 nfo = self.sources.get_info(self.current[1])
335
                 nfo = self.sources.get_info(self.current[1])
317
             except Exception, e:
336
             except Exception, e:
344
             self.show_content(new_content)
363
             self.show_content(new_content)
345
 
364
 
346
     def back(self):
365
     def back(self):
347
-        self["list"].setIndex(0)
348
-        self.ok()
366
+        if self.history:
367
+            self["list"].setIndex(0)
368
+            self.ok()
369
+        else:
370
+            self.cancel()
349
 
371
 
350
     def show_content(self,content,index=0):
372
     def show_content(self,content,index=0):
351
         self["list"].setList(content)
373
         self["list"].setList(content)
1168
             fname = image_url.replace(":", "-").replace("/", "_")
1190
             fname = image_url.replace(":", "-").replace("/", "_")
1169
             image_path = os.path.join(config.plugins.playstream.tmp_dir.value, fname)
1191
             image_path = os.path.join(config.plugins.playstream.tmp_dir.value, fname)
1170
             if not os.path.exists(image_path):
1192
             if not os.path.exists(image_path):
1171
-                downloadPage(image_url, image_path).addCallback(boundFunction(self.download_finished, image_path,image_url)).addErrback(boundFunction(self.download_failed, image_path,image_url))
1193
+                downloadPage(image_url, image_path, CustomContextFactory(image_url.split("/")[2])).addCallback(boundFunction(self.download_finished, image_path,image_url)).addErrback(boundFunction(self.download_failed, image_path,image_url))
1172
             else:
1194
             else:
1173
                 self.download_finished(image_path, image_url)
1195
                 self.download_finished(image_path, image_url)
1174
         elif image_url:
1196
         elif image_url:
1178
     def download_finished(self, image_path,image_url):
1200
     def download_finished(self, image_path,image_url):
1179
         sc = AVSwitch().getFramebufferScale()
1201
         sc = AVSwitch().getFramebufferScale()
1180
         self.picloads = ePicLoad()
1202
         self.picloads = ePicLoad()
1181
-        self.picloads.PictureData.get().append(boundFunction(self.finish_decode, image_path))
1203
+        try:
1204
+            self.picloads.PictureData.get().append(boundFunction(self.finish_decode, image_path))
1205
+        except:
1206
+            self.picloads.PictureData.connect(boundFunction(self.finish_decode, image_path))
1182
         # 0=Width 1=Height 2=Aspect 3=use_cache 4=resize_type 5=Background(#AARRGGBB)
1207
         # 0=Width 1=Height 2=Aspect 3=use_cache 4=resize_type 5=Background(#AARRGGBB)
1183
         self.picloads.setPara((self["pic"].instance.size().width(), self["pic"].instance.size().height(),
1208
         self.picloads.setPara((self["pic"].instance.size().width(), self["pic"].instance.size().height(),
1184
                                sc[0], sc[1], True, 0, "#00000000"))
1209
                                sc[0], sc[1], True, 0, "#00000000"))

+ 615
- 316
PlayStream.wpr
File diff suppressed because it is too large
View File


+ 1
- 2
VideoDownload.py View File

10
 from Screens.Screen import Screen
10
 from Screens.Screen import Screen
11
 from Tools.Directories import fileExists
11
 from Tools.Directories import fileExists
12
 
12
 
13
-from Downloader import DownloadWithProgress, DownloadWithProgressFragmented,get_header
14
-
13
+from content.Downloader import DownloadWithProgress, DownloadWithProgressFragmented,get_header
15
 
14
 
16
 def timer_callback(timer,callback):
15
 def timer_callback(timer,callback):
17
     if "callback" in dir(timer):
16
     if "callback" in dir(timer):

+ 40
- 1
changelog.md View File

1
+**0.7o** (10.12.2017)
2
+- [change] salabots ltc search
3
+- [change] salabots filmix search
4
+- [change] salabots mtgplay (tvplay) search un sortēšana
5
+- [change] salabots cinemalive get_video
6
+- u.c.
7
+
8
+**0.7n** (14.11.2017)
9
+- [change] salabots ltc (shortuc.lv)
10
+
11
+**0.7m** (14.10.2017)
12
+- [bugfix] lmt -  attēlus nerādīja
13
+- [bugifx] mtgplay (skaties.lv) - papildus pārbaudes, ja nav raidījuma attēlu
14
+
15
+**0.7l** (11.10.2017)
16
+- [change] Izeja no plugina ar Exit esot sākuma logā
17
+
18
+**0.7k** (11.10.2017)
19
+- [bugfix] TLSOptions nav Twisted versijām <14.0
20
+- [bugfix] PictureData savietojamība ar openenigma (get->connect)
21
+
22
+**0.7j** (11.10.2017)
23
+- [bugfix] key_exit un key_menu png faili iekļauti instalācijā
24
+
25
+**0.7i** (10.10.2017)
26
+- [bugfix] cinemalive.lv bilžu downloads (custom ClientContextFactory)
27
+- [change] replay info sakārtošana
28
+- [bugfix] skin.xml neesošās krasas un png
29
+
30
+**0.7h** (07.10.2017)
31
+- [change] Salabots cinemalive (strādā gan openload, gan cloudsany)
32
+
33
+**0.7g** (04.10.2017)
34
+- [change] Salaboti ltc,filmix,cinemalive u.c.
35
+
36
+**0.7f** (13.09.2017)
37
+- [change] Avoti iznesti atsevišķā folderī/git projektā
38
+- [change] Sakārtots stream.cfg (bildes u.c.)
39
+- [change] ltc tv info update
40
+
1
 **0.7e** (13.09.2017)
41
 **0.7e** (13.09.2017)
2
 - [bugfix] Salabots lattelecom.tv (bija pamainīts web formāts)
42
 - [bugfix] Salabots lattelecom.tv (bija pamainīts web formāts)
3
 
43
 
4
-
5
 **0.7c** (03.09.2017)
44
 **0.7c** (03.09.2017)
6
 - [bugfix] Salabots filmix (pamainīts direct url avots uz html5 + dekodēšana kods)
45
 - [bugfix] Salabots filmix (pamainīts direct url avots uz html5 + dekodēšana kods)
7
 
46
 

+ 12
- 10
deploy.bat View File

19
 skin.xml
19
 skin.xml
20
 PlayStream.py
20
 PlayStream.py
21
 PlayStream.png
21
 PlayStream.png
22
-ContentSources.py
23
 VideoDownload.py
22
 VideoDownload.py
24
-Downloader.py
25
 enigma2_api.py
23
 enigma2_api.py
26
-resolver.py
27
-util.py
28
-playstreamproxy.py
29
-offline.mp4
30
-sources\*.py
31
-resolvers\*.py
32
-picons\*
24
+content\__ini__.py
25
+content\ContentSources.py
26
+content\resolver.py
27
+content\util.py
28
+content\run.py
29
+content\Downloader.py
30
+content\playstreamproxy.py
31
+content\offline.mp4
32
+content\demjson.py
33
+content\sources\*.py
34
+content\resolvers\*.py
33
 locale\*
35
 locale\*
34
 ) do echo f | xcopy /y  %%f %TARGET%%%f
36
 ) do echo f | xcopy /y  %%f %TARGET%%%f
35
-
37
+xcopy /y /q content\picons\* %TARGET%picons\
36
 pause
38
 pause

+ 3
- 1
deploy_ipk.bat View File

1
 @echo off
1
 @echo off
2
 set dm=dm800se
2
 set dm=dm800se
3
 set pname=enigma2-plugin-extensions-playstream_
3
 set pname=enigma2-plugin-extensions-playstream_
4
+set /p ver=<version.txt
5
+
4
 if (dm800se)==(%1%) (
6
 if (dm800se)==(%1%) (
5
 	set TARGET=v:\tmp
7
 	set TARGET=v:\tmp
6
 ) else if (dm500hd)==(%1%) (
8
 ) else if (dm500hd)==(%1%) (
11
 	GOTO:EOF
13
 	GOTO:EOF
12
 )
14
 )
13
 
15
 
14
-xcopy /y  release\%pname%%2.ipk %TARGET%\
16
+xcopy /y  release\%pname%%ver%.ipk %TARGET%\
15
 
17
 
16
 pause
18
 pause

+ 92
- 66
imake.bat View File

1
 @echo off
1
 @echo off
2
+
3
+:--- Pull content submodule ---
4
+rem cd content
5
+rem git checkout .
6
+rem git pull
7
+rem cd ..
8
+
2
 :=== Parameters ===
9
 :=== Parameters ===
3
 
10
 
11
+:--- Extract version number ---
4
 python get_version.py PlayStream.py >version.txt
12
 python get_version.py PlayStream.py >version.txt
5
 cat version.txt
13
 cat version.txt
6
-pause
14
+rem pause
7
 set /p ver=<version.txt
15
 set /p ver=<version.txt
8
 echo Version: %ver%
16
 echo Version: %ver%
9
-
10
 pause
17
 pause
18
+
19
+:--- Set variables ---
11
 set prog=PlayStream
20
 set prog=PlayStream
12
 set pack_name=enigma2-plugin-extensions-playstream
21
 set pack_name=enigma2-plugin-extensions-playstream
13
 set desc=Play online streams from various sources, mostly Latvian
22
 set desc=Play online streams from various sources, mostly Latvian
22
 set AR=\MinGW\bin\ar.exe
31
 set AR=\MinGW\bin\ar.exe
23
 set TAR=\MinGW\msys\1.0\bin\tar.exe
32
 set TAR=\MinGW\msys\1.0\bin\tar.exe
24
 
33
 
25
-:=== data files ===
34
+:=== Create data files ===
26
 if exist %ipk_dir% rm -r -f %ipk_dir%
35
 if exist %ipk_dir% rm -r -f %ipk_dir%
27
 mkdir %ipk_dir%
36
 mkdir %ipk_dir%
37
+
28
 for %%f in (
38
 for %%f in (
29
 readme.md
39
 readme.md
30
 changelog.md
40
 changelog.md
35
 skin.xml
45
 skin.xml
36
 %prog%.py
46
 %prog%.py
37
 %prog%.png
47
 %prog%.png
38
-ContentSources.py
48
+key_menu.png
49
+key_exit.png
39
 VideoDownload.py
50
 VideoDownload.py
40
-Downloader.py
41
 enigma2_api.py
51
 enigma2_api.py
42
-resolver.py
43
-util.py
44
-playstreamproxy.py
45
-offline.mp4
46
-demjson.py
52
+content\__init__.py
53
+content\ContentSources.py
54
+content\Downloader.py
55
+content\resolver.py
56
+content\util.py
57
+content\icon.gif
58
+content\run.py
59
+content\playstreamproxy.py
60
+content\offline.mp4
61
+content\demjson.py
62
+content\sources\__init__.py
63
+content\sources\SourceBase.py
64
+content\sources\cinemalive.py
65
+content\sources\config.py
66
+content\sources\euronews.py
67
+content\sources\filmix.py
68
+content\sources\filmon.py
69
+content\sources\iplayer.py
70
+content\sources\kinofilmnet.py
71
+content\sources\movieplace.py
72
+content\sources\ltc.py
73
+content\sources\mtgplay.py
74
+content\sources\play24.py
75
+content\sources\replay.py
76
+content\sources\lmt.py
77
+content\sources\serialguru.py
78
+content\sources\tvdom.py
79
+content\sources\ustvnow.py
80
+content\sources\viaplay.py
81
+content\sources\YouTubeVideoUrl.py
82
+content\sources\jsinterp.py
83
+content\sources\swfinterp.py
84
+content\sources\streams.cfg
85
+content\resolvers\__init__.py
86
+content\resolvers\aadecode.py
87
+content\resolvers\hqqresolver.py
88
+content\resolvers\openload3.py
89
+content\resolvers\hdgo.py
90
+content\resolvers\kapnob.py
91
+content\resolvers\kodik.py
92
+content\resolvers\cloudsany.py
93
+content\resolvers\youtuberesolver.py
47
 locale\*.*
94
 locale\*.*
48
-sources\__init__.py
49
-sources\SourceBase.py
50
-sources\cinemalive.py
51
-sources\config.py
52
-sources\euronews.py
53
-sources\filmix.py
54
-sources\filmon.py
55
-sources\iplayer.py
56
-sources\kinofilmnet.py
57
-sources\movieplace.py
58
-sources\ltc.py
59
-sources\mtgplay.py
60
-sources\play24.py
61
-sources\replay.py
62
-sources\lmt.py
63
-sources\serialguru.py
64
-sources\tvdom.py
65
-sources\ustvnow.py
66
-sources\viaplay.py
67
-sources\YouTubeVideoUrl.py
68
-sources\jsinterp.py
69
-sources\swfinterp.py
70
-sources\streams.cfg
71
-resolvers\__init__.py
72
-resolvers\aadecode.py
73
-resolvers\hqqresolver.py
74
-resolvers\openload3.py
75
-resolvers\hdgo.py
76
-resolvers\kapnob.py
77
-resolver\kodik.py
78
-resolvers\youtuberesolver.py
79
-picons\*.*
80
 ) do echo f | xcopy /y /q %%f %ipk_dir%data\%ext_dir%%prog%\%%f
95
 ) do echo f | xcopy /y /q %%f %ipk_dir%data\%ext_dir%%prog%\%%f
81
-
96
+xcopy /y /q content\picons\* %ipk_dir%data\%ext_dir%%prog%\picons\
82
 xcopy /y /q playstreamproxy %ipk_dir%data\etc\init.d\
97
 xcopy /y /q playstreamproxy %ipk_dir%data\etc\init.d\
83
 
98
 
84
 :=== control file ===
99
 :=== control file ===
102
 :=== preinst file ===
117
 :=== preinst file ===
103
 (
118
 (
104
 echo #!/bin/sh
119
 echo #!/bin/sh
105
-:echo if [ -d %ext_dir2%%prog% ]; then
106
-:echo   rm -rf %ext_dir2%%prog%/* ^> /dev/null 2^>^&1
107
-:echo   rm -rf %ext_dir2%%prog%/sources/*.py* ^> /dev/null 2^>^&1
108
-:echo   rm -rf %ext_dir2%%prog%/resolvers/*.py* ^> /dev/null 2^>^&1
109
-:echo fi
120
+echo if [ -d %ext_dir2%%prog%/sources ]; then
121
+echo    rm -rf %ext_dir2%%prog%/*.pyo ^> /dev/null 2^>^&1
122
+echo    rm -rf %ext_dir2%%prog%/resolvers ^> /dev/null 2^>^&1
123
+echo    mkdir %ext_dir2%%prog%/content
124
+echo    mkdir %ext_dir2%%prog%/content/sources
125
+echo    mv %ext_dir2%%prog%/sources/streams.cfg %ext_dir2%%prog%/content/sources/streams.cfg.old
126
+echo    mv %ext_dir2%%prog%/sources/*.cfg %ext_dir2%%prog%/content/sources/
127
+echo    rm -rf %ext_dir2%%prog%/sources ^> /dev/null 2^>^&1
128
+echo fi
110
 echo if [ -e /etc/init.d/playstreamproxy ]; then
129
 echo if [ -e /etc/init.d/playstreamproxy ]; then
111
 echo   rm /etc/init.d/playstreamproxy ^> /dev/null 2^>^&1
130
 echo   rm /etc/init.d/playstreamproxy ^> /dev/null 2^>^&1
112
 echo fi
131
 echo fi
121
 echo ln -s /etc/init.d/playstreamproxy /etc/rc4.d/S50playstreamproxy
140
 echo ln -s /etc/init.d/playstreamproxy /etc/rc4.d/S50playstreamproxy
122
 echo ln -s /etc/init.d/playstreamproxy /etc/rc3.d/S50playstreamproxy
141
 echo ln -s /etc/init.d/playstreamproxy /etc/rc3.d/S50playstreamproxy
123
 echo ln -s /etc/init.d/playstreamproxy /usr/bin/playstreamproxy
142
 echo ln -s /etc/init.d/playstreamproxy /usr/bin/playstreamproxy
143
+echo   rm -rf %ext_dir2%%prog%/*.pyo ^> /dev/null 2^>^&1
144
+echo   rm -rf %ext_dir2%%prog%/content/sources/*.pyo ^> /dev/null 2^>^&1
145
+echo   rm -rf %ext_dir2%%prog%/content/resolvers/*.pyo ^> /dev/null 2^>^&1
146
+
124
 echo exit 0
147
 echo exit 0
125
 ) >%ipk_dir%CONTROL\postinst
148
 ) >%ipk_dir%CONTROL\postinst
126
 dos2unix %ipk_dir%CONTROL\postinst
149
 dos2unix %ipk_dir%CONTROL\postinst
128
 :=== postrm file ===
151
 :=== postrm file ===
129
 (
152
 (
130
 echo #!/bin/sh
153
 echo #!/bin/sh
131
-:echo if [ -e /etc/rc4.d/S50playstreamproxy ]; then
154
+rem echo if [ -e /etc/rc4.d/S50playstreamproxy ]; then
132
 echo   rm /etc/rc4.d/S50playstreamproxy ^> /dev/null 2^>^&1
155
 echo   rm /etc/rc4.d/S50playstreamproxy ^> /dev/null 2^>^&1
133
-:echo fi
156
+rem echo fi
134
 echo #!/bin/sh
157
 echo #!/bin/sh
135
-:echo if [ -e /etc/rc3.d/S50playstreamproxy ]; then
158
+rem echo if [ -e /etc/rc3.d/S50playstreamproxy ]; then
136
 echo   rm /etc/rc3.d/S50playstreamproxy ^> /dev/null 2^>^&1
159
 echo   rm /etc/rc3.d/S50playstreamproxy ^> /dev/null 2^>^&1
137
-:echo fi
138
-:echo if [ -e /usr/bin/playstreamproxyy ]; then
160
+rem echo fi
161
+rem echo if [ -e /usr/bin/playstreamproxyy ]; then
139
 echo  rm /usr/bin/playstreamproxy ^> /dev/null 2^>^&1
162
 echo  rm /usr/bin/playstreamproxy ^> /dev/null 2^>^&1
140
-:echo fi
163
+rem echo fi
141
 echo if [ -e /etc/init.d/playstreamproxy ]; then
164
 echo if [ -e /etc/init.d/playstreamproxy ]; then
142
 echo   rm /etc/init.d/playstreamproxy ^> /dev/null 2^>^&1
165
 echo   rm /etc/init.d/playstreamproxy ^> /dev/null 2^>^&1
143
 echo fi
166
 echo fi
147
 
170
 
148
 :=== conffiles file ===
171
 :=== conffiles file ===
149
 (
172
 (
150
-echo %ext_dir2%%prog%/sources/streams.cfg
173
+echo %ext_dir2%%prog%/content/sources/streams.cfg
151
 ) >%ipk_dir%CONTROL\conffiles
174
 ) >%ipk_dir%CONTROL\conffiles
152
 dos2unix %ipk_dir%CONTROL\conffiles
175
 dos2unix %ipk_dir%CONTROL\conffiles
153
 
176
 
160
 @echo on
183
 @echo on
161
 mv %release_dir%%pack_name%_%ver% %release_dir%%pack_name%_%ver%.ipk
184
 mv %release_dir%%pack_name%_%ver% %release_dir%%pack_name%_%ver%.ipk
162
 
185
 
186
+
163
 git add %release_dir%%pack_name%_%ver%.ipk
187
 git add %release_dir%%pack_name%_%ver%.ipk
164
-if not ()==(%1%) (
165
-git commit -m %ver%
166
-git tag %ver%
167
-git push
168
-)
169
 
188
 
170
-copy %release_dir%%pack_name%_%ver%.ipk %feed_dir%%pack_name%_%ver%.ipk
171
-pushd  %feed_dir%
172
-python c:\Python27\Scripts\opkg-make-index . >Packages
173
-dos2unix Packages
174
-gzip -f -k Packages
175
-popd
189
+:=== Commit/push and copy to feed if message given ===
190
+if not ()==(%1%) (
191
+    git commit -m "%1%"
192
+    git tag -d "%ver%"
193
+    git tag "%ver%"
194
+    git push origin master
176
 
195
 
196
+    copy %release_dir%%pack_name%_%ver%.ipk %feed_dir%%pack_name%_%ver%.ipk
197
+    pushd  %feed_dir%
198
+    python c:\Python27\Scripts\opkg-make-index . >Packages
199
+    dos2unix Packages
200
+    gzip -f -k Packages
201
+    popd
202
+)

BIN
picons/art-default.jpg View File


BIN
picons/back.png View File


BIN
picons/cinemalive.png View File


BIN
picons/euronews.png View File


BIN
picons/filmas.png View File


BIN
picons/filmix.png View File


BIN
picons/filmon.png View File


BIN
picons/folder.png View File


BIN
picons/folder2.png View File


BIN
picons/folder_search.png View File


BIN
picons/icon-default.png View File


BIN
picons/iplayer.png View File


BIN
picons/latvia1.png View File


BIN
picons/latvia7.png View File


BIN
picons/lmt.jpg View File


BIN
picons/lmt.png View File


BIN
picons/lr_1_lv.png View File


BIN
picons/lr_2_lv.png View File


BIN
picons/lr_3_lv.png View File


BIN
picons/movieplace.png View File


BIN
picons/my_archive.png View File


BIN
picons/my_kids.png View File


BIN
picons/my_radio.png View File


BIN
picons/my_tv.png View File


BIN
picons/my_video.png View File


BIN
picons/prefs.png View File


BIN
picons/replay.png View File


BIN
picons/riga24.png View File


BIN
picons/shortcut.png View File


BIN
picons/skaties.png View File


BIN
picons/tvdom.png View File


BIN
picons/tvplay.png View File


BIN
picons/ustvnow.png View File


BIN
picons/viaplay.jpg View File


BIN
picons/viaplay.png View File


BIN
picons/video.png View File


+ 4
- 4
playstreamproxy View File

1
 #!/bin/sh
1
 #!/bin/sh
2
-DAEMON=/usr/lib/enigma2/python/Plugins/Extensions/PlayStream/playstreamproxy.py 
3
-NAME=streamproxy
4
-DESC="StreamProxy"
2
+DAEMON=/usr/lib/enigma2/python/Plugins/Extensions/PlayStream/content/playstreamproxy.py
3
+NAME=playstreamproxy
4
+DESC="PlasyStreamProxy"
5
 
5
 
6
 test -f $DAEMON || exit 0
6
 test -f $DAEMON || exit 0
7
 
7
 
8
 /usr/bin/python $DAEMON $1
8
 /usr/bin/python $DAEMON $1
9
-exit 0 
9
+exit 0

+ 0
- 1
playstreamproxy.bat View File

1
-python playstreamproxy.py manualstart

+ 4
- 4
skin.xml View File

1
 <skin>
1
 <skin>
2
   <screen name="PSMain" position="center,center" size="1015,570" title="Play Stream">
2
   <screen name="PSMain" position="center,center" size="1015,570" title="Play Stream">
3
-    <eLabel position="5,0" size="1000,2" backgroundColor="unaaaaaa" />
3
+    <eLabel position="5,0" size="1000,2" backgroundColor="#00aaaaaa" />
4
     <widget name="title" position="10,2" size="1000,38" font="Regular;30" />
4
     <widget name="title" position="10,2" size="1000,38" font="Regular;30" />
5
     <widget source="list" render="Listbox" position="10,55" size="580,470" scrollbarMode="showOnDemand">
5
     <widget source="list" render="Listbox" position="10,55" size="580,470" scrollbarMode="showOnDemand">
6
       <convert type="TemplatedMultiContent">
6
       <convert type="TemplatedMultiContent">
12
     </widget>
12
     </widget>
13
     <widget name="pic" position="646,55" size="327,250" alphatest="on" />
13
     <widget name="pic" position="646,55" size="327,250" alphatest="on" />
14
     <widget name="cur" position="610,300" size="400,250" halign="center" font="Regular;20" />
14
     <widget name="cur" position="610,300" size="400,250" halign="center" font="Regular;20" />
15
-    <ePixmap name="exit" position="10,540" zPosition="2" size="140,40" pixmap="skin_default/buttons/key_exit.png" transparent="1" alphatest="on" />
16
-    <widget name="key_exit" position="10,535" size="140,40" valign="center" halign="center" zPosition="4" backgroundColor="blue" foregroundColor="white" font="Regular;20" transparent="1" shadowColor="background" shadowOffset="-2,-2" />
15
+    <ePixmap name="exit" position="10,540" zPosition="2" size="140,40" pixmap="/usr/lib/enigma2/python/Plugins/Extensions/PlayStream/key_exit.png" transparent="1" alphatest="on" />
16
+    <widget name="key_exit" position="50,535" size="100,40" valign="center" halign="center" zPosition="4" backgroundColor="blue" foregroundColor="white" font="Regular;20" transparent="1" shadowColor="background" shadowOffset="-2,-2" />
17
     <ePixmap name="red" position="150,535" zPosition="2" size="140,40" pixmap="skin_default/buttons/red.png" transparent="1" alphatest="on" />
17
     <ePixmap name="red" position="150,535" zPosition="2" size="140,40" pixmap="skin_default/buttons/red.png" transparent="1" alphatest="on" />
18
     <widget name="key_red" position="150,535" size="140,40" valign="center" halign="center" zPosition="4" foregroundColor="white" font="Regular;20" transparent="1" shadowColor="background" shadowOffset="-2,-2" />
18
     <widget name="key_red" position="150,535" size="140,40" valign="center" halign="center" zPosition="4" foregroundColor="white" font="Regular;20" transparent="1" shadowColor="background" shadowOffset="-2,-2" />
19
     <ePixmap name="green" position="290,535" zPosition="2" size="140,40" pixmap="skin_default/buttons/green.png" transparent="1" alphatest="on" />
19
     <ePixmap name="green" position="290,535" zPosition="2" size="140,40" pixmap="skin_default/buttons/green.png" transparent="1" alphatest="on" />
22
     <widget name="key_yellow" position="430,535" size="140,40" valign="center" halign="center" zPosition="4" foregroundColor="white" font="Regular;20" transparent="1" shadowColor="background" shadowOffset="-2,-2" />
22
     <widget name="key_yellow" position="430,535" size="140,40" valign="center" halign="center" zPosition="4" foregroundColor="white" font="Regular;20" transparent="1" shadowColor="background" shadowOffset="-2,-2" />
23
     <ePixmap name="blue" position="570,535" zPosition="2" size="140,40" pixmap="skin_default/buttons/blue.png" transparent="1" alphatest="on" />
23
     <ePixmap name="blue" position="570,535" zPosition="2" size="140,40" pixmap="skin_default/buttons/blue.png" transparent="1" alphatest="on" />
24
     <widget name="key_blue" position="570,535" size="140,40" valign="center" halign="center" zPosition="4" foregroundColor="white" font="Regular;20" transparent="1" shadowColor="background" shadowOffset="-2,-2" />
24
     <widget name="key_blue" position="570,535" size="140,40" valign="center" halign="center" zPosition="4" foregroundColor="white" font="Regular;20" transparent="1" shadowColor="background" shadowOffset="-2,-2" />
25
-    <ePixmap name="menu" position="750,540" zPosition="2" size="140,40" pixmap="skin_default/buttons/key_menu.png" transparent="1" alphatest="on" />
25
+    <ePixmap name="menu" position="750,540" zPosition="2" size="140,40" pixmap="/usr/lib/enigma2/python/Plugins/Extensions/PlayStream/key_menu.png" transparent="1" alphatest="on" />
26
     <widget name="key_menu" position="750,535" size="140,40" valign="center" halign="center" zPosition="4" backgroundColor="blue" foregroundColor="white" font="Regular;20" transparent="1" shadowColor="background" shadowOffset="-2,-2" />
26
     <widget name="key_menu" position="750,535" size="140,40" valign="center" halign="center" zPosition="4" backgroundColor="blue" foregroundColor="white" font="Regular;20" transparent="1" shadowColor="background" shadowOffset="-2,-2" />
27
   </screen>
27
   </screen>
28
   <screen name="PSStreamInfo" position="center,center" size="1015,570" title="Stream information">
28
   <screen name="PSStreamInfo" position="center,center" size="1015,570" title="Stream information">