Опана всем привет

: )
Решил черкануть вам статейку про создание телеграм ботов с 0.
Что будет уметь наш бот?
Бот будет отвечать приветствием на команду
'/start' и выводить время при вводе команды
'/time'.
Какие библиотеки мы будем использовать?
Aiogram - Библиотека для работы с ботом.
Datetime - С помощью неё мы узнаем время.
Начнем
Создаем папку с нашим проектом.
Добавляем туда файл main.py.
Импортируем библиотеки, я обычно заморачиваюсь и создаю папку 'utils' где храняться все второстепенные файлы, но новичкам советую не мудрить и импортировать все в main.
imports.py:
Python:
from aiogram import Bot, Dispatcher, executor, types
import datetime
from utils.token import *
Далее добавляем файл
'token.py' в котором будет храниться токен нашего бота.
token.py:
Токен бота можно получить создав его в "
" (no ad)
Файлы проекта:
main.py
utils ->
import.py, token.py.
Перейдем в main.py, импортируем туда наши импорты:
main.py:
Python:
from utils.imports import *
Создаем бота, добавляем в него токен, а также диспетчер.
main.py:
Python:
from utils.imports import *
bot = Bot(token = TOKEN)
dp = Dispatcher(bot)
Создаем хендлер на команду
'/start'
main.py:
Python:
from utils.imports import *
bot = Bot(token = TOKEN)
dp = Dispatcher(bot)
@dp.message_handler(commands=['start'])
async def start (message: types.Message):
await bot.send_message(message.from_user.id, "Приветствую тебя в боте, forum -> https://anonymcheats.ru/")
Добавим конструкцию
"if __name__ == '__main__' "
main.py:
Python:
from utils.imports import *
bot = Bot(token = TOKEN)
dp = Dispatcher(bot)
@dp.message_handler(commands=['start'])
async def start (message: types.Message):
await bot.send_message(message.from_user.id, "Приветствую тебя в боте, forum -> https://anonymcheats.ru/")
if __name__ == '__main__':
executor.start_polling(dp, skip_updates=True)
Проверяем...
И о чудо бот отвечает нам сообщением.
Теперь надо реализовать получение и вывод времени:
Создадим функцию
'get_time', в которой будем получать время в перемнную
'time':
main.py:
Python:
def get_time():
global time
time = datetime.datetime.now()
Далее сделаем хендлер на команду /time:
main.py:
Python:
@dp.message_handler(commands=['time'])
async def time (message: types.Message):
get_time()
str_time = str(time)
await bot.send_message(message.from_user.id, f"Сейчас: {str_time}, forum -> https://anonymcheats.ru/")
Немного проясьню, сначала мы вызываем функцию 'get_time', далее после того как в нашу переменную сохранилось значение времени переобразуем ее в str(строку), дабы мы смогли вывести это в телеграмме.
Проверяем:
FULL_CODE-main.py:
Python:
from utils.imports import *
bot = Bot(token = TOKEN)
dp = Dispatcher(bot)
@dp.message_handler(commands=['start'])
async def start (message: types.Message):
await bot.send_message(message.from_user.id, "Приветствую тебя в боте, forum -> https://anonymcheats.ru/")
def get_time():
global time
time = datetime.datetime.now()
@dp.message_handler(commands=['time'])
async def time (message: types.Message):
get_time()
str_time = str(time)
await bot.send_message(message.from_user.id, f"Сейчас: {str_time}, forum -> https://anonymcheats.ru/")
if __name__ == '__main__':
executor.start_polling(dp, skip_updates=True)
src ->
Вот и все, огромное спасибо если прочитал статью, я старался).