metainfo

package
v0.0.0-...-5607d3c Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 13, 2017 License: MIT Imports: 6 Imported by: 0

Documentation

Overview

* package for parsing bitorrent meta info objects originally from XD i2p bittorrent client: https://github.com/majestrate/XD

Index

Constants

This section is empty.

Variables

View Source
var ErrInvalidTorrentFile = errors.New("invalid bittorrent file")

error for indicating we have an invalid torrent file

Functions

This section is empty.

Types

type FileInfo

type FileInfo struct {
	// length of file
	Length uint64 `bencode:"length"`
	// relative path of file
	Path FilePath `bencode:"path"`
	// md5sum
	Sum []byte `bencode:"md5sum,omitempty"`
}

type FilePath

type FilePath []string

func (FilePath) FilePath

func (f FilePath) FilePath() string

get filepath

func (FilePath) Open

func (f FilePath) Open(base string) (*os.File, error)

* open file using base path

type Info

type Info struct {
	// length of pices in bytes
	PieceLength uint32 `bencode:"piece length"`
	// piece data
	Pieces []byte `bencode:"pieces"`
	// name of root file
	Path string `bencode:"name"`
	// file metadata
	Files []FileInfo `bencode:"files,omitempty"`
	// private torrent
	Private *int64 `bencode:"private,omitempty"`
	// length of file in signle file mode
	Length uint64 `bencode:"length,omitempty"`
	// md5sum
	Sum []byte `bencode:"md5sum,omitempty"`
}

info section of torrent file

func (Info) GetFiles

func (i Info) GetFiles() (infos []FileInfo)

get fileinfos from this info section

func (Info) NumPieces

func (i Info) NumPieces() uint32

type TorrentFile

type TorrentFile struct {
	Info         Info       `bencode:"info"`
	Announce     string     `bencode:"announce"`
	AnnounceList [][]string `bencode:"announce-list"`
	Created      uint64     `bencode:"created"`
	Comment      []byte     `bencode:"comment"`
	CreatedBy    []byte     `bencode:"created by"`
	Encoding     []byte     `bencode:"encoding"`
}

a torrent file

func (*TorrentFile) Decode

func (tf *TorrentFile) Decode(r io.Reader) (err error)

load from an io.Reader

func (*TorrentFile) Encode

func (tf *TorrentFile) Encode(w io.Writer) (err error)

bencode this file via an io.Writer

func (*TorrentFile) GetAllAnnounceURLS

func (tf *TorrentFile) GetAllAnnounceURLS() (l []string)

func (*TorrentFile) Infohash

func (tf *TorrentFile) Infohash() (ih [20]byte, err error)

calculate infohash

func (*TorrentFile) IsPrivate

func (tf *TorrentFile) IsPrivate() bool

return true if this torrent is private otherwise return false

func (*TorrentFile) IsSingleFile

func (tf *TorrentFile) IsSingleFile() bool

return true if this torrent is for a single file

func (*TorrentFile) TorrentName

func (tf *TorrentFile) TorrentName() string

func (*TorrentFile) TotalSize

func (tf *TorrentFile) TotalSize() uint64

get total size of files from torrent info section

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL