def _download(self, cookie_file, url, filename, save_loc, add_to_lib): dfilename = '' if not url: raise Exception(_('No file specified to download.')) if not save_loc and not add_to_lib: # Nothing to do. return dfilename if not filename: filename = get_download_filename(url, cookie_file) filename, ext = os.path.splitext(filename) filename = filename[:60] + ext filename = ascii_filename(filename) br = browser() if cookie_file: cj = MozillaCookieJar() cj.load(cookie_file) br.set_cookiejar(cj) with closing(br.open(url)) as r: temp_path = os.path.join(PersistentTemporaryDirectory(), filename) tf = open(temp_path, 'w+b') tf.write(r.read()) dfilename = tf.name return dfilename
def start_download(self, request): if not self.gui: return url = unicode(request.url().toString(QUrl.None)) cf = self.get_cookies() filename = get_download_filename(url, cf) ext = os.path.splitext(filename)[1][1:].lower() filename = ascii_filename(filename[:60] + '.' + ext) if ext not in BOOK_EXTENSIONS: if ext == 'acsm': from calibre.gui2.dialogs.confirm_delete import confirm if not confirm( '<p>' + _('This ebook is a DRMed EPUB file. ' 'You will be prompted to save this file to your ' 'computer. Once it is saved, open it with ' '<a href="http://www.adobe.com/products/digitaleditions/">' 'Adobe Digital Editions</a> (ADE).<p>ADE, in turn ' 'will download the actual ebook, which will be a ' '.epub file. You can add this book to calibre ' 'using "Add Books" and selecting the file from ' 'the ADE library folder.'), 'acsm_download', self): return name = choose_save_file( self, 'web-store-download-unknown', _('File is not a supported ebook type. Save to disk?'), initial_filename=filename) if name: self.gui.download_ebook(url, cf, name, name, False) else: self.gui.download_ebook(url, cf, filename, tags=self.tags)
def start_download(self, request): if not self.gui: return url = unicode(request.url().toString()) cf = self.get_cookies() filename = get_download_filename(url, cf) ext = os.path.splitext(filename)[1][1:].lower() filename = ascii_filename(filename[:60] + '.' + ext) if ext not in BOOK_EXTENSIONS: if ext == 'acsm': from calibre.gui2.dialogs.confirm_delete import confirm if not confirm('<p>' + _('This ebook is a DRMed EPUB file. ' 'You will be prompted to save this file to your ' 'computer. Once it is saved, open it with ' '<a href="http://www.adobe.com/products/digitaleditions/">' 'Adobe Digital Editions</a> (ADE).<p>ADE, in turn ' 'will download the actual ebook, which will be a ' '.epub file. You can add this book to calibre ' 'using "Add Books" and selecting the file from ' 'the ADE library folder.'), 'acsm_download', self): return home = os.path.expanduser('~') name = QFileDialog.getSaveFileName(self, _('File is not a supported ebook type. Save to disk?'), os.path.join(home, filename), '*.*') if name: name = unicode(name) self.gui.download_ebook(url, cf, name, name, False) else: self.gui.download_ebook(url, cf, filename, tags=self.tags)
def _download(self, cookie_file, url, filename, save_loc, add_to_lib): dfilename = "" if not url: raise Exception(_("No file specified to download.")) if not save_loc and not add_to_lib: # Nothing to do. return dfilename if not filename: filename = get_download_filename(url, cookie_file) filename, ext = os.path.splitext(filename) filename = filename[:60] + ext filename = ascii_filename(filename) br = browser() if cookie_file: cj = MozillaCookieJar() cj.load(cookie_file) br.set_cookiejar(cj) with closing(br.open(url)) as r: temp_path = os.path.join(PersistentTemporaryDirectory(), filename) tf = open(temp_path, "w+b") tf.write(r.read()) dfilename = tf.name return dfilename
def _download(self, url, filename, save_loc): dfilename = '' if not url: raise Exception(_('No file specified to download.')) if not save_loc: # Nothing to do. return dfilename if not filename: filename = get_download_filename(url) filename, ext = os.path.splitext(filename) filename = filename[:60] + ext filename = ascii_filename(filename) br = browser() with closing(br.open(url)) as r: tf = PersistentTemporaryFile(suffix=filename) tf.write(r.read()) dfilename = tf.name return dfilename