Files
seanime-docker/seanime-2.9.10/internal/manga/providers/_template.go
2025-09-20 14:08:38 +01:00

83 lines
1.8 KiB
Go

package manga_providers
import (
"github.com/rs/zerolog"
"net/http"
"seanime/internal/util"
"time"
)
type (
Template struct {
Url string
Client *http.Client
UserAgent string
logger *zerolog.Logger
}
)
func NewTemplate(logger *zerolog.Logger) *Template {
c := &http.Client{
Timeout: 60 * time.Second,
}
c.Transport = util.AddCloudFlareByPass(c.Transport)
return &Template{
Url: "https://XXXXXX.com",
Client: c,
UserAgent: "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3",
logger: logger,
}
}
func (mp *Template) Search(opts SearchOptions) ([]*SearchResult, error) {
results := make([]*SearchResult, 0)
mp.logger.Debug().Str("query", opts.Query).Msg("XXXXXX: Searching manga")
// code
if len(results) == 0 {
mp.logger.Error().Str("query", opts.Query).Msg("XXXXXX: No results found")
return nil, ErrNoResults
}
mp.logger.Info().Int("count", len(results)).Msg("XXXXXX: Found results")
return results, nil
}
func (mp *Template) FindChapters(id string) ([]*ChapterDetails, error) {
ret := make([]*ChapterDetails, 0)
mp.logger.Debug().Str("mangaId", id).Msg("XXXXXX: Finding chapters")
// code
if len(ret) == 0 {
mp.logger.Error().Str("mangaId", id).Msg("XXXXXX: No chapters found")
return nil, ErrNoChapters
}
mp.logger.Info().Int("count", len(ret)).Msg("XXXXXX: Found chapters")
return ret, nil
}
func (mp *Template) FindChapterPages(id string) ([]*ChapterPage, error) {
ret := make([]*ChapterPage, 0)
mp.logger.Debug().Str("chapterId", id).Msg("XXXXXX: Finding chapter pages")
// code
if len(ret) == 0 {
mp.logger.Error().Str("chapterId", id).Msg("XXXXXX: No pages found")
return nil, ErrNoPages
}
mp.logger.Info().Int("count", len(ret)).Msg("XXXXXX: Found pages")
return ret, nil
}