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()клавиатура удаляется, кнопки нужно создавать заново
Metadata
Release files for fastgramm 1.0.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| fastgramm-1.0.3.tar.gz | 6.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| fastgramm-1.0.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 13.5 kB
Release files / fastgramm-1.0.3.tar.gz
| Download URL | fastgramm-1.0.3.tar.gz |
|---|---|
| Size | 6.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5a3063e59439e72168b0c2092762c0eabab5b9540a2dfd19321ef7b571be7792
|
|
BLAKE2b-256 checksum How to use checksums |
c526fed23f9d23c64f8ddcc0cad76f69b9367ffb9bd63f0b7a732ecfdc63047f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.3
|
Release files / fastgramm-1.0.3-py3-none-any.whl
| Download URL | fastgramm-1.0.3-py3-none-any.whl |
|---|---|
| Size | 6.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3029948415c92bc6e40d6963016830eb33234e0a5c90d65c4afbef7b09db5cc7
|
|
BLAKE2b-256 checksum How to use checksums |
f3febff65f86b95f0088f6b88c9184e4101852f18629d8fea0845ca4b42fe0a2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.11.3
|