def check_emotes(self, message):
# check if setting is on in this server
# Let emotes happen in PMs always
server = message.server
# Filter unauthorized users, bots and empty messages
if not (self.bot.user_allowed(message) and message.content):
return
# Don't respond to commands
for m in self.bot.settings.get_prefixes(server):
if message.content.startswith(m):
return
if server is not None:
if server.id not in self.servers:
# default off
self.servers[server.id] = dict({"status": False})
if "emotes" not in self.servers[server.id]:
self.servers[server.id]["emotes"] = dict()
dataIO.save_json(self.data_path, self.servers)
# emotes is off, so ignore
if "status" not in self.servers[server.id]:
self.servers[server.id] = dict({"status": False})
if "emotes" not in self.servers[server.id]:
self.servers[server.id]["emotes"] = dict()
dataIO.save_json(self.data_path, self.servers)
if not self.servers[server.id]["status"]:
return
msg = message.content.lower().split()
listed = []
regexen = []
for n in sorted(self.servers[server.id]["emotes"]):
if not n[0].isalnum():
regexen.append(re.compile(r"\B"+n+r"\b"))
else:
regexen.append(re.compile(r"\b"+n+r"\b"))
for w, r in itertools.product(msg, regexen):
match = r.search(w)
if match:
listed.append(self.servers[server.id]["emotes"][match.group(0)])
pnglisted = list(filter(lambda n: not n.endswith('.gif'), listed))
giflisted = list(filter(lambda n: n.endswith('.gif'), listed))
if pnglisted and len(pnglisted) > 1:
ims = self.imgprocess(pnglisted)
await self.bot.send_file(message.channel, self.emote+ims)
elif pnglisted:
await self.bot.send_file(message.channel, self.emote+pnglisted[0])
if giflisted:
for ims in giflisted:
await self.bot.send_file(message.channel, self.emote+ims)
评论列表
文章目录