Skip to content

Commit

Permalink
Add files via upload
Browse files Browse the repository at this point in the history
  • Loading branch information
kamil12-dev authored Jun 12, 2023
1 parent 8871e25 commit 58e44ae
Show file tree
Hide file tree
Showing 18 changed files with 304 additions and 94 deletions.
4 changes: 2 additions & 2 deletions cogs/AutoRole.py
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ async def set_default_role(self, ctx, role: disnake.Role = None):
description="Укажите корректную роль",
color=0x7788ff
)
await ctx.send(embed=embed)
await ctx.send(embed=embed, ephemeral=True)

@set_default_role.error
async def set_default_role_error(self, ctx, error):
Expand All @@ -61,7 +61,7 @@ async def set_default_role_error(self, ctx, error):
description="У вас нет разрешения управлять ролями!",
color=0x7788ff
)
await ctx.send(embed=embed)
await ctx.send(embed=embed, ephemeral=True)


def setup(bot):
Expand Down
Binary file modified cogs/__pycache__/AutoRole.cpython-311.pyc
Binary file not shown.
Binary file modified cogs/__pycache__/admins.cpython-311.pyc
Binary file not shown.
Binary file modified cogs/__pycache__/chat.cpython-311.pyc
Binary file not shown.
Binary file modified cogs/__pycache__/econom.cpython-311.pyc
Binary file not shown.
Binary file modified cogs/__pycache__/event.cpython-311.pyc
Binary file not shown.
Binary file modified cogs/__pycache__/help.cpython-311.pyc
Binary file not shown.
Binary file modified cogs/__pycache__/infobots.cpython-311.pyc
Binary file not shown.
Binary file modified cogs/__pycache__/mute.cpython-311.pyc
Binary file not shown.
Binary file added cogs/__pycache__/muteChat.cpython-311.pyc
Binary file not shown.
Binary file modified cogs/__pycache__/tikets.cpython-311.pyc
Binary file not shown.
Binary file modified cogs/__pycache__/user.cpython-311.pyc
Binary file not shown.
3 changes: 1 addition & 2 deletions cogs/admins.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
import typing
from datetime import datetime


conn = sqlite3.connect('bans.db')
c = conn.cursor()

Expand Down Expand Up @@ -424,7 +425,5 @@ async def send(self, ctx, member: disnake.Member, *, text):
color=0x7788ff)
await ctx.send(embed=success_embed, ephemeral=True)



def setup(bot: commands.Bot):
bot.add_cog(admins(bot))
5 changes: 3 additions & 2 deletions cogs/chat.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

import openai

openai.api_key = ''
openai.api_key = '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'

class chat(commands.Cog):
def __init__(self, bot):
Expand Down Expand Up @@ -44,7 +44,8 @@ async def chat(self, inter, message: str):
else:
embed = Embed(title="ChatGPT", description=f"{full_response[:2000]}...\n\n[Описание обрезано из-за ограничения Discord на 2000 символов.]", color=0x7788ff)

await inter.followup.send(embed=embed, ephemeral=True)
if not inter.responded:
await inter.send(embed=embed, ephemeral=True)


def setup(bot):
Expand Down
12 changes: 10 additions & 2 deletions cogs/event.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,18 @@ def __init__(self, bot: commands.Bot):



#@commands.Cog.listener()
#async def on_ready(self):
# await self.bot.change_presence(status=disnake.Status.idle, activity=disnake.Activity(type=disnake.ActivityType.listening, name="Apple Music"))


@commands.Cog.listener()
async def on_ready(self):
await self.bot.change_presence(status=disnake.Status.idle, activity=disnake.Activity(type=disnake.ActivityType.listening, name="Apple Music"))

members = sum(guild.member_count - 1 for guild in self.bot.guilds)
await self.bot.change_presence(activity=disnake.Activity(
type=disnake.ActivityType.watching,
name=f'{members} участников'
))


@commands.Cog.listener()
Expand Down
143 changes: 143 additions & 0 deletions cogs/help.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,143 @@
import disnake
from disnake.ext import commands



class helpc(commands.Cog):
def __init__(self, bot):
self.bot = bot


