diff options
Diffstat (limited to 'libmat2/torrent.py')
| -rw-r--r-- | libmat2/torrent.py | 40 |
1 files changed, 20 insertions, 20 deletions
diff --git a/libmat2/torrent.py b/libmat2/torrent.py index 0f122b0..ca7715a 100644 --- a/libmat2/torrent.py +++ b/libmat2/torrent.py | |||
| @@ -17,17 +17,17 @@ class TorrentParser(abstract.AbstractParser): | |||
| 17 | 17 | ||
| 18 | def get_meta(self) -> Dict[str, str]: | 18 | def get_meta(self) -> Dict[str, str]: |
| 19 | metadata = {} | 19 | metadata = {} |
| 20 | for k, v in self.dict_repr.items(): | 20 | for key, value in self.dict_repr.items(): |
| 21 | if k not in self.whitelist: | 21 | if key not in self.whitelist: |
| 22 | metadata[k.decode('utf-8')] = v | 22 | metadata[key.decode('utf-8')] = value |
| 23 | return metadata | 23 | return metadata |
| 24 | 24 | ||
| 25 | 25 | ||
| 26 | def remove_all(self) -> bool: | 26 | def remove_all(self) -> bool: |
| 27 | cleaned = dict() | 27 | cleaned = dict() |
| 28 | for k, v in self.dict_repr.items(): | 28 | for key, value in self.dict_repr.items(): |
| 29 | if k in self.whitelist: | 29 | if key in self.whitelist: |
| 30 | cleaned[k] = v | 30 | cleaned[key] = value |
| 31 | with open(self.output_filename, 'wb') as f: | 31 | with open(self.output_filename, 'wb') as f: |
| 32 | f.write(_BencodeHandler().bencode(cleaned)) | 32 | f.write(_BencodeHandler().bencode(cleaned)) |
| 33 | self.dict_repr = cleaned # since we're stateful | 33 | self.dict_repr = cleaned # since we're stateful |
| @@ -78,20 +78,20 @@ class _BencodeHandler(object): | |||
| 78 | return s[colon:colon+str_len], s[colon+str_len:] | 78 | return s[colon:colon+str_len], s[colon+str_len:] |
| 79 | 79 | ||
| 80 | def __decode_list(self, s: bytes) -> Tuple[list, bytes]: | 80 | def __decode_list(self, s: bytes) -> Tuple[list, bytes]: |
| 81 | r = list() | 81 | ret = list() |
| 82 | s = s[1:] # skip leading `l` | 82 | s = s[1:] # skip leading `l` |
| 83 | while s[0] != ord('e'): | 83 | while s[0] != ord('e'): |
| 84 | v, s = self.__decode_func[s[0]](s) | 84 | value, s = self.__decode_func[s[0]](s) |
| 85 | r.append(v) | 85 | ret.append(value) |
| 86 | return r, s[1:] | 86 | return ret, s[1:] |
| 87 | 87 | ||
| 88 | def __decode_dict(self, s: bytes) -> Tuple[dict, bytes]: | 88 | def __decode_dict(self, s: bytes) -> Tuple[dict, bytes]: |
| 89 | r = dict() | 89 | ret = dict() |
| 90 | s = s[1:] # skip leading `d` | 90 | s = s[1:] # skip leading `d` |
| 91 | while s[0] != ord(b'e'): | 91 | while s[0] != ord(b'e'): |
| 92 | k, s = self.__decode_string(s) | 92 | key, s = self.__decode_string(s) |
| 93 | r[k], s = self.__decode_func[s[0]](s) | 93 | ret[key], s = self.__decode_func[s[0]](s) |
| 94 | return r, s[1:] | 94 | return ret, s[1:] |
| 95 | 95 | ||
| 96 | @staticmethod | 96 | @staticmethod |
| 97 | def __encode_int(x: bytes) -> bytes: | 97 | def __encode_int(x: bytes) -> bytes: |
| @@ -109,9 +109,9 @@ class _BencodeHandler(object): | |||
| 109 | 109 | ||
| 110 | def __encode_dict(self, x: dict) -> bytes: | 110 | def __encode_dict(self, x: dict) -> bytes: |
| 111 | ret = b'' | 111 | ret = b'' |
| 112 | for k, v in sorted(x.items()): | 112 | for key, value in sorted(x.items()): |
| 113 | ret += self.__encode_func[type(k)](k) | 113 | ret += self.__encode_func[type(key)](key) |
| 114 | ret += self.__encode_func[type(v)](v) | 114 | ret += self.__encode_func[type(value)](value) |
| 115 | return b'd' + ret + b'e' | 115 | return b'd' + ret + b'e' |
| 116 | 116 | ||
| 117 | def bencode(self, s: Union[dict, list, bytes, int]) -> bytes: | 117 | def bencode(self, s: Union[dict, list, bytes, int]) -> bytes: |
| @@ -119,11 +119,11 @@ class _BencodeHandler(object): | |||
| 119 | 119 | ||
| 120 | def bdecode(self, s: bytes) -> Union[dict, None]: | 120 | def bdecode(self, s: bytes) -> Union[dict, None]: |
| 121 | try: | 121 | try: |
| 122 | r, l = self.__decode_func[s[0]](s) | 122 | ret, trail = self.__decode_func[s[0]](s) |
| 123 | except (IndexError, KeyError, ValueError) as e: | 123 | except (IndexError, KeyError, ValueError) as e: |
| 124 | logging.debug("Not a valid bencoded string: %s", e) | 124 | logging.debug("Not a valid bencoded string: %s", e) |
| 125 | return None | 125 | return None |
| 126 | if l != b'': | 126 | if trail != b'': |
| 127 | logging.debug("Invalid bencoded value (data after valid prefix)") | 127 | logging.debug("Invalid bencoded value (data after valid prefix)") |
| 128 | return None | 128 | return None |
| 129 | return r | 129 | return ret |
