v1.1.2: set-filter alleen wissen met expliciet 'clear'
- lege !rss set-filter wist NOOIT het filter, toont usage + huidig filter - verwijderen vereist expliciet: !rss set-filter clear|none|off|remove - voorkomt onbedoeld filterverlies
This commit is contained in:
parent
8c5e5a083e
commit
dbb4e027af
2 changed files with 27 additions and 11 deletions
|
|
@ -407,10 +407,10 @@ class RSSBot(Plugin):
|
|||
await evt.reply(f"Subscribed to {feed_info}")
|
||||
|
||||
@rss.subcommand(
|
||||
"set-filter", aliases=("f",), help="Set the global match filter (whitelist regex) for all feeds."
|
||||
"set-filter", aliases=("f",), help="Set the global match filter: !rss set-filter <regex> | !rss set-filter clear"
|
||||
)
|
||||
@command.argument("match_filter", "match filter", pass_raw=True)
|
||||
async def set_filter(self, evt: MessageEvent, match_filter: str) -> None:
|
||||
@command.argument("match_filter", "match filter", pass_raw=True, required=False)
|
||||
async def set_filter(self, evt: MessageEvent, match_filter: str = "") -> None:
|
||||
if evt.sender in self.config["admins"]:
|
||||
pass
|
||||
elif not self.config["allow_filter"]:
|
||||
|
|
@ -418,19 +418,35 @@ class RSSBot(Plugin):
|
|||
return
|
||||
elif not await self.can_manage(evt):
|
||||
return
|
||||
if not match_filter:
|
||||
# Lege aanroep: nooit het filter wissen. Toon usage + huidige filter.
|
||||
f = self.config["match_filter"]
|
||||
if f:
|
||||
await evt.reply(
|
||||
f"Usage: `!rss set-filter <regex>` or `!rss set-filter clear`\n\n"
|
||||
f"**Current filter:**\n```\n{f}\n```"
|
||||
)
|
||||
else:
|
||||
await evt.reply(
|
||||
"Usage: `!rss set-filter <regex>` or `!rss set-filter clear`\n\n"
|
||||
"No filter is currently set (all posts are sent)"
|
||||
)
|
||||
return
|
||||
if match_filter.strip().lower() in ("clear", "none", "off", "remove"):
|
||||
self.config["match_filter"] = ""
|
||||
self.config.save()
|
||||
await evt.reply("Global filter removed (all posts will be sent)")
|
||||
return
|
||||
try:
|
||||
re.compile(match_filter)
|
||||
except re.error:
|
||||
await evt.reply(f"Filter is not a valid regular expression")
|
||||
await evt.reply("Filter is not a valid regular expression")
|
||||
return
|
||||
self.config["match_filter"] = match_filter
|
||||
self.config.save()
|
||||
if match_filter:
|
||||
await evt.reply(
|
||||
f"Global filter updated: only posts matching `{match_filter}` will be sent"
|
||||
)
|
||||
else:
|
||||
await evt.reply("Global filter removed (all posts will be sent)")
|
||||
await evt.reply(
|
||||
f"Global filter updated: only posts matching `{match_filter}` will be sent"
|
||||
)
|
||||
|
||||
@rss.subcommand(
|
||||
"filter", aliases=("show-filter", "get-filter"), help="Show the current global match filter."
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
id: nl.eddydevink.rss
|
||||
version: 1.1.1
|
||||
version: 1.1.2
|
||||
modules:
|
||||
- buzzrss
|
||||
main_class: RSSBot
|
||||
|
|
|
|||
Loading…
Reference in a new issue