Files
botpy/c/filter.py
2025-11-27 18:06:20 +05:00

167 lines
6.7 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import string
import discord
from discord.ext import commands
from discord.ext.commands import Context, has_permissions
import random
import os
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):
prefix = self.bot.getcfg.getprefix()
if message.content.startswith(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))