X-Git-Url: https://git.phdru.name/?p=extfs.d.git;a=blobdiff_plain;f=torrent;h=cfc1caa4ad0b6e6d7c3f94abe598501023ea6e89;hp=309aada9421ffa9b9f7605c6e84c1945fba78a2b;hb=bda78424afb794c8ed4ac9b74c7f8639c8be3226;hpb=cb78e17c2d412bf8ce6a092e3909737f536e8923 diff --git a/torrent b/torrent index 309aada..cfc1caa 100755 --- a/torrent +++ b/torrent @@ -65,7 +65,7 @@ def mctorrent_list(): torrent_error('Info absent') info = torrent['info'] - if 'name' not in info or 'name.utf-8' not in info: + if 'name' not in info and 'name.utf-8' not in info: torrent_error('Unknown name') codepage = torrent.get('codepage', None) @@ -80,7 +80,7 @@ def mctorrent_list(): files = info['files'] paths = [] for file in files: - if 'path' not in file or 'path.utf-8' not in file: + if 'path' not in file and 'path.utf-8' not in file: torrent_error('Unknown path') if 'length' not in file: torrent_error('Unknown length') @@ -124,9 +124,12 @@ def mctorrent_list(): meta = [] for name in 'announce', 'announce-list', 'codepage', 'comment', \ 'created by', 'creation date', 'encoding': - if name in torrent: + if name == 'comment' and 'comment.utf-8' in torrent: + data = torrent['comment.utf-8'].decode('utf-8').encode(charset, 'replace') + meta.append(('.META/' + name, len(data))) + elif name in torrent: if name == 'announce-list': - data = decode_list(torrent[name]) + data = decode_announce_list(torrent[name]) elif name == 'codepage': data = str(torrent[name]) elif name == 'creation date': @@ -154,10 +157,13 @@ def mctorrent_copyout(): for name in 'announce', 'announce-list', 'codepage', 'comment', \ 'created by', 'creation date', 'encoding': - if torrent_filename == '.META/' + name: + if name == 'comment' and 'comment.utf-8' in torrent: + data = torrent['comment.utf-8'].decode('utf-8').encode(charset, 'replace') + meta.append(('.META/' + name, len(data))) + elif torrent_filename == '.META/' + name: if name in torrent: if name == 'announce-list': - data = decode_list(torrent[name]) + data = decode_announce_list(torrent[name]) elif name == 'codepage': data = str(torrent[name]) elif name == 'creation date': @@ -226,7 +232,7 @@ def decode_datetime(dt): l_now = localtime(the_time) return asctime(l_now) -def decode_list(announce): +def decode_announce_list(announce): return '\n'.join(l[0] for l in announce)