Не работает выборка из базы telegram bot python по ссылке start

Пишу бота, где можно добавлять свои желания в список и удалять их. Хочу сделать возможность делиться своим списком с другими юзерами. Чтобы бот выдал ссылку на твои желания, человек нажавший на эту ссылку, увидел в боте твои желания. НО, почему то выборка не делается. Проблема в обработчике команды /start {user_id} , как понимаю? Подскажите, где я торможу?

Сам бот trxwish_bot

import logging
from aiogram import Bot, Dispatcher, types
from aiogram.contrib.fsm_storage.memory import MemoryStorage
from aiogram.dispatcher import FSMContext
from aiogram.dispatcher.filters import Command
from aiogram.dispatcher.filters.state import State, StatesGroup
from aiogram.types import InlineKeyboardMarkup, InlineKeyboardButton
import sqlite3

# Настройки бота
API_TOKEN = 'TOKEN'

# Настройки базы данных
DB_FILE = 'wishlist.db'

# Инициализация бота и диспетчера
bot = Bot(token=API_TOKEN)
storage = MemoryStorage()
dp = Dispatcher(bot, storage=storage)

# Инициализация логгера
logging.basicConfig(level=logging.INFO)

# Создание подключения к базе данных
conn = sqlite3.connect(DB_FILE)
cursor = conn.cursor()

# Создание таблицы для списка желаний, если она не существует
cursor.execute('''CREATE TABLE IF NOT EXISTS wishlist (
                    id INTEGER PRIMARY KEY AUTOINCREMENT,
                    user_id INTEGER,
                    wish TEXT)''')
conn.commit()

# Класс состояний для добавления желания
class AddWish(StatesGroup):
    waiting_for_wish = State()

# Класс состояний для удаления желания
class DeleteWish(StatesGroup):
    waiting_for_wish_id = State()

# Обработчик команды /start
@dp.message_handler(commands=['start'])
async def start(message: types.Message):
    await show_main_menu(message)

# Функция для отображения главного меню
async def show_main_menu(message: types.Message):
    keyboard = InlineKeyboardMarkup(row_width=1)
    keyboard.add(InlineKeyboardButton('Добавить желание', callback_data='add_wish'))
    keyboard.add(InlineKeyboardButton('Просмотреть список желаний', callback_data='view_wishlist'))
    keyboard.add(InlineKeyboardButton('Поделиться списком', callback_data='share_wishlist'))
    await message.reply("Привет! Это бот для списка желаний.", reply_markup=keyboard)

# Обработчик команды /add_wish
@dp.message_handler(commands=['add_wish'])
async def add_wish(message: types.Message):
    await message.reply("Введите свое желание:")
    await AddWish.waiting_for_wish.set()

# Обработчик текстового сообщения (желания)
@dp.message_handler(state=AddWish.waiting_for_wish)
async def process_wish(message: types.Message, state: FSMContext):
    user_id = message.from_user.id
    wish = message.text

    # Добавление желания в базу данных
    cursor.execute("INSERT INTO wishlist (user_id, wish) VALUES (?, ?)", (user_id, wish))
    conn.commit()

    await message.reply("Желание успешно добавлено!")
    await state.finish()

# Обработчик команды /view_wishlist
@dp.message_handler(commands=['view_wishlist'])
async def view_wishlist(message: types.Message):
    user_id = message.from_user.id

    # Получение списка желаний пользователя из базы данных
    cursor.execute("SELECT id, wish FROM wishlist WHERE user_id=?", (user_id,))
    wishlist = cursor.fetchall()

    if wishlist:
        keyboard = InlineKeyboardMarkup(row_width=1)
        for wish in wishlist:
            keyboard.add(InlineKeyboardButton(wish[1], callback_data=f'delete_wish:{wish[0]}'))
        await message.reply("Ваш список желаний:", reply_markup=keyboard)
    else:
        await message.reply("Ваш список желаний пуст.")

# Обработчик команды /share_wishlist
@dp.message_handler(commands=['share_wishlist'])
async def share_wishlist(message: types.Message):
    user_id = message.from_user.id

    # Получение списка желаний пользователя из базы данных
    cursor.execute("SELECT id FROM wishlist WHERE user_id=?", (user_id,))
    wishlist = cursor.fetchall()

    if wishlist:
        
        share_link = f"https://t.me/trxwish_bot?start={user_id}"
        await message.reply(f"Поделитесь своим списком желаний:\n{share_link}")
    else:
        await message.reply("Ваш список желаний пуст.")


"""
@dp.message_handler(commands=['view_wishlist'])
async def view_wishlist(message: types.Message):
    user_id = message.from_user.id

    # Получение списка желаний пользователя из базы данных
    cursor.execute("SELECT wish FROM wishlist WHERE user_id=?", (user_id,))
    wishlist = cursor.fetchall()

    if wishlist:
        wishes = "\n".join([f"- {wish[0]}" for wish in wishlist])
        await message.reply(f"Список желаний:\n{wishes}")
    else:
        await message.reply("Ваш список желаний пуст.")
"""


# Обработчик команды /start {user_id}
@dp.message_handler(commands=['start'])
async def view_shared_wishlist(message: types.Message):
    wishlist_id = message.get_args().split()[1]

    # Получение списка желаний из базы данных
    cursor.execute("SELECT wish FROM wishlist WHERE user_id=?", (wishlist_id,))
    wishlist = cursor.fetchall()

    if wishlist:
        wishes = "\n".join([f"- {wish[0]}" for wish in wishlist])
        await message.reply(f"Список желаний:\n{wishes}")
    else:
        await message.reply("Список желаний не найден.")

# Обработчик нажатия на кнопку в меню
@dp.callback_query_handler(lambda c: True)
async def process_callback_button(callback_query: types.CallbackQuery):
    if callback_query.data == 'add_wish':
        await callback_query.message.answer("Введите свое желание:")
        await AddWish.waiting_for_wish.set()
    elif callback_query.data == 'view_wishlist':
        user_id = callback_query.from_user.id

        # Получение списка желаний пользователя из базы данных
        cursor.execute("SELECT id, wish FROM wishlist WHERE user_id=?", (user_id,))
        wishlist = cursor.fetchall()

        if wishlist:
            keyboard = InlineKeyboardMarkup(row_width=1)
            for wish in wishlist:
                keyboard.add(InlineKeyboardButton(wish[1], callback_data=f'delete_wish:{wish[0]}'))
            await callback_query.message.answer("Ваш список желаний:", reply_markup=keyboard)
        else:
            await callback_query.message.answer("Ваш список желаний пуст.")
    elif callback_query.data == 'share_wishlist':
        user_id = callback_query.from_user.id

        # Получение списка желаний пользователя из базы данных
        cursor.execute("SELECT id FROM wishlist WHERE user_id=?", (user_id,))
        wishlist = cursor.fetchall()

        if wishlist:
            wishlist_id = wishlist[0][0]
            share_link = f"https://t.me/trxwish_bot?start={user_id}"
            await callback_query.message.answer(f"Поделитесь своим списком желаний:\n{share_link}")
        else:
            await callback_query.message.answer("Ваш список желаний пуст.")
    elif callback_query.data.startswith('delete_wish:'):
        wish_id = callback_query.data.split(':')[1]

        # Удаление желания из базы данных
        cursor.execute("DELETE FROM wishlist WHERE id=?", (wish_id,))
        conn.commit()

        if cursor.rowcount > 0:
            await callback_query.message.answer("Желание успешно удалено!")
        else:
            await callback_query.message.answer("Желание не найдено.")

    await callback_query.answer()

# Обработчик неизвестной команды
@dp.message_handler()
async def unknown_command(message: types.Message):
    await show_main_menu(message)

# Запуск бота
if __name__ == '__main__':
    from aiogram import executor

    executor.start_polling(dp, skip_updates=True)

Ответы (0 шт):