Merge pull request #124 from frp/master

Deal with Internationalized Domain Name in URI
This commit is contained in:
Damien Elmes 2016-04-20 22:44:43 +10:00
commit 9eed2bf2fa

View file

@ -7,6 +7,8 @@ import urllib2
import ctypes
import urllib
from urlparse import urlparse, urlunparse
from anki.lang import _
from aqt.qt import *
from anki.utils import stripHTML, isWin, isMac, namedtmp, json, stripHTMLMedia
@ -837,6 +839,12 @@ to a cloze type first, via Edit>Change Note Type."""))
self.mw.progress.start(
immediate=True, parent=self.parentWindow)
try:
# urllib2 doesn't work properly with IRI
# The following code translates IRI to standard URI
scheme, netloc, path, params, query, fragment = urlparse(url)
idna_netloc = urllib2.unquote(netloc.encode("ascii")).decode("utf-8").encode("idna")
url = urlunparse([scheme, idna_netloc, path, params, query, fragment])
req = urllib2.Request(url, None, {
'User-Agent': 'Mozilla/5.0 (compatible; Anki)'})
filecontents = urllib2.urlopen(req).read()