Максимально простая библиотека для создания Telegram ботов
Project description
Fastgramm
Максимально простая библиотека для Telegram ботов на Python**
📦 Установка
pip install fastgramm
Скопируйте файл fastgramm.py в ваш проект.
from fastgramm import *
🚀 Быстрый старт
from fastgramm import FastGrammBot, snd, btn, ifm
bot = FastGrammBot("YOUR_BOT_TOKEN")
# Создаём кнопку
btn("Привет", snd("Здравствуй!"))
# Реакция на текст
ifm("Как дела?", snd("Хорошо!"))
bot.run()
📚 Полное описание функций
🔧 Основные функции
| Функция | Описание | Пример |
|---|---|---|
FastGrammBot(token) |
Создание бота | bot = FastGrammBot("TOKEN") |
run() |
Запуск бота | bot.run() |
📨 Отправка сообщений
| Функция | Описание | Пример |
|---|---|---|
snd(text) |
Отправить текст | snd("Привет") |
snd(lambda: ...) |
Отправить результат функции | snd(lambda: f"Время {time.time()}") |
last() |
Получить последний текст от пользователя | snd(last()) |
⌨️ Клавиатуры
| Функция | Описание | Пример |
|---|---|---|
btn(name, action) |
Создать одну reply-кнопку | btn("Старт", snd("Начинаем")) |
btns(names, action) |
Создать несколько кнопок с одним действием | btns(["Да","Нет"], snd("Выбрано")) |
clr() |
Убрать reply-клавиатуру | clr() |
inb(msg, btn_text, action) |
Inline-кнопка | inb("Выбери","Нажми",snd("Ок")) |
inbs(msg, *args) |
Несколько inline-кнопок | inbs("Меню","К1 ",snd("1"),"К2",snd("2")) |
🎯 Условные обработчики
| Функция | Описание | Пример |
|---|---|---|
ifm(cond, *actions) |
Выполнить действия при условии | ifm("Привет", snd("И тебе")) |
any |
Любое сообщение | ifm(any, snd("Эхо: "+last())) |
🖼️ Медиа
| Функция | Описание | Пример |
|---|---|---|
pic(url) |
Отправить фото | pic("https://example.com/photo.jpg") |
pic("file.jpg") |
Фото из локального файла | pic("cat.jpg") |
vid(url) |
Отправить видео | vid("video.mp4") |
sticker(file_id) |
Отправить стикер | sticker("CAACAgIAAxkB...") |
location(lat, lon) |
Геолокация | location(55.75, 37.62) |
album(photos) |
Альбом фотографий | album(["1.jpg","2.jpg"]) |
✏️ Редактирование и удаление
| Функция | Описание | Пример |
|---|---|---|
edit(new_text) |
Редактировать последнее сообщение бота | edit("Новый текст") |
edit_delay(seconds, new_text) |
Редактировать с задержкой | edit_delay(3, "Через 3 сек") |
edit_to_last(seconds=0) |
Редактировать в текст пользователя | edit_to_last(2) |
dlt() |
Удалить последнее сообщение бота | dlt() |
dlt_delay(seconds) |
Удалить с задержкой | dlt_delay(5) |
⏰ Таймеры и периодические действия
| Функция | Описание | Пример |
|---|---|---|
wait(seconds, action) |
Задержка (блокирующая) | wait(3, snd("Готово")) |
after(seconds, action) |
Асинхронная задержка | after(5, snd("Прошло 5 сек")) |
every(seconds, action) |
Повторять каждые N секунд | every(60, snd("Прошла минута")) |
every_at(time_str, action) |
Повторять в определённое время | every_at("09:00", snd("Доброе утро!")) |
🎮 Примеры использования
Пример 1: Эхо-бот с клавиатурой
from fastgramm import FastGrammBot, snd, btn, ifm, any, last
bot = FastGrammBot("TOKEN")
btn("Помощь", snd("Я эхо-бот. Просто напиши что-нибудь"))
ifm(any, snd(lambda: f"Ты написал: {last()}"))
bot.run()
Пример 2: Бот с инлайн-меню
from fastgramm import FastGrammBot, snd, btn, inbs, clr
bot = FastGrammBot("TOKEN")
def main_menu():
inbs("Главное меню",
"Профиль", snd("Имя: Пользователь"),
"Настройки", snd("Настройки пока не готовы"),
"Выход", clr()
)
btn("Меню", main_menu)
btn("Назад", main_menu)
bot.run()
Пример 3: Отложенные действия
from fastgramm import FastGrammBot, snd, btn, after, edit, dlt
bot = FastGrammBot("TOKEN")
btn("Временное сообщение",
snd("Это сообщение исчезнет через 3 секунды"),
dlt_delay(3)
)
btn("Отложенный ответ",
after(5, snd("Привет через 5 секунд!"))
)
btn("Редактор",
snd("Старый текст"),
after(3, edit("Новый текст!"))
)
bot.run()
Пример 4: Медиа бот
from fastgramm import FastGrammBot, snd, btn, pic, album
bot = FastGrammBot("TOKEN")
btn("Котик", pic("https://cataas.com/cat"))
btn("Альбом", album(["photo1.jpg", "photo2.jpg", "photo3.jpg"]))
btn("Моя геолокация", location(55.751244, 37.618423))
bot.run()
Пример 5: Полноценный бот-помощник
from fastgramm import (
FastGrammBot, snd, btn, ifm, any,
last, clr, inb, after
)
bot = FastGrammBot("TOKEN")
# Приветствие
ifm("/start",
snd("👋 Привет! Я бот-помощник.\nИспользуй /help для списка команд"),
btn("Помощь", snd("/help - справка\n/about - о боте"))
)
# Справка
ifm("/help", snd("📋 Команды:\n/start - начать\n/about - о боте\n/clear - очистить"))
# О боте
ifm("/about", snd("🤖 Бот создан на Fastgram v1.0.2\nПростая библиотека для Telegram ботов"))
# Очистка клавиатуры
ifm("/clear", clr())
# Подтверждение действия
def confirm():
inb("Вы уверены?", "Да", snd("Действие выполнено"))
inb("Вы уверены?", "Нет", clr())
btn("Важное действие", confirm)
# Эхо (для всего остального)
ifm(any, snd(lambda: f"📝 Эхо: {last()}"))
bot.run()
⚠️ Важные замечания
-
Порядок инициализации — сначала определите все
ifmи кнопки, затем вызовитеbot.run() -
Функция
last()— работает только внутри обработчиковifmи действий кнопок -
edit()иdlt()— работают только с последним сообщением, отправленным ботом -
after()иevery()— работают асинхронно, не блокируют основной поток -
wait()— блокирует выполнение, используйтеafter()для неблокирующих задержек -
Кнопки — после вызова
clr()клавиатура удаляется, кнопки нужно создавать заново
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fastgramm-1.0.3.tar.gz.
File metadata
- Download URL: fastgramm-1.0.3.tar.gz
- Upload date:
- Size: 6.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5a3063e59439e72168b0c2092762c0eabab5b9540a2dfd19321ef7b571be7792
|
|
| MD5 |
7861a2cee3eb6e21d4d802ea427bf894
|
|
| BLAKE2b-256 |
c526fed23f9d23c64f8ddcc0cad76f69b9367ffb9bd63f0b7a732ecfdc63047f
|
File details
Details for the file fastgramm-1.0.3-py3-none-any.whl.
File metadata
- Download URL: fastgramm-1.0.3-py3-none-any.whl
- Upload date:
- Size: 6.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3029948415c92bc6e40d6963016830eb33234e0a5c90d65c4afbef7b09db5cc7
|
|
| MD5 |
109c42a3f487f05151fe804c0bc24f0c
|
|
| BLAKE2b-256 |
f3febff65f86b95f0088f6b88c9184e4101852f18629d8fea0845ca4b42fe0a2
|