@commands.slash_command(name="help", description="Помощь по командам.", permissions=[disnake.Permissions().none()])
async def __help(self, ctx):
view = design_help_cmd()
embed = disnake.Embed(title=f'**__Список команд__**', description='Пожалуйста, выберите категорию.', color=disnake.Color.green())
embed.set_footer(text=f"Запросил команду: {ctx.author.name}")
await ctx.send(embed=embed, view=view, ephemeral=True)


class design_help_cmd(disnake.ui.View):
def __init__(self):
super().__init__()
self.add_item(help_cmd())

class help_cmd(disnake.ui.Select):
def __init__(self):
options = [
disnake.SelectOption(label='Развлечения', description='Куча весёлостей и развлечений!', emoji='<:fun:1004671040116490300>'),
disnake.SelectOption(label='Модерация', description='Команды для модераторов / Администрации.', emoji='<:moderator:1004670538758754445>'),
disnake.SelectOption(label='Глобальный чат', description='Общение с разнами серверами через бота.', emoji='<:chat:992097506748010656>'),
disnake.SelectOption(label='Общее', description='Общие команды для обычных юзеров.', emoji='<:all:1004659237336657972>'),
disnake.SelectOption(label='Животные', description='Изображение животных.', emoji='<:animals:1004669831217422417>'),
disnake.SelectOption(label='NSFW', description='18+ изображение', emoji='<:18:1004669364705955852>'),
disnake.SelectOption(label='Информация', description='Полезные команды', emoji='<:info:992096997500780574>'),
disnake.SelectOption(label='Premium', description='Покупка подписки', emoji='💲'),
disnake.SelectOption(label='Экономика', description='Команды для экономики', emoji='💰'),
]
super().__init__(placeholder='Выбор категории', min_values=1, max_values=1, options=options)

async def callback(self, interaction: disnake.Interaction):
if "Развлечения" in self.values:
embed = disnake.Embed(color=disnake.Color.yellow())
embed.add_field(name='Развлечения', value=(
'`/gay` > в разработке...\n'
'`/chill` > Узнать размер члена! 😌\n'
))
await interaction.response.edit_message(embed=embed)
if "Модерация" in self.values:
embed = disnake.Embed(color=disnake.Color.blurple())
embed.add_field(name='Модерация', value=(
'`/clear` > Очистка чата\n'
'`/embed` > Эмбед от имени бота\n'
'`/poll` > Голосование\n'
'`/kick` > Выгнать пользователя с сервера 😠\n'
'`/ban` > Забанить пользователя на сервере 🚫\n'
'`/join` > Зайти в голосовой канал 🎤\n'
'`/leave` > Выйти из голосового канала 🎙️\n'
'`/echo` > Отправить сообщение от имени Полины 📢\n'
'`/stay` > Оставить Полину в голосовом канале 🙏\n'
'`/create_role` > Создание новой роли 🛠️\n'
'`/assign_role` > Выдача роли пользователю 🤝\n'
'`/setroleap` > Установить роль для Автовыдачи 👥\n'
'`/remove_role` > Удаление роли у пользователя ❌\n'
'`/warns` > Выдать предупреждение пользователю ⚠️\n'
'`/unwarn` > Снять предупреждение у пользователя 💚\n'
'`/setcolorrole` > Изменить цвет роли 🌈\n'
'`/voting` > Провести голосование 🗳️ \n'
'`/send-dm` > Отправить в лс сообщение от имени бота 💬\n'
'`/voicemute` > Mute пользователя в голосовых каналах 😶\n'
'`/unvoicemute` > unMute пользователя в голосовых каналах🎙️\n'
))
await interaction.response.edit_message(embed=embed)
if "Глобальный чат" in self.values:
embed = disnake.Embed(color=disnake.Color.purple())
embed.add_field(name='Общее', value=(
'`/global` > в разработке...\n'
))
await interaction.response.edit_message(embed=embed)
if "Общее" in self.values:
embed = disnake.Embed(color=disnake.Color.blue())
embed.add_field(name='Общее', value=(
'`/help` > Посмотреть все команды 👀\n'
'`/daily` > Получить ежедневные Poli-coins 💰\n'
'`/balance` > Показать баланс 💵\n'
'`/dice` > Играть в Dice 🎲\n'
'`/user_agreement` > Пользовательское соглашение 📜\n'
'`/profile` > Узнать свою статистику 📊\n'
'`/calculate` > Открыть калькулятор 🧮\n'
'`/level` > Узнать свой уровень 📈\n'
'`/warnings` > Показать список предупреждений ⚠️\n'
'`/avatar` > Посмотреть аватар пользователя 👤\n'
'`/short` > Сократить URL-адрес 🔗\n'
'`/server` > Просмотр информации о сервере 🖥️\n'
'`/ping` > Проверка бота на работу 🏓\n'
'`/nitro` > Генерирует Discord Nitro 🎁\n'
'`/chat` > Спросить у ChatGPT 🤔\n'
))
await interaction.response.edit_message(embed=embed)
if "Животные" in self.values:
embed = disnake.Embed(color=disnake.Color.green())
embed.add_field(name='Животные', value=(
'`/dog` > в разработке...\n'
))
await interaction.response.edit_message(embed=embed)
if "NSFW" in self.values:
embed = disnake.Embed(color=disnake.Color.red())
embed.add_field(name='NSFW', value=(
'`/waifu` > 18+ картинки / GIF 🍑\n'
'`/blowjob` > 18+ картинки / GIF 🍆\n'
'`/trap` > 18+ картинки / GIF 🚻\n'
'`/neko` > 18+ картинки / GIF 😺\n'
'`/sex` > 18+ картинки / GIF 🍌\n'
'`/solo` > 18+ картинки / GIF 👄'
))
await interaction.response.edit_message(embed=embed)
if "Информация" in self.values:
embed = disnake.Embed(color=disnake.Color.green())
embed.add_field(name='Информация', value=(
'`/news` > в разработке...\n'
))
await interaction.response.edit_message(embed=embed)
if "Premium" in self.values:
embed = disnake.Embed(color = disnake.Color.dark_theme())
embed.add_field(name='Premium', value=(
'`/premium` > в разработке...\n'
'`/buy-premium` > в разработке...\n'
))
await interaction.response.edit_message(embed=embed)

