Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 10, 2021 19:44:33

_Aidar_13
Зарегистрирован: 2021-11-10
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Не работает команда !balance и !cash

import discord
from discord.ext import commands

import sqlite3
from configEKObot import settings

client = commands.Bot(command_prefix = settings)
client.remove_command('help')

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


@client.event
async def on_ready():
cursor.execute(“”“CREATE TABLE IF NOT EXISTS users (
name TEXT,
id INT,
cash BIGINT,
rep INT,
lvl INT
)”“”)

for guild in client.guilds:
for member in guild.members:
if cursor.execute(f“SELECT id FROM users WHERE id = {member.id}”).fetchone() is None:
cursor.execute(f“INSERT INTO users VALUES ('{member}', ‘{member.id}’, 0, 0, 1)”)
else:
pass

connection.commit()
print('Bot connected')

@client.event
async def on_member_join(member):
if cursor.execute(f“SELECT id FROM users WHERE id = {member.id}”).fetchone() is None:
cursor.execute(f“INSERT INTO users VALUES ('{member}', ‘{member.id}’, 0, 0, 1)”)
connection.commit()
else:
pass

@client.command(aliases = )
async def __balance(ctx, member: discord.Member = None):
if member is None:
await ctx.send(embed = discord.Embed(
description = f“”“Баланс Пользователя **{ctx.author}** составляет **{cursor.execute(”SELECT cash FROM users WHERE id = {}".format(ctx.author.id)).fetchone()} :leaves:**“”“
))
else:
await ctx.send(embed=discord.Embed(
description = f”“”Баланс Пользователя **{member}** составляет **{cursor.execute(“SELECT cash FROM users WHERE id = {}”.format(member.id)).fetchone()} :leaves:**“”"
))

client.run(settings)

Офлайн

#2 Ноя. 10, 2021 19:45:59

_Aidar_13
Зарегистрирован: 2021-11-10
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Не работает команда !balance и !cash

когда ввожу !balance выводит ошибку
Ignoring exception in command __balance:
Traceback (most recent call last):
File “C:\Users\User\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\ext\commands\core.py”, line 85, in wrapped
ret = await coro(*args, **kwargs)
File “C:\pythonProject1\DSbot.py”, line 46, in __balance
description = f“”“Баланс Пользователя **{ctx.author}** составляет **{cursor.execute(”SELECT cash FROM users WHERE id = {}".format(ctx.author.id)).fetchone()} :leaves:**“”“
TypeError: ‘NoneType’ object is not subscriptable

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File ”C:\Users\User\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\ext\commands\bot.py“, line 939, in invoke
await ctx.command.invoke(ctx)
File ”C:\Users\User\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\ext\commands\core.py“, line 863, in invoke
await injected(*ctx.args, **ctx.kwargs)
File ”C:\Users\User\AppData\Local\Programs\Python\Python310\lib\site-packages\discord\ext\commands\core.py", line 94, in wrapped
raise CommandInvokeError(exc) from exc
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: TypeError: ‘NoneType’ object is not subscriptable

Офлайн

#3 Ноя. 10, 2021 19:46:22

_Aidar_13
Зарегистрирован: 2021-11-10
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Не работает команда !balance и !cash

кто шарит помогите

Офлайн

#4 Ноя. 11, 2021 10:50:43

_Aidar_13
Зарегистрирован: 2021-11-10
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Не работает команда !balance и !cash

Up

Офлайн

#5 Ноя. 11, 2021 17:28:01

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9716
Репутация: +  842  -
Профиль   Отправить e-mail  

Не работает команда !balance и !cash

Лучше убери f-строки и сделай простые строки. Строй их постепенно. Длинные строки разбивай на несколько коротких. Так ты быстрее и точнее будешь ошибки находить. Да и сами ошибки будут реже появляться в коротких и понятных строках, чем в длинных строках, перегруженных вложенными операциями.

Касаемо отладки ботов (для сервисов типа Telegram, Slack, Discord и подобных), в случае каких-то ошибок нужно сделать так: сделать простейшего бота (без базы данных даже) и запустить его; потом, если бот работает, усложнить его немного (добавить базу данных) и запустить его; потом, если бот работает, усложнить его ещё больше (добавить команд для базы данных) и запустить его; и так далее, пока не дойдёшь до всех сложных операций, которые вызывают ошибки.

Это общий подход при отладке ботов и не только ботов.


tags: debug bot



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version