GitXplorerGitXplorer
r

torf

public
187 stars
17 forks
3 issues

Commits

List of commits on branch master.
Unverified
2743ca7a00692451b5a2e86b348bfb443fb1ab1c

Satisfy isort

rrndusr committed 3 months ago
Unverified
bbbac49651757c571a9992cf872811e502043322

Be explicit about exported modules without `__all__`

RRavencentric committed 3 months ago
Unverified
d96de7086b12c5c069dd0ece1bba8af4e33112db

update stubs for path and creation_date in torrent.pyi

RRavencentric committed 3 months ago
Unverified
75bc10196196b5ea772143650030a615eb790dbf

pyproject.toml: Bump minimum Python version to 3.8 (fixes #50)

rrndusr committed 3 months ago
Unverified
25280d28d50cdb907a7e5cb670c863b6fdaf1026

Remove __all__

rrndusr committed 3 months ago
Unverified
0dac79b54b7fa0a740b8ff3487d0334eaf096d80

Update CHANGELOG

rrndusr committed 3 months ago

README

The README file for this repository.

torf

torf provides a Torrent and a Magnet class.

torf-cli <https://github.com/rndusr/torf-cli>_ and torf-gui <https://github.com/SavageCore/torf-gui>_ provide user interfaces for torf.

This project started as a fork of dottorrent <https://github.com/kz26/dottorrent>_ but turned into a rewrite.

Features

  • Create a Torrent instance from a path to the torrent's content or by reading an existing .torrent file
  • High-level access to standard metainfo fields via properties
  • Low-level access to arbitrary metainfo fields via metainfo property
  • Optional metainfo validation with helpful error messages
  • Generate a BTIH magnet URI <https://en.wikipedia.org/wiki/Magnet_URI_scheme>_ from a .torrent file (the reverse is also possible but the resulting torrent is incomplete due to the lack of information in magnet URIs)
  • Use multiple CPU cores to compute piece hashes
  • Randomize the info hash to help with cross-seeding
  • Conveniently re-use piece hashes from an existing torrent file

Example

.. code:: python

from torf import Torrent
t = Torrent(path='path/to/content',
            trackers=['https://tracker1.example.org:1234/announce',
                      'https://tracker2.example.org:5678/announce'],
            comment='This is a comment')
t.private = True
t.generate()
t.write('my.torrent')

Documentation

Everything should be explained in the docstrings. Read it with pydoc3 torf.Torrent or pydoc3 torf.Magnet.

Documentation is also available at torf.readthedocs.io <https://torf.readthedocs.io/>_ or torf.readthedocs.io/en/latest <https://torf.readthedocs.io/en/latest>_ for the development version.

Installation

torf is available on PyPI <https://pypi.org/project/torf>_.

The latest development version is in the master branch on GitHub <https://github.com/rndusr/torf>_.

Contributing

I consider this project feature complete, but feel free to request new features or improvements. Bug reports are always welcome, of course.

License

GPLv3+ <https://www.gnu.org/licenses/gpl-3.0.en.html>_