aboutsummaryrefslogtreecommitdiff
path: root/modules/title.py
diff options
context:
space:
mode:
authorGravatar jesopo2019-05-18 18:35:47 +0100
committerGravatar jesopo2019-05-18 18:35:47 +0100
commit4e0e63e7f8b518190c94b6374e01291e9eda9f69 (patch)
treec936e38c5d823508c9eb23ac8df1a0d23f063a3f /modules/title.py
parentgive EventCallbacks their event name (diff)
signature
Hand over regex-based-command responsibilities to `commands` module
Diffstat (limited to 'modules/title.py')
-rw-r--r--modules/title.py53
1 files changed, 23 insertions, 30 deletions
diff --git a/modules/title.py b/modules/title.py
index ba2d946c..79a9e8ab 100644
--- a/modules/title.py
+++ b/modules/title.py
@@ -44,40 +44,33 @@ class Module(ModuleManager.BaseModule):
else:
return None
- @utils.hook("received.message.channel",
+ @utils.hook("command.regex",
priority=EventManager.PRIORITY_MONITOR)
def channel_message(self, event):
- match = re.search(utils.http.REGEX_URL, event["message"])
- if match and event["channel"].get_setting("auto-title", False):
- is_ignored_f = short_url = self.exports.get_one("is-ignored",
- lambda _1, _2: False)
- if is_ignored_f(event["server"], event["user"], "title"):
- return
-
- url = match.group(0)
- title = self._get_title(event["channel"], match.group(0))
-
- if title:
- message = title
- if event["channel"].get_setting("auto-title-first", False):
- setting = "url-last-%s" % self._url_hash(url)
- first_details = event["channel"].get_setting(setting, None)
-
- if first_details:
- first_nickname, first_timestamp, _ = first_details
- timestamp_parsed = utils.iso8601_parse(first_timestamp)
- timestamp_human = utils.datetime_human(timestamp_parsed)
- message = "%s (first posted by %s at %s)" % (title,
- first_nickname, timestamp_human)
- else:
- event["channel"].set_setting(setting,
- [event["user"].nickname, utils.iso8601_format_now(),
- url])
+ """
+ :command: title
+ :pattern-url: 1
+ """
+ url = event["match"].group(0)
+ title = self._get_title(event["target"], event["match"].group(0))
+ if title:
+ message = title
+ if event["target"].get_setting("auto-title-first", False):
+ setting = "url-last-%s" % self._url_hash(url)
+ first_details = event["target"].get_setting(setting, None)
- self.events.on("send.stdout").call(target=event["channel"],
- message=message, module_name="Title",
- server=event["server"])
+ if first_details:
+ first_nickname, first_timestamp, _ = first_details
+ timestamp_parsed = utils.iso8601_parse(first_timestamp)
+ timestamp_human = utils.datetime_human(timestamp_parsed)
+ message = "%s (first posted by %s at %s)" % (title,
+ first_nickname, timestamp_human)
+ else:
+ event["target"].set_setting(setting,
+ [event["user"].nickname, utils.iso8601_format_now(),
+ url])
+ event["stdout"].write(message)
@utils.hook("received.command.t", alias_of="title")
@utils.hook("received.command.title", usage="[URL]")