diff --git a/addon.xml b/addon.xml new file mode 100644 index 0000000..dc4801c --- /dev/null +++ b/addon.xml @@ -0,0 +1,14 @@ + + + + + + + + all + en_GB ru_RU + tiny Bittorrent client + Implementation of the Bittorrent and Mainline DHT protocol for Distributed Computing applications + roman@ukamnya.ru + https://git.ukamnya.ru/roman/script.module.tinybt + diff --git a/lib/tinybt/__init__.py b/lib/tinybt/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/bencode.py b/lib/tinybt/bencode.py similarity index 100% rename from bencode.py rename to lib/tinybt/bencode.py diff --git a/crc32c.py b/lib/tinybt/crc32c.py similarity index 100% rename from crc32c.py rename to lib/tinybt/crc32c.py diff --git a/dht.py b/lib/tinybt/dht.py similarity index 98% rename from dht.py rename to lib/tinybt/dht.py index 6a60082..374663a 100644 --- a/dht.py +++ b/lib/tinybt/dht.py @@ -23,15 +23,16 @@ THE SOFTWARE. """ import os, time, socket, hashlib, hmac, threading, logging, random, inspect -from bencode import bencode, bdecode -from utils import encode_uint32, encode_ip, encode_connection, encode_nodes, AsyncTimeout -from utils import decode_uint32, decode_ip, decode_connection, decode_nodes, start_thread, ThreadManager -from krpc import KRPCPeer, KRPCError +from bencode import bdecode +from lib.tinybt import bencode.bencode +from lib.tinybt.utils import encode_uint32, encode_ip, encode_connection, encode_nodes, AsyncTimeout +from lib.tinybt.utils import decode_uint32, decode_ip, decode_connection, decode_nodes, start_thread, ThreadManager +from lib.tinybt.krpc import KRPCPeer, KRPCError # BEP #0042 - prefix is based on ip and last byte of the node id - 21 most significant bits must match # * ip = ip address in string format eg. "127.0.0.1" def bep42_prefix(ip, crc32_salt, first_node_bits): # first_node_bits determines the last 3 bits - from crc32c import crc32c + from lib.tinybt import crc32c.crc32c ip_asint = decode_uint32(encode_ip(ip)) value = crc32c(bytearray(encode_uint32((ip_asint & 0x030f3fff) | ((crc32_salt & 0x7) << 29)))) return (value & 0xfffff800) | ((first_node_bits << 8) & 0x00000700) diff --git a/krpc.py b/lib/tinybt/krpc.py similarity index 97% rename from krpc.py rename to lib/tinybt/krpc.py index 88fc673..9a96b30 100644 --- a/krpc.py +++ b/lib/tinybt/krpc.py @@ -23,8 +23,9 @@ THE SOFTWARE. """ import socket, threading, logging -from bencode import bencode, bdecode, BTFailure -from utils import client_version, AsyncResult, AsyncTimeout, encode_uint64, UDPSocket, ThreadManager +from bencode import bdecode, BTFailure +from lib.tinybt import bencode.bencode +from lib.tinybt.utils import client_version, AsyncResult, AsyncTimeout, encode_uint64, UDPSocket, ThreadManager krpc_version = bytes(client_version[0] + bytearray([client_version[1], client_version[2]])) diff --git a/tracker.py b/lib/tinybt/tracker.py similarity index 95% rename from tracker.py rename to lib/tinybt/tracker.py index 6a1dc2f..96f08cb 100644 --- a/tracker.py +++ b/lib/tinybt/tracker.py @@ -23,10 +23,10 @@ THE SOFTWARE. """ import sys, socket, random -from bencode import bdecode -from utils import UDPSocket, encode_int32, decode_connection -from utils import encode_ip, encode_uint64, encode_uint32, encode_uint16 -from utils import decode_ip, decode_uint64, decode_uint32 +from lib.tinybt.bencode import bdecode +from lib.tinybt.utils import UDPSocket, encode_int32, decode_connection +from lib.tinybt.utils import encode_ip, encode_uint64, encode_uint32, encode_uint16 +from lib.tinybt.utils import decode_ip, decode_uint64, decode_uint32 class TrackerException(Exception): pass diff --git a/utils.py b/lib/tinybt/utils.py similarity index 100% rename from utils.py rename to lib/tinybt/utils.py