Реализовать интерфейс для телеграм бота на python и aiogram-dialog

3 000 руб. за проект
30 июня 2024, 08:18 • 7 откликов • 87 просмотров


Необходимо реализовать интерфейс для выставления ордеров на нескольких аккаунтах
По сути уже есть масштабный код, который работает с биржей(подключение, ордера, позиции)
и будет отправлять по сокетам свое состояние (какое количество сейчас исполнено, какое осталось выставить, инфо по позициям)
на так называемый WsServer, который принимает команды из тг и отправлет эти команды по сокетам на код для работы с биржей
Саму функцию работы с биржей и выставление ордеров реализовывать НЕ НАДО
Сокетная часть уже тоже есть
нужно просто вызвать функцию с параметрами, которые ввел пользователь
т.е. формально код сервера состоит из 2-ух частей: код телеграмм бота для приема команд от пользователя и отображения текущей информации по аккаунтами
и код сервера, который передает инфо между тг ботом и аккаунтами (прослойка)
вот вам надо реализовать тг интерфейс
Я это вижу как таблицу из кнопок, где каждый аккаунт - это отдельная строка
Каждая строка содержит 4 кнопки: название аккаунта, цена, количество, статус
первые три - чисто для отображения информации
по клику на кнопку статус происходит отправка команды на:
1) выставление ордеров (нужно спросить у пользователя цену и количество с подтверждением)
2) отмену выставления (если уже была отправлена команда на выставление и бот взял ее в работу)
функция кнопеи зависит от надписи на ней (Стоп Старт и тд)
Под строками с аккаунтами еще две кнопки: позиции и баланса
По нажатию на каждую из них надо вывести инфо по позициям и балансу
Вся эта информация будет храниться в поле clients класса WSServer
class WSServer():
clients: typing.List[ClientInfo] = []

# вот такую функцию надо будет ПРОСТО ВЫЗВАТЬ, когда пользователь ввел и подтвердил цену и количество для выставления
# или сделал запрос отмены
async def send_to_client(self, account_name: str, price: float= None, amount: float = None, cancel: bool = False)

Информация обновляется по сокетам и в clients всегда будет обновленная информация о каждом клиенте
вам надо будет просто брать уже готовую информацию из wsserver.clients и вставлять ее в таблицу

Более детально в картиночке:
Файлы