You've already forked torrent-client
mirror of
https://github.com/veggiedefender/torrent-client.git
synced 2025-11-06 09:29:16 +02:00
Return plain struct from toTorrentFile
This commit is contained in:
@@ -65,11 +65,11 @@ func (t *TorrentFile) Download() ([]byte, error) {
|
||||
}
|
||||
|
||||
// Open parses a torrent file
|
||||
func Open(r io.Reader) (*TorrentFile, error) {
|
||||
func Open(r io.Reader) (TorrentFile, error) {
|
||||
bto := bencodeTorrent{}
|
||||
err := bencode.Unmarshal(r, &bto)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
return TorrentFile{}, err
|
||||
}
|
||||
return bto.toTorrentFile()
|
||||
}
|
||||
@@ -100,14 +100,14 @@ func (i *bencodeInfo) splitPieceHashes() ([][20]byte, error) {
|
||||
return hashes, nil
|
||||
}
|
||||
|
||||
func (bto *bencodeTorrent) toTorrentFile() (*TorrentFile, error) {
|
||||
func (bto *bencodeTorrent) toTorrentFile() (TorrentFile, error) {
|
||||
infoHash, err := bto.Info.hash()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
return TorrentFile{}, err
|
||||
}
|
||||
pieceHashes, err := bto.Info.splitPieceHashes()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
return TorrentFile{}, err
|
||||
}
|
||||
t := TorrentFile{
|
||||
Announce: bto.Announce,
|
||||
@@ -117,5 +117,5 @@ func (bto *bencodeTorrent) toTorrentFile() (*TorrentFile, error) {
|
||||
Length: bto.Info.Length,
|
||||
Name: bto.Info.Name,
|
||||
}
|
||||
return &t, nil
|
||||
return t, nil
|
||||
}
|
||||
|
||||
@@ -27,10 +27,10 @@ func TestOpen(t *testing.T) {
|
||||
ioutil.WriteFile(goldenPath, serialized, 0644)
|
||||
}
|
||||
|
||||
expected := &TorrentFile{}
|
||||
expected := TorrentFile{}
|
||||
golden, err := ioutil.ReadFile(goldenPath)
|
||||
require.Nil(t, err)
|
||||
err = json.Unmarshal(golden, expected)
|
||||
err = json.Unmarshal(golden, &expected)
|
||||
require.Nil(t, err)
|
||||
|
||||
assert.Equal(t, expected, torrent)
|
||||
@@ -39,7 +39,7 @@ func TestOpen(t *testing.T) {
|
||||
func TestToTorrentFile(t *testing.T) {
|
||||
tests := map[string]struct {
|
||||
input *bencodeTorrent
|
||||
output *TorrentFile
|
||||
output TorrentFile
|
||||
fails bool
|
||||
}{
|
||||
"correct conversion": {
|
||||
@@ -52,7 +52,7 @@ func TestToTorrentFile(t *testing.T) {
|
||||
Name: "debian-10.2.0-amd64-netinst.iso",
|
||||
},
|
||||
},
|
||||
output: &TorrentFile{
|
||||
output: TorrentFile{
|
||||
Announce: "http://bttracker.debian.org:6969/announce",
|
||||
InfoHash: [20]byte{216, 247, 57, 206, 195, 40, 149, 108, 204, 91, 191, 31, 134, 217, 253, 207, 219, 168, 206, 182},
|
||||
PieceHashes: [][20]byte{
|
||||
@@ -75,7 +75,7 @@ func TestToTorrentFile(t *testing.T) {
|
||||
Name: "debian-10.2.0-amd64-netinst.iso",
|
||||
},
|
||||
},
|
||||
output: nil,
|
||||
output: TorrentFile{},
|
||||
fails: true,
|
||||
},
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user