Files
seanime-docker/seanime-2.9.10/internal/debrid/realdebrid/realdebrid_test.go
2025-09-20 14:08:38 +01:00

151 lines
4.0 KiB
Go

package realdebrid
import (
"fmt"
"github.com/stretchr/testify/require"
"seanime/internal/debrid/debrid"
"seanime/internal/test_utils"
"seanime/internal/util"
"strings"
"testing"
)
func TestTorBox_GetTorrents(t *testing.T) {
test_utils.InitTestProvider(t)
logger := util.NewLogger()
rd := NewRealDebrid(logger)
err := rd.Authenticate(test_utils.ConfigData.Provider.RealDebridApiKey)
require.NoError(t, err)
fmt.Println("=== All torrents ===")
torrents, err := rd.GetTorrents()
require.NoError(t, err)
util.Spew(torrents)
}
func TestTorBox_AddTorrent(t *testing.T) {
t.Skip("Skipping test that adds a torrent to RealDebrid")
test_utils.InitTestProvider(t)
// Already added
magnet := "magnet:?xt=urn:btih:80431b4f9a12f4e06616062d3d3973b9ef99b5e6&dn=%5BSubsPlease%5D%20Bocchi%20the%20Rock%21%20-%2001%20%281080p%29%20%5BE04F4EFB%5D.mkv&tr=http%3A%2F%2Fnyaa.tracker.wf%3A7777%2Fannounce&tr=udp%3A%2F%2Fopen.stealth.si%3A80%2Fannounce&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337%2Fannounce&tr=udp%3A%2F%2Fexodus.desync.com%3A6969%2Fannounce&tr=udp%3A%2F%2Ftracker.torrent.eu.org%3A451%2Fannounce"
logger := util.NewLogger()
rd := NewRealDebrid(logger)
err := rd.Authenticate(test_utils.ConfigData.Provider.RealDebridApiKey)
require.NoError(t, err)
torrentId, err := rd.AddTorrent(debrid.AddTorrentOptions{
MagnetLink: magnet,
InfoHash: "80431b4f9a12f4e06616062d3d3973b9ef99b5e6",
})
require.NoError(t, err)
torrentId2, err := rd.AddTorrent(debrid.AddTorrentOptions{
MagnetLink: magnet,
InfoHash: "80431b4f9a12f4e06616062d3d3973b9ef99b5e6",
})
require.NoError(t, err)
require.Equal(t, torrentId, torrentId2)
fmt.Println(torrentId)
}
func TestTorBox_getTorrentInfo(t *testing.T) {
test_utils.InitTestProvider(t)
logger := util.NewLogger()
rd := NewRealDebridT(logger)
err := rd.Authenticate(test_utils.ConfigData.Provider.RealDebridApiKey)
require.NoError(t, err)
ti, err := rd.getTorrentInfo("W3IWF5TX3AE6G")
require.NoError(t, err)
util.Spew(ti)
}
func TestTorBox_GetDownloadUrl(t *testing.T) {
test_utils.InitTestProvider(t)
logger := util.NewLogger()
rd := NewRealDebridT(logger)
err := rd.Authenticate(test_utils.ConfigData.Provider.RealDebridApiKey)
require.NoError(t, err)
urls, err := rd.GetTorrentDownloadUrl(debrid.DownloadTorrentOptions{
ID: "W3IWF5TX3AE6G",
FileId: "11",
})
require.NoError(t, err)
util.Spew(strings.Split(urls, ","))
}
func TestTorBox_InstantAvailability(t *testing.T) {
test_utils.InitTestProvider(t)
logger := util.NewLogger()
rd := NewRealDebridT(logger)
err := rd.Authenticate(test_utils.ConfigData.Provider.RealDebridApiKey)
require.NoError(t, err)
avail := rd.GetInstantAvailability([]string{"9f4961a9c71eeb53abce2ef2afc587b452dee5eb"})
require.NoError(t, err)
util.Spew(avail)
}
func TestTorBox_ChooseFileAndDownload(t *testing.T) {
//t.Skip("Skipping test that adds a torrent to RealDebrid")
test_utils.InitTestProvider(t)
magnet := "magnet:?xt=urn:btih:80431b4f9a12f4e06616062d3d3973b9ef99b5e6&dn=%5BSubsPlease%5D%20Bocchi%20the%20Rock%21%20-%2001%20%281080p%29%20%5BE04F4EFB%5D.mkv&tr=http%3A%2F%2Fnyaa.tracker.wf%3A7777%2Fannounce&tr=udp%3A%2F%2Fopen.stealth.si%3A80%2Fannounce&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337%2Fannounce&tr=udp%3A%2F%2Fexodus.desync.com%3A6969%2Fannounce&tr=udp%3A%2F%2Ftracker.torrent.eu.org%3A451%2Fannounce"
logger := util.NewLogger()
rd := NewRealDebrid(logger)
err := rd.Authenticate(test_utils.ConfigData.Provider.RealDebridApiKey)
require.NoError(t, err)
// Should add the torrent and get the torrent info
torrentInfo, err := rd.GetTorrentInfo(debrid.GetTorrentInfoOptions{
MagnetLink: magnet,
InfoHash: "80431b4f9a12f4e06616062d3d3973b9ef99b5e6",
})
require.NoError(t, err)
// The torrent should have one file
require.Len(t, torrentInfo.Files, 1)
file := torrentInfo.Files[0]
// Download the file
resp, err := rd.AddTorrent(debrid.AddTorrentOptions{
MagnetLink: magnet,
InfoHash: "80431b4f9a12f4e06616062d3d3973b9ef99b5e6",
SelectFileId: file.ID,
})
require.NoError(t, err)
util.Spew(resp)
}