[#2418] Fix WebUI error when adding non-ascii torrent
json.dumps attempts to decode (utf8) the 'path' entry which had a alternative encoding. The solution is to ensure the 'path' entry is utf8 encoded and remove the unneeded 'path.utf-8' entry. As self.__m_metadata["info"]["files"] is updated the later code checking and decoding the 'path' entry can be removed.
This commit is contained in:
parent
7aa52e5f1b
commit
67873f39dc
|
@ -98,8 +98,10 @@ class TorrentInfo(object):
|
|||
for index, f in enumerate(self.__m_metadata["info"]["files"]):
|
||||
if "path.utf-8" in f:
|
||||
path = os.path.join(prefix, *f["path.utf-8"])
|
||||
del f["path.utf-8"]
|
||||
else:
|
||||
path = utf8_encoded(os.path.join(prefix, utf8_encoded(os.path.join(*f["path"]), self.encoding)), self.encoding)
|
||||
f["path"] = path
|
||||
f["index"] = index
|
||||
if "sha1" in f and len(f["sha1"]) == 20:
|
||||
f["sha1"] = f["sha1"].encode('hex')
|
||||
|
@ -155,12 +157,8 @@ class TorrentInfo(object):
|
|||
prefix = self.__m_name
|
||||
|
||||
for f in self.__m_metadata["info"]["files"]:
|
||||
if "path.utf-8" in f:
|
||||
path = os.path.join(prefix, *f["path.utf-8"])
|
||||
else:
|
||||
path = utf8_encoded(os.path.join(prefix, utf8_encoded(os.path.join(*f["path"]), self.encoding)), self.encoding)
|
||||
self.__m_files.append({
|
||||
'path': path,
|
||||
'path': f["path"],
|
||||
'size': f["length"],
|
||||
'download': True
|
||||
})
|
||||
|
|
Loading…
Reference in New Issue