if "Экономика" in self.values:
embed = disnake.Embed(color=disnake.Color.gold())
embed.add_field(name='Экономика', value=(
'`/balance` > Показать баланс 💵\n'
'`/daily` > Получить ежедневные Poli-coins 💰\n'
'`/dice` > Играть в Dice 🎲\n'
'`/buy` > Купить предмет из магазина (в разработке...) 🛍️\n'
'`/sell` > Продать предмет из инвентаря (в разработке...)💸\n'
'`/inventory` > Показать инвентарь (в разработке...)🎒\n'
'`/leaderboard` > Показать топ пользователей по балансу(в разработке...) 🏆\n'
))
await interaction.response.edit_message(embed=embed)

def setup(bot):
bot.add_cog(helpc(bot))
145 changes: 145 additions & 0 deletions cogs/mute.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,145 @@
import disnake
from disnake.ext import commands
import sqlite3
import asyncio
import aiohttp
import datetime

class mute(commands.Cog):
def __init__(self, bot):
self.bot = bot
self.conn = sqlite3.connect('database.db')
self.cursor = self.conn.cursor()
self.create_table()

def create_table(self):
self.cursor.execute('''CREATE TABLE IF NOT EXISTS mutes
(user_id INT PRIMARY KEY, unmute_time INT)''')
self.conn.commit()

@commands.slash_command(name='voicemute', description='Mute пользователя в голосовых каналах')
@commands.has_permissions(manage_roles=True)
async def tempmute(self, ctx, member: disnake.Member, duration: int, reason=None):
mute_role = disnake.utils.get(ctx.guild.roles, name="mute")
if not mute_role:
mute_role = await ctx.guild.create_role(name="mute")

permissions = disnake.Permissions.none()
permissions.update(send_messages=False, connect=True, speak=True, stream=True, use_voice_activation=True)
await mute_role.edit(permissions=permissions)

await member.add_roles(mute_role, reason=reason)

await self.mute_microphone(member, True)

unmute_time = asyncio.get_event_loop().time() + duration * 60

self.cursor.execute('INSERT OR REPLACE INTO mutes VALUES (?, ?)', (member.id, unmute_time))
self.conn.commit()

