Если указанные данные в базе данных в столбце steamid64 совпадают с значением steamid64 который отправляет другой бот, берется записанный ранее айдишник пользователя из базы данных, и ему отправляется какой либо текст.
В общем это система уведомлений и парсес который откликается на записанные данные steamid64 которые отправляет другой бот, если значение steamid64 совпадает - то он ищет человека с записанным userid ( и в одной строке рядом с userid находится steamid64) и отправляет сообщение в ЛС пользователю, только не могу понять как мне это сделать.
bot.py
class SteamID(StatesGroup):
SID = State()
class SteamIDD(StatesGroup):
SID = State()
conn = sqlite3.connect('data_base2.db')
cur = conn.cursor()
@dp.message_handler(state=SteamIDD.SID)
async def delete_account_procces(message:types.Message,state:FSMContext):
steamid = message.text.split(';')
steamid64 = steamid[0]
with sqlite3.connect('data_base2.db') as c:
c.execute ("DELETE FROM data_base2 WHERE steamid64 = ?;", [steamid64])
await message.answer("Выполнено. Аккаунт удален.")
await state.finish()
@dp.message_handler(commands="delaccount", state='*')
async def delete_account_procces(message: types.Message):
with sqlite3.connect("data_base2.db") as c:
check = c.execute("SELECT userid FROM data_base2 WHERE userid = ?", (message.from_user.id,)).fetchone()
if check is None:
await message.answer(f'<b>❌ У вас нет доступных аккаунтов для удаления.</b>')
else:
await message.answer(f'У вас имеются добавленные аккаунты, <b>Вы точно хотите перейти в меню удаления?</b>', reply_markup=kbs.delMenu)
@dp.message_handler(state=SteamID.SID)
async def add_account_procces(message:types.Message,state:FSMContext):
steamid = message.text.split(';')
steamid64 = steamid[0]
with sqlite3.connect('data_base2.db') as c:
c.execute('INSERT INTO data_base2 VALUES(?,?)',(message.from_user.id,steamid64))
check = c.execute("SELECT userid FROM data_base2 WHERE steamid64 = ?;", [steamid64]).fetchone()
if check is None:
await message.answer(f"<b>✅ Готово.</b>\n\nАккаунт <i>{steamid64}</i> был успешно добавлен\n\nСписок ваших аккаунтов: /list\n\nКаждый раз, когда на этот аккаунт будет выпадать дроп, вам будут отправляться сообщения от этого бота.")
else:
await message.answer(f'❌ Такой аккаунт уже есть добавлен, возможно Вы его уже добавили.\n\nСписок ваших аккаунтов: /list', reply_markup=kbs.snovaMenu)
await state.finish()
@dp.message_handler(commands="addaccount", state='*')
async def add_account_command(message: types.Message):
with sqlite3.connect("data_base2.db") as c:
check = c.execute("SELECT userid FROM data_base2 WHERE userid = ?", (message.from_user.id,)).fetchone()
if check is None:
await message.answer(f'<b>У вас нет доступных аккаунтов для отслеживания.</b>\n\nЕсли Вы хотите добавить аккаунт для отслеживания, то нажмите кнопку "✅ Добавить" под этим сообщением ', reply_markup=kbs.addMenu)
else:
await message.answer(f'<b>У вас уже добавлен аккаунт/аккаунты.</b>\n\nЕсли Вы хотите добавить ещё аккаунты для отслеживания, то нажмите кнопку "✅ Добавить" под этим сообщением ', reply_markup=kbs.addMenu)
@dp.message_handler(commands="list")
async def infocheck(message:types.Message):
with sqlite3.connect("data_base2.db") as c:
check = c.execute("SELECT userid FROM data_base2 WHERE userid = ?", (message.from_user.id,)).fetchone()
if check is None:
await message.answer(f'<b>У вас нет доступных аккаунтов для отслеживания.</b>\n\nЕсли Вы хотите добавить аккаунт для отслеживания, то напишите команду /addaccount')
user = c.execute(f"SELECT * FROM data_base2 WHERE userid = {message.chat.id}").fetchall()
for infouser in user:
await message.answer(f'<b>Ваши аккаунты:</b>'\
f'\n\n'\
f'{infouser[1]}')
async def search_userid(message: types.Message):
con = sqlite3.connect("data_base2.db")
cursor = con.execute("SELECT userid FROM data_base2 WHERE userid = ?", (message.from_user.id,)).fetchone()
if cursor is None:
conn.close()
return None
else:
conn.close()
idt = cursor[0]
return idt