Exemple #1
0
    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
Exemple #2
0
    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
Exemple #3
0
    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
Exemple #4
0
 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)
Exemple #5
0
 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