Split the words in blacklist and whitelist
This commit is contained in:
@ -3,19 +3,26 @@ import re
|
|||||||
from reader import Entry, Feed, Reader, TagNotFoundError
|
from reader import Entry, Feed, Reader, TagNotFoundError
|
||||||
|
|
||||||
|
|
||||||
def is_word_in_text(word: str, text: str) -> bool:
|
def is_word_in_text(words: str, text: str) -> bool:
|
||||||
"""
|
"""
|
||||||
Args:
|
Args:
|
||||||
word: The word to search for.
|
words: The words to search for.
|
||||||
text: The text to search in.
|
text: The text to search in.
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
bool: If the word is in the text.
|
bool: If the word is in the text.
|
||||||
"""
|
"""
|
||||||
|
# Split the word list into a list of words.
|
||||||
|
word_list = words.split(",")
|
||||||
|
|
||||||
|
# Check if each word is in the text.
|
||||||
|
for word in word_list:
|
||||||
pattern = rf"(^|[^\w]){word}([^\w]|$)"
|
pattern = rf"(^|[^\w]){word}([^\w]|$)"
|
||||||
pattern = re.compile(pattern, re.IGNORECASE)
|
pattern = re.compile(pattern, re.IGNORECASE)
|
||||||
matches = re.search(pattern, text)
|
matches = re.search(pattern, text)
|
||||||
return bool(matches)
|
if matches:
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
|
||||||
|
|
||||||
def has_black_tags(custom_reader: Reader, feed: Feed) -> bool:
|
def has_black_tags(custom_reader: Reader, feed: Feed) -> bool:
|
||||||
|
@ -9,19 +9,20 @@
|
|||||||
<div class="col-sm-12">
|
<div class="col-sm-12">
|
||||||
<div class="form-text">Comma separated list of words to blacklist. If a word is found in the
|
<div class="form-text">Comma separated list of words to blacklist. If a word is found in the
|
||||||
corresponding blacklists, the feed will not be sent. Whitelist always takes precedence over
|
corresponding blacklists, the feed will not be sent. Whitelist always takes precedence over
|
||||||
blacklist. Leave empty to disable. Words are case-insensitive.
|
blacklist. Leave empty to disable. Words are case-insensitive. No spaces should be used before
|
||||||
|
or after the comma.
|
||||||
</div>
|
</div>
|
||||||
<label for="blacklist_title" class="col-sm-6 col-form-label">Blacklist - Title</label>
|
<label for="blacklist_title" class="col-sm-6 col-form-label">Blacklist - Title</label>
|
||||||
<input name="blacklist_title" type="text" class="form-control bg-dark border-dark text-muted"
|
<input name="blacklist_title" type="text" class="form-control bg-dark border-dark text-muted"
|
||||||
id="blacklist_title" placeholder="primogem, events, gameplay preview, special program">
|
id="blacklist_title" placeholder="primogem,events,gameplay preview,special program">
|
||||||
|
|
||||||
<label for="blacklist_summary" class="col-sm-6 col-form-label">Blacklist - Summary</label>
|
<label for="blacklist_summary" class="col-sm-6 col-form-label">Blacklist - Summary</label>
|
||||||
<input name="blacklist_summary" type="text" class="form-control bg-dark border-dark text-muted"
|
<input name="blacklist_summary" type="text" class="form-control bg-dark border-dark text-muted"
|
||||||
id="blacklist_summary" placeholder="primogem, events, gameplay preview, special program">
|
id="blacklist_summary" placeholder="primogem,events,gameplay preview,special program">
|
||||||
|
|
||||||
<label for="blacklist_content" class="col-sm-6 col-form-label">Blacklist - Content</label>
|
<label for="blacklist_content" class="col-sm-6 col-form-label">Blacklist - Content</label>
|
||||||
<input name="blacklist_content" type="text" class="form-control bg-dark border-dark text-muted"
|
<input name="blacklist_content" type="text" class="form-control bg-dark border-dark text-muted"
|
||||||
id="blacklist_content" placeholder="primogem, events, gameplay preview, special program">
|
id="blacklist_content" placeholder="primogem,events,gameplay preview,special program">
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -10,19 +10,19 @@
|
|||||||
<div class="form-text">Comma separated list of words to whitelist. Only send message to
|
<div class="form-text">Comma separated list of words to whitelist. Only send message to
|
||||||
Discord if one of these words are present in the corresponding fields.
|
Discord if one of these words are present in the corresponding fields.
|
||||||
Whitelist always takes precedence over blacklist. Leave empty to disable.
|
Whitelist always takes precedence over blacklist. Leave empty to disable.
|
||||||
Words are case-insensitive.
|
Words are case-insensitive. No spaces should be used before or after the comma.
|
||||||
</div>
|
</div>
|
||||||
<label for="whitelist_title" class="col-sm-6 col-form-label">Whitelist - Title</label>
|
<label for="whitelist_title" class="col-sm-6 col-form-label">Whitelist - Title</label>
|
||||||
<input name="whitelist_title" type="text" class="form-control bg-dark border-dark text-muted"
|
<input name="whitelist_title" type="text" class="form-control bg-dark border-dark text-muted"
|
||||||
id="whitelist_title" placeholder="primogem, events, gameplay preview, special program">
|
id="whitelist_title" placeholder="primogem,events,gameplay preview,special program">
|
||||||
|
|
||||||
<label for="whitelist_summary" class="col-sm-6 col-form-label">Whitelist - Summary</label>
|
<label for="whitelist_summary" class="col-sm-6 col-form-label">Whitelist - Summary</label>
|
||||||
<input name="whitelist_summary" type="text" class="form-control bg-dark border-dark text-muted"
|
<input name="whitelist_summary" type="text" class="form-control bg-dark border-dark text-muted"
|
||||||
id="whitelist_summary" placeholder="primogem, events, gameplay preview, special program">
|
id="whitelist_summary" placeholder="primogem,events,gameplay preview,special program">
|
||||||
|
|
||||||
<label for="whitelist_content" class="col-sm-6 col-form-label">Whitelist - Content</label>
|
<label for="whitelist_content" class="col-sm-6 col-form-label">Whitelist - Content</label>
|
||||||
<input name="whitelist_content" type="text" class="form-control bg-dark border-dark text-muted"
|
<input name="whitelist_content" type="text" class="form-control bg-dark border-dark text-muted"
|
||||||
id="whitelist_content" placeholder="primogem, events, gameplay preview, special program">
|
id="whitelist_content" placeholder="primogem,events,gameplay preview,special program">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -3,19 +3,26 @@ import re
|
|||||||
from reader import Entry, Feed, Reader, TagNotFoundError
|
from reader import Entry, Feed, Reader, TagNotFoundError
|
||||||
|
|
||||||
|
|
||||||
def is_word_in_text(word: str, text: str) -> bool:
|
def is_word_in_text(words: str, text: str) -> bool:
|
||||||
"""
|
"""
|
||||||
Args:
|
Args:
|
||||||
word: The word to search for.
|
words: The words to search for.
|
||||||
text: The text to search in.
|
text: The text to search in.
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
bool: If the word is in the text.
|
bool: If the word is in the text.
|
||||||
"""
|
"""
|
||||||
|
# Split the word list into a list of words.
|
||||||
|
word_list = words.split(",")
|
||||||
|
|
||||||
|
# Check if each word is in the text.
|
||||||
|
for word in word_list:
|
||||||
pattern = rf"(^|[^\w]){word}([^\w]|$)"
|
pattern = rf"(^|[^\w]){word}([^\w]|$)"
|
||||||
pattern = re.compile(pattern, re.IGNORECASE)
|
pattern = re.compile(pattern, re.IGNORECASE)
|
||||||
matches = re.search(pattern, text)
|
matches = re.search(pattern, text)
|
||||||
return bool(matches)
|
if matches:
|
||||||
|
return True
|
||||||
|
return False
|
||||||
|
|
||||||
|
|
||||||
def has_white_tags(custom_reader: Reader, feed: Feed) -> bool:
|
def has_white_tags(custom_reader: Reader, feed: Feed) -> bool:
|
||||||
|
Reference in New Issue
Block a user