Documentation
¶
Index ¶
- 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)) 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
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AnnounceList ¶
type AnnounceList [][]string
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 ¶
Information specific to a single file inside the MetaInfo structure.
func (*FileInfo) DisplayPath ¶
type Hash ¶
type Hash [20]byte
20-byte SHA1 hash used for info and pieces.
func NewHashFromHex ¶
func (*Hash) FromHexString ¶
type Info ¶
type Info struct {
PieceLength int64 `bencode:"piece length"`
Pieces []byte `bencode:"pieces"`
Name string `bencode:"name"`
Length int64 `bencode:"length,omitempty"`
Private *bool `bencode:"private,omitempty"`
// TODO: Document this field.
Source string `bencode:"source,omitempty"`
Files []FileInfo `bencode:"files,omitempty"`
}
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 ¶
Set info.Pieces by hashing info.Files.
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 ¶
Magnet link components.
func ParseMagnetURI ¶
ParseMagnetURI parses Magnet-formatted URIs into a Magnet instance
type MetaInfo ¶
type MetaInfo struct {
InfoBytes bencode.Bytes `bencode:"info"`
Announce string `bencode:"announce,omitempty"`
AnnounceList AnnounceList `bencode:"announce-list,omitempty"`
Nodes []Node `bencode:"nodes,omitempty"`
CreationDate int64 `bencode:"creation date,omitempty"`
Comment string `bencode:"comment,omitempty"`
CreatedBy string `bencode:"created by,omitempty"`
Encoding string `bencode:"encoding,omitempty"`
URLList []string `bencode:"url-list,omitempty"`
}
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.