@Newbie228

Как исправить "TypeError: can only concatenate str (not "datetime.datetime") to str"?

Код:
import discord
from discord.ext import tasks
import sqlite3
import re
from datetime import datetime
# =======================================
#              FIRST LOAD
#========================================
client = discord.Client()

TOKEN = "Секрет"
IdChannel = секрет
prefix = "b"
# Создать таблицу
db = sqlite3.connect('Clan.db')
sql = db.cursor()
sql.execute("""CREATE TABLE IF NOT EXISTS tboss (
    nameboss TEXT,
    death TEXT,
    fresp TEXT,
    resp TEXT,
    respawn TEXT,
    regmemb TEXT,
    timedata TEXT
)""")
db.commit()
current_datetime = datetime.now()
print(datetime.now())
print(current_datetime.hour)
print(current_datetime.minute)

# =======================================
#               RAID BOSS
# =======================================


@tasks.loop(minutes=1)
# Проверка базы и оповещение (не доделал)
async def my_background_task():
    channel = client.get_channel(IdChannel)  
    await channel.send('TEST!')


@my_background_task.before_loop
async def my_background_task_before_loop():
    await client.wait_until_ready()


@client.event
async def on_message(message):

    if message.author == client.user:
        return
    #  Обработка сообщения
    if message.content.startswith(message.content):
        num = [i for i in re.findall('\d+', message.content)]
        stri = [i for i in re.findall('\D+', message.content)]
        print(message.content)
        print(num)
        print(stri)
        mc = message.content
        nameboss = stri[0]  # Имя босса
        death = num[0] + ":" + num[1]  # Смерть босса
        fresp = num[2] + ":" + num[3]  # Первый респ босса
        resp = num[4] + ":" + num[5]  # Интервал респа
        respawn = num[6] + ":" + num[7]  # Время Респа
        regmemb = message.author.name  # Защита от шутников
        timedata = datetime.now()  # Дата заполнения
        if mc.lower() == "помощь" or mc.lower() == "help":
            await message.channel.send('инфо, info - получить информацию по боссам'
                                       'фьюз, fuze - фюзить или не фюзить')
        if mc.lower() == "фьюз" or mc.lower() == "fuze":
            await message.channel.send('Синтезируй 100%')
        elif mc.lower() == "инфо" or mc.lower() == "info":
            # Инфо о боссе
            for value in sql.execute("SELECT * FROM tboss"):
                print(value)
                await message.channel.send("Информация: " + value)
        else:
            if not num:
                await message.channel.send('Ошибка ввода! Вы не ввели Целочисленное данные!')
            if len(num) != 8:
                await message.channel.send('Ошибка ввода! Введены не все данные!')
            # Обновление босса
            if len(num) == 2 and len(stri) >= 1:
                sql.execute(f"UPDATE tboss SET death = '{death}' WHERE nameboss = '{nameboss}'")
                await message.channel.send("Время босса **"+stri[0]+"**скорректировано до:"+num[0]+":"+num[1])
            # Новый босс в системе
            elif len(num) == 8 and len(stri) >= 1:
                await message.channel.send('По логике внесено')
                print('Имя Боса: '+nameboss +
                    " Время смерти: " +death +
                    " Первый респ"+fresp +
                    " Интервал респа"+resp +
                    " Время респа"+respawn +
                    " Последний редактор: "+regmemb +
                    " Дата последнего заполнения "+timedata)
                """ТАБЛИЦА ДОБАВЛЕНИЯ НОВОГО БОССА"""
                mas = (nameboss, death, fresp, resp, respawn, regmemb, timedata)
                await message.channel.send('По логике внесено')
                # Новая запись
                sql.execute(f"SELECT nameboss FROM tboss WHERE nameboss = '{nameboss}'")
                if sql.fetchone() is None:
                    sql.execute(f"INSERT INTO tboss VALUES (?, ?, ?, ?, ?, ?, ?)", (nameboss, death, fresp,
                                                                                    resp, respawn, regmemb, timedata))
                    print("Зарегистрировано")
                else:
                    print("Запись уже есть")

                    for value in sql.execute("SELECT * FROM tboss"):
                        print(value)
                db.commit()
                await message.channel.send('Данные учтены!')
        num.clear()
        stri.clear()

my_background_task.start()
client.run(TOKEN)

Ignoring exception in on_message
Traceback (most recent call last):
  File "F:\DropBot\venv\lib\site-packages\discord\client.py", line 343, in _run_event
    await coro(*args, **kwargs)
  File "F:\DropBot\main.py", line 91, in on_message
    print('Имя Боса: '+nameboss +
TypeError: can only concatenate str (not "datetime.datetime") to str
  • Вопрос задан
  • 256 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы