kravik1337
@kravik1337

Как считать время проведенное в голосовом канале?

С помощью функции on_voice_state_update хочу считать время проведенное в голосовом канале. Человек вошел, и данные записались в базу данных, а ну и чтобы это все выводились в профиль юзера, но это я уже и сам сделаю.

@commands.command()
	async def user (self, ctx, user: discord.Member = None):
		user = ctx.author if (user is None) else user

		statuses = {
			"online": "<:online:781849066891247617> Онлайн",
			"idle": "<:idle:781849067294031912> Не активен",
			"dnd": "<:dnd:781849067067932672> Не беспокоить",
			"offline": "<:offline:781849067029528586> Не в cети"
		}

		j_month = user.joined_at.strftime('%b')
		j_day = user.joined_at.strftime('%#d')
		j_year = user.joined_at.strftime('%Y')
		j_time = user.joined_at.strftime('%X')

		c_month = user.created_at.strftime('%b')
		c_day = user.created_at.strftime('%#d')
		c_year = user.created_at.strftime('%Y')
		c_time = user.created_at.strftime('%X')

		status = statuses[str(user.status)]
  • Вопрос задан
  • 596 просмотров
Решения вопроса 1
SoreMix
@SoreMix
yellow
@bot.event
async def on_voice_state_update(member, before, after):

    # Если пользователь зашел в голосовой канал
    if after.channel and after.channel.type == discord.ChannelType.voice:
        joined_voice_channel = time.time()
        # сохраняем в БД

    # если вышел из голосового
    if not after.channel and before.channel.type == discord.ChannelType.voice:
        leave_voice_channel = time.time()
        # достаем из БД joined_voice_channel и вычитаем его из leave_voice_channel

        print('Время в голосовом канале:', leave_voice_channel-joined_voice_channel, 'секунд')


https://discordpy.readthedocs.io/en/stable/api.htm...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы