From 433ed2851492994436d530f8fb23731f3b581f89 Mon Sep 17 00:00:00 2001 From: mkelvers Date: Mon, 1 Jun 2026 22:11:29 +0200 Subject: [PATCH] refactor: dedupe allanime sources --- integrations/playback/allanime/client.go | 48 +++--------------------- 1 file changed, 5 insertions(+), 43 deletions(-) diff --git a/integrations/playback/allanime/client.go b/integrations/playback/allanime/client.go index 37f1a4c..aa553ea 100644 --- a/integrations/playback/allanime/client.go +++ b/integrations/playback/allanime/client.go @@ -472,49 +472,7 @@ func (c *AllAnimeProvider) GetEpisodeSources(ctx context.Context, showID string, return nil, fmt.Errorf("no source references") } - out := make([]StreamSource, 0, len(references)) - for _, ref := range references { - target := strings.TrimSpace(ref.URL) - if target == "" { - continue - } - - if strings.HasPrefix(target, "http://") || strings.HasPrefix(target, "https://") { - sourceType := detectStreamType(target) - if sourceType == "unknown" { - sourceType = detectEmbedType(target) - } - - out = append(out, buildStreamSource(target, sourceType, ref.Name)) - continue - } - - decoded := decodeSourceURL(target) - if decoded == "" { - continue - } - - if strings.HasPrefix(decoded, "http://") || strings.HasPrefix(decoded, "https://") { - sourceType := detectStreamType(decoded) - if sourceType == "unknown" { - sourceType = detectEmbedType(decoded) - } - - out = append(out, buildStreamSource(decoded, sourceType, ref.Name)) - continue - } - - if !strings.HasPrefix(decoded, "/") { - decoded = "/" + decoded - } - - extracted, err := c.extractor.ExtractVideoLinks(ctx, decoded) - if err != nil { - continue - } - - out = append(out, extracted...) - } + out := c.resolveSourceReferences(ctx, references) if len(out) == 0 { return nil, fmt.Errorf("no playable sources extracted") @@ -539,6 +497,10 @@ func (c *AllAnimeProvider) extractSourceURLsFromData(ctx context.Context, data m return nil } + return c.resolveSourceReferences(ctx, references) +} + +func (c *AllAnimeProvider) resolveSourceReferences(ctx context.Context, references []sourceReference) []StreamSource { out := make([]StreamSource, 0, len(references)) for _, ref := range references { target := strings.TrimSpace(ref.URL)