def download(self, url, filename, **kwargs): """ Downloads a file specified :param url: Source URL :param filename: Target file on filesystem :return: True on success, False on failure """ try: r = self.get(url, timeout=10, stream=True, **kwargs) if r.status_code >= 400: return False with io.open(filename, 'wb') as f: for chunk in r.iter_content(chunk_size=1024): if chunk: f.write(chunk) chmodAsParent(filename) except Exception: remove_file_failed(filename) return False return True
def download(self, url, filename, **kwargs): try: r = self.get(url, timeout=10, stream=True, **kwargs) if r.status_code >= 400: return False with io.open(filename, 'wb') as f: for chunk in r.iter_content(chunk_size=1024): if chunk: f.write(chunk) chmodAsParent(filename) except Exception as e: sickrage.app.log.debug("Failed to download file from {} - ERROR: {}".format(url, e.message)) remove_file_failed(filename) return False return True
def downloadResult(self, result): """ Save the result to disk. """ # check for auth if not self._doLogin: return False urls = self.make_url(result.url) filename = self.make_filename(result.name) for url in urls: if 'NO_DOWNLOAD_NAME' in url: continue sickrage.srCore.srLogger.info("Downloading a result from " + self.name + " at " + url) # Support for Jackett/TorzNab if url.endswith('torrent') and filename.endswith('nzb'): filename = filename.rsplit('.', 1)[0] + '.' + 'torrent' if sickrage.srCore.srWebSession.download( url, filename, headers=(None, { 'Referer': '/'.join(url.split('/')[:3]) + '/' })[url.startswith('http')]): if self._verify_download(filename): sickrage.srCore.srLogger.info("Saved result to " + filename) return True else: sickrage.srCore.srLogger.warning("Could not download %s" % url) remove_file_failed(filename) if len(urls): sickrage.srCore.srLogger.warning("Failed to download any results") return False
def download(self, url, filename, **kwargs): """ Downloads a file specified :param url: Source URL :param filename: Target file on filesystem :return: True on success, False on failure """ try: with io.open(filename, 'wb') as fp: for chunk in self.get(url, stream=True, **kwargs).iter_content(chunk_size=1024): if chunk: fp.write(chunk) fp.flush() chmodAsParent(filename) except Exception: remove_file_failed(filename) return False return True
def downloadResult(self, result): """ Save the result to disk. """ # check for auth if not self._doLogin: return False urls = self.make_url(result.url) filename = self.make_filename(result.name) for url in urls: if 'NO_DOWNLOAD_NAME' in url: continue sickrage.srCore.srLogger.info("Downloading a result from " + self.name + " at " + url) # Support for Jackett/TorzNab if url.endswith('torrent') and filename.endswith('nzb'): filename = filename.rsplit('.', 1)[0] + '.' + 'torrent' if sickrage.srCore.srWebSession.download(url, filename, headers=(None, { 'Referer': '/'.join(url.split('/')[:3]) + '/' })[url.startswith('http')]): if self._verify_download(filename): sickrage.srCore.srLogger.info("Saved result to " + filename) return True else: sickrage.srCore.srLogger.warning("Could not download %s" % url) remove_file_failed(filename) if len(urls): sickrage.srCore.srLogger.warning("Failed to download any results") return False