@TanderOFF

Как вывести сколько человек провёл в войс канале вообщем?

602f39741553b070437990.pngЗдраствуйте знатоки, появился такой вопрос, искал где мог какие либо вопросы по типу моего, но нечего не нашёл .
Суть такова , когда человек заходит в voice chanell, то включается таймер и действует до того момента пока он не выйдет с него, это число которое получилось в таймере записать желательно в sql в колонку voice в формате H:M:S
и при запросе !!stats выводить её точно также .
Я в python совсем новичок , и не совсем понимаю как это можно реализовать

Вот кусочек кода:

import discord
from discord import Member
from discord.ext import commands
from discord.ext.commands import has_permissions, MissingPermissions


from discord.utils import get
import youtube_dl
import os

import random
import time
import json
import requests
import asyncio

import sqlite3
import config
from Cybernator import Paginator as pag
import psutil as ps
intents = discord.Intents.default()
intents.members = True

# Настройка бота
client = commands.Bot(command_prefix='!!', intents=intents)
client.remove_command('help')

connection = sqlite3.connect('base.db')
cursor = connection.cursor()

#sql
@client.event
async def on_ready():
	cursor.execute("""CREATE TABLE IF NOT EXISTS users (
		name TEXT,
		id INT,
		gift INT,
		cash BIGINT,
		rep INT,
		xp INT,
		lvl INT,
		warns BIGINT,
		vk TEXT,
		inst TEXT,
		colors INT,
		server_id INT,
		win INT,
		lous INT,
		likes INT,
		voice INT,
		buyrole INT,
		unpa INT
	)""")

	cursor.execute("""CREATE TABLE IF NOT EXISTS shop (
		role_id INT,
		id INT,
		cost BIGINT,
		des TEXT
	)""")

	cursor.execute("""CREATE TABLE IF NOT EXISTS shopcolor (
		role_id INT,
		id INT,
		cost BIGINT,
		des TEXT
	)""")
	for guild in client.guilds:
		print(guild.id)
		serv=guild
		for member in guild.members:
			if cursor.execute("SELECT id FROM users WHERE id = ?", (member.id, )).fetchone() is None:
				cursor.execute("INSERT INTO users VALUES (?, ?, 0, 0, 0, 0, 0, 0, '-', '-', 0, ?, 0, 0, 0, 0, 0, 0)", (member.name, member.id, member.guild.id))
				#.format(tablepx.replace('"', '""')),(like_string,))
    
				

			else:
				pass

	connection.commit()
	print("OK!")
	await client.change_presence(status=discord.Status.idle, activity=discord.Activity(name='за чатом', type=discord.ActivityType.watching))


#sql + role + text
@client.event
async def on_member_join(member):
	if cursor.execute("SELECT id FROM users WHERE id = ?", (member.id, )).fetchone() is None:
		cursor.execute("INSERT INTO users VALUES (?, ?, 0, 0, 0, 0, 0, 0, '-', '-', 0, ?, 0, 0, 0, 0, 0, 0)", (member.name, member.id, member.guild.id))
		connection.commit()
	else:
		pass

	channel = client.get_channel(452906561841397760) # ID канала welcome

	role = discord.utils.get(member.guild.roles, id=809428234051649536) # ID роли
	await member.add_roles(role)

	emb = discord.Embed(title=f'{member.name} в Атмосфере !', description='Здраствуй', color=0x954bfa)
	emb.set_thumbnail(url=member.avatar_url)
	emb.set_footer(text='{}'.format(member.joined_at.strftime('%d.%m.%Y | %H:%M:%S')), icon_url=member.avatar_url)
	await channel.send(embed=emb)
	print(f'{ctx.author.name} Вступил')

	

# Ошибка в команде


# Команда help
@client.command()
async def help(ctx, module = None):
	if module is None:
		emb = discord.Embed(description='Мой префикс: `ae`\nКанал где описаны все мои команды <#769700056403804180>', color=0x954bfa)
		emb.set_footer(text=f'{ctx.guild.name} | ID: {ctx.guild.id}', icon_url=f'{ctx.guild.icon_url}')
		await ctx.send(embed=emb)

## --------------------------------------------------------------- ##
## ------------------------- STATS -------------------------- ##




# Статистика:
@client.command(aliases = ['статистика', 'stat', 'stats'])
async def __stat(ctx, member: discord.Member = None):


	embedauthor1 = discord.Embed(color=0x954bfa)
	embedauthor1.add_field(name="WIN в рулетке:", value=f'{cursor.execute("SELECT win FROM users WHERE id = {}".format(ctx.author.id)).fetchone()[0]} ', inline=True)
	embedauthor1.add_field(name="LOUS в рулетке:", value=f'{cursor.execute("SELECT lous FROM users WHERE id = {}".format(ctx.author.id)).fetchone()[0]} ', inline=True)
	embedauthor1.add_field(name="Поставлено лайков:", value=f'{cursor.execute("SELECT likes FROM users WHERE id = {}".format(ctx.author.id)).fetchone()[0]} <a:713135182789607609:800469168687677462>', inline=True)
	embedauthor1.add_field(name="Куплено ролей:", value=f'{cursor.execute("SELECT buyrole FROM users WHERE id = {}".format(ctx.author.id)).fetchone()[0]} ', inline=True)
	embedauthor1.add_field(name="Открыто подарков:", value=f'{cursor.execute("SELECT unpa FROM users WHERE id = {}".format(ctx.author.id)).fetchone()[0]} <a:785745724893429780:800469168741679155>', inline=True)
	embedauthor1.add_field(name="Время в войсе:", value=f'{cursor.execute("SELECT voice FROM users WHERE id = {}".format(ctx.author.id)).fetchone()[0]} <a:bokal:800912604251<img src="https://habrastorage.org/webt/60/2f/38/602f38ae4cc54071661725.png" alt="image"/>815976>', inline=True)
	embedauthor1.set_thumbnail(url=ctx.author.avatar_url)
	embedauthor1.set_author(name=f"{ctx.author.display_name} вот твоя статистика которая у меня есть ❤", icon_url=ctx.guild.icon_url)


	
#токен
client.run('token')

Прикреплю скриншот как хотелось что бы это выглядело
  • Вопрос задан
  • 141 просмотр
Пригласить эксперта
Ваш ответ на вопрос

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

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