This commit is contained in:
2025-11-26 19:34:08 +05:00
commit 1dd4394e4b
11 changed files with 926 additions and 0 deletions

165
c/filter.py Normal file
View File

@@ -0,0 +1,165 @@
import string
import discord
from discord.ext import commands
from discord.ext.commands import Context, has_permissions
import random
import config
bad = ['бля', 'хуй', 'пиздец', 'сука', 'ебать', 'ебанат', 'хуя', 'уебан', 'пидор', 'ебаный', 'блять','уебу','пиздану','пизду', 'блядь', 'чивапчичи']
class Filter(commands.Cog):
def __init__(self, bot):
self.bot = bot
self.last_member = None
async def write(self, name, server_id, channel_id):
tog = 1
self.bot.confmsg.execute("INSERT INTO channel(tog, name, server_id, channel_id) VALUES(?, ?, ?, ?)", (tog, name, server_id, channel_id,))
self.bot.confmsg.commit()
async def delete(self, name, server_id, channel_id):
self.bot.confmsg.execute("DELETE FROM channel WHERE name=? AND server_id=? AND channel_id=?",(name, server_id, channel_id))
self.bot.confmsg.commit()
async def badwords(self, message, serid, chanid):
name = 'badwords'
res = await self.bot.select(name, serid, chanid)
if res == "disabled":
pass
elif res == "enabled":
if {i.lower().translate(str.maketrans('ё', 'е', string.punctuation)) for i in message.content.split(' ')} \
.intersection(set(bad)) != set():
await message.reply("не матерись блядь")
print(f'------------------------------------\nmessage with bad word: {message.content}\n------------------------------------')
async def message(self, message, server_id, channel_id):
if message.content.startswith(config.PREFIX):
return
name = 'msgsend'
res = await self.bot.select(name, server_id, channel_id)
if res == "disabled":
pass
elif res == "enabled":
msg = message.content
server_id = message.guild.id
rows = self.bot.conmsg.execute("SELECT id FROM message WHERE server_id=? ORDER BY id DESC LIMIT 1", (server_id,))
resultsid = rows.fetchone()
print("------------------------------------\nserverid: ", server_id,"\nmessage content: ", msg, "\n------------------------------------")
if resultsid == None:
message_id = 1
else:
message_id = resultsid[0] + 1
self.bot.conmsg.execute("INSERT INTO message(id, server_id, messages) VALUES (?, ?, ?)", (message_id, server_id, msg))
self.bot.conmsg.commit()
c = 5
a = random.randrange(0, c)
if a == 1:
b = random.randrange(1, message_id)
rows2 = self.bot.conmsg.execute("SELECT messages FROM message WHERE id=? AND server_id=? ORDER BY id DESC LIMIT 1", (b, server_id,))
msgresult = rows2.fetchall()
print('------------------------------------\nmessage send content: ', msgresult, '\n------------------------------------')
await message.channel.send(" ".join(msgresult[0]))
@commands.Cog.listener()
async def on_message(self, message):
if message.author.bot:
return
server_id = message.guild.id
channel_id = message.channel.id
await self.badwords(message, server_id, channel_id)
await self.message(message, server_id, channel_id)
@commands.command()
@commands.is_owner()
async def clear_msgdb(self, message):
"""
Clear db for 'message'
"""
server_id = message.guild.id
rows = self.bot.conmsg.execute("SELECT id FROM message WHERE server_id=? ORDER BY id DESC LIMIT 1", (server_id,))
result = rows.fetchone()
self.bot.conmsg.execute("DELETE FROM message WHERE server_id=?", (server_id,))
self.bot.conmsg.commit()
embed = discord.Embed(
color=random.randint(0, 0xFFFFFF),
title="Message history has been deletet"
)
embed.add_field(name="number of msg:", value=f'{result}')
await message.send(embed=embed)
@commands.command()
@commands.is_owner()
async def msgdb(self, message):
"""
Total number of DB msgsend
"""
server_id = message.guild.id
rows = self.bot.conmsg.execute("SELECT id FROM message WHERE server_id=? ORDER BY id DESC LIMIT 1", (server_id,))
result = rows.fetchone()
embed = discord.Embed(
color=random.randint(0, 0xFFFFFF),
title="Total number of msg"
)
embed.add_field(name=" ", value=f'{result}')
await message.send(embed=embed)
@commands.command()
@commands.is_owner()
async def toggle(self, ctx, *msg):
"""
Toggle(msgsend, badwords, logs)
"""
server_id = ctx.guild.id
channel_id = ctx.channel.id
name = " ".join(msg)
if name != "msgsend" and name != "badwords" and name != "logs":
embed = discord.Embed(
title="select what you want to toggle",
color=random.randint(0, 0xFFFFFF),
)
else:
res = await self.bot.select(name, server_id, channel_id)
if res == "disabled":
embed = discord.Embed(
title=f"{name} has been enabled",
color=random.randint(0, 0xFFFFFF),
)
await self.write(name, server_id, channel_id)
elif res == 'enabled':
embed = discord.Embed(
title=f"{name} has been disabled",
color=random.randint(0, 0xFFFFFF),
)
await self.delete(name, server_id, channel_id)
await ctx.send(embed=embed)
@commands.command()
@commands.is_owner()
async def status(self, ctx):
"""
"""
server_id = ctx.guild.id
channel_id = ctx.channel.id
bw = await self.bot.select(name='badwords', server_id=server_id, channel_id=channel_id)
msgsend = await self.bot.select(name='msgsend', server_id=server_id, channel_id=channel_id)
logs = await self.bot.select(name='logs', server_id=server_id, channel_id=channel_id)
embed = discord.Embed(
color=random.randint(0, 0xFFFFFF),
title="status"
)
embed.add_field(name="badwords", value=f'{bw}')
embed.add_field(name="msgsend", value=f'{msgsend}')
embed.add_field(name="logs", value=f'{logs}')
await ctx.send(embed=embed)
@commands.Cog.listener()
async def on_ready(self):
print('Filter cog has been loaded')
async def setup(bot):
await bot.add_cog(Filter(bot))