Создание telegram-бота на Aiogram 3 | Система регистрации #1

  Переглядів 10,724

KsqWeb

KsqWeb

День тому

Это первое видео из цикла по созданию телеграм бота на языке Python, с помощью библиотеки aiogram 3.
В этом видео создадим простую систему регистрации, используя машинное состояние.
Поработаем с регулярными выражениями, а также с библиотекой sqlite3 для хранения данных.
00:00 - Результат
00:20 - Создание бота в botFather
00:40 - Создание проекта и импорт библиотек
01:42 - Создания переменных окружения
02:06 - Создание основного файла main.py
04:35 - Создание приветственного сообщения для админа
05:09 - Первый запуск
05:19 - Создание структуры бота
05:49 - Создание "меню" в боте
07:02 - Обработчик команды /start
09:38 - Создание первой кнопки "Зарегистрироваться"
11:00 - Создание класса машинного состояния при регистрации
11:37 - Создание обработчика регистрации
21:21 - Работа с sqlite3 создание класса для работы с базой данных
26:40 - Добавления пользователя в базу данных
28:08 - Условия для проверки регистрации
31:49 - Финальное тестирование

КОМЕНТАРІ: 110
@jackzet32114
@jackzet32114 2 місяці тому
Это действительно прекрасный урок. Музыка,интонация,временые промежутки, без воды и всё по теме. Пожалуйста не бросай делать видео и продолжай в том же духе!
@user-rt6lr8fq2c
@user-rt6lr8fq2c 2 місяці тому
Вот смотрит народ всяких ХАуДиХО и думает что все это сложно , а вот талант здесь объясняет... Поставил бы лайков сколько сил бы хватило на мышку нажимать, умничка, для тех у кого есть небольшие знания это видео прям мастхэв, главное, что каждый шаг объясняешь, это очень хорошо
@Ksq_web
@Ksq_web 2 місяці тому
Спасибо большое за такой комментарий 🤗
@akimerslys
@akimerslys 3 місяці тому
Вау, просто вау, всё структурировано, аккуратно ну прям глаз радует. Автор просто легенда! Уместить в 32 минуты столько полезных тем одним дублем. Точно лучший практический гайд по aiogram!
@Ksq_web
@Ksq_web 3 місяці тому
Прям засмущали, спасибо)
@Mr_Joker_Shaw
@Mr_Joker_Shaw 3 місяці тому
Супер! Хорошая подача, всё понятно и информативно, благодарю!
@ggoolick
@ggoolick 2 місяці тому
Очень помогло разобраться во многих моментах. У тебя очень классный подход, ты молодец) Спасибо за видео)
@user-dc2qk9hh3x
@user-dc2qk9hh3x 4 місяці тому
Прекрасный урок, в качестве практики работы с aiogram заходит на ура
@AlexAlex-cb9em
@AlexAlex-cb9em 2 місяці тому
Вы умничка, подписка и лайк в поддержку канала 👍
@user-gh9iq5dm9b
@user-gh9iq5dm9b 3 місяці тому
Молодец,мне с первых минут ролика зашло👍👍👍
@sergey_ra
@sergey_ra 21 день тому
Только начал смотреть - сразу влюбился - во всё!) ❤ Лайк-подписка автоматически!)) Пошел дальше, обязательно вернусь и буду вникать наслажаясь музыкой, милая девушка. Спасибо Вам за труды просвещательные!) ❤❤❤
@Ksq_web
@Ksq_web 8 днів тому
Большое спасибо, засмущали 😍
@user-go9lt9qj6y
@user-go9lt9qj6y 3 місяці тому
Отличный ролик радует что он достаточно информативный
@spudiborn
@spudiborn 2 місяці тому
Блин, это... глубоко. Очень упорядоченно. С другой стороны я, как человек совершенно не ИТ профиля, делающий проект на инициативе для спасибо и саморазвития, получил стакан холодной водички в лицо. После других гайдов с ютуба, обучающих делать практически бесполезный мусор на базе телебот, это ощущается гораздо совершеннее, сложнее и функциональнее. Короче не понял большую часть ) Надеюсь за пару дней доразберусь и адаптирую под свои задачи. Спасибо, пойду дальше уговаривать дух машины под пафосную музыку.
@user-is2ps2ce5m
@user-is2ps2ce5m 4 місяці тому
Спасибо за твои труды, за кота отдельный лайк👍
@Ksq_web
@Ksq_web 4 місяці тому
Большое спасибо за обратную связь) Подписывайтесь, будет больше котов)
@user-fv9uk1ty8o
@user-fv9uk1ty8o 4 місяці тому
Не затягивай с видео! Нравится твой стиль кода
@Ksq_web
@Ksq_web 4 місяці тому
Спасибо за обратную связь😇, подписывайтесь, сегодня постараюсь выложить следующее видео
@hithrv
@hithrv 3 місяці тому
Крутотень! Спасибо большое!
@user-hf1nh3ji9r
@user-hf1nh3ji9r 2 місяці тому
музыка на фоне просто пушка
@Storks40
@Storks40 3 місяці тому
Класс! Давно хотел такое увидеть. Много осталось непонятным. Но очень полезно видеть как создаются такие боты.
@Ksq_web
@Ksq_web 3 місяці тому
Распишите, пожалуйста, что Вам конкретно непонятно) На ютубе ооочень много видео по созданию ботов, но обычно авторы таких видео ограничиваются разбором отдельного функционала. В этом плейлисте собраны видео именно по созданию бота, который был заказан.
@Storks40
@Storks40 3 місяці тому
@@Ksq_web спасибо за приглашение. Если начну всё спрашивать будет очень много вопросов). Только учусь и сделал несколько ботов c модудем telebot. На aiogram несколько другой подход. Я потихоньку вникаю. На stepike есть хороший курс по aiogram, кажется, даже бесплатный. Спрошу несколmко общих вопросов. Что должен делать этот бот в целом? Как-то планируете структуру модулей бота вначале или это уже на автомате из головы. И почему так мало комментов по ходу кода? Потом у заказчика не возникает вопросов? Ведь он позже должен на сервере бота запустить и поддерживать. Или это тоже вы делаете?
@Ksq_web
@Ksq_web 3 місяці тому
Этот бот осуществляет запись игроков на игры по футболу(пользователи записываются на матч, администраторы отслеживают матчи и статистику игроков) Структуру ботов необходимо продумывать с самого начала, но так как "решилась" записывать для ютуба буквально одномоментно, структура подвергается корректировкам в процессе видео. Для заказчика естественно все "разжёвывается" более досконально, но так как весь процесс показан в видео, дополнительных комментариев по коду оставлять не совсем логично. Деплойд на сервер тоже осуществляю я. И в дальнейшем будет видео по этому вопросу
@Storks40
@Storks40 3 місяці тому
@@Ksq_web спасибо !
@Munchen888
@Munchen888 3 місяці тому
Хорошее видео ❤ )
@alexgoodkid7312
@alexgoodkid7312 4 місяці тому
Добрый день, видео понравилось. Было бы неплохо в начале озвучить поставленную задачу и дальше её реализация) Когда ждать следующее видео?)
@Ksq_web
@Ksq_web 4 місяці тому
Здравствуйте, спасибо за обратную связь. Следующее видео планирую выпустить до Нового года.
@unhost
@unhost 29 днів тому
28:05 Ух, как же захотелось в Mass Effect переиграть..
@safi5546
@safi5546 Місяць тому
Очень классное и информативное видео😊👍. Подскажите пожалуйста в каком видео улучшили код и добавили функцию выхода пользователя из состояний на 17:15, чтобы можно было заново пройти регистрацию. Если не сложно и тайм код указать.🙏.
@user-rp5vz5iq3m
@user-rp5vz5iq3m 4 місяці тому
Если бы ещё более подробно по aiogram сделали видео, например, что для чего нужно (почему такая структура папок в проекте, рассказали про фильтры, машину состояний и т.д.). А то не всегда понятно зачем такая сложность пр сравнению с telebot (понятно что при росте проекта будет потом проще). А так спасибо!
@Ksq_web
@Ksq_web 4 місяці тому
Спасибо за мнение, обязательно учту
@Munchen888
@Munchen888 4 місяці тому
Это можно назвать - расброс по пакетам. В пакет __init__ как правило можно все из модуля импортировать ( from . import ), а можно и не все
@GoodDobryachok
@GoodDobryachok 4 місяці тому
Классное видео
@Ksq_web
@Ksq_web 4 місяці тому
Спасибо)
@athreefu9151
@athreefu9151 3 місяці тому
Все текста удобнее хранить в отдельном словаре, а так в целом не плохо
@user-jg4er9rt6y
@user-jg4er9rt6y 2 місяці тому
А чем Register отличается от Router?
@Ju8Sho
@Ju8Sho Місяць тому
Почему не используешь router?
@iimoonii6522
@iimoonii6522 5 місяців тому
классное видео, классная библиотека, но почему вы нигде не используете аргумент chat_id, чтобы не произошло фатальных ошибок типа: соощение которое бот должен был отправить в один чат, а отправил в другой. (до этоо писал только с помощью телебот поэтому появился вопрос)
@Ksq_web
@Ksq_web 5 місяців тому
Здравствуйте, Вы совершенно правы, спасибо за обратную связь, во втором видео использую send.message и исправила в уже написанном коде )
@alexandrkolosov8481
@alexandrkolosov8481 2 місяці тому
В 3 версии апдейты пропускаются через удаление вебхуков напрямую
@user-bw9bb6mm4f
@user-bw9bb6mm4f 3 місяці тому
Очень хорошая подача,подписался))Вопрос сколько примерно можно брать за такого бота?
@Ksq_web
@Ksq_web 3 місяці тому
Спасибо за обратную связь, в зависимости от заказчика от 2к до 8к
@loyscan
@loyscan 2 місяці тому
Привет! А вы где то учились или самообразование исключительно?
@aleksandr9761
@aleksandr9761 20 днів тому
вопросик, пробую ваш метод, но вот set_commands не вызывает кнопки, нет ошибки, но и ничего не вносит в бот. возможно чтото с версией поменялось, и стало так
@Ksq_web
@Ksq_web 8 днів тому
Возможно, необходимо просто подожлать)
@aleksandr9761
@aleksandr9761 7 днів тому
@@Ksq_web не, там просто в корень папки нужно было __init__ создать. Все ок)
@ivantolkachenko
@ivantolkachenko 4 місяці тому
я так понимаю мне в ручную нужно было создать таблицу? она теперь есть, и в ней записались данные кроме id и все та же ошибка Ошибка при создании: near ";": syntax error
@Ksq_web
@Ksq_web 4 місяці тому
Внимательно смотрите на SQL запрос, в нем синтаксическая ошибка: он не понимает ";"
@pushkaqwesdd
@pushkaqwesdd 3 місяці тому
тётя все очень чётенько
@Ksq_web
@Ksq_web 3 місяці тому
Тётя довольна, спасибо
@muscle7
@muscle7 2 місяці тому
в admin_id нужно писать свой id в тг или это просто рандомные числа?
@Ksq_web
@Ksq_web 2 місяці тому
Свой telegram_id)
@warriorofdarkness6636
@warriorofdarkness6636 Місяць тому
обрый день, делаете боты под заказ?
@user-ke1jd7ey4w
@user-ke1jd7ey4w 16 днів тому
Как с вами связаться?
@aligame9100
@aligame9100 4 місяці тому
Подскажите где admin_id в .env откуда берем.
@aligame9100
@aligame9100 4 місяці тому
От id bot ошибка выходить бот не может писать боту Свою id тоже ошибка bad request
@Ksq_web
@Ksq_web 4 місяці тому
Здравствуйте, с помощью бота getmyid_bot. Зайдите в него и он направит Вам telegram_id
@aligame9100
@aligame9100 4 місяці тому
@@Ksq_web Спс нашел
@user-wb9wn6vy4g
@user-wb9wn6vy4g 2 місяці тому
Привет дошел до запуска бота по видео, бот не запускается( что не так?
@Ksq_web
@Ksq_web 2 місяці тому
Здравствуйте, что конкретно выдает в терминале?
@andrewv.7663
@andrewv.7663 3 місяці тому
Можете подсказать - создатель бота получает IP пользователя телеграм?
@Ksq_web
@Ksq_web 3 місяці тому
Здравствуйте, нет
@propaganda_Real_Sport
@propaganda_Real_Sport 3 місяці тому
Запускаю бота, пишу верный формат телефона ,выдает ошибку что формат не вернынй подскажите пожалуйсто?
@Ksq_web
@Ksq_web 3 місяці тому
Возможно допущена ошибка, проверьте re.findall('^\+?[7][-\(]?\d{3}\)?-?\d{3}-?\d{2}-?\d{2}$', message.text)
@propaganda_Real_Sport
@propaganda_Real_Sport 3 місяці тому
@@Ksq_web не идет, может я вам скину в тг код, сможете помочь?
@Ksq_web
@Ksq_web 3 місяці тому
@ksqweb
@Hetnews-studion
@Hetnews-studion Місяць тому
Жиза когда ты на vs code и тут pycharm 😂
@OdWars
@OdWars 22 дні тому
Нет особой разницы. Но Вскод конечно более универсальный
@Wildberries-article
@Wildberries-article 3 місяці тому
У меня вылазит ошибка: Failed building wheel for multidict ERROR: Could not build wheels for multidict, which is required to install pyproject.toml-based projects, я только начинаю во всем этом разбираться, погуглил, ничего не помогает, эта ошибка вылазит только при импорте aiogram, пробывал telebot, с ним все хорошо, если мне кто-нибудь подскажет, будет замечательно
@Ksq_web
@Ksq_web 3 місяці тому
Одна из причин возникновения ошибки - версия Python, которую Вы используете, попробуйте установить более раннюю версию, например, Python 3.11
@Wildberries-article
@Wildberries-article 3 місяці тому
Спасибо огромное, помогло @@Ksq_web
@spudiborn
@spudiborn 2 місяці тому
@@Ksq_web о, только сегодня с этим столкнулся. Жаль что комменты чекнул уже после того как чуть не сломал мышку и поползал по интернету.
@spudiborn
@spudiborn 2 місяці тому
откат на 3.11.7 помог
@klAi_05
@klAi_05 Місяць тому
А если умеешь делать простых ботов на telebot то проблем с пониманием не будет ?
@ThePirateHistory
@ThePirateHistory 3 місяці тому
Я дальше видосы не смотрел, но всё же лучше инициализировать бдшку в мэйне а не в функции записи телефона. А проверку на сущ юзера запихнуть в декторатор
@Munchen888
@Munchen888 3 місяці тому
Бдшку в мэйне. Под нее лучше отдельный пакет. В мэйне не надо все мешать. Тут только должен запускаться скрипт(бот).
@ThePirateHistory
@ThePirateHistory 3 місяці тому
@@Munchen888 ну тогда не бдшку а storage, в мейне не мешаются, а инициализируются основные вещи, по типу логера, сторэджа, и так далее, само собой тот самый луп что будет держать проект
@0_mxd_0
@0_mxd_0 4 місяці тому
Вместо того чтобы лезть в тг чтобы брать эмодзи, лучше использовать win + ".", что вызовет "эмодзи-клавиатуру" Ps - инструкция выше работает если вы на Windows 10, на остальных версиях не знаю
@0_mxd_0
@0_mxd_0 4 місяці тому
Ps. Ролик зашёл, нужно бы загуглить про папки, как их правильно назвать/сортировать. Отдельно спасибо за кота :-D
@Ksq_web
@Ksq_web 4 місяці тому
большое спасибо, не знала, учту на будущее)
@hardy6909
@hardy6909 3 місяці тому
Мои глаза умирают, когда я вижу как расположены импорты и строки по 100+ символов в длину
@Ksq_web
@Ksq_web 3 місяці тому
Учту в следующих видео здоровье Ваших глаз
@Faybmi
@Faybmi 2 місяці тому
​@@Ksq_web😂
@Emiya-Shirro
@Emiya-Shirro Місяць тому
у меня вылазит много ошибок ( File "C:\Users\Shu\Desktop\2\pythonProject\venv\Lib\site-packages\aiogram\dispatcher\event\handler.py", line 43, in call return await wrapped() ^^^^^^^^^^^^^^^ File "C:\Users\Shu\Desktop\2\pythonProject\handlers egister.py", line 13, in start_register await message.answer(f"{users[1]} Вы уже зарегистрированы") ~~~~~^^^ IndexError: tuple index out of range)
@Ksq_web
@Ksq_web Місяць тому
Вы уверены, что у Вас присутствует users[1] ?
@Emiya-Shirro
@Emiya-Shirro Місяць тому
@@Ksq_web да, если ставлю вместо 1 0, пишет 1 Вы уже зарегистрированы
@Emiya-Shirro
@Emiya-Shirro Місяць тому
@@Ksq_web ссылка на бота
@dmitriytchemodakoff80
@dmitriytchemodakoff80 24 дні тому
Как же задолбала фоновая музыка... Без неё никак нельзя?
@Ksq_web
@Ksq_web 7 днів тому
Никак :(
@OdWars
@OdWars 22 дні тому
Сорри, но Рутуб - это помойка редкая и лагающая. Туда я не то что не подпишусь, туда я даже не зайду. Ютуб установлен в каждом телевизоре
@user-mw3xg8jr5d
@user-mw3xg8jr5d 6 днів тому
Не знаю как у кого? Кто-то пишет что все получилось, спасибо, мило. А у меня дает ошибку C:\Users\Acer\Desktop\Обучение\Python\Python Bot\main.py:11: DeprecationWarning: Passing `parse_mode`, `disable_web_page_preview` or `protect_content` to Bot initializer is deprecated. This arguments will be removed in 3.5.0 version Use `default=DefaultBotProperties(...)` instead. bot = Bot(token=token, parse_mode='HTML') Traceback (most recent call last): File "C:\Users\Acer\Desktop\Обучение\Python\Python Bot\main.py", line 26, in asyncio.run(start()) File "C:\Python\lib\asyncio unners.py", line 44, in run return loop.run_until_complete(main) File "C:\Python\lib\asyncio\base_events.py", line 646, in run_until_complete return future.result() File "C:\Users\Acer\Desktop\Обучение\Python\Python Bot\main.py", line 21, in start await dp.start_polling(bot, skip_updates=True) File "C:\Python\lib\site-packages\aiogram\dispatcher\dispatcher.py", line 526, in start_polling await self.emit_startup(bot=bots[-1], **workflow_data) File "C:\Python\lib\site-packages\aiogram\dispatcher outer.py", line 242, in emit_startup await self.startup.trigger(*args, **kwargs) File "C:\Python\lib\site-packages\aiogram\dispatcher\event\event.py", line 42, in trigger await handler.call(*args, **kwargs) File "C:\Python\lib\site-packages\aiogram\dispatcher\event\handler.py", line 43, in call return await wrapped() File "C:\Users\Acer\Desktop\Обучение\Python\Python Bot\main.py", line 15, in start_bot await bot.send_message(admin_id, text='Я зарустил бота') File "C:\Python\lib\site-packages\aiogram\client\bot.py", line 2823, in send_message return await self(call, request_timeout=request_timeout) File "C:\Python\lib\site-packages\aiogram\client\bot.py", line 492, in __call__ return await self.session(self, method, timeout=request_timeout) File "C:\Python\lib\site-packages\aiogram\client\session\base.py", line 254, in __call__ return cast(TelegramType, await middleware(bot, method)) File "C:\Python\lib\site-packages\aiogram\client\session\aiohttp.py", line 178, in make_request response = self.check_response( File "C:\Python\lib\site-packages\aiogram\client\session\base.py", line 120, in check_response raise TelegramBadRequest(method=method, message=description) aiogram.exceptions.TelegramBadRequest: Telegram server says - Bad Request: chat_id is empty Хотя кто его знает Я только начал изучать Python и еще не во многом разбираюсь, но дается тяжело много ошибок выскакивает и не только так сказать орфограыических. Process finished with exit code 1
@Ksq_web
@Ksq_web 6 днів тому
Сергей, здравствуйте, ну тут же написано, из-за чего ошибка) Когда записывала это видео версия aiogram была другая, произошло это из-за того, что изменили немного parse_mode, теперь необходимо задавать по другому)) Cначала импортируйте: from aiogram.client.bot import DefaultBotProperties потом определите parse_mode по другому bot = Bot(token=token, default=DefaultBotProperties(parse_mode=ParseMode.HTML))
@Ksq_web
@Ksq_web 6 днів тому
Не стесняйтесь, задавайте вопросы, и у Вас все получиться)
@megadog39
@megadog39 2 місяці тому
Добрый день, ребят у меня тут на 9:16 произошла ошибочка, при вводе команды /start, она во первых не выводит ничего, ну это понятно потому что в терминале появляется ошибка (ОЧЕНЬ ДЛИННАЯ ОШИБКА) Что с ней делать, я не знаю, но хотелось бы разобраться здесь, и желательно как можно быстрее) Там где ***** это числа айтишники, хз можно нельзя их сюда вводить поэтому пусть будет так Сама ошибка вот: Cause exception while process update id=******** by bot id=******** TypeError: aiogram.dispatcher.router.Router.propagate_event() got multiple values for keyword argument 'update_type' Traceback (most recent call last): File "/Users/andrey./PycharmProjects/FabricSimulator/.venv/lib/python3.12/site-packages/aiogram/dispatcher/middlewares/error.py", line 25, in __call__ return await handler(event, data) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/andrey./PycharmProjects/FabricSimulator/.venv/lib/python3.12/site-packages/aiogram/dispatcher/middlewares/user_context.py", line 27, in __call__ return await handler(event, data) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/andrey./PycharmProjects/FabricSimulator/.venv/lib/python3.12/site-packages/aiogram/fsm/middleware.py", line 41, in __call__ return await handler(event, data) ^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/andrey./PycharmProjects/FabricSimulator/.venv/lib/python3.12/site-packages/aiogram/dispatcher/event/telegram.py", line 121, in trigger return await wrapped_inner(event, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/andrey./PycharmProjects/FabricSimulator/.venv/lib/python3.12/site-packages/aiogram/dispatcher/event/handler.py", line 43, in call return await wrapped() ^^^^^^^^^^^^^^^ File "/Users/andrey./PycharmProjects/FabricSimulator/.venv/lib/python3.12/site-packages/aiogram/dispatcher/dispatcher.py", line 276, in _listen_update return await self.propagate_event(update_type=update_type, event=event, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ TypeError: aiogram.dispatcher.router.Router.propagate_event() got multiple values for keyword argument 'update_type' During handling of the above exception, another exception occurred: Traceback (most recent call last): File "/Users/andrey./PycharmProjects/FabricSimulator/.venv/lib/python3.12/site-packages/aiogram/dispatcher/dispatcher.py", line 309, in _process_update response = await self.feed_update(bot, update, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/andrey./PycharmProjects/FabricSimulator/.venv/lib/python3.12/site-packages/aiogram/dispatcher/dispatcher.py", line 158, in feed_update response = await self.update.wrap_outer_middleware( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/andrey./PycharmProjects/FabricSimulator/.venv/lib/python3.12/site-packages/aiogram/dispatcher/middlewares/error.py", line 29, in __call__ response = await self.router.propagate_event( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ TypeError: aiogram.dispatcher.router.Router.propagate_event() got multiple values for keyword argument 'update_type'
@Ksq_web
@Ksq_web 2 місяці тому
Пришлите, пожалуйста, участок кода, хэндлера /start :)
@Lite_Ride
@Lite_Ride 4 місяці тому
Привет мог бы ты скинуть свой тг или вк,я хочу тебе задать пару вопросов мне интересно просто очень
@Ksq_web
@Ksq_web 4 місяці тому
Во-первых, я девушка) Во-вторых, можете задать вопрос здесь, я отвечу)
@Lite_Ride
@Lite_Ride 4 місяці тому
@@Ksq_web ну во первых сколько тебе лет если не секрет,во вторых сколько ты зарабатываешь на ботах и можешь кинуть платформу откуда берешь задания,в третьих как долго ты этим занимаешся(программированием и ботами)
@Ksq_web
@Ksq_web 4 місяці тому
@@Lite_Ride , 25 лет, зайдите на биржу kwork и посмотрите сколько стоит бот) думаю, вы поймете, сколько можно на них заработать)😇
@Storks40
@Storks40 3 місяці тому
@@Ksq_web По голосу гораздо моложе)
@Storks40
@Storks40 3 місяці тому
@@Ksq_web а какой ваш ник на kwork? Там цены очень разные.
I PUT MY ARMOR ON (Creeper) (PG Version)
00:19
Sam Green
Переглядів 3,4 млн
Китайка и Мармеладный Лего😂😆
00:19
KITAYSKAYA ZMEYKA
Переглядів 2,3 млн
Как создать телеграмм бот без навыков программирования
15:01
Николай Черных - Чат-бот для бизнеса
Переглядів 9
Создание Telegram ботов на AIOGRAM 3.4 | 1 УРОК
12:04
$ sudo teach IT ⚙️
Переглядів 17 тис.
Создание telegram-бота. Python
28:06
Давайте программировать!
Переглядів 87
I PUT MY ARMOR ON (Creeper) (PG Version)
00:19
Sam Green
Переглядів 3,4 млн