package meta import "time" type File struct { Length int `bencode:"length"` MD5Sum []byte `bencode:"md5sum,optional"` Path []string `bencode:"path"` } type Info struct { Length int `bencode:"length"` MD5Sum []byte `bencode:"md5sum,optional"` Name string `bencode:"name"` PieceLength int `bencode:"piece length"` Pieces []byte `bencode:"pieces"` Files []File `bencode:"files"` Private bool `bencode:"private"` } type Torrent struct { Announce string `bencode:"announce"` AnnounceList [][]string `bencode:"announce-list,optional"` Comment string `bencode:"comment,optional"` CreatedBy string `bencode:"created by,optional"` Encoding string `bencode:"encoding,optional"` CreationDate time.Time `bencode:"creation date,optional"` HTTPSeeds []string `bencode:"httpseeds,optional"` Info Info `bencode:"info"` URLList string `bencode:"url-list,optional"` InfoHash []byte `bencode:"-"` } type TrackerResponse struct { FalureReason string `bencode:"failure reason"` WarningMessage string `bencode:"warning message"` Interval int `bencode:"interval"` MinInterval int `bencode:"min interval"` TrackerId string `bencode:"tracker id"` Complete int `bencode:"complete"` Incomplete int `bencode:"incomplete"` Peers Peer `bencode:"peers"` } type Peer struct { PeerId string `bencode:"peer id"` IP string `bencode:"ip"` Port string `bencode:"ports"` } // Peer (compact) []byte