package extension_repo_test import ( "os" "seanime/internal/extension" hibikemanga "seanime/internal/extension/hibike/manga" hibikeonlinestream "seanime/internal/extension/hibike/onlinestream" "seanime/internal/extension_repo" "seanime/internal/goja/goja_runtime" "seanime/internal/util" "testing" "github.com/davecgh/go-spew/spew" "github.com/stretchr/testify/require" ) func TestGojaWithExtension(t *testing.T) { runtimeManager := goja_runtime.NewManager(util.NewLogger()) // Get the script filepath := "./goja_manga_test/my-manga-provider.ts" fileB, err := os.ReadFile(filepath) if err != nil { t.Fatal(err) } ext := &extension.Extension{ ID: "my-manga-provider", Name: "MyMangaProvider", Version: "0.1.0", ManifestURI: "", Language: extension.LanguageTypescript, Type: extension.TypeMangaProvider, Description: "", Author: "", Payload: string(fileB), } // Create the provider provider, _, err := extension_repo.NewGojaMangaProvider(ext, ext.Language, util.NewLogger(), runtimeManager) require.NoError(t, err) // Test the search function searchResult, err := provider.Search(hibikemanga.SearchOptions{Query: "dandadan"}) require.NoError(t, err) spew.Dump(searchResult) // Should have a result with rating of 1 var dandadanRes *hibikemanga.SearchResult for _, res := range searchResult { if res.SearchRating == 1 { dandadanRes = res break } } require.NotNil(t, dandadanRes) spew.Dump(dandadanRes) // Test the search function again searchResult, err = provider.Search(hibikemanga.SearchOptions{Query: "boku no kokoro no yaibai"}) require.NoError(t, err) require.GreaterOrEqual(t, len(searchResult), 1) t.Logf("Search results: %d", len(searchResult)) // Test the findChapters function chapters, err := provider.FindChapters("pYN47sZm") // Boku no Kokoro no Yabai Yatsu require.NoError(t, err) require.GreaterOrEqual(t, len(chapters), 100) t.Logf("Chapters: %d", len(chapters)) // Test the findChapterPages function pages, err := provider.FindChapterPages("WLxnx") // Boku no Kokoro no Yabai Yatsu - Chapter 1 require.NoError(t, err) require.GreaterOrEqual(t, len(pages), 10) for _, page := range pages { t.Logf("Page: %s, Index: %d\n", page.URL, page.Index) } } func TestGojaOnlinestreamExtension(t *testing.T) { runtimeManager := goja_runtime.NewManager(util.NewLogger()) // Get the script filepath := "./goja_animepahe/animepahe.ts" fileB, err := os.ReadFile(filepath) if err != nil { t.Fatal(err) } ext := &extension.Extension{ ID: "animepahe", Name: "Animepahe", Version: "0.1.0", ManifestURI: "", Language: extension.LanguageTypescript, Type: extension.TypeOnlinestreamProvider, Description: "", Author: "", Payload: string(fileB), } // Create the provider provider, _, err := extension_repo.NewGojaOnlinestreamProvider(ext, ext.Language, util.NewLogger(), runtimeManager) require.NoError(t, err) // Test the search function searchResult, err := provider.Search(hibikeonlinestream.SearchOptions{Query: "dandadan"}) require.NoError(t, err) spew.Dump(searchResult) // Should have a result with rating of 1 var dandadanRes *hibikeonlinestream.SearchResult dandadanRes = searchResult[0] require.NotNil(t, dandadanRes) // Test find episodes episodes, err := provider.FindEpisodes(dandadanRes.ID) require.NoError(t, err) util.Spew(episodes) } func TestGojaOnlinestreamExtension2(t *testing.T) { runtimeManager := goja_runtime.NewManager(util.NewLogger()) // Get the script filepath := "./goja_animepahe/animepahe.ts" fileB, err := os.ReadFile(filepath) if err != nil { t.Fatal(err) } ext := &extension.Extension{ ID: "animepahe", Name: "Animepahe", Version: "0.1.0", ManifestURI: "", Language: extension.LanguageTypescript, Type: extension.TypeOnlinestreamProvider, Description: "", Author: "", Payload: string(fileB), } // Create the provider provider, _, err := extension_repo.NewGojaOnlinestreamProvider(ext, ext.Language, util.NewLogger(), runtimeManager) require.NoError(t, err) // Find first episode server server, err := provider.FindEpisodeServer(&hibikeonlinestream.EpisodeDetails{ Provider: "animepahe", ID: "0ba8e30b98b1be6d19c8ac73ae11372911e62424ef454f05052ef6af8f01f13b$269b021d-a893-4471-04e7-b8933d81bda1", Number: 1, URL: "", Title: "", }, "kwik") require.NoError(t, err) spew.Dump(server) }