botpy
This commit is contained in:
165
c/filter.py
Normal file
165
c/filter.py
Normal 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))
|
||||
Reference in New Issue
Block a user