Телеграм бот на aiogram 3
Шукаю програміста для написання Telegram бота на python. Бот повинен буде читати чати, в які його додали. Реагувати на деякі повідомлення, виконувати деякі обчислення і писати результат у чат.
Навички:
- aiogram 3
- postgresql і вміти в архітектуру баз даних
- docker, docker compose, потрібно вміти піднімати базу і апку на VM. У нашому випадку буде hetzner. Ну і детальне логування прикрутити.
- ton api (потрібно буде прикрутити поповнення балансу через ton, я там з усіма нюансами підкажу якщо що)
Тепер більш детальне ТЗ, щоб ви могли оцінити роботу за часом і ціною (та ціна, що я вказав за проект, нічого не означає)
У мене є файловий структура, взяв її з одного з своїх проектів, трохи почистив зайве і навіть почав писати моделі. Але вирішив, що краще віддам на аутсорс цю роботу. Якщо ви хочете робити з 0 або у вас є свої сетапи, то це навіть краще, головне, щоб проект мав потенціал до масштабування. Приблизно такі таблиці в базі: користувачі, чати, партії_ігри_1, партії_ігри_2, транзакції поповнення, запити на вивід
/start повертає повідомлення:
Привіт <ім'я>
Ваш баланс: 1000
Клавіатура під повідомленням:
- Оновити баланс
- Додати в чат(не пам'ятаю, чи можна викликати модалку, яка додає бота у ваш чат)
- Як використовувати
- Поповнити
- Запросити вивід
Кнопка: Як використовувати змінює текст повідомлення і робить клавіатуру з кнопкою «назад».
Повідомлення:
"Це бот для гри в монетку або кості. Для гри потрібно:
1. Бот доданий у чат (ніякі права йому давати не потрібно)
2. У кожного з гравців запущений цей бот
...правила ігор..."
Кнопка: Додати в чат - зрозуміло з назви))
Кнопка: Оновити баланс - просто редагує повідомлення, виводячи актуальний баланс
Кнопка: Поповнити - змінює текст на:
"Щоб поповнити баланс, надішліть TON на адресу: <адреса гаманця> з comment: <унікальний id для поповнення>
Курс обміну 1 TON = 100 Points"
Кнопка: Запросити вивід - відправляємо повідомлення "Напишіть суму Points, яку хочете вивести (при виводі стягується 10% комісії на розвиток проекту)"
читаємо вхідні повідомлення, обробляємо варіант, якщо не вистачає балансу
якщо все ок, то відправляємо повідомлення "вкажіть гаманець, на який здійснити вивід"
перевіряємо його на валідність, якщо все ок, кнопка "Запросити вивід" буде кнопкою "Скасувати вивід", а в /start повідомленні з'являється сума виводу і дата найближчого дропа
Кнопка: Скасувати вивід - змінюємо повідомлення на "Ви впевнені, що хочете скасувати вивід" клавіатура: так, ні
Гра 1 монетка
Гравець 1 пише:
Решка 10
(10 кількість поінтів, на які буде гра)
Гравець 2 відповідає на його повідомлення:
Граю / го / (список відповідей)
Після цього випадковим чином вибирається, випав орел чи решка, і відповідно до результату з балансу одного гравця бали переходять на баланс другого. Це супроводжується
повідомленням:
Решка 🪙
<ім'я програвшого> =10=> <ім'я вигравшого>
Гра 2 кості
Гравець 1 пише:
Кубик 10
Гравець 2 відповідає на його повідомлення:
Граю / го / (список відповідей)
Після цього ми чекаємо від кожного гравця повідомлення з емоджі кубика, дивимося, у кого більше, відповідно до результату з балансу одного гравця бали переходять на баланс другого. Це супроводжується
повідомленням:
Кубик 🎲
<ім'я програвшого> =<кількість балів>=> <ім'я вигравшого>
(дуже сподіваюся, що там емоджі з різним результатом кубика має різний код, але якщо не вийде отримати результат, обійдемося трохи іншою текстовою логікою)
Також можливі варіанти від Гравця 1:
Парне 10 (тут гра теж 50/50, у кого парне, у кого непарне)
Більше2 10 (тут, наприклад, гравець 1 виграє в 2/3 випадків, відповідно, 1 гравець при виграші отримає 10, а гравець 2 при виграші забере 20) тут багато варіантів, типу Менше3, Більше 5 і т.д.
При додаванні в чат, бот повинен робити все, що описано в повідомленні про те, як грати. Якщо на балансі одного з гравців недостатньо поінтів - бот просто нічого не робить, але надсилає йому в діалог повідомлення про це. Рішення неоднозначне, але не бачу сенсу засмічувати чат, а права на видалення повідомлень відрізають частину аудиторії.
Після закінчення кожної партії переможцю в бота приходить повідомлення про виграш
Якщо на повідомлення гравця 1 не відповідають 5 хвилин, воно "деактивується"
Додаткові вимоги
Потрібно написати нормальний README.md з усіма нюансами установки і запуску докера
Всі тексти повинні бути винесені в json
Повинна бути нормальна структура проекту (без файлів по 300 рядків)
Все, що потрібно, винесено в .env, в ідеалі мати dev і prod конфіги
Тексти повідомлень, назви кнопок і всі ці шляхи навігації винесу кудись типу міро, щоб було зручніше дивитися
Відгук замовника про співпрацю з Roman Isaienkov
Телеграм бот на aiogram 3Все добре, продовжуємо співпрацювати
Відгук фрилансера про співпрацю з Pavlo Zelinskiy
Телеграм бот на aiogram 3Добрий замовник! Рекомендую до роботи
-
93800 1267 1 10 Привіт. Є великий досвід у розробці телеграм-ботів. Готовий реалізувати на Python або Node.js
-
1582 37 3 1 Доброго дня. Мав досвід роботи з подібним стеком технологій.
В профілі можете подивитися, що мав роботи як з дискорд ботами, в яких робив міні ігри, так і телеграм ботами.
В своїх проектах використовую TortoiseORM, для роботи з PostgreSQL, код буде максимально просто читатися. Також є знання в архітектурах проектів та SOLID.
Буду радий співпрацювати!
-
10123 117 0 Привіт.
Розробляю ботів для телеграму на NodeJS. Готовий взятися. Пишіть, обговоримо.
Актуальні фриланс-проєкти в категорії Python
Створити бот в телеграм (кабінет продавця)
700 UAH
Всім привіт Потрібен особистий кабінет користувача в форматі бота в телеграм Після запуску та проходження опитування, під користувача створюється особистий кабінет (його допускає в систему на подальші кнопки) Щоб до кожного хто зареєструвався висвічувалося в окремому меню… Python, Розробка ботів ∙ 1 день тому ∙ 91 ставка |
Знайти товарний фід (Google Merchant XML) для сайту на OpenCart
700 UAH
Необхідно знайти пряме посилання на діючий товарний фід (XML) конкурента для Google Merchant Center Платформа (CMS): OpenCart / ocStore Знайти оригінальний фідВимоги до результату: Робоче посилання на XML-файл Python, Парсинг даних ∙ 1 день 10 годин тому ∙ 21 ставка |
Розробка Тік-Ток ферми (контент-завод)Необхідно розробити систему для централізованого управління кількома TikTok-акаунтами з автоматичною публікацією контенту, використанням індивідуальних проксі та імітацією природної активності акаунтів. Функціональні вимоги1. Управління акаунтами Додавання та видалення… Python, Розробка ботів ∙ 1 день 21 година тому ∙ 18 ставок |
Покращити роботу Claude Code та роботу з написанням програмного забезпеченняЗараз розробляю СРМ та Аналітику, софт. Роблю через Клод Код, але розумію, що результати не найкращі в плані змін. Є 2 задачі - Потрібно допомогти зробити пресет по навичкам, мд і так далі, щоб покращити якість. Взяти перевірені, з якими працювали, а не з інтернету перші. - В… AI та машинне навчання, Python ∙ 2 дні 4 години тому ∙ 23 ставки |
Система OCRПотрібна система розпізнавання тексту на поштових конвертах (індекс кому - лише числа). Текст інколи може бути рукописним Розпізнавання марок (підрахунок кількості та номіналу) Python ∙ 2 дні 7 годин тому ∙ 25 ставок |