node build fixed
This commit is contained in:
130
seanime-2.9.10/internal/extension_repo/goja_manga_provider.go
Normal file
130
seanime-2.9.10/internal/extension_repo/goja_manga_provider.go
Normal file
@@ -0,0 +1,130 @@
|
||||
package extension_repo
|
||||
|
||||
import (
|
||||
"context"
|
||||
"seanime/internal/extension"
|
||||
hibikemanga "seanime/internal/extension/hibike/manga"
|
||||
"seanime/internal/goja/goja_runtime"
|
||||
"seanime/internal/util"
|
||||
"seanime/internal/util/comparison"
|
||||
|
||||
"github.com/rs/zerolog"
|
||||
)
|
||||
|
||||
type GojaMangaProvider struct {
|
||||
*gojaProviderBase
|
||||
}
|
||||
|
||||
func NewGojaMangaProvider(ext *extension.Extension, language extension.Language, logger *zerolog.Logger, runtimeManager *goja_runtime.Manager) (hibikemanga.Provider, *GojaMangaProvider, error) {
|
||||
base, err := initializeProviderBase(ext, language, logger, runtimeManager)
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
|
||||
provider := &GojaMangaProvider{
|
||||
gojaProviderBase: base,
|
||||
}
|
||||
return provider, provider, nil
|
||||
}
|
||||
|
||||
func (g *GojaMangaProvider) GetSettings() (ret hibikemanga.Settings) {
|
||||
defer util.HandlePanicInModuleThen(g.ext.ID+".GetSettings", func() {
|
||||
ret = hibikemanga.Settings{}
|
||||
})
|
||||
|
||||
method, err := g.callClassMethod(context.Background(), "getSettings")
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
err = g.unmarshalValue(method, &ret)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
func (g *GojaMangaProvider) Search(opts hibikemanga.SearchOptions) (ret []*hibikemanga.SearchResult, err error) {
|
||||
defer util.HandlePanicInModuleWithError(g.ext.ID+".Search", &err)
|
||||
|
||||
method, err := g.callClassMethod(context.Background(), "search", structToMap(opts))
|
||||
|
||||
promiseRes, err := g.waitForPromise(method)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
err = g.unmarshalValue(promiseRes, &ret)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// Set the provider & search rating
|
||||
for i := range ret {
|
||||
ret[i].Provider = g.ext.ID
|
||||
|
||||
synonyms := ret[i].Synonyms
|
||||
if synonyms == nil {
|
||||
continue
|
||||
}
|
||||
|
||||
compTitles := []*string{&ret[i].Title}
|
||||
for _, syn := range synonyms {
|
||||
compTitles = append(compTitles, &syn)
|
||||
}
|
||||
|
||||
compRes, ok := comparison.FindBestMatchWithSorensenDice(&opts.Query, compTitles)
|
||||
if ok {
|
||||
ret[i].SearchRating = compRes.Rating
|
||||
}
|
||||
}
|
||||
|
||||
return ret, nil
|
||||
}
|
||||
|
||||
func (g *GojaMangaProvider) FindChapters(id string) (ret []*hibikemanga.ChapterDetails, err error) {
|
||||
defer util.HandlePanicInModuleWithError(g.ext.ID+".FindChapters", &err)
|
||||
|
||||
method, err := g.callClassMethod(context.Background(), "findChapters", id)
|
||||
|
||||
promiseRes, err := g.waitForPromise(method)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
err = g.unmarshalValue(promiseRes, &ret)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// Set the provider
|
||||
for i := range ret {
|
||||
ret[i].Provider = g.ext.ID
|
||||
}
|
||||
|
||||
return ret, nil
|
||||
}
|
||||
|
||||
func (g *GojaMangaProvider) FindChapterPages(id string) (ret []*hibikemanga.ChapterPage, err error) {
|
||||
defer util.HandlePanicInModuleWithError(g.ext.ID+".FindChapterPages", &err)
|
||||
|
||||
method, err := g.callClassMethod(context.Background(), "findChapterPages", id)
|
||||
|
||||
promiseRes, err := g.waitForPromise(method)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
err = g.unmarshalValue(promiseRes, &ret)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// Set the provider
|
||||
for i := range ret {
|
||||
ret[i].Provider = g.ext.ID
|
||||
}
|
||||
|
||||
return ret, nil
|
||||
}
|
||||
Reference in New Issue
Block a user