feat(indexers): add support for optional baseurl override (#551)

* feat(indexers): optional baseurl override

* feat(indexers): update baseUrl parsing

* refactor(indexers): BREAKING move parse to IRC struct

* Move Parse as part of IRC struct from Indexer
* Updated definitions
* Build torrentUrl in stages
* Use new url.JoinPath to build torrentUrl
* Update tests

* refactor(indexers): select option obj

* refactor(indexers): make backwards compatible
This commit is contained in:
ze0s 2022-12-03 15:40:45 +01:00 committed by GitHub
parent 301180e55b
commit 25a165b764
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
66 changed files with 1533 additions and 1211 deletions

View file

@ -219,8 +219,6 @@ func (r *Release) ParseString(title string) {
}
r.ParseReleaseTagsString(r.ReleaseTags)
return
}
var ErrUnrecoverableError = errors.New("unrecoverable error")
@ -264,8 +262,6 @@ func (r *Release) ParseReleaseTagsString(tags string) {
if r.AudioChannels == "" && t.Channels != "" {
r.AudioChannels = t.Channels
}
return
}
func (r *Release) ParseSizeBytesString(size string) {
@ -401,7 +397,7 @@ func (r *Release) RejectionsString() string {
return ""
}
// MapVars better name
// MapVars map vars from regex captures to fields on release
func (r *Release) MapVars(def *IndexerDefinition, varMap map[string]string) error {
if torrentName, err := getStringMapValue(varMap, "torrentName"); err != nil {
@ -444,16 +440,12 @@ func (r *Release) MapVars(def *IndexerDefinition, varMap map[string]string) erro
switch freeleechPercentInt {
case 25:
r.Bonus = append(r.Bonus, "Freeleech25")
break
case 50:
r.Bonus = append(r.Bonus, "Freeleech50")
break
case 75:
r.Bonus = append(r.Bonus, "Freeleech75")
break
case 100:
r.Bonus = append(r.Bonus, "Freeleech100")
break
}
}
@ -464,8 +456,8 @@ func (r *Release) MapVars(def *IndexerDefinition, varMap map[string]string) erro
if torrentSize, err := getStringMapValue(varMap, "torrentSize"); err == nil {
// handling for indexer who doesn't explicitly set which size unit is used like (AR)
if def.Parse != nil && def.Parse.ForceSizeUnit != "" {
torrentSize = fmt.Sprintf("%v %v", torrentSize, def.Parse.ForceSizeUnit)
if def.IRC != nil && def.IRC.Parse != nil && def.IRC.Parse.ForceSizeUnit != "" {
torrentSize = fmt.Sprintf("%v %v", torrentSize, def.IRC.Parse.ForceSizeUnit)
}
size, err := humanize.ParseBytes(torrentSize)