Skip to content

Commit 1e7ab77

Browse files
committed
Make delete_watch_keywords a list
1 parent b80a997 commit 1e7ab77

File tree

3 files changed

+19
-22
lines changed

3 files changed

+19
-22
lines changed

README.md

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,7 @@ reaction_removed
187187
2. Configure the git account, the local repo and the remote path, which should be used to access your git repository.
188188

189189
Example:
190-
```
190+
```json
191191
{
192192
"git_repopath" : "/home/ota_bot/OTA_Upload",
193193
"git_repouser" : "otabot",
@@ -215,7 +215,7 @@ Note: If you configure the solvetracker this way, you need to make sure you are
215215
5. Add a link to your repo, so people can look it up via `showlinkurl`
216216

217217
Example:
218-
```
218+
```json
219219
{
220220
"git_repo": "reponame/links",
221221
"git_branch": "gh-pages",
@@ -232,7 +232,7 @@ To enable archive reminders set an offset (in hours) in _config/config.json_ for
232232
If active, the bot will create a reminder for every bot admin on `!endctf` to inform him, when the ctf was finished for the specified time and it should be archived.
233233

234234
Example (for being reminded one week after the ctf has finished):
235-
```
235+
```json
236236
{
237237
...
238238
"archive_ctf_reminder_offset" : "168"
@@ -241,11 +241,10 @@ Example (for being reminded one week after the ctf has finished):
241241

242242
## Log command deletion
243243

244-
To enable logging of deleting messages containing specific keywords, set `delete_watch_keywords` in _config/config.json_ to a comma separated list of keywords.
245-
Clear or remove the setting to disable deletion logging.
244+
To enable logging of deleting messages containing specific keywords, set `delete_watch_keywords` in _config/config.json_ to an array of strings to watch for.
246245

247246
Example
248-
```
247+
```json
249248
{
250-
"delete_watch_keywords" : "workon, reload, endctf"
249+
"delete_watch_keywords" : ["workon", "reload", "endctf"]
251250
}

config/config.json.template

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
"wolfram_app_id" : "",
99
"archive_ctf_reminder_offset" : "168",
1010
"archive_everything": true,
11-
"delete_watch_keywords" : "",
11+
"delete_watch_keywords" : [],
1212
"intro_message" : "",
1313
"private_ctfs": false,
1414
"allow_signup": false,

server/botserver.py

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -85,30 +85,28 @@ def parse_slack_message(self, message_list):
8585
if msg.get("type") == "message" and "subtype" not in msg:
8686
if self.bot_at in msg.get("text", ""):
8787
# Return text after the @ mention, whitespace removed
88-
return msg['text'].split(self.bot_at)[1].strip(), msg['channel'], msg['thread_ts'] if 'thread_ts' in msg else msg['ts'], msg['user']
88+
return msg["text"].split(self.bot_at)[1].strip(), msg["channel"], msg["thread_ts"] if "thread_ts" in msg else msg["ts"], msg["user"]
8989
elif msg.get("text", "").startswith("!"):
9090
# Return text after the !
91-
return msg['text'][1:].strip(), msg['channel'], msg['thread_ts'] if 'thread_ts' in msg else msg['ts'], msg['user']
91+
return msg["text"][1:].strip(), msg["channel"], msg["thread_ts"] if "thread_ts" in msg else msg["ts"], msg["user"]
9292
# Check if user tampers with channel purpose
9393
elif msg.get("type") == "message" and msg["subtype"] == "channel_purpose" and msg["user"] != self.bot_id:
94-
source_user = get_display_name(resolve_user_by_user_id(self.slack_wrapper, msg['user']))
95-
warning = "*User '{}' changed the channel purpose ```{}```*".format(source_user, msg['text'])
96-
self.slack_wrapper.post_message(msg['channel'], warning)
94+
source_user = get_display_name(resolve_user_by_user_id(self.slack_wrapper, msg["user"]))
95+
warning = "*User "{}" changed the channel purpose ```{}```*".format(source_user, msg["text"])
96+
self.slack_wrapper.post_message(msg["channel"], warning)
9797
# Check for deletion of messages containing keywords
9898
elif "subtype" in msg and msg["subtype"] == "message_deleted":
99-
log_deletions = self.get_config_option("delete_watch_keywords")
99+
delete_keywords = self.get_config_option("delete_watch_keywords")
100100

101-
if log_deletions:
102-
previous_msg = msg['previous_message']['text']
103-
delete_keywords = log_deletions.split(",")
101+
previous_msg = msg["previous_message"]["text"]
104102

105-
if any(keyword.strip() in previous_msg for keyword in delete_keywords):
106-
user_name = self.slack_wrapper.get_member(msg['previous_message']['user'])
107-
display_name = get_display_name(user_name)
108-
self.slack_wrapper.post_message(msg['channel'], "*{}* deleted : `{}`".format(display_name, previous_msg))
103+
if any(keyword in previous_msg for keyword in delete_keywords):
104+
user_name = self.slack_wrapper.get_member(msg["previous_message"]["user"])
105+
display_name = get_display_name(user_name)
106+
self.slack_wrapper.post_message(msg["channel"], "*{}* deleted : `{}`".format(display_name, previous_msg))
109107
# Greet new users
110108
elif msg.get("type") == "im_created":
111-
self.slack_wrapper.post_message(msg['user'], self.get_config_option("intro_message"))
109+
self.slack_wrapper.post_message(msg["user"], self.get_config_option("intro_message"))
112110

113111
return None, None, None, None
114112

0 commit comments

Comments
 (0)