node build fixed

This commit is contained in:
ra_ma
2025-09-20 14:08:38 +01:00
parent c6ebbe069d
commit 3d298fa434
1516 changed files with 535727 additions and 2 deletions

View File

@@ -0,0 +1,185 @@
package animetosho
import (
"seanime/internal/api/anilist"
"seanime/internal/api/metadata"
hibiketorrent "seanime/internal/extension/hibike/torrent"
"seanime/internal/platforms/anilist_platform"
"seanime/internal/test_utils"
"seanime/internal/util"
"strconv"
"testing"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestSmartSearch(t *testing.T) {
test_utils.InitTestProvider(t, test_utils.Anilist())
anilistClient := anilist.TestGetMockAnilistClient()
logger := util.NewLogger()
anilistPlatform := anilist_platform.NewAnilistPlatform(anilistClient, logger)
toshoPlatform := NewProvider(util.NewLogger())
metadataProvider := metadata.GetMockProvider(t)
tests := []struct {
name string
mId int
batch bool
episodeNumber int
absoluteOffset int
resolution string
}{
{
name: "Bungou Stray Dogs 5th Season Episode 11",
mId: 163263,
batch: false,
episodeNumber: 11,
absoluteOffset: 45,
resolution: "1080",
},
{
name: "SPY×FAMILY Season 1 Part 2",
mId: 142838,
batch: false,
episodeNumber: 12,
absoluteOffset: 12,
resolution: "1080",
},
{
name: "Jujutsu Kaisen Season 2",
mId: 145064,
batch: false,
episodeNumber: 2,
absoluteOffset: 24,
resolution: "",
},
{
name: "Violet Evergarden The Movie",
mId: 103047,
batch: true,
episodeNumber: 1,
absoluteOffset: 0,
resolution: "720",
},
{
name: "Sousou no Frieren",
mId: 154587,
batch: false,
episodeNumber: 10,
absoluteOffset: 0,
resolution: "1080",
},
{
name: "Tokubetsu-hen Hibike! Euphonium: Ensemble",
mId: 150429,
batch: false,
episodeNumber: 1,
absoluteOffset: 0,
resolution: "1080",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
media, err := anilistPlatform.GetAnime(t.Context(), tt.mId)
animeMetadata, err := metadataProvider.GetAnimeMetadata(metadata.AnilistPlatform, tt.mId)
require.NoError(t, err)
queryMedia := hibiketorrent.Media{
ID: media.GetID(),
IDMal: media.GetIDMal(),
Status: string(*media.GetStatus()),
Format: string(*media.GetFormat()),
EnglishTitle: media.GetTitle().GetEnglish(),
RomajiTitle: media.GetRomajiTitleSafe(),
EpisodeCount: media.GetTotalEpisodeCount(),
AbsoluteSeasonOffset: tt.absoluteOffset,
Synonyms: media.GetSynonymsContainingSeason(),
IsAdult: *media.GetIsAdult(),
StartDate: &hibiketorrent.FuzzyDate{
Year: *media.GetStartDate().GetYear(),
Month: media.GetStartDate().GetMonth(),
Day: media.GetStartDate().GetDay(),
},
}
if assert.NoError(t, err) {
episodeMetadata, ok := animeMetadata.FindEpisode(strconv.Itoa(tt.episodeNumber))
require.True(t, ok)
torrents, err := toshoPlatform.SmartSearch(hibiketorrent.AnimeSmartSearchOptions{
Media: queryMedia,
Query: "",
Batch: tt.batch,
EpisodeNumber: tt.episodeNumber,
Resolution: tt.resolution,
AnidbAID: animeMetadata.Mappings.AnidbId,
AnidbEID: episodeMetadata.AnidbEid,
BestReleases: false,
})
require.NoError(t, err)
require.GreaterOrEqual(t, len(torrents), 1, "expected at least 1 torrent")
for _, torrent := range torrents {
t.Log(torrent.Name)
t.Logf("\tLink: %s", torrent.Link)
t.Logf("\tMagnet: %s", torrent.MagnetLink)
t.Logf("\tEpisodeNumber: %d", torrent.EpisodeNumber)
t.Logf("\tResolution: %s", torrent.Resolution)
t.Logf("\tIsBatch: %v", torrent.IsBatch)
t.Logf("\tConfirmed: %v", torrent.Confirmed)
}
}
})
}
}
func TestSearch2(t *testing.T) {
toshoPlatform := NewProvider(util.NewLogger())
torrents, err := toshoPlatform.Search(hibiketorrent.AnimeSearchOptions{
Media: hibiketorrent.Media{},
Query: "Kusuriya no Hitorigoto 05",
})
require.NoError(t, err)
require.GreaterOrEqual(t, len(torrents), 1, "expected at least 1 torrent")
for _, torrent := range torrents {
t.Log(torrent.Name)
t.Logf("\tLink: %s", torrent.Link)
t.Logf("\tMagnet: %s", torrent.MagnetLink)
t.Logf("\tEpisodeNumber: %d", torrent.EpisodeNumber)
t.Logf("\tResolution: %s", torrent.Resolution)
t.Logf("\tIsBatch: %v", torrent.IsBatch)
t.Logf("\tConfirmed: %v", torrent.Confirmed)
}
}
func TestGetLatest(t *testing.T) {
toshoPlatform := NewProvider(util.NewLogger())
torrents, err := toshoPlatform.GetLatest()
require.NoError(t, err)
require.GreaterOrEqual(t, len(torrents), 1, "expected at least 1 torrent")
for _, torrent := range torrents {
t.Log(torrent.Name)
t.Logf("\tLink: %s", torrent.Link)
t.Logf("\tMagnet: %s", torrent.MagnetLink)
t.Logf("\tEpisodeNumber: %d", torrent.EpisodeNumber)
t.Logf("\tResolution: %s", torrent.Resolution)
t.Logf("\tIsBatch: %v", torrent.IsBatch)
t.Logf("\tConfirmed: %v", torrent.Confirmed)
}
}