do not crash if uploaded.to file is offline/removed
[vuplus_dvbapp-plugin] / rsdownloader / src / plugin.py
index 9ae0b7a..752c333 100644 (file)
@@ -322,12 +322,18 @@ class RSDownload:
                                self.freeDownloadTimer.callback.append(self.start)\r
                                self.freeDownloadTimer.start((int(minutes) + 1) * 60000, 1)
                        else:
-                               url = re.search(r".*<form name=\"download_form\" method=\"post\" action=\"(.*)\">", data).group(1)
-                               self.name = re.search(r"<td><b>\s+(.+)\s", data).group(1) + re.search(r"</td><td>(\..+)</td></tr>", data).group(1)\r
-                               self.status = _("Downloading")\r
-                               self.download = ProgressDownload(url, ("%s/%s"%(config.plugins.RSDownloader.downloads_directory.value, self.name)).replace("//", "/"))\r
-                               self.download.addProgress(self.httpProgress)\r
-                               self.download.start().addCallback(self.httpFinished).addErrback(self.httpFailed)\r
+                               try:
+                                       url = re.search(r".*<form name=\"download_form\" method=\"post\" action=\"(.*)\">", data).group(1)
+                               except:
+                                       url = None
+                               if url:
+                                       self.name = re.search(r"<td><b>\s+(.+)\s", data).group(1) + re.search(r"</td><td>(\..+)</td></tr>", data).group(1)\r
+                                       self.status = _("Downloading")\r
+                                       self.download = ProgressDownload(url, ("%s/%s"%(config.plugins.RSDownloader.downloads_directory.value, self.name)).replace("//", "/"))\r
+                                       self.download.addProgress(self.httpProgress)\r
+                                       self.download.start().addCallback(self.httpFinished).addErrback(self.httpFailed)
+                               else:
+                                       self.httpFailed(True, "File is offline: %s"%self.url)\r
                elif self.url.__contains__("youtube.com"):\r
                        writeLog("Getting youtube video link: %s"%self.url)\r
                        self.status = _("Checking")\r