premiere-libtorrent/bindings/python/make_torrent.py

54 lines
1.2 KiB
Python
Raw Normal View History

#!/usr/bin/env python
import sys
import os
import libtorrent
if len(sys.argv) < 3:
print('usage make_torrent.py file tracker-url')
sys.exit(1)
input = os.path.abspath(sys.argv[1])
fs = libtorrent.file_storage()
2014-03-23 01:49:58 +01:00
#def predicate(f):
# print f
# return True
#libtorrent.add_files(fs, input, predicate)
parent_input = os.path.split(input)[0]
for root, dirs, files in os.walk(input):
# skip directories starting with .
if os.path.split(root)[1][0] == '.': continue
for f in files:
# skip files starting with .
if f[0] == '.': continue
# skip thumbs.db on windows
if f == 'Thumbs.db': continue
fname = os.path.join(root[len(parent_input)+1:], f)
size = os.path.getsize(os.path.join(parent_input, fname))
print('%10d kiB %s' % (size / 1024, fname))
2014-03-23 01:49:58 +01:00
fs.add_file(fname, size);
if fs.num_files() == 0:
print('no files added')
sys.exit(1)
t = libtorrent.create_torrent(fs, 0, 4 * 1024 * 1024)
t.add_tracker(sys.argv[2])
t.set_creator('libtorrent %s' % libtorrent.__version__)
2014-03-23 01:49:58 +01:00
libtorrent.set_piece_hashes(t, parent_input, lambda x: sys.stderr.write('.'))
sys.stderr.write('\n')
2014-03-23 01:49:58 +01:00
f = open('out.torrent', 'wb+')
f.write(libtorrent.bencode(t.generate()))
2014-03-23 01:49:58 +01:00
f.close()