implement exclude rules
This commit is contained in:
parent
68e7cfff35
commit
a638267210
@ -22,6 +22,10 @@ Filter =
|
|||||||
boards = filter.match(/boards:([^;]+)/)?[1].toLowerCase() or 'global'
|
boards = filter.match(/boards:([^;]+)/)?[1].toLowerCase() or 'global'
|
||||||
boards = if boards is 'global' then null else boards.split(',')
|
boards = if boards is 'global' then null else boards.split(',')
|
||||||
|
|
||||||
|
# boards to exclude from an otherwise global rule
|
||||||
|
if boards is null
|
||||||
|
excludes = filter.match(/exclude:([^;]+)/)?[1].toLowerCase().split(',') or null
|
||||||
|
|
||||||
if key in ['uniqueID', 'MD5']
|
if key in ['uniqueID', 'MD5']
|
||||||
# MD5 filter will use strings instead of regular expressions.
|
# MD5 filter will use strings instead of regular expressions.
|
||||||
regexp = regexp[1]
|
regexp = regexp[1]
|
||||||
@ -64,7 +68,7 @@ Filter =
|
|||||||
top = filter.match(/top:(yes|no)/)?[1] or 'yes'
|
top = filter.match(/top:(yes|no)/)?[1] or 'yes'
|
||||||
top = top is 'yes' # Turn it into a boolean
|
top = top is 'yes' # Turn it into a boolean
|
||||||
|
|
||||||
@filters[key].push @createFilter regexp, boards, op, stub, hl, top
|
@filters[key].push @createFilter regexp, boards, excludes, op, stub, hl, top
|
||||||
|
|
||||||
# Only execute filter types that contain valid filters.
|
# Only execute filter types that contain valid filters.
|
||||||
unless @filters[key].length
|
unless @filters[key].length
|
||||||
@ -75,7 +79,7 @@ Filter =
|
|||||||
name: 'Filter'
|
name: 'Filter'
|
||||||
cb: @node
|
cb: @node
|
||||||
|
|
||||||
createFilter: (regexp, boards, op, stub, hl, top) ->
|
createFilter: (regexp, boards, excludes, op, stub, hl, top) ->
|
||||||
test =
|
test =
|
||||||
if typeof regexp is 'string'
|
if typeof regexp is 'string'
|
||||||
# MD5 checking
|
# MD5 checking
|
||||||
@ -92,6 +96,8 @@ Filter =
|
|||||||
(value, boardID, isReply) ->
|
(value, boardID, isReply) ->
|
||||||
if boards and boardID not in boards
|
if boards and boardID not in boards
|
||||||
return false
|
return false
|
||||||
|
if excludes and boardID in excludes
|
||||||
|
return false
|
||||||
if isReply and op is 'only' or !isReply and op is 'no'
|
if isReply and op is 'only' or !isReply and op is 'no'
|
||||||
return false
|
return false
|
||||||
unless test value
|
unless test value
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user