Skip to content

Commit

Permalink
v0.11.1
Browse files Browse the repository at this point in the history
- 使用统一的models包
- 常量移动到constant包
- 修正import顺序
  • Loading branch information
wetor committed Jan 30, 2024
1 parent 856f43f commit e4ba5d7
Show file tree
Hide file tree
Showing 62 changed files with 432 additions and 448 deletions.
24 changes: 9 additions & 15 deletions cmd/animego/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,7 @@ import (
"github.com/wetor/AnimeGo/internal/animego/anisource/bangumi"
"github.com/wetor/AnimeGo/internal/animego/anisource/mikan"
"github.com/wetor/AnimeGo/internal/animego/anisource/themoviedb"
"github.com/wetor/AnimeGo/internal/animego/clientnotifier"
"github.com/wetor/AnimeGo/internal/animego/database"
"github.com/wetor/AnimeGo/internal/animego/downloader"
"github.com/wetor/AnimeGo/internal/animego/feed"
"github.com/wetor/AnimeGo/internal/animego/filter"
"github.com/wetor/AnimeGo/internal/animego/parser"
"github.com/wetor/AnimeGo/internal/animego/renamer"
"github.com/wetor/AnimeGo/internal/constant"
"github.com/wetor/AnimeGo/internal/logger"
"github.com/wetor/AnimeGo/internal/models"
Expand Down Expand Up @@ -210,7 +204,7 @@ func Main() {
}
}
// 初始化rename
renameSrv := wire.GetRenamer(&renamer.Options{
renameSrv := wire.GetRenamer(&models.RenamerOptions{
WG: &wg,
RefreshSecond: config.RefreshSecond,
}, renamePlugin)
Expand All @@ -219,7 +213,7 @@ func Main() {

// ===============================================================================================================
// 初始化database配置
databaseInst, err := wire.GetDatabase(&database.Options{
databaseInst, err := wire.GetDatabase(&models.DatabaseOptions{
SavePath: xpath.P(config.SavePath),
}, bolt)
if err != nil {
Expand All @@ -229,21 +223,21 @@ func Main() {
// ===============================================================================================================
// 初始化downloader

downloadCallback := &clientnotifier.Callback{}
downloaderSrv := wire.GetDownloader(&downloader.Options{
downloadCallback := &models.Callback{}
downloaderSrv := wire.GetDownloader(&models.DownloaderOptions{
RefreshSecond: config.RefreshSecond,
Category: config.Category,
Tag: config.Tag,
AllowDuplicateDownload: config.Download.AllowDuplicateDownload,
WG: &wg,
}, clientSrv, &clientnotifier.Options{
}, clientSrv, &models.NotifierOptions{
DownloadPath: xpath.P(config.DownloadPath),
SavePath: xpath.P(config.SavePath),
Rename: config.Advanced.Download.Rename,
Callback: downloadCallback,
}, databaseInst, renameSrv)

downloadCallback.Renamed = func(data any) error {
downloadCallback.Func = func(data any) error {
return downloaderSrv.Delete(data.(string))
}
// 启动downloader
Expand All @@ -260,9 +254,9 @@ func Main() {
}
// 初始化filter

filterSrv := wire.GetFilter(&filter.Options{
filterSrv := wire.GetFilter(&models.FilterOptions{
DelaySecond: config.Advanced.Feed.DelaySecond,
}, downloaderSrv, &parser.Options{
}, downloaderSrv, &models.ParserOptions{
TMDBFailSkip: config.Default.TMDBFailSkip,
TMDBFailUseTitleSeason: config.Default.TMDBFailUseTitleSeason,
TMDBFailUseFirstSeason: config.Default.TMDBFailUseFirstSeason,
Expand All @@ -272,7 +266,7 @@ func Main() {
}
// ===============================================================================================================
// 初始化定时任务
scheduleSrv := schedule.NewSchedule(&schedule.Options{
scheduleSrv := schedule.NewSchedule(&models.ScheduleOptions{
WG: &wg,
})
// 添加定时任务
Expand Down
14 changes: 7 additions & 7 deletions cmd/plugin/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,9 @@ import (
"time"

"github.com/wetor/AnimeGo/cmd/common"
feedPlugin "github.com/wetor/AnimeGo/internal/animego/feed"
filterPlugin "github.com/wetor/AnimeGo/internal/animego/filter"
renamerPlugin "github.com/wetor/AnimeGo/internal/animego/renamer"
"github.com/wetor/AnimeGo/internal/animego/feed"
"github.com/wetor/AnimeGo/internal/animego/filter"
"github.com/wetor/AnimeGo/internal/animego/renamer"
"github.com/wetor/AnimeGo/internal/constant"
"github.com/wetor/AnimeGo/internal/models"
"github.com/wetor/AnimeGo/internal/plugin"
Expand Down Expand Up @@ -78,14 +78,14 @@ func pluginPython(entryFunc string, info *models.Plugin) map[string]any {
}

func pluginFilter(items []*models.FeedItem, info *models.Plugin) []*models.FeedItem {
f := filterPlugin.NewFilterPlugin(info)
f := filter.NewFilterPlugin(info)
res, _ := f.FilterAll(items)
return res
}

func pluginRename(anime *models.AnimeEntity, info *models.Plugin) []*models.RenameResult {
result := make([]*models.RenameResult, len(anime.Ep))
r := renamerPlugin.NewRenamePlugin(info)
r := renamer.NewRenamePlugin(info)
var err error
for i, ep := range anime.Ep {
result[i], err = r.Rename(anime, i, ep.Src)
Expand Down Expand Up @@ -134,7 +134,7 @@ func Main() {
plugin.Init(&plugin.Options{
Path: dir,
Debug: pDebug,
Feed: feedPlugin.NewRss(),
Feed: feed.NewRss(),
})

pluginInfo := &models.Plugin{
Expand Down Expand Up @@ -193,7 +193,7 @@ func Main() {
log.Infof("[%d] filter结果: %v", i, string(jsonData))
}
case constant.PluginTemplateSchedule, constant.PluginTemplateFeed:
s := schedule.NewSchedule(&schedule.Options{
s := schedule.NewSchedule(&models.ScheduleOptions{
WG: &wg,
})
if pPlugin == constant.PluginTemplateSchedule {
Expand Down
8 changes: 4 additions & 4 deletions configs/update.go
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@ import (
"github.com/jinzhu/copier"
"gopkg.in/yaml.v3"

"github.com/wetor/AnimeGo/assets"
"github.com/wetor/AnimeGo/configs/version/v_110"
"github.com/wetor/AnimeGo/configs/version/v_120"
"github.com/wetor/AnimeGo/configs/version/v_130"
Expand All @@ -22,7 +21,8 @@ import (
"github.com/wetor/AnimeGo/configs/version/v_160"
"github.com/wetor/AnimeGo/configs/version/v_161"
"github.com/wetor/AnimeGo/configs/version/v_162"
"github.com/wetor/AnimeGo/internal/animego/database"

"github.com/wetor/AnimeGo/assets"
"github.com/wetor/AnimeGo/internal/constant"
"github.com/wetor/AnimeGo/internal/models"
"github.com/wetor/AnimeGo/pkg/cache"
Expand Down Expand Up @@ -559,14 +559,14 @@ func bolt2dirdb(boltPath, savePath string) {
}
if len(status.Path) > 0 {
animePath := xpath.Root(status.Path[0])
_ = write(path.Join(savePath, animePath, database.AnimeDBName), models.AnimeDBEntity{
_ = write(path.Join(savePath, animePath, constant.DatabaseAnimeDBName), models.AnimeDBEntity{
BaseDBEntity: base,
})
}
for i, f := range status.Path {
file := path.Join(savePath, f)
if utils.IsExist(file) {
filename := fmt.Sprintf(database.EpisodeDBFmt, strings.TrimSuffix(f, path.Ext(f)))
filename := fmt.Sprintf(constant.DatabaseEpisodeDBFmt, strings.TrimSuffix(f, path.Ext(f)))
_ = write(path.Join(savePath, filename), models.EpisodeDBEntity{
BaseDBEntity: base,
StateDB: models.StateDB{
Expand Down
17 changes: 7 additions & 10 deletions internal/animego/anisource/bangumi/bangumi.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,12 @@ package bangumi

import (
"fmt"

"github.com/google/wire"
"github.com/pkg/errors"

"github.com/wetor/AnimeGo/internal/api"
"github.com/wetor/AnimeGo/internal/constant"
"github.com/wetor/AnimeGo/internal/exceptions"
"github.com/wetor/AnimeGo/internal/pkg/request"
"github.com/wetor/AnimeGo/pkg/log"
Expand All @@ -14,19 +17,13 @@ import (
"github.com/wetor/AnimeGo/third_party/bangumi/res"
)

const (
SubjectBucket = "bangumi_sub"
MinSimilar float64 = 0.75
)

var (
Host = func(host string) string {
if len(host) > 0 {
return host
}
return "https://api.bgm.tv"
return constant.BangumiDefaultHost
}
Bucket = "bangumi"
infoApi = func(host string, id int) string {
return fmt.Sprintf("%s/v0/subjects/%d", Host(host), id)
}
Expand Down Expand Up @@ -58,7 +55,7 @@ func (a *Bangumi) Name() string {

func (a *Bangumi) RegisterCache() {
a.cacheInit = true
a.cacheParseAnimeInfo = mem.Memorized(Bucket, a.Cache, func(params *mem.Params, results *mem.Results) error {
a.cacheParseAnimeInfo = mem.Memorized(constant.BangumiBucket, a.Cache, func(params *mem.Params, results *mem.Results) error {
entity, err := a.parseAnimeInfo(params.Get("bangumiID").(int))
if err != nil {
return err
Expand Down Expand Up @@ -159,7 +156,7 @@ func (a *Bangumi) searchAnimeInfo(name string) (entity *Entity, err error) {
temp = result
}
}
if maxSimilar >= MinSimilar {
if maxSimilar >= constant.BangumiMinSimilar {
return temp, nil
}
err = errors.WithStack(&exceptions.ErrAniDataSearch{AniData: a})
Expand Down Expand Up @@ -218,7 +215,7 @@ func (a *Bangumi) loadAnimeInfo(bangumiID int) (entity *Entity, err error) {
entity = &Entity{}
a.BangumiCacheLock.Lock()
defer a.BangumiCacheLock.Unlock()
err = a.BangumiCache.Get(SubjectBucket, bangumiID, entity)
err = a.BangumiCache.Get(constant.BangumiSubjectBucket, bangumiID, entity)
if err != nil {
// log.DebugErr(err)
return nil, err
Expand Down
3 changes: 1 addition & 2 deletions internal/animego/anisource/bangumi/bangumi_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ import (
"github.com/wetor/AnimeGo/internal/animego/anisource/bangumi"
"github.com/wetor/AnimeGo/internal/exceptions"
"github.com/wetor/AnimeGo/internal/pkg/request"
"github.com/wetor/AnimeGo/internal/wire"
"github.com/wetor/AnimeGo/pkg/cache"
"github.com/wetor/AnimeGo/pkg/log"
"github.com/wetor/AnimeGo/pkg/utils"
Expand Down Expand Up @@ -44,7 +43,7 @@ func TestMain(m *testing.M) {

bangumiCache := cache.NewBolt(true)
bangumiCache.Open(test.GetDataPath("", "bolt_sub.bolt"))
bangumiInst = wire.GetBangumiData(&bangumi.Options{
bangumiInst = bangumi.NewBangumi(&bangumi.Options{
Cache: db,
BangumiCache: bangumiCache,
BangumiCacheLock: &mutex,
Expand Down
3 changes: 2 additions & 1 deletion internal/animego/anisource/bangumi/models.go
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
package bangumi

import (
"sync"

"github.com/wetor/AnimeGo/internal/api"
mem "github.com/wetor/AnimeGo/pkg/memorizer"
"sync"
)

type Options struct {
Expand Down
26 changes: 9 additions & 17 deletions internal/animego/anisource/mikan/mikan.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,28 +14,20 @@ import (
"golang.org/x/net/html"

"github.com/wetor/AnimeGo/internal/api"
"github.com/wetor/AnimeGo/internal/constant"
"github.com/wetor/AnimeGo/internal/exceptions"
"github.com/wetor/AnimeGo/internal/pkg/request"
"github.com/wetor/AnimeGo/pkg/log"
mem "github.com/wetor/AnimeGo/pkg/memorizer"
)

const (
IdXPath = "//a[@class='mikan-rss']" // Mikan番剧id获取XPath
GroupXPath = "//p[@class='bangumi-info']/a[@class='magnet-link-wrap']" // Mikan番剧信息获取group字幕组id和name
BangumiUrlXPath = "//p[@class='bangumi-info']/a[contains(@href, 'bgm.tv')]" // Mikan番剧信息中bangumi id获取XPath

AuthCookie = ".AspNetCore.Identity.Application"
)

var (
Host = func(host string) string {
if len(host) > 0 {
return host
}
return "https://mikanani.me"
return constant.MikanDefaultHost
}
Bucket = "mikan"
)

var Set = wire.NewSet(
Expand All @@ -62,7 +54,7 @@ func (a *Mikan) Name() string {

func (a *Mikan) RegisterCache() {
a.cacheInit = true
a.cacheParseMikanInfoVar = mem.Memorized(Bucket, a.Cache, func(params *mem.Params, results *mem.Results) error {
a.cacheParseMikanInfoVar = mem.Memorized(constant.MikanBucket, a.Cache, func(params *mem.Params, results *mem.Results) error {
mikan, err := a.parseMikanInfo(params.Get("mikanUrl").(string))
if err != nil {
return err
Expand All @@ -71,7 +63,7 @@ func (a *Mikan) RegisterCache() {
return nil
})

a.cacheParseMikanBangumiIDVar = mem.Memorized(Bucket, a.Cache, func(params *mem.Params, results *mem.Results) error {
a.cacheParseMikanBangumiIDVar = mem.Memorized(constant.MikanBucket, a.Cache, func(params *mem.Params, results *mem.Results) error {
bangumiID, err := a.parseMikanBangumiID(params.Get("mikanID").(int))
if err != nil {
return err
Expand Down Expand Up @@ -149,8 +141,8 @@ func (a *Mikan) cacheParseMikanBangumiID(mikanID int) (bangumiID int, err error)
func (a *Mikan) loadHtml(url string) (*html.Node, error) {
buf := bytes.NewBuffer(nil)
cookie := a.Cookie
if !strings.Contains(cookie, AuthCookie+"=") {
cookie = AuthCookie + "=" + cookie
if !strings.Contains(cookie, constant.MikanAuthCookie+"=") {
cookie = constant.MikanAuthCookie + "=" + cookie
}
err := request.GetWriter(url, buf, map[string]string{
"Cookie": cookie,
Expand Down Expand Up @@ -178,7 +170,7 @@ func (a *Mikan) parseMikanInfo(mikanUrl string) (mikan *MikanInfo, err error) {
if err != nil {
return nil, err
}
miaknLink := htmlquery.FindOne(doc, IdXPath)
miaknLink := htmlquery.FindOne(doc, constant.MikanIdXPath)
href := htmlquery.SelectAttr(miaknLink, "href")
u, err := url.Parse(href)
if err != nil {
Expand Down Expand Up @@ -206,7 +198,7 @@ func (a *Mikan) parseMikanInfo(mikanUrl string) (mikan *MikanInfo, err error) {
}

// 解析字幕组信息
group := htmlquery.FindOne(doc, GroupXPath)
group := htmlquery.FindOne(doc, constant.MikanGroupXPath)
if group != nil {
href = htmlquery.SelectAttr(group, "href")
_, groupId := path.Split(href)
Expand All @@ -233,7 +225,7 @@ func (a *Mikan) parseMikanBangumiID(mikanID int) (bangumiID int, err error) {
return 0, err
}

bangumiUrl := htmlquery.FindOne(doc, BangumiUrlXPath)
bangumiUrl := htmlquery.FindOne(doc, constant.MikanBangumiUrlXPath)
href := htmlquery.SelectAttr(bangumiUrl, "href")

hrefSplit := strings.Split(href, "/")
Expand Down
3 changes: 1 addition & 2 deletions internal/animego/anisource/mikan/mikan_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ package mikan_test

import (
"fmt"
"github.com/wetor/AnimeGo/internal/wire"
"os"
"testing"

Expand Down Expand Up @@ -34,7 +33,7 @@ func TestMain(m *testing.M) {
db := cache.NewBolt()
db.Open("data/bolt.db")

mikanInst = wire.GetMikanData(&mikan.Options{
mikanInst = mikan.NewMikan(&mikan.Options{
Cache: db,
})
m.Run()
Expand Down
Loading

0 comments on commit e4ba5d7

Please sign in to comment.