katnip.legos.bittorrent module

Bittorent file (.torrent) protocol lego. Those legos impelent the bencoding format: https://wiki.theory.org/BitTorrentSpecification#Bencoding

class katnip.legos.bittorrent.TDict(fields={}, fuzz_keys=True, fuzz_delims=True, name=None)

Bases: kitty.model.low_level.container.Container

Bencoded dictionary. Format: d<bencoded string><bencoded element>e

__init__(fields={}, fuzz_keys=True, fuzz_delims=True, name=None)
Parameters:
  • fields – dictionary of strings and torrent fields
  • name – name of container (default: None)
Fuzz_delims:

bool (default: True)

class katnip.legos.bittorrent.TInteger(value, fuzz_value=True, fuzz_delims=True, name=None)

Bases: kitty.model.low_level.container.Container

Bencoded integer. Format: `` i<integer encoded in base ten ASCII>e``

__init__(value, fuzz_value=True, fuzz_delims=True, name=None)
Parameters:
  • value – int, will be enclosed in a Int32
  • name – name of container (default: None)
Fuzz_value:

bool (default: True)

Fuzz_delims:

bool (default: True)

class katnip.legos.bittorrent.TList(fields=[], fuzz_delims=True, name=None)

Bases: kitty.model.low_level.container.Container

Bencoded list. Format: l<bencoded values>e

__init__(fields=[], fuzz_delims=True, name=None)
Parameters:
  • fields – content of the list, Fields...
  • name – name of container (default: None)
Fuzz_delims:

bool (default: True)

class katnip.legos.bittorrent.TString(value, fuzz_value=True, fuzz_length=True, fuzz_delim=True, name=None)

Bases: kitty.model.low_level.container.Container

Bencoded String. Format: <string length encoded in base ten ASCII>:<string data>

__init__(value, fuzz_value=True, fuzz_length=True, fuzz_delim=True, name=None)
Parameters:
  • value – str, will be enclosed in String
  • fuzz_value – bool (default: True)
  • fuzz_length – bool (default: True)
  • fuzz_delim – bool (default: True)
  • name – name of container (default: None)