Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
wiseplat
GitHub Repository: wiseplat/python-code
Path: blob/master/ invest-robot-contest_trading_bot-master/bot/handlers/command_handlers.py
5935 views
1
from main import dp
2
from aiogram.types import Message
3
from bot.keyboards.start_menu_keyboard import get_start_menu
4
from aiogram.dispatcher import FSMContext
5
from aiogram import types
6
import sqlite3 as sl
7
from aiogram.types import InlineKeyboardMarkup, InlineKeyboardButton
8
9
10
'''
11
Выводит приветственный текст при вводе команды /start
12
Добавляет новых пользователей в базу
13
'''
14
15
16
@dp.message_handler(commands="start")
17
async def start_command(message: Message):
18
19
connection = sl.connect("db/BotDB.db")
20
cursor = connection.cursor()
21
22
info = cursor.execute('SELECT * FROM users WHERE user_id=?', (message.from_user.id,))
23
if info.fetchone() is None:
24
user = (
25
message.from_user.id, message.from_user.first_name, message.from_user.last_name, message.from_user.username,
26
"none",
27
"none", "none", "none", "new")
28
cursor.execute("INSERT INTO users (user_id, first_name, last_name, username, token, account_id, account_type, "
29
"account_access, bot_access_level) VALUES(?, ?, ?, ?, ?, ?, ?, ?,?);", user)
30
connection.commit()
31
32
await message.answer("Добро пожаловать в торговый бот!", reply_markup=get_start_menu(message.from_user.id))
33
34
get_token_keyboard = InlineKeyboardMarkup()
35
get_token_keyboard.add(InlineKeyboardButton(text="Выпустить токен", url="https://www.tinkoff.ru/invest/settings"
36
"/api/"))
37
38
await message.answer("Чтобы торговать с помощью бота необходимо выпустить Токен Invest API.\n\n"
39
"Для его выпуска можно перейти по ссылке ниже или самостоятельно зайти на сайт Тинькофф -> "
40
"Инвестиции -> Найстройки -> Создать токен (в самом низу).\n "
41
"\n<b>Типы Токенов</b>\n\n"
42
"<b>Только для чтения</b>: возможно просматривать баланс, состояние портфеля.\n"
43
"<b>Полный доступ</b>: возможно торговать бумагами.", reply_markup=get_token_keyboard)
44
await message.answer("Также бот позволяет торговать в песочнице")
45
46
47
'''
48
Отменяет текущее состояние / возвращает в главное меню
49
'''
50
51
52
@dp.message_handler(state="*", commands="cancel")
53
async def cancel_command(message: types.Message, state: FSMContext):
54
await message.answer("Действие было отменено!", reply_markup=get_start_menu(message.from_user.id))
55
await state.reset_state()
56
57
58
@dp.message_handler(state="*", text="Отмена")
59
async def cancel_command_text(message: types.Message, state: FSMContext):
60
await message.answer("Действие было отменено!", reply_markup=get_start_menu(message.from_user.id))
61
await state.reset_state()
62
63
64
'''
65
Выводит приветственный текст при вводе текста
66
'''
67
68
69
@dp.message_handler(commands="hello")
70
async def hello_command(message: Message):
71
await message.answer(f"Привет, {message.from_user.first_name}! Это торговый бот. Пока я мало что умею, но я хороший!")
72
73
74
'''
75
Выводит текст помощи
76
'''
77
78
79
@dp.message_handler(commands="help")
80
async def help_command(message: Message):
81
await message.answer(f"Короче тут пока ничего нет)")
82
83