Skip to content

Commit

Permalink
feat: add freejavbt
Browse files Browse the repository at this point in the history
  • Loading branch information
xxxsen committed Jul 9, 2024
1 parent 658d744 commit cfb0255
Show file tree
Hide file tree
Showing 3 changed files with 69 additions and 7 deletions.
1 change: 1 addition & 0 deletions config/config.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ func defaultConfig() *Config {
"jav321",
"caribpr",
"fc2",
"freejavbt",
"avsox",
},
Handlers: []string{
Expand Down
15 changes: 8 additions & 7 deletions searcher/plugin/constant.go
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
package plugin

const (
SSJavBus = "javbus"
SSJav321 = "jav321"
SSFc2 = "fc2"
SSCaribpr = "caribpr"
SSJavhoo = "javhoo"
SSAvsox = "avsox"
SSAirav = "airav"
SSJavBus = "javbus"
SSJav321 = "jav321"
SSFc2 = "fc2"
SSCaribpr = "caribpr"
SSJavhoo = "javhoo"
SSAvsox = "avsox"
SSAirav = "airav"
SSFreeJavBt = "freejavbt"
)
60 changes: 60 additions & 0 deletions searcher/plugin/freejavbt.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
package plugin

import (
"net/http"
"yamdc/model"
"yamdc/number"
"yamdc/searcher/decoder"
"yamdc/searcher/utils"
)

type freejavbt struct {
DefaultPlugin
}

func (p *freejavbt) OnMakeHTTPRequest(ctx *PluginContext, number *number.Number) (*http.Request, error) {
uri := "https://freejavbt.com/zh/" + number.Number()
ctx.SetKey("number", number.Number())
return http.NewRequest(http.MethodGet, uri, nil)
}

func (p *freejavbt) parseDuration(v string) int64 {
rs, _ := utils.ToDuration(v)
return rs
}

func (p *freejavbt) parseDate(v string) int64 {
return utils.ToTimestampOrDefault(v, 0)
}

func (p *freejavbt) OnDecodeHTTPData(ctx *PluginContext, data []byte) (*model.AvMeta, bool, error) {
dec := decoder.XPathHtmlDecoder{
NumberExpr: "",
TitleExpr: `//h1[@class="text-white"]/strong/text()`,
PlotExpr: "",
ActorListExpr: `//div[span[contains(text(), "女优")]]/div/a/text()`,
ReleaseDateExpr: `//div[span[contains(text(), "日期")]]/span[2]`,
DurationExpr: `//div[span[contains(text(), "时长")]]/span[2]`,
StudioExpr: `//div[span[contains(text(), "制作")]]/a`,
LabelExpr: "",
DirectorExpr: `//div[span[contains(text(), "导演")]]/a`,
SeriesExpr: "",
GenreListExpr: `//div[span[contains(text(), "类别")]]/div/a/text()`,
CoverExpr: `//img[@class="video-cover rounded lazyload"]/@data-src`,
PosterExpr: "",
SampleImageListExpr: `//div[@class="preview"]/a/img/@data-src`,
}
res, err := dec.DecodeHTML(data,
decoder.WithDurationParser(p.parseDuration),
decoder.WithReleaseDateParser(p.parseDate),
)
if err != nil {
return nil, false, err
}
res.Number = ctx.GetKeyOrDefault("number", "").(string)
return res, true, nil
}

func init() {
Register(SSFreeJavBt, PluginToCreator(&freejavbt{}))
}

0 comments on commit cfb0255

Please sign in to comment.