mirror of
https://github.com/idanoo/autobrr
synced 2025-07-23 00:39:13 +00:00
feat(indexers): irc parse support ignoring lines (#641)
feat(indexers): irc support ignore line
This commit is contained in:
parent
e014528c97
commit
626fa6f156
3 changed files with 16 additions and 4 deletions
|
@ -79,7 +79,7 @@ func (a *announceProcessor) processQueue(queue chan string) {
|
|||
|
||||
// check should ignore
|
||||
|
||||
match, err := a.parseLine(parseLine.Pattern, parseLine.Vars, tmpVars, line)
|
||||
match, err := a.parseLine(parseLine.Pattern, parseLine.Vars, tmpVars, line, parseLine.Ignore)
|
||||
if err != nil {
|
||||
a.log.Error().Err(err).Msgf("error parsing extract for line: %v", line)
|
||||
|
||||
|
@ -135,12 +135,12 @@ func (a *announceProcessor) AddLineToQueue(channel string, line string) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
func (a *announceProcessor) parseLine(pattern string, vars []string, tmpVars map[string]string, line string) (bool, error) {
|
||||
func (a *announceProcessor) parseLine(pattern string, vars []string, tmpVars map[string]string, line string, ignore bool) (bool, error) {
|
||||
if len(vars) > 0 {
|
||||
return a.parseExtract(pattern, vars, tmpVars, line)
|
||||
}
|
||||
|
||||
return a.parseMatchRegexp(pattern, tmpVars, line)
|
||||
return a.parseMatchRegexp(pattern, tmpVars, line, ignore)
|
||||
}
|
||||
|
||||
func (a *announceProcessor) parseExtract(pattern string, vars []string, tmpVars map[string]string, line string) (bool, error) {
|
||||
|
@ -168,12 +168,17 @@ func (a *announceProcessor) parseExtract(pattern string, vars []string, tmpVars
|
|||
return true, nil
|
||||
}
|
||||
|
||||
func (a *announceProcessor) parseMatchRegexp(pattern string, tmpVars map[string]string, line string) (bool, error) {
|
||||
func (a *announceProcessor) parseMatchRegexp(pattern string, tmpVars map[string]string, line string, ignore bool) (bool, error) {
|
||||
var re = regexp.MustCompile(`(?mi)` + pattern)
|
||||
|
||||
groupNames := re.SubexpNames()
|
||||
for _, match := range re.FindAllStringSubmatch(line, -1) {
|
||||
for groupIdx, group := range match {
|
||||
// if line should be ignored then lets return
|
||||
if ignore {
|
||||
return true, nil
|
||||
}
|
||||
|
||||
name := groupNames[groupIdx]
|
||||
if name == "" {
|
||||
name = "raw"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue