Skip to content

Commit c34953b

Browse files
committed
Updates
1 parent b6dde62 commit c34953b

File tree

4 files changed

+26
-25
lines changed

4 files changed

+26
-25
lines changed

bot.py

+19-17
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,11 @@
22
import json
33
import os
44
import time
5+
import discord
56
from datetime import datetime
67
from functools import partial
78
from threading import Thread
8-
import discord
9+
from profanityfilter import ProfanityFilter
910
from bson.json_util import dumps
1011
from discord.ext import commands
1112
from dotenv import load_dotenv
@@ -103,15 +104,16 @@ async def on_message(message):
103104
return await spy_channel.send(content=f"``{message.author}`` sent me a DM with attachments:\n{links}")
104105

105106
user_profile = UserProfiles(message.author).getUserProfile()
106-
server_settings = ServerSettings(message.guild).getServerDocument()
107+
server_settings = ServerSettings(message.guild)
108+
server_document = server_settings.getServerDocument()
107109
if message.content.startswith(PREFIX):
108-
if not server_settings["is_banned"] and not user_profile["MiscData"]["is_banned"]:
110+
if not server_document["is_banned"] and not user_profile["MiscData"]["is_banned"]:
109111
await bot.process_commands(message)
110112
else:
111113

112114
if message.channel.type == discord.ChannelType.text and message.channel.name.lower().startswith(
113115
"count-to-"):
114-
if server_settings["modules"]["counting_channels"]:
116+
if server_document["modules"]["counting_channels"]:
115117
try:
116118
# try to convert the string to a number
117119
number = int(message.content)
@@ -128,8 +130,8 @@ async def on_message(message):
128130
# not a valid number so delete the message
129131
await message.delete()
130132

131-
if server_settings["modules"]["message_responses"]:
132-
custom_message_responses = server_settings["custom_message_responses"]
133+
if server_document["modules"]["message_responses"]:
134+
custom_message_responses = server_document["custom_message_responses"]
133135
for custom_response in custom_message_responses:
134136
trigger = custom_response["trigger"]
135137
response = custom_response["response"]
@@ -138,14 +140,10 @@ async def on_message(message):
138140
return
139141

140142
# profanity filter
141-
if server_settings["modules"]["profanity_filter"]:
142-
words = json.loads(open("settings.json", 'r').read())["profanity_words"]
143-
if any(substring in message.content.lower() for substring in words):
144-
await message.delete()
145-
await asyncio.sleep(1)
146-
message = await message.channel.send("A word you said is not allowed in this server! :rage:")
147-
await asyncio.sleep(5)
143+
if server_document["modules"]["profanity_filter"]:
144+
if server_settings.profanity_filter().is_profane(message.content):
148145
await message.delete()
146+
await message.channel.send("Watch your language! :rage:", delete_after=10)
149147

150148

151149
@app.route("/api/v1/userCount", methods=["GET"])
@@ -178,10 +176,14 @@ def api_users():
178176
for user in user_collection.find():
179177
user_json = json.loads(dumps(user))
180178
x = bot.get_user(user_json["id"])
181-
users.append({"username": x.name, "id": x.id, "discriminator": x.discriminator,
182-
"avatar_url": str(x.avatar_url),
183-
"is_banned": user_json["MiscData"]["is_banned"],
184-
"is_admin": user["id"] in BotAdmins().get()})
179+
try:
180+
users.append({"username": x.name, "id": x.id, "discriminator": x.discriminator,
181+
"avatar_url": str(x.avatar_url),
182+
"is_banned": user_json["MiscData"]["is_banned"],
183+
"is_admin": user["id"] in BotAdmins().get()})
184+
except AttributeError as e:
185+
getLogger().critical(f"[Users API]: User Error - ID: {user['id']}")
186+
user_collection.find_one_and_delete({"id": user['id']})
185187
return jsonify(users)
186188
else:
187189
return "", 401

extensions/exampleext.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,4 @@ async def exampleext(ctx):
77

88

99
def setup(bot):
10-
bot.add_command(exampleext)
10+
bot.add_command(exampleext)

requirements.txt

-6
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,3 @@
1-
eventlet
2-
aiohttp
3-
socketio
4-
quart
5-
bson
6-
redis
71
flask
82
pynacl
93
youtube_dl

utils.py

+6-1
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
from discord.ext.commands import errors
2020
from dotenv import load_dotenv
2121
from praw import Reddit
22+
from profanityfilter import ProfanityFilter
2223
from pymongo import MongoClient
2324
from redis import Redis
2425
from youtube_dl import YoutubeDL
@@ -176,7 +177,8 @@ def __init__(self, guild):
176177
"trigger": "meme",
177178
"response": "shit meme"
178179
}
179-
]
180+
],
181+
"profanity_filter_words": []
180182
}
181183
}
182184
self.server_collection.insert_one(guild_payload)
@@ -199,6 +201,9 @@ def getLogChannel(self, bot: discord.ext.commands.Bot):
199201
return bot.get_channel(self.server_settings["log_channel"]) if self.server_settings[
200202
"log_channel"] else None
201203

204+
def profanity_filter(self):
205+
return ProfanityFilter(extra_censor_list=self.server_settings["profanity_filter_words"])
206+
202207

203208
def getRandomFact():
204209
file = open("didyouknow.json", 'r')

0 commit comments

Comments
 (0)