Documentation
¶
Index ¶
- Constants
- func GeneratePieces(r io.Reader, pieceLength int64, b []byte) ([]byte, error)
- type AnnounceList
- type FileInfo
- type Hash
- type Info
- func (info *Info) BuildFromFilePath(root string) (err error)
- func (info *Info) GeneratePieces(open func(fi FileInfo) (io.ReadCloser, error)) (err error)
- func (info *Info) IsDir() bool
- func (info *Info) NumPieces() int
- func (info *Info) Piece(index int) Piece
- func (info *Info) TotalLength() (ret int64)
- func (info *Info) UpvertedFiles() []FileInfo
- type Magnet
- type MetaInfo
- func (mi MetaInfo) HashInfoBytes() (infoHash Hash)
- func (mi *MetaInfo) Magnet(displayName string, infoHash Hash) (m Magnet)
- func (mi *MetaInfo) SetDefaults()
- func (mi MetaInfo) UnmarshalInfo() (info Info, err error)
- func (mi *MetaInfo) UpvertedAnnounceList() AnnounceList
- func (mi MetaInfo) Write(w io.Writer) error
- type Node
- type Piece
- type PieceKey
- type UrlList
Constants ¶
const HashSize = 20
Variables ¶
This section is empty.
Functions ¶
Types ¶
type AnnounceList ¶
type AnnounceList [][]string
func (AnnounceList) Clone ¶
func (al AnnounceList) Clone() (ret AnnounceList)
func (AnnounceList) DistinctValues ¶
func (al AnnounceList) DistinctValues() (ret map[string]struct{})
func (AnnounceList) OverridesAnnounce ¶
func (al AnnounceList) OverridesAnnounce(announce string) bool
Whether the AnnounceList should be preferred over a single URL announce.
type FileInfo ¶
type FileInfo struct {
Length int64 `bencode:"length"` // BEP3
Path []string `bencode:"path"` // BEP3
PathUTF8 []string `bencode:"path.utf-8,omitempty"`
}
Information specific to a single file inside the MetaInfo structure.
func (*FileInfo) DisplayPath ¶
type Hash ¶
20-byte SHA1 hash used for info and pieces.
func NewHashFromHex ¶
func (*Hash) FromHexString ¶
type Info ¶
type Info struct {
PieceLength int64 `bencode:"piece length"` // BEP3
Pieces []byte `bencode:"pieces"` // BEP3
Name string `bencode:"name"` // BEP3
Length int64 `bencode:"length,omitempty"` // BEP3, mutually exclusive with Files
Private *bool `bencode:"private,omitempty"` // BEP27
// TODO: Document this field.
Source string `bencode:"source,omitempty"`
Files []FileInfo `bencode:"files,omitempty"` // BEP3, mutually exclusive with Length
}
The info dictionary.
func (*Info) BuildFromFilePath ¶
This is a helper that sets Files and Pieces from a root path and its children.
func (*Info) GeneratePieces ¶
Sets Pieces (the block of piece hashes in the Info) by using the passed function to get at the torrent data.
func (*Info) TotalLength ¶
func (*Info) UpvertedFiles ¶
The files field, converted up from the old single-file in the parent info dict if necessary. This is a helper to avoid having to conditionally handle single and multi-file torrent infos.
type Magnet ¶
type Magnet struct {
InfoHash Hash // Expected in this implementation
Trackers []string // "tr" values
DisplayName string // "dn" value, if not empty
Params url.Values // All other values, such as "x.pe", "as", "xs" etc.
}
Magnet link components.
func ParseMagnetURI ¶
ParseMagnetURI parses Magnet-formatted URIs into a Magnet instance
type MetaInfo ¶
type MetaInfo struct {
InfoBytes bencode.Bytes `bencode:"info,omitempty"` // BEP 3
Announce string `bencode:"announce,omitempty"` // BEP 3
AnnounceList AnnounceList `bencode:"announce-list,omitempty"` // BEP 12
Nodes []Node `bencode:"nodes,omitempty"` // BEP 5
// Where's this specified? Mentioned at
// https://wiki.theory.org/index.php/BitTorrentSpecification: (optional) the creation time of
// the torrent, in standard UNIX epoch format (integer, seconds since 1-Jan-1970 00:00:00 UTC)
CreationDate int64 `bencode:"creation date,omitempty,ignore_unmarshal_type_error"`
Comment string `bencode:"comment,omitempty"`
CreatedBy string `bencode:"created by,omitempty"`
Encoding string `bencode:"encoding,omitempty"`
UrlList UrlList `bencode:"url-list,omitempty"` // BEP 19
}
func LoadFromFile ¶
Convenience function for loading a MetaInfo from a file.
func (MetaInfo) HashInfoBytes ¶
func (*MetaInfo) SetDefaults ¶
func (mi *MetaInfo) SetDefaults()
Set good default values in preparation for creating a new MetaInfo file.
func (MetaInfo) UnmarshalInfo ¶
func (*MetaInfo) UpvertedAnnounceList ¶
func (mi *MetaInfo) UpvertedAnnounceList() AnnounceList
Returns the announce list converted from the old single announce field if necessary.