denvot-ai
/
discord_bot.py
73 строки · 2.4 Кб
1import denvot_ai
2import discord
3import nest_asyncio
4from time import sleep
5from threading import Thread
6from config import DISCORD_TOKEN
7from discord.ext import commands
8
9nest_asyncio.apply()
10intents = discord.Intents.default()
11intents.message_content = True
12bot = commands.Bot(command_prefix='>', intents=intents)
13can_speak = True
14audio_paths = []
15voice_client = None
16
17def playlist():
18while 0<1:
19if len(audio_paths) > 0 and voice_client != None and not voice_client.is_playing():
20audio = audio_paths[0]
21print(audio_paths.pop(0))
22voice_client.play(discord.FFmpegPCMAudio(source=audio))
23else: sleep(1)
24
25
26Thread(target=playlist).start()
27
28def audio_append(message):
29audio_paths.append(denvot_ai.send(message))
30
31@bot.command()
32async def join(ctx):
33if ctx.author.voice != None:
34channel = ctx.author.voice.channel
35await channel.connect()
36global voice_client
37voice_client = ctx.voice_client
38else: await ctx.send("Ты не в войсике, Пупс!!! 🤬")
39
40
41@bot.command()
42async def leave(ctx):
43if ctx.voice_client != None:
44await ctx.voice_client.disconnect()
45global voice_client
46voice_client = None
47else: await ctx.send("Я не в войсике, Пупс!!! 🤬")
48
49@bot.command()
50async def clear(ctx):
51denvot_ai.clear()
52await ctx.send("Прочищено, Пупсик! 😏")
53
54@bot.command()
55async def dnvhelp(ctx):
56await ctx.send("""
57Бригада приехала!
58`/dnv (запрос)` - денвот ответит на хорошие вопросы и сочинит интересные истории!
59`--tts-rate (число)` - дополняет скорость речи!
60`--tts-volume (число)` - качает громкость речи!
61`--tts-pitch (число)` - изменяет тональность нетрезвой речи!
62`--rvc-pitch (число)` - изменяет тональность трезвой речи (рек. использовать это, вместо --tts-pitch)!
63""")
64
65@bot.command()
66async def dnv(ctx, *args):
67if ctx.voice_client != None:
68message = ctx.message.author.name + ": " + " ".join(args)
69Thread(target=audio_append, args=[message]).start()
70await ctx.send("Я в деле! 🤓")
71else: await ctx.send("Я не в войсике, Пупс!!! 🤬")
72
73bot.run(DISCORD_TOKEN)