denvot-ai

Форк
0
/
discord_bot.py 
73 строки · 2.4 Кб
1
import denvot_ai
2
import discord
3
import nest_asyncio
4
from time import sleep
5
from threading import Thread
6
from config import DISCORD_TOKEN
7
from discord.ext import commands
8

9
nest_asyncio.apply()
10
intents = discord.Intents.default()
11
intents.message_content = True
12
bot = commands.Bot(command_prefix='>', intents=intents)
13
can_speak = True
14
audio_paths = []
15
voice_client = None
16

17
def playlist():
18
    while 0<1:
19
        if len(audio_paths) > 0 and voice_client != None and not voice_client.is_playing():
20
            audio = audio_paths[0]
21
            print(audio_paths.pop(0))
22
            voice_client.play(discord.FFmpegPCMAudio(source=audio))
23
        else: sleep(1)
24

25

26
Thread(target=playlist).start()
27

28
def audio_append(message):
29
    audio_paths.append(denvot_ai.send(message))
30

31
@bot.command()
32
async def join(ctx):
33
    if ctx.author.voice != None: 
34
        channel = ctx.author.voice.channel
35
        await channel.connect()
36
        global voice_client
37
        voice_client = ctx.voice_client
38
    else: await ctx.send("Ты не в войсике, Пупс!!! 🤬")
39

40

41
@bot.command()
42
async def leave(ctx):
43
    if ctx.voice_client != None: 
44
        await ctx.voice_client.disconnect()
45
        global voice_client
46
        voice_client = None
47
    else: await ctx.send("Я не в войсике, Пупс!!! 🤬")
48

49
@bot.command()
50
async def clear(ctx):
51
    denvot_ai.clear()
52
    await ctx.send("Прочищено, Пупсик! 😏")
53

54
@bot.command()
55
async def dnvhelp(ctx):
56
    await ctx.send("""
57
    Бригада приехала!
58
    `/dnv (запрос)` - денвот ответит на хорошие вопросы и сочинит интересные истории!
59
    `--tts-rate (число)` - дополняет скорость речи! 
60
    `--tts-volume (число)` - качает громкость речи! 
61
    `--tts-pitch (число)` - изменяет тональность нетрезвой речи! 
62
    `--rvc-pitch (число)` - изменяет тональность трезвой речи (рек. использовать это, вместо --tts-pitch)! 
63
    """)
64

65
@bot.command()
66
async def dnv(ctx, *args):
67
    if ctx.voice_client != None:
68
        message = ctx.message.author.name + ": " + " ".join(args)
69
        Thread(target=audio_append, args=[message]).start()
70
        await ctx.send("Я в деле! 🤓")
71
    else: await ctx.send("Я не в войсике, Пупс!!! 🤬")
72

73
bot.run(DISCORD_TOKEN)

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.