def run(self): # setup progress handler self.byteUpdate = time.time() self.recvTotal = 0 def recvEvent(bytes): self.recvTotal += bytes self.recv.emit() addHook("httpRecv", recvEvent) client = AnkiRequestsClient() try: resp = client.get(aqt.appShared + "download/%s?v=2.1" % self.code) if resp.status_code == 200: data = client.streamContent(resp) elif resp.status_code in (403, 404): self.error = _( "Invalid code, or add-on not available for your version of Anki." ) return else: self.error = _("Unexpected response code: %s" % resp.status_code) return except Exception as e: self.error = _( "Please check your internet connection.") + "\n\n" + str(e) return finally: remHook("httpRecv", recvEvent) self.fname = re.match("attachment; filename=(.+)", resp.headers['content-disposition']).group(1) self.data = data
def run(self): # setup progress handler self.byteUpdate = time.time() self.recvTotal = 0 def recvEvent(bytes): self.recvTotal += bytes self.recv.emit() addHook("httpRecv", recvEvent) client = AnkiRequestsClient() try: resp = client.get( aqt.appShared + "download/%d" % self.code) if resp.status_code == 200: data = client.streamContent(resp) elif resp.status_code in (403,404): self.error = _("Invalid code") return else: self.error = _("Error downloading: %s" % resp.status_code) return except Exception as e: exc = traceback.format_exc() try: self.error = str(e[0]) except: self.error = str(exc) return finally: remHook("httpRecv", recvEvent) self.fname = re.match("attachment; filename=(.+)", resp.headers['content-disposition']).group(1) self.data = data
def run(self): # setup progress handler self.byteUpdate = time.time() self.recvTotal = 0 def recvEvent(bytes): self.recvTotal += bytes self.recv.emit() addHook("httpRecv", recvEvent) client = AnkiRequestsClient() try: resp = client.get(aqt.appShared + "download/%d" % self.code) if resp.status_code == 200: data = client.streamContent(resp) elif resp.status_code in (403, 404): self.error = _("Invalid code") return else: self.error = _("Error downloading: %s" % resp.status_code) return except Exception as e: exc = traceback.format_exc() try: self.error = str(e[0]) except: self.error = str(exc) return finally: remHook("httpRecv", recvEvent) self.fname = re.match("attachment; filename=(.+)", resp.headers['content-disposition']).group(1) self.data = data
def download(url): contents = None client = AnkiRequestsClient() client.timeout = URL_TIMEOUT resp = client.get(url) if resp.status_code == 200: contents = client.streamContent(resp) return (resp.status_code, contents)
def getImageFromUrl(url): URL_TIMEOUT = 5 if anki == "set": client = AnkiRequestsClient() client.timeout = URL_TIMEOUT resp = client.get(url) content = client.streamContent(resp) else: resp = requests.get(url, timeout=URL_TIMEOUT) content = resp.content return content