def downloadResult(self, result): """ Save the result to disk. """ # check for auth if not self._doLogin(): return False urls, filename = self._makeURL(result) for url in urls: logger.log(u"Downloading a result from " + self.name + " at " + url) if helpers.download_file(url, filename, session=self.session): if self._verify_download(filename): logger.log(u"Saved result to " + filename, logger.INFO) return True else: logger.log(u"Could not download %s" % url, logger.WARNING) helpers._remove_file_failed(filename) if len(urls): logger.log(u"Failed to download any results", logger.WARNING) return False
def downloadResult(self, result): """ Save the result to disk. """ # check for auth if not self._doLogin(): return False urls, filename = self._makeURL(result) if self.proxy.isEnabled(): self.headers.update({"Referer": self.proxy.getProxyURL()}) elif "Referer" in self.headers: self.headers.pop("Referer") for url in urls: if "NO_DOWNLOAD_NAME" in url: continue logger.log(u"Downloading a result from " + self.name + " at " + url) if helpers.download_file(self.proxy._buildURL(url), filename, session=self.session, headers=self.headers): if self._verify_download(filename): logger.log(u"Saved result to " + filename, logger.INFO) return True else: logger.log(u"Could not download %s" % url, logger.WARNING) helpers._remove_file_failed(filename) if len(urls): logger.log(u"Failed to download any results", logger.WARNING) return False
def downloadResult(self, result): """ Save the result to disk. """ # check for auth if not self._doLogin(): return False urls, filename = self._makeURL(result) if self.proxy.isEnabled(): self.headers.update({'Referer': self.proxy.getProxyURL()}) elif 'Referer' in self.headers: self.headers.pop('Referer') for url in urls: if 'NO_DOWNLOAD_NAME' in url: continue logger.log(u"Downloading a result from " + self.name + " at " + url) if helpers.download_file(self.proxy._buildURL(url), filename, session=self.session, headers=self.headers): if self._verify_download(filename): logger.log(u"Saved result to " + filename, logger.INFO) return True else: logger.log(u"Could not download %s" % url, logger.WARNING) helpers._remove_file_failed(filename) if len(urls): logger.log(u"Failed to download any results", logger.WARNING) return False
def downloadResult(self, result): """ Save the result to disk. """ # check for auth if not self._doLogin(): return False if self.providerType == GenericProvider.TORRENT: try: torrent_hash = re.findall('urn:btih:([\w]{32,40})', result.url)[0].upper() torrent_name = re.findall('dn=([^&]+)', result.url)[0] if len(torrent_hash) == 32: torrent_hash = b16encode(b32decode(torrent_hash)).upper() if not torrent_hash: logger.log("Unable to extract torrent hash from link: " + ex(result.url), logger.ERROR) return False urls = [ 'http://torcache.net/torrent/' + torrent_hash + '.torrent', 'http://zoink.ch/torrent/' + torrent_name + '.torrent', 'http://torrage.com/torrent/' + torrent_hash + '.torrent', ] except: urls = [result.url] filename = ek.ek(os.path.join, sickbeard.TORRENT_DIR, helpers.sanitizeFileName(result.name) + '.' + self.providerType) elif self.providerType == GenericProvider.NZB: urls = [result.url] filename = ek.ek(os.path.join, sickbeard.NZB_DIR, helpers.sanitizeFileName(result.name) + '.' + self.providerType) else: return for url in urls: logger.log(u"Downloading a result from " + self.name + " at " + url) if helpers.download_file(url, filename, session=self.session): if self._verify_download(filename): if self.providerType == GenericProvider.TORRENT: logger.log(u"Saved magnet link to " + filename, logger.INFO) else: logger.log(u"Saved result to " + filename, logger.INFO) return True else: logger.log(u"Could not download %s" % url, logger.WARNING) helpers._remove_file_failed(filename) if len(urls): logger.log(u"Failed to download any results", logger.WARNING) return False
def downloadResult(self, result): """ Save the result to disk. """ # check for auth if not self._doLogin(): return False urls, filename = self._makeURL(result) if self.proxy.isEnabled(): self.headers.update({'Referer': self.proxy.getProxyURL()}) elif 'Referer' in self.headers: self.headers.pop('Referer') for url in urls: if 'NO_DOWNLOAD_NAME' in url: continue if not self.proxy.isEnabled() and url.startswith('http'): # Let's just set a referer for every .torrent/.nzb, should work as a cover-all without side-effects self.headers.update( {'Referer': '/'.join(url.split('/')[:3]) + '/'}) logger.log(u"Downloading a result from " + self.name + " at " + url) # Support for Jackett/TorzNab if url.endswith(GenericProvider.TORRENT) and filename.endswith( GenericProvider.NZB): filename = filename.rsplit( '.', 1)[0] + '.' + GenericProvider.TORRENT if helpers.download_file(self.proxy._buildURL(url), filename, session=self.session, headers=self.headers): if self._verify_download(filename): logger.log(u"Saved result to " + filename, logger.INFO) return True else: logger.log(u"Could not download %s" % url, logger.WARNING) helpers._remove_file_failed(filename) if len(urls): logger.log(u"Failed to download any results", logger.WARNING) return False
def downloadResult(self, result): """ Save the result to disk. """ # check for auth if not self._doLogin(): return False urls, filename = self._makeURL(result) if self.proxy.isEnabled(): self.headers.update({'Referer': self.proxy.getProxyURL()}) elif 'Referer' in self.headers: self.headers.pop('Referer') for url in urls: if 'NO_DOWNLOAD_NAME' in url: continue if not self.proxy.isEnabled() and url.startswith('http'): # Let's just set a referer for every .torrent/.nzb, should work as a cover-all without side-effects self.headers.update({'Referer': '/'.join(url.split('/')[:3]) + '/'}) logger.log(u"Downloading a result from " + self.name + " at " + url) # Support for Jackett/TorzNab if url.endswith(GenericProvider.TORRENT) and filename.endswith(GenericProvider.NZB): filename = filename.rsplit('.', 1)[0] + '.' + GenericProvider.TORRENT if helpers.download_file(self.proxy._buildURL(url), filename, session=self.session, headers=self.headers): if self._verify_download(filename): logger.log(u"Saved result to " + filename, logger.INFO) return True else: logger.log(u"Could not download %s" % url, logger.WARNING) helpers._remove_file_failed(filename) if len(urls): logger.log(u"Failed to download any results", logger.WARNING) return False