aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar jesopo2020-03-08 14:14:34 +0000
committerGravatar jesopo2020-03-08 14:14:34 +0000
commit1d384dfd8b0e46e9a4ee82628d1a6499f158febe (patch)
tree1de892c1ef58b1941f80195a1bcf9623b9a3f23b /src
parentexports.get_one() -> exports.get() (diff)
signature
move _get_hostmask logic out in to banmask.py core module, for reuse
Diffstat (limited to 'src')
-rw-r--r--src/core_modules/banmask.py23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/core_modules/banmask.py b/src/core_modules/banmask.py
new file mode 100644
index 00000000..bebe0d11
--- /dev/null
+++ b/src/core_modules/banmask.py
@@ -0,0 +1,23 @@
+from src import ModuleManager, utils
+
+SETTING = utils.Setting("ban-format",
+ "Set ban format "
+ "(${n} = nick, ${u} = username, ${h} = hostname, ${a} = account",
+ example="*!${u}@${h}")
+
+@utils.export("channelset", SETTING)
+@utils.export("serverset", SETTING)
+class Module(ModuleManager.BaseModule):
+ def _format_hostmask(self, user, s):
+ vars = {}
+ vars["n"] = vars["nickname"] = user.nickname
+ vars["u"] = vars["username"] = user.username
+ vars["h"] = vars["hostname"] = user.hostname
+ vars["a"] = vars["account"] = user.account or ""
+ return utils.parse.format_token_replace(s, vars)
+ @utils.export("ban-mask")
+ def banmask(self, server, channel, user):
+ format = channel.get_setting("ban-format",
+ server.get_setting("ban-format", "*!${u}@${h}"))
+ return self._format_hostmask(user, format)
+