mirror of
https://github.com/idanoo/autobrr
synced 2025-07-23 08:49:13 +00:00
feat(indexers): btn improve parsing (#371)
* feat(indexers): btn improve parsing
This commit is contained in:
parent
31441ff4c3
commit
4f3091a4a7
4 changed files with 34 additions and 11 deletions
|
@ -238,7 +238,9 @@ func (r *Release) ParseReleaseTagsString(tags string) {
|
|||
if len(t.Other) > 0 {
|
||||
r.Other = append(r.Other, t.Other...)
|
||||
}
|
||||
|
||||
if r.Origin == "" && t.Origin != "" {
|
||||
r.Origin = t.Origin
|
||||
}
|
||||
if r.Container == "" && t.Container != "" {
|
||||
r.Container = t.Container
|
||||
}
|
||||
|
@ -464,6 +466,10 @@ func (r *Release) MapVars(def *IndexerDefinition, varMap map[string]string) erro
|
|||
r.Tags = tagArr
|
||||
}
|
||||
|
||||
if title, err := getStringMapValue(varMap, "title"); err == nil {
|
||||
r.Title = title
|
||||
}
|
||||
|
||||
// handle releaseTags. Most of them are redundant but some are useful
|
||||
if releaseTags, err := getStringMapValue(varMap, "releaseTags"); err == nil {
|
||||
r.ReleaseTags = releaseTags
|
||||
|
|
|
@ -128,6 +128,14 @@ func init() {
|
|||
}
|
||||
types["other"] = other
|
||||
|
||||
origin := []*TagInfo{
|
||||
{tag: "P2P", title: "P2P", regexp: "", re: nil},
|
||||
{tag: "Scene", title: "Scene", regexp: "", re: nil},
|
||||
{tag: "O-Scene", title: "O-Scene", regexp: "", re: nil},
|
||||
{tag: "Internal", title: "Internal", regexp: "", re: nil},
|
||||
}
|
||||
types["origin"] = origin
|
||||
|
||||
source := []*TagInfo{
|
||||
{tag: "Cassette", title: "Cassette", regexp: "", re: nil},
|
||||
{tag: "CD", title: "Compact Disc", regexp: "cd[\\-\\._ ]?(?:album)?", re: nil},
|
||||
|
@ -268,14 +276,15 @@ func Find(infos ...*TagInfo) FindFunc {
|
|||
|
||||
type ReleaseTags struct {
|
||||
Audio []string
|
||||
Channels string
|
||||
Source string
|
||||
Resolution string
|
||||
Container string
|
||||
Codec string
|
||||
HDR []string
|
||||
Other []string
|
||||
Bonus []string
|
||||
Channels string
|
||||
Codec string
|
||||
Container string
|
||||
HDR []string
|
||||
Origin string
|
||||
Other []string
|
||||
Resolution string
|
||||
Source string
|
||||
}
|
||||
|
||||
func ParseReleaseTags(tags []string) ReleaseTags {
|
||||
|
@ -309,6 +318,9 @@ func ParseReleaseTags(tags []string) ReleaseTags {
|
|||
case "hdr":
|
||||
releaseTags.HDR = append(releaseTags.HDR, info.Tag())
|
||||
continue
|
||||
case "origin":
|
||||
releaseTags.Origin = info.Tag()
|
||||
break
|
||||
case "other":
|
||||
releaseTags.Other = append(releaseTags.Other, info.Tag())
|
||||
continue
|
||||
|
@ -360,6 +372,9 @@ func ParseReleaseTagString(tags string) ReleaseTags {
|
|||
case "hdr":
|
||||
releaseTags.HDR = append(releaseTags.HDR, info.Tag())
|
||||
continue
|
||||
case "origin":
|
||||
releaseTags.Origin = info.Tag()
|
||||
break
|
||||
case "other":
|
||||
releaseTags.Other = append(releaseTags.Other, info.Tag())
|
||||
continue
|
||||
|
|
|
@ -49,6 +49,9 @@ func TestParseReleaseTagString(t *testing.T) {
|
|||
{name: "movies_8", args: args{tags: "H.264, DVD, Freeleech!"}, want: ReleaseTags{Codec: "H.264", Source: "DVD", Bonus: []string{"Freeleech"}}},
|
||||
{name: "anime_1", args: args{tags: "Web / MKV / h264 / 1080p / AAC 2.0 / Softsubs (SubsPlease) / Episode 22 / Freeleech"}, want: ReleaseTags{Audio: []string{"AAC"}, Channels: "2.0", Source: "WEB", Resolution: "1080p", Container: "mkv", Codec: "H.264", Bonus: []string{"Freeleech"}}},
|
||||
{name: "anime_2", args: args{tags: "Web | ISO | h264 | 1080p | AAC 2.0 | Softsubs (SubsPlease) | Episode 22 | Freeleech"}, want: ReleaseTags{Audio: []string{"AAC"}, Channels: "2.0", Source: "WEB", Resolution: "1080p", Container: "iso", Codec: "H.264", Bonus: []string{"Freeleech"}}},
|
||||
{name: "tv_1", args: args{tags: "MKV | H.264 | WEB-DL | 1080p | Internal | FastTorrent"}, want: ReleaseTags{Source: "WEB-DL", Codec: "H.264", Resolution: "1080p", Container: "mkv", Origin: "Internal"}},
|
||||
{name: "tv_2", args: args{tags: "MKV | H.264 | WEB-DL | 1080p | Scene | FastTorrent"}, want: ReleaseTags{Source: "WEB-DL", Codec: "H.264", Resolution: "1080p", Container: "mkv", Origin: "Scene"}},
|
||||
{name: "tv_3", args: args{tags: "MKV | H.264 | WEB-DL | 1080p | P2P | FastTorrent"}, want: ReleaseTags{Source: "WEB-DL", Codec: "H.264", Resolution: "1080p", Container: "mkv", Origin: "P2P"}},
|
||||
}
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue