Go to file
7sDream 177d1c7de9 hash_fields(finish #4) and hash raw:
- hash fields method and parameter allow user customize hash field list
- hash raw parameter allow the output of hash field to be raw bytes
- BEncoder now support encode raw bytes
2018-06-23 12:57:04 +08:00
tests hash_fields(finish #4) and hash raw: 2018-06-23 12:57:04 +08:00
.gitignore init 2017-05-23 13:35:40 +08:00
CHANGELOG.md hash_fields(finish #4) and hash raw: 2018-06-23 12:57:04 +08:00
LICENSE Many changes, see bellow: 2018-06-23 01:44:10 +08:00
MANIFEST.in Removed: unused test files in MANIFEST.in 2018-04-29 00:20:08 +08:00
README.md hash_fields(finish #4) and hash raw: 2018-06-23 12:57:04 +08:00
setup.cfg init 2017-05-23 13:35:40 +08:00
setup.py update to v0.1.5rc1 2018-04-29 00:14:54 +08:00
torrent_parser.py hash_fields(finish #4) and hash raw: 2018-06-23 12:57:04 +08:00

README.md

Torrent file parser and creator for Python

A simple parser for .torrent file.

Can also edit and write back to torrent format after version 0.2.0.

Features

  • Decoder and encoder for torrent files
  • Auto decode bytes field to string with used specified encoding and error handler
  • Auto detect encoding when use auto as encoding(need chardet installed)
  • Auto decode hash value filed to hash blocks, also customizable
  • CLI provided, with JSON output

Install

pip install torrent_parser

Usage:

CLI

$ pytp test.torrent
$ cat test.torrent | pytp

As a module

>>> import torrent_parser as tp
>>> data = tp.parse_torrent_file('test.torrent')
>>> data['announce']
http://tracker.trackerfix.com:80/announce
>>> data['announce'] = 'http://127.0.0.1:12345'
>>> tp.create_torrent_file('new.torrent', data)

or you don't operate with file, just raw bytes:

>>> import torrent_parser as tp
>>> data = tp.decode(b'd3:negi-1ee')
>>> data['neg']
-1
>>> tp.encode(data)
b'd3:negi-1ee'

Test

python -m unittest tests

Changelog

See Changelog.

LICENSE

See License.