From 34b5af6214991ecbc6e675e53592e138b1fd30a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=91=D0=BE=D1=80=D0=BE=D0=B4=D0=B8=D0=BD=20=D0=A0=D0=BE?= =?UTF-8?q?=D0=BC=D0=B0=D0=BD?= Date: Tue, 7 May 2019 19:55:11 +0300 Subject: [PATCH] KODI addon structure --- addon.xml | 14 ++++++++++++++ lib/tinybt/__init__.py | 0 bencode.py => lib/tinybt/bencode.py | 0 crc32c.py => lib/tinybt/crc32c.py | 0 dht.py => lib/tinybt/dht.py | 11 ++++++----- krpc.py => lib/tinybt/krpc.py | 5 +++-- tracker.py => lib/tinybt/tracker.py | 8 ++++---- utils.py => lib/tinybt/utils.py | 0 8 files changed, 27 insertions(+), 11 deletions(-) create mode 100644 addon.xml create mode 100644 lib/tinybt/__init__.py rename bencode.py => lib/tinybt/bencode.py (100%) rename crc32c.py => lib/tinybt/crc32c.py (100%) rename dht.py => lib/tinybt/dht.py (98%) rename krpc.py => lib/tinybt/krpc.py (97%) rename tracker.py => lib/tinybt/tracker.py (95%) rename utils.py => lib/tinybt/utils.py (100%) 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