mirror of
https://github.com/idanoo/autobrr
synced 2025-07-23 16:59:12 +00:00
fix(indexers): OPS log score parsing (#1592)
* fix(parsing): OPS Missing % The message from OPS Announce does not contain a % sign and that seemed to break it. This is probably not the best fix but it is something. * fix(parsing): Join Tags and Remove Unnecessary Char Replacement Forgot to join tags before parsing, and removed an unnecessary char replacement that was not needed. * fix(parsing): Added Regex for 0-100 I forgot to check for all score values, also added the regex import * feat: add test cases for OPS log score parsing --------- Co-authored-by: ze0s <ze0s@riseup.net>
This commit is contained in:
parent
3cb18b013f
commit
8f995006b1
2 changed files with 56 additions and 1 deletions
|
@ -7,6 +7,7 @@ import (
|
||||||
"context"
|
"context"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"regexp"
|
||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
@ -207,6 +208,20 @@ func (p IRCParserOrpheus) Parse(rls *Release, vars map[string]string) error {
|
||||||
year := vars["year"]
|
year := vars["year"]
|
||||||
releaseTagsString := vars["releaseTags"]
|
releaseTagsString := vars["releaseTags"]
|
||||||
|
|
||||||
|
splittedTags := strings.Split(releaseTagsString, "/")
|
||||||
|
|
||||||
|
// Check and replace the last tag if it's a number between 0 and 100
|
||||||
|
if len(splittedTags) > 0 {
|
||||||
|
lastTag := splittedTags[len(splittedTags)-1]
|
||||||
|
match, _ := regexp.MatchString(`^\d{1,2}$|^100$`, lastTag)
|
||||||
|
if match {
|
||||||
|
splittedTags[len(splittedTags)-1] = lastTag + "%"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Join tags back into a string
|
||||||
|
releaseTagsString = strings.Join(splittedTags, " ")
|
||||||
|
|
||||||
//cleanTags := strings.ReplaceAll(releaseTagsString, "/", " ")
|
//cleanTags := strings.ReplaceAll(releaseTagsString, "/", " ")
|
||||||
cleanTags := CleanReleaseTags(releaseTagsString)
|
cleanTags := CleanReleaseTags(releaseTagsString)
|
||||||
|
|
||||||
|
|
|
@ -79,7 +79,7 @@ func TestIndexersParseAndFilter(t *testing.T) {
|
||||||
{
|
{
|
||||||
name: "announce_2",
|
name: "announce_2",
|
||||||
args: args{
|
args: args{
|
||||||
announceLines: []string{"TORRENT: Dirty Dike – Bogies & Alcohol – [2024] [EP] CD/FLAC/Lossless – hip.hop,uk.hip.hop,united.kingdom – https://orpheus.network/torrents.php?id=0000000 – https://orpheus.network/torrents.php?id=0000000&torrentid=0000000&action=download"},
|
announceLines: []string{"TORRENT: Dirty Dike – Bogies & Alcohol – [2024] [EP] CD/FLAC/Lossless/Cue/Log/100 – hip.hop,uk.hip.hop,united.kingdom – https://orpheus.network/torrents.php?id=0000000 – https://orpheus.network/torrents.php?id=0000000&torrentid=0000000&action=download"},
|
||||||
filters: []filterTest{
|
filters: []filterTest{
|
||||||
{
|
{
|
||||||
filter: &domain.Filter{
|
filter: &domain.Filter{
|
||||||
|
@ -94,6 +94,22 @@ func TestIndexersParseAndFilter(t *testing.T) {
|
||||||
},
|
},
|
||||||
match: true,
|
match: true,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
filter: &domain.Filter{
|
||||||
|
Name: "filter_1",
|
||||||
|
MatchCategories: "EP,Album",
|
||||||
|
Years: "2024",
|
||||||
|
Quality: []string{"Lossless"},
|
||||||
|
Sources: []string{"CD"},
|
||||||
|
Formats: []string{"FLAC"},
|
||||||
|
Log: true,
|
||||||
|
LogScore: 100,
|
||||||
|
PerfectFlac: true,
|
||||||
|
Artists: "Dirty Dike",
|
||||||
|
Albums: "Bogies & Alcohol",
|
||||||
|
},
|
||||||
|
match: true,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
filter: &domain.Filter{
|
filter: &domain.Filter{
|
||||||
Name: "filter_2",
|
Name: "filter_2",
|
||||||
|
@ -111,6 +127,30 @@ func TestIndexersParseAndFilter(t *testing.T) {
|
||||||
},
|
},
|
||||||
match: false,
|
match: false,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: "announce_3",
|
||||||
|
args: args{
|
||||||
|
announceLines: []string{"TORRENT: Dirty Dike – Bogies & Alcohol – [2024] [EP] CD/FLAC/Lossless/Cue/Log/80 – hip.hop,uk.hip.hop,united.kingdom – https://orpheus.network/torrents.php?id=0000000 – https://orpheus.network/torrents.php?id=0000000&torrentid=0000000&action=download"},
|
||||||
|
filters: []filterTest{
|
||||||
|
{
|
||||||
|
filter: &domain.Filter{
|
||||||
|
Name: "filter_1",
|
||||||
|
MatchCategories: "EP,Album",
|
||||||
|
Years: "2024",
|
||||||
|
Quality: []string{"24bit Lossless"},
|
||||||
|
Sources: []string{"CD"},
|
||||||
|
Formats: []string{"FLAC"},
|
||||||
|
Log: true,
|
||||||
|
LogScore: 100,
|
||||||
|
Albums: "Best album",
|
||||||
|
},
|
||||||
|
match: false,
|
||||||
|
rejections: []string{"albums not matching. got: Bogies & Alcohol want: Best album", "quality not matching. got: [Cue FLAC Lossless Log80 Log] want: [24bit Lossless]", "log score. got 80 want: 100"},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
match: false,
|
||||||
|
},
|
||||||
},
|
},
|
||||||
match: true,
|
match: true,
|
||||||
},
|
},
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue