Changeset 6605
- Timestamp:
- Mar 23, 2011, 10:22:21 PM (15 years ago)
- Location:
- ipk/source/players_mediathek_2_2
- Files:
-
- 2 edited
-
CONTROL/control (modified) (1 diff)
-
usr/lib/enigma2/python/Plugins/Extensions/MultiMediathek/plugin.py (modified) (15 diffs)
Legend:
- Unmodified
- Added
- Removed
-
ipk/source/players_mediathek_2_2/CONTROL/control
r6536 r6605 1 1 Package: enigma2-plugin-players-multimediathek 2 Version: 2. 22 Version: 2.3 3 3 Architecture: sh4 4 4 OE: MultiMediathek -
ipk/source/players_mediathek_2_2/usr/lib/enigma2/python/Plugins/Extensions/MultiMediathek/plugin.py
r6536 r6605 3 3 # Coded by Homey (c) 2011 4 4 # 5 # Version: 2. 25 # Version: 2.3 6 6 # Support: www.i-have-a-dreambox.com 7 7 ##################################################### … … 17 17 from Components.Sources.List import List 18 18 from Components.Sources.StaticText import StaticText 19 from Components.Task import Task, Job, job_manager as JobManager 19 from Components.Task import Task, Job, job_manager as JobManager, Condition 20 20 from Screens.Screen import Screen 21 21 from Screens.MessageBox import MessageBox … … 60 60 config.plugins.multimediathek.showsecretcontent = ConfigYesNo(default=False) 61 61 config.plugins.multimediathek.checkforupdate = ConfigYesNo(default=True) 62 config.plugins.multimediathek.version = NoSave(ConfigText(default="2 20"))62 config.plugins.multimediathek.version = NoSave(ConfigText(default="230")) 63 63 64 64 ################################# … … 70 70 Job.__init__(self, _("Saving Movie from Mediathek")) 71 71 self.toolbox = toolbox 72 self.retrycount = 0 72 73 downloadTask(self, cmdline, filename, filetitle) 73 74 75 def retry(self): 76 assert self.status == self.FAILED 77 self.retrycount += 1 78 self.restart() 79 74 80 class downloadTask(Task): 81 ERROR_CORRUPT_FILE, ERROR_RTMP_ReadPacket, ERROR_SEGFAULT, ERROR_SERVER, ERROR_UNKNOWN = range(5) 75 82 def __init__(self, job, cmdline, filename, filetitle): 76 83 Task.__init__(self, job, filetitle) 84 self.postconditions.append(downloadTaskPostcondition()) 77 85 self.setCmdline(cmdline) 78 86 self.filename = filename 79 87 self.toolbox = job.toolbox 80 88 self.error = None 89 self.lasterrormsg = None 90 81 91 def processOutput(self, data): 82 92 try: … … 87 97 elif data.find('%') != -1: 88 98 tmpvalue = data[:data.find("%")] 89 self.progress = int(tmpvalue[tmpvalue.rfind(" "):].strip()) 99 tmpvalue = tmpvalue[tmpvalue.rfind(" "):].strip() 100 tmpvalue = tmpvalue[tmpvalue.rfind("(")+1:].strip() 101 self.progress = int(float(tmpvalue)) 90 102 else: 91 103 Task.processOutput(self, data) … … 94 106 Task.processOutput(self, data) 95 107 108 def processOutputLine(self, line): 109 line = line[:-1] 110 #print "[MultiMediathek DownloadTask STATUS MSG] %s" % line 111 if line.startswith("ERROR:"): 112 self.lasterrormsg = line 113 if line.find("RTMP_ReadPacket") != -1: 114 self.error = self.ERROR_RTMP_ReadPacket 115 elif line.find("corrupt file!") != -1: 116 self.error = self.ERROR_CORRUPT_FILE 117 os_system("rm -f %s" % self.filename) 118 else: 119 self.error = self.ERROR_UNKNOWN 120 elif line.startswith("wget:"): 121 self.lasterrormsg = line 122 if line.find("server returned error") != -1: 123 self.error = self.ERROR_SERVER 124 elif line.find("Segmentation fault") != -1: 125 self.error = self.ERROR_SEGFAULT 126 96 127 def afterRun(self): 97 128 pass … … 99 130 #if self.getProgress() == 0 or self.getProgress() == 100: 100 131 # Notifications.AddNotification(MessageBox, _("Movie successfully transfered to your HDD!") +"\n"+self.filename, MessageBox.TYPE_INFO, timeout=10) 132 133 class downloadTaskPostcondition(Condition): 134 RECOVERABLE = True 135 def check(self, task): 136 if task.returncode == 0 or task.error is None: 137 return True 138 else: 139 return False 140 141 def getErrorMessage(self, task): 142 return { 143 task.ERROR_CORRUPT_FILE: _("Video Download Failed!\n\nCorrupted Download File:\n%s" % task.lasterrormsg), 144 task.ERROR_RTMP_ReadPacket: _("Video Download Failed!\n\nCould not read RTMP-Packet:\n%s" % task.lasterrormsg), 145 task.ERROR_SEGFAULT: _("Video Download Failed!\n\nSegmentation fault:\n%s" % task.lasterrormsg), 146 task.ERROR_SERVER: _("Video Download Failed!\n\nServer returned error:\n%s" % task.lasterrormsg), 147 task.ERROR_UNKNOWN: _("Video Download Failed!\n\nUnknown Error:\n%s" % task.lasterrormsg) 148 }[task.error] 101 149 102 150 ################################################### … … 579 627 self.BgFileEraser.erase(filelocation) 580 628 581 self.close()582 583 #------------------------------------------------------------------------------------------584 585 class MultiMediathek_ItemOptions(Screen):586 def __init__(self, session, movieinfo):587 Screen.__init__(self, session)588 589 self.skin = """590 <screen position="center,center" size="400,200" title="Mediathek - Item Options">591 <widget source="itemname" transparent="1" render="Label" zPosition="2" position="10,180" size="380,20" font="Regular;16" />592 <widget source="menu" render="Listbox" zPosition="5" transparent="1" position="10,10" size="380,160" scrollbarMode="showOnDemand" >593 <convert type="StringList" />594 </widget>595 </screen>"""596 597 list = []598 self.movieinfo = movieinfo599 if self.movieinfo[7] == "bookmark":600 list.append(("Delete this bookmark", "delbookmark", "menu_delbookmark", "50"))601 elif self.movieinfo[6] == "movie":602 list.append(("Bookmark this movie", "addbookmark", "menu_addbookmark", "50"))603 elif self.movieinfo[6] == "cat":604 list.append(("Bookmark this category", "addbookmark", "menu_addbookmark", "50"))605 list.append(("View Bookmarks", "viewbookmarks", "menu_viewbookmarks", "50"))606 list.append(("Mediathek Settings", "settingsmenu", "menu_settings", "50"))607 608 self["menu"] = List(list)609 self["itemname"] = StaticText(self.movieinfo[3])610 611 self["actions"] = ActionMap(["OkCancelActions"],612 {613 "cancel": self.Exit,614 "ok": self.okbuttonClick615 }, -1)616 617 def okbuttonClick(self):618 selection = self["menu"].getCurrent()619 if selection:620 if selection[1] == "addbookmark":621 os_system("echo '%s:::%s:::%s:::%s' >> /etc/enigma2/multimediathek.bookmarks" % (self.movieinfo[6], self.movieinfo[3], self.movieinfo[5], self.movieinfo[4]))622 #self.session.openWithCallback(self.Exit, MessageBox, _("Bookmark added!"), MessageBox.TYPE_INFO, timeout=5)623 self.Exit()624 if selection[1] == "delbookmark":625 bookmarkfile = "/etc/enigma2/multimediathek.bookmarks"626 if fileExists(bookmarkfile, 'r'):627 tmpdata = ""628 tmpfile = open(bookmarkfile, "r")629 for line in tmpfile:630 if self.movieinfo[5] not in line:631 tmpdata = tmpdata + line + "\n"632 633 tmpfile.close()634 os_system("echo '%s' > %s" % (tmpdata,bookmarkfile))635 636 #self.session.openWithCallback(self.Exit, MessageBox, _("Bookmark deleted!"), MessageBox.TYPE_INFO, timeout=5)637 self.Exit()638 elif selection[1] == "viewbookmarks":639 self.session.open(MultiMediathek, self.movieinfo[5], "Bookmarks", "Bookmarks from your favorite Movies")640 elif selection[1] == "settingsmenu":641 self.session.openWithCallback(self.Exit, MultiMediathek_Settings)642 else:643 self.Exit()644 else:645 self.Exit()646 647 def Exit(self, retval=None):648 629 self.close() 649 630 … … 801 782 if url and url != "": 802 783 filecount += 1 803 entrylist.append((title,url,filename ))784 entrylist.append((title,url,filename,filecount)) 804 785 805 786 if filecount == 0: … … 810 791 tmpanswer.append((url)) 811 792 tmpanswer.append((filename)) 793 tmpanswer.append((filecount)) 812 794 self.movieSelectCallback(tmpanswer) 813 795 else: … … 837 819 838 820 elif self.action == "savemovie": 839 self.saveMovie(movieinfo[0], movieinfo[1], movieinfo[2] )821 self.saveMovie(movieinfo[0], movieinfo[1], movieinfo[2], movieinfo[3]) 840 822 841 823 def switchToCPBCallback(self, answer): … … 850 832 tmpinfo.append((response[1])) 851 833 tmpinfo.append((response[2])) 834 tmpinfo.append((response[3])) 852 835 self.action = "vlcplayback" 853 836 self.movieSelectCallback(tmpinfo) 854 837 855 def saveMovie(self, title, url, filename ):838 def saveMovie(self, title, url, filename, fileid): 856 839 if '(VLC)' in title and VLCSUPPORT: 857 840 try: … … 864 847 865 848 if self.movieinfo[0]: 866 filename = ASCIItranslit.legacyEncode(self.movieinfo[0]+"."+filename.split('.')[-1]).lower() 849 if fileid > 1: 850 addfilenumber = "_"+str(fileid) 851 else: 852 addfilenumber = "" 853 filename = ASCIItranslit.legacyEncode(self.movieinfo[0]+addfilenumber+"."+filename.split('.')[-1]).lower() 867 854 868 855 if url[0:4] == "http" or url[0:3] == "ftp": … … 870 857 self.LastJobView() 871 858 elif url[0:4] == "rtmp": 872 JobManager.AddJob(downloadJob(self, "rtmpdump -r '%s' -o '%s/%s' " % (url, self.moviefolder, filename), self.moviefolder+"/"+filename, self.movieinfo[0]))859 JobManager.AddJob(downloadJob(self, "rtmpdump -r '%s' -o '%s/%s' -e" % (url, self.moviefolder, filename), self.moviefolder+"/"+filename, self.movieinfo[0])) 873 860 self.LastJobView() 874 861 else: … … 1082 1069 #------------------------------------------------------------------------------------------ 1083 1070 1071 class MultiMediathek_ItemOptions(Screen): 1072 def __init__(self, session, movieinfo): 1073 Screen.__init__(self, session) 1074 1075 self.skin = """ 1076 <screen position="center,center" size="400,200" title="Mediathek - Item Options"> 1077 <widget source="itemname" transparent="1" render="Label" zPosition="2" position="10,180" size="380,20" font="Regular;16" /> 1078 <widget source="menu" render="Listbox" zPosition="5" transparent="1" position="10,10" size="380,160" scrollbarMode="showOnDemand" > 1079 <convert type="StringList" /> 1080 </widget> 1081 </screen>""" 1082 1083 list = [] 1084 self.movieinfo = movieinfo 1085 if self.movieinfo[7] == "bookmark": 1086 list.append(("Delete this bookmark", "delbookmark", "menu_delbookmark", "50")) 1087 elif self.movieinfo[6] == "movie": 1088 list.append(("Bookmark this movie", "addbookmark", "menu_addbookmark", "50")) 1089 elif self.movieinfo[6] == "cat": 1090 list.append(("Bookmark this category", "addbookmark", "menu_addbookmark", "50")) 1091 list.append(("View Bookmarks", "viewbookmarks", "menu_viewbookmarks", "50")) 1092 list.append(("Mediathek Settings", "settingsmenu", "menu_settings", "50")) 1093 1094 self["menu"] = List(list) 1095 self["itemname"] = StaticText(self.movieinfo[3]) 1096 1097 self["actions"] = ActionMap(["OkCancelActions"], 1098 { 1099 "cancel": self.Exit, 1100 "ok": self.okbuttonClick 1101 }, -1) 1102 1103 def okbuttonClick(self): 1104 selection = self["menu"].getCurrent() 1105 if selection: 1106 if selection[1] == "addbookmark": 1107 os_system("echo '%s:::%s:::%s:::%s' >> /etc/enigma2/multimediathek.bookmarks" % (self.movieinfo[6], self.movieinfo[3], self.movieinfo[5], self.movieinfo[4])) 1108 #self.session.openWithCallback(self.Exit, MessageBox, _("Bookmark added!"), MessageBox.TYPE_INFO, timeout=5) 1109 self.Exit() 1110 if selection[1] == "delbookmark": 1111 bookmarkfile = "/etc/enigma2/multimediathek.bookmarks" 1112 if fileExists(bookmarkfile, 'r'): 1113 tmpdata = "" 1114 tmpfile = open(bookmarkfile, "r") 1115 for line in tmpfile: 1116 if self.movieinfo[5] not in line: 1117 tmpdata = tmpdata + line + "\n" 1118 1119 tmpfile.close() 1120 os_system("echo '%s' > %s" % (tmpdata,bookmarkfile)) 1121 1122 #self.session.openWithCallback(self.Exit, MessageBox, _("Bookmark deleted!"), MessageBox.TYPE_INFO, timeout=5) 1123 self.Exit() 1124 elif selection[1] == "viewbookmarks": 1125 self.session.open(MultiMediathek, self.movieinfo[5], "Bookmarks", "Bookmarks from your favorite Movies") 1126 elif selection[1] == "settingsmenu": 1127 self.session.openWithCallback(self.Exit, MultiMediathek_Settings) 1128 else: 1129 self.Exit() 1130 else: 1131 self.Exit() 1132 1133 def Exit(self, retval=None): 1134 self.close() 1135 1136 #------------------------------------------------------------------------------------------ 1137 1084 1138 class MultiMediathek_Settings(Screen, ConfigListScreen): 1085 1139 skin = """
Note:
See TracChangeset
for help on using the changeset viewer.
![(please configure the [header_logo] section in trac.ini)](/openaaf/chrome/common/titannit_trac_banner.png)