Здравствуйте, возникли проблемы:
Проблема:
- Не всегда воспроизводиться музыка по команде(могу написать команду и силку на музыку бот напишет что играет, но в голосовом нет музыки)
- Также может иногда писать что много запросов(), хотя я не использовав много раз команду play(я ранее писал уже по этой причине - сказали поставить ограничение. Я использовал cooldown, но после этого она не совсем исчезла)
Решения которые я пробовал:
- По первому, исправляєтся только тогда когда перезапущу бота на хосте(Heroku)
- По второму, если перезапустить бота на хосте(Heroku), то проблема с тем что пишет что много запросов пропадает на неопределенный срок, а иногда даже надо что-то в коде изменить(например где-то забрать пробел) что бы заработало
Вот часть кода команды play:
@commands.command(name='play', aliases = ['p', 'pl'])
@commands.cooldown(1, 20, commands.BucketType.member)
async def _play(self, ctx: commands.Context, *, search: str):
if not ctx.voice_state.voice:
await ctx.invoke(self._join)
async with ctx.typing():
try:
source = await YTDLSource.create_source(ctx, search, loop=self.bot.loop)
except YTDLError as e:
await ctx.send('Произошла ошибка при обработке этого запроса: {}'.format(str(e)))
else:
song = Song(source)
await ctx.voice_state.songs.put(song)
await ctx.send('Поставлен в очередь {}'.format(str(source)))
Настройки youtube_dl:
class YTDLSource(discord.PCMVolumeTransformer):
YTDL_OPTIONS = {
'format': 'bestaudio/best',
'extractaudio': True,
'audioformat': 'mp3',
'outtmpl': '%(extractor)s-%(id)s-%(title)s.%(ext)s',
'restrictfilenames': True,
'noplaylist': True,
'nocheckcertificate': True,
'ignoreerrors': False,
'logtostderr': False,
'quiet': True,
'no_warnings': True,
'default_search': 'auto',
'source_address': '0.0.0.0',
}
FFMPEG_OPTIONS = {
'before_options': '-reconnect 1 -reconnect_streamed 1 -reconnect_delay_max 5',
'options': '-vn',
}
Как решить те проблемы, что я написал в разделе Проблема?