ActiveTorrent::Metainfo
Class methods
build(name : String, byte_size : Int64, piece_length : Int32, pieces : Bytes, announce : String | Nil, webseed_url : String | Nil = nil) : Bytes
Собирает .torrent целиком. announce — URL трекера (фаза 0 — nil: webseed-only метаданные без announce-ключа, как magnet-фикстуры BEP 19); url-list (webseed) — только для server-backed раздач.
info-словарь single-file раздачи.
SHA1 от bencode info-словаря — hex.
magnet-ссылка (BEP 9): xt — info_hash hex, dn — имя, tr — трекер. URL-экранирование — CGI.escape (ruby-оракул гоняет ту же).
parse(data : String | Bytes) : NamedTuple(announce: String | Nil, info_hash: String, name: String, byte_size: Int64, piece_length: Int32, pieces: Bytes)
Разбирает .torrent (оракул-фикстуры, приём чужих metainfo). announce опционален (magnet-only метаданные без трекера — оракул-фикстура leaves.torrent). Возвращает {announce, info_hash hex, name, byte_size, piece_length, pieces}.