embed = disnake.Embed(title="Мут", color=0x7788ff)
embed.add_field(name="Пользователь", value=member.mention, inline=True)
embed.add_field(name="Длительность", value=f"{duration} минут", inline=True)
embed.add_field(name="Причина", value=reason, inline=True)
embed.set_footer(text=f"Размут через: {duration} минут ⏰")
embed.set_footer(text="Polina bot © 2023 Все права защищены")

await ctx.send(embed=embed, ephemeral=True)

await self.send_mute_dm(member, ctx.guild.name, reason, duration, ctx.author)

await asyncio.sleep(duration * 60)
await self.unmute_member(member)

@commands.slash_command(name='unvoicemute', description='unMute пользователя в голосовых каналах')
@commands.has_permissions(manage_roles=True)
async def unmute(self, ctx, member: disnake.Member):
mute_role = disnake.utils.get(ctx.guild.roles, name="mute")
if mute_role in member.roles:
await member.remove_roles(mute_role)
await self.unmute_member(member)

embed = disnake.Embed(title="Размут", color=0x7788ff)
embed.add_field(name="Пользователь", value=member.mention, inline=True)
embed.set_footer(text="Был размучен 🎉")
embed.set_footer(text="Polina bot © 2023 Все права защищены")

await ctx.send(embed=embed, ephemeral=True)

await self.send_unmute_dm(member)
else:
await ctx.send(f"{member.mention} не был mute.")

self.cursor.execute('DELETE FROM mutes WHERE user_id = ?', (member.id,))
self.conn.commit()

async def mute_microphone(self, member: disnake.Member, mute: bool):
url = f"https://discord.com/api/v10/guilds/{member.guild.id}/members/{member.id}"
headers = {
"Authorization": f"Bot {self.bot.http.token}",
"Content-Type": "application/json"
}
data = {
"mute": mute
}

async with aiohttp.ClientSession() as session:
async with session.patch(url, headers=headers, json=data) as response:
if response.status == 204:
return True
else:
return False

async def unmute_member(self, member: disnake.Member):
await self.mute_microphone(member, False)
await self.send_unmute_dm(member)

async def send_mute_dm(self, member, guild_name, reason, duration, admin):
try:
dm_channel = await member.create_dm()
embed = disnake.Embed(title="Вы получили Mute", color=0x7788ff)
embed.add_field(name="Сервер", value=guild_name, inline=True)
embed.add_field(name="Причина", value=reason, inline=True)
unmute_datetime = datetime.datetime.now() + datetime.timedelta(minutes=duration)
embed.add_field(name="Дата и время размута", value=unmute_datetime.strftime("%Y-%m-%d %H:%M:%S"), inline=False)
embed.add_field(name="Администратор", value=admin.name, inline=True)
embed.set_footer(text="Вы будете размучены автоматически. 🕒")
embed.set_footer(text="Polina bot © 2023 Все права защищены")
await dm_channel.send(embed=embed)
except Exception as e:
print(f"Ошибка при отправке сообщения размута пользователю {member}: {e}")

async def send_unmute_dm(self, member):
try:
dm_channel = await member.create_dm()
embed = disnake.Embed(title="Вы размучены 🎉", color=0x7788ff)
embed.add_field(name="Сервер", value=member.guild.name, inline=True)
embed.set_footer(text="Вы размучены 🎉")
embed.set_footer(text="Polina bot © 2023 Все права защищены")
await dm_channel.send(embed=embed)
except Exception as e:
print(f"Ошибка при отправке сообщения размута пользователю {member}: {e}")

@commands.Cog.listener()
async def on_ready(self):
current_time = asyncio.get_event_loop().time()
for guild in self.bot.guilds:
self.cursor.execute('SELECT * FROM mutes WHERE unmute_time <= ?', (current_time,))
mutes = self.cursor.fetchall()
for mute in mutes:
member = guild.get_member(mute[0])
if member:
mute_role = disnake.utils.get(guild.roles, name="mute")
if not mute_role:
mute_role = await guild.create_role(name="mute")
await member.remove_roles(mute_role)
self.cursor.execute('DELETE FROM mutes WHERE user_id = ?', (member.id,))
self.conn.commit()






def setup(bot):
bot.add_cog(mute(bot))
Loading

0 comments on commit 58e44ae

Please sign in to comment.