Бот написан на библиотеке telebot. При выполнении следующего кода:
import telebot
from telebot import types
import sqlite3
import asyncio
#Функция возвращающая количество совпадений объекта с элементами таблицы
async def matches(file, table, column, id):
x = 0
with sqlite3.connect(file) as db:
cursor = db.cursor()
await cursor.execute(f"SELECT {column} FROM {table}")
for i in cursor.fetchall():
for y in i:
if y == id:
x += 1
return x
#Функция добавления строки в таблицу
async def add(file, table, columns, values):
with sqlite3.connect(file) as db:
cursor = db.cursor()
await cursor.execute(f"INSERT INTO {table}({columns}) VALUES ({values})")
#Функция для регистрации нового пользователя
async def registration(file, table, column, id, columns, values):
if matches(file, table, column, id) == 0:
await add(file, table, columns, values)
print("YES")
else:
print("NO")
def start(message):
registration("Data.db", "MainData", "id", message.chat.id, "id, name, wallet, role", f"{message.from_user.id}, 'none', 0, 0")
async def start_main(message):
start(message)
async def main():
@bot.message_handler(commands=["start"])
await x = asyncio.create_task(startq(message))
asyncio.run(main())
bot.polling(none_stop=True)
Выдаёт следщую ошибку:
Traceback (most recent call last):
File "/data/user/0/ru.iiec.pydroid3/files/accomp_files/iiec_run/iiec_run.py", line 31, in <module> start(fakepyfile,mainpyfile)
File "/data/user/0/ru.iiec.pydroid3/files/accomp_files/iiec_run/iiec_run.py", line 30, in start
exec(open(mainpyfile).read(), __main__.__dict__)
File "<string>", line 40
await x = asyncio.create_task(startq(message))
^
SyntaxError: invalid syntax
[Program finished]
Я новичок в программировании, знаю что зря полез в такие дебри как асинхронное программирование (я тот же sqlite выучил за 1 день), но мне очень нужна помощь. Если вы дадите какие-то совесть по оформлению или синтаксу кода, я буду вам нереально благодарен.