Path: blob/master/ invest-robot-contest_trading_bot-master/bot/handlers/command_handlers.py
5935 views
from main import dp1from aiogram.types import Message2from bot.keyboards.start_menu_keyboard import get_start_menu3from aiogram.dispatcher import FSMContext4from aiogram import types5import sqlite3 as sl6from aiogram.types import InlineKeyboardMarkup, InlineKeyboardButton789'''10Выводит приветственный текст при вводе команды /start11Добавляет новых пользователей в базу12'''131415@dp.message_handler(commands="start")16async def start_command(message: Message):1718connection = sl.connect("db/BotDB.db")19cursor = connection.cursor()2021info = cursor.execute('SELECT * FROM users WHERE user_id=?', (message.from_user.id,))22if info.fetchone() is None:23user = (24message.from_user.id, message.from_user.first_name, message.from_user.last_name, message.from_user.username,25"none",26"none", "none", "none", "new")27cursor.execute("INSERT INTO users (user_id, first_name, last_name, username, token, account_id, account_type, "28"account_access, bot_access_level) VALUES(?, ?, ?, ?, ?, ?, ?, ?,?);", user)29connection.commit()3031await message.answer("Добро пожаловать в торговый бот!", reply_markup=get_start_menu(message.from_user.id))3233get_token_keyboard = InlineKeyboardMarkup()34get_token_keyboard.add(InlineKeyboardButton(text="Выпустить токен", url="https://www.tinkoff.ru/invest/settings"35"/api/"))3637await message.answer("Чтобы торговать с помощью бота необходимо выпустить Токен Invest API.\n\n"38"Для его выпуска можно перейти по ссылке ниже или самостоятельно зайти на сайт Тинькофф -> "39"Инвестиции -> Найстройки -> Создать токен (в самом низу).\n "40"\n<b>Типы Токенов</b>\n\n"41"<b>Только для чтения</b>: возможно просматривать баланс, состояние портфеля.\n"42"<b>Полный доступ</b>: возможно торговать бумагами.", reply_markup=get_token_keyboard)43await message.answer("Также бот позволяет торговать в песочнице")444546'''47Отменяет текущее состояние / возвращает в главное меню48'''495051@dp.message_handler(state="*", commands="cancel")52async def cancel_command(message: types.Message, state: FSMContext):53await message.answer("Действие было отменено!", reply_markup=get_start_menu(message.from_user.id))54await state.reset_state()555657@dp.message_handler(state="*", text="Отмена")58async def cancel_command_text(message: types.Message, state: FSMContext):59await message.answer("Действие было отменено!", reply_markup=get_start_menu(message.from_user.id))60await state.reset_state()616263'''64Выводит приветственный текст при вводе текста65'''666768@dp.message_handler(commands="hello")69async def hello_command(message: Message):70await message.answer(f"Привет, {message.from_user.first_name}! Это торговый бот. Пока я мало что умею, но я хороший!")717273'''74Выводит текст помощи75'''767778@dp.message_handler(commands="help")79async def help_command(message: Message):80await message.answer(f"Короче тут пока ничего нет)")818283