torrent/deluge/torrent_test.py

52 lines
1.4 KiB
Python
Raw Normal View History

2024-01-13 06:32:52 +00:00
#!/usr/bin/env python3
import libtorrent as lt
import time
def create_torrent(directory, torrent_file_name):
# Create a new file storage object
fs = lt.file_storage()
# Add files from the directory to the file storage
lt.add_files(fs, directory)
# Create a new create_torrent object
t = lt.create_torrent(fs, flags=lt.create_torrent_flags_t.v2_only)
# Add tracker
# t.add_tracker("http://your-tracker.com/announce")
# Set comment or other properties (optional)
t.set_comment("Cool Test")
t.set_creator("My Torrent Creator")
# Generate the torrent
lt.set_piece_hashes(t, ".") # Second argument is the root directory for the files
torrent = t.generate()
# Write the torrent file
with open(torrent_file_name, "wb") as f:
f.write(lt.bencode(torrent))
def read_torrent_v2(file_path):
# Create a torrent_info object from the file path
info = lt.torrent_info(file_path)
# Accessing various properties of the torrent
print("Torrent Name:", info.name())
print("Number of Files:", info.num_files())
print("Total Size:", info.total_size())
# Loop through each file in the torrent
for i in range(info.num_files()):
file = info.files().file_path(i)
size = info.files().file_size(i)
print(f"File {i}: {file}, Size: {size}")
# Example usage
2024-01-13 15:05:52 +00:00
create_torrent("readme.md","my.torrent")
2024-01-13 06:32:52 +00:00
read_torrent_v2("existing.torrent")
read_torrent_v2("my.torrent")