37 lines
1.1 KiB
Python
37 lines
1.1 KiB
Python
|
from edmond.plugin import Plugin
|
||
|
|
||
|
|
||
|
class CaptureListPlugin(Plugin):
|
||
|
|
||
|
REQUIRED_CONFIGS = ["commands", "reply", "empty_reply"]
|
||
|
|
||
|
def __init__(self, bot):
|
||
|
super().__init__(bot)
|
||
|
|
||
|
def on_welcome(self, _):
|
||
|
if not self.bot.get_plugin("capture"):
|
||
|
self.bot.log_w("Capture plugin is not available.")
|
||
|
self.is_ready = False
|
||
|
|
||
|
def on_pubmsg(self, event):
|
||
|
if not self.should_handle_command(event.arguments[0]):
|
||
|
return False
|
||
|
|
||
|
collec_target = self.command.content or event.source.nick
|
||
|
collections = self.get_storage_value(
|
||
|
"collections",
|
||
|
default={},
|
||
|
ns="capture"
|
||
|
)
|
||
|
collection = collections.get(collec_target, [])
|
||
|
if collection:
|
||
|
reply = self.config["reply"].format(
|
||
|
target=collec_target,
|
||
|
num=len(collection),
|
||
|
things="".join(collection)
|
||
|
)
|
||
|
else:
|
||
|
reply = self.config["empty_reply"].format(target=collec_target)
|
||
|
self.bot.say(event.target, reply)
|
||
|
return True
|