Здраствуйте знатоки, появился такой вопрос, искал где мог какие либо вопросы по типу моего, но нечего не нашёл .
Суть такова , когда человек заходит в 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')
Прикреплю скриншот как хотелось что бы это выглядело