PDA

Просмотр полной версии : 🤖 Bongram Framework - Создай своего Telegram бота за 5 минут


triazovkirill
18.01.2026, 18:29
Привет всем! Представляю Bongram — фреймворк для быстрого создания Telegram-ботов на готовых шаблонах.

Что это?​Bongram позволяет запустить бота одной командой, без написания кода. Выбираете шаблон, указываете токен — бот готов.

13 готовых шаблонов​
Support — бот поддержки с админ-панелью

FAQ — база знаний с поиском

Giveaway — розыгрыши и конкурсы

Polling — опросы и голосования

Newsletter — массовые рассылки

Booking — бронирование времени

Quiz — викторины с рейтингом

Referral — реферальная программа

Feedback — сбор отзывов и оценок

Reminder — персональные напоминания

File Manager — файловый менеджер

Moderator — модерация групп

Payment Splitter — разделение счетов
Быстрый старт​



pip install bongram
bongram support YOUR_BOT_TOKEN


Готово. Бот работает.

Примеры использования​



bongram faq YOUR_BOT_TOKEN
bongram giveaway YOUR_BOT_TOKEN
bongram polling YOUR_BOT_TOKEN


Технологии​
Python 3.8+

aiogram 3.0

Без зависимостей от баз данных (все в памяти)

Готово к продакшену
Зачем это нужно?​Экономьте время: вместо часов разработки — минуты на запуск. Все шаблоны протестированы и готовы к использованию.

Ссылки​
GitHub: https://github.com/THWEDOKA/bongram

PyPI: https://pypi.org/project/bongram/

Документация: в README на GitHub
Планы​
Больше шаблонов

Интеграция с базами данных

Платежные системы

Расширенная аналитика




Пишите вопросы и предложения. Готов к обсуждению и улучшениям.

Ну погоди!
27.01.2026, 22:39
Ну, если делаешь на публику - соблюдай модульность и архитектуру проекта, даже для темплейтов.

Также, например, в https://github.com/THWEDOKA/bongram/blob/main/bongram/templates/moderator/bot.py - Бот модератор, ты слова проверяешь через список:

Код:






banned_words = []




Алгоритм антимата/заблокированных слов должен парсить строку с конца предложения, так как матерные слова в основном в конце предложения

Он должен исключать символы знаков препинания, восклицательные, вопросительные и любые другие символы

Он должен сжимать повторяющие буквы и приводить их к общему знаменателю, к примеру олеееень > олень > olehb

"Ты похож на олеееня"

"Ты похож на олеееня"

"Ты похож на олеееня"

"Ты похож на олееня"

"Ты похож на оленя"

"Ты похож на оленя"

"Ты похож на оленя"

"Ты похож на оленя" > ищем слово олень > "oleny"

В питоне есть profanity библиотеки, посмотри как это там устроенно

triazovkirill
28.01.2026, 18:40
Ну, если делаешь на публику - соблюдай модульность и архитектуру проекта, даже для темплейтов.
Также, например, в https://github.com/THWEDOKA/bongram/blob/main/bongram/templates/moderator/bot.py - Бот модератор, ты слова проверяешь через список:

Код:






banned_words = []




Алгоритм антимата/заблокированных слов должен парсить строку с конца предложения, так как матерные слова в основном в конце предложения
Он должен исключать символы знаков препинания, восклицательные, вопросительные и любые другие символы
Он должен сжимать повторяющие буквы и приводить их к общему знаменателю, к примеру олеееень > олень > olehb

"Ты похож на олеееня"
"Ты похож на олеееня"
"Ты похож на олеееня"
"Ты похож на олееня"
"Ты похож на оленя"
"Ты похож на оленя"
"Ты похож на оленя"
"Ты похож на оленя" > ищем слово олень > "oleny"

В питоне есть profanity библиотеки, посмотри как это там устроенно


Спасибо за уточнение, делал первую версию фреймворка так чтобы было много темплейтов, поэтому с ними не особо парился

riverya4life
31.01.2026, 08:10
Спасибо за уточнение, делал первую версию фреймворка так чтобы было много темплейтов, поэтому с ними не особо парился


Привет Кирюха, для тебя специально настрочил, коряво конечно, но работает:

Python:






import
re
{
"ban_words"
:
[
"чучмек*"
,
# чучмеки, чучмеку и т.д.
"гeю*"
,
# геюга к примеру
"негр*"
,
# негры, негритосики, негру и т.д.
]
}
# условно хранишь слова в json там где то
def
prepare_pattern
(
word
:
str
)
-
>
re
.
Pattern
:
word
=
word
.
lower
(
)
if
word
.
endswith
(
"*"
)
:
base
=
re
.
escape
(
word
[
:
-
1
]
)
pattern
=
rf'\b{base}[а-яёa-z]*\b'
else
:
pattern
=
rf'\b{re.escape(word)}\b'
return
re
.
compile
(
pattern
,
re
.
IGNORECASE
|
re
.
UNICODE
)
ban_patterns
=
[
prepare_pattern
(
w
)
for
w
in
ban_words
]
def
contains_banned
(
text
:
str
)
-
>
bool
:
return
any
(
pat
.
search
(
text
)
for
pat
in
ban_patterns
)




Ну или вот так, как у меня в боте было с автомодом, самый ахуенный:

Python:






import
re

BAN_WORDS
=
[
"чучмек*"
,
# чучмеки, чучмеку и т.д.
"гeю*"
,
# геюга к примеру
"негр*"
,
# негры, негритосики, негру и т.д.
]
PATTERNS
=
[
re
.
compile
(
rf'\b{re.escape(w[:-1] if w.endswith("*") else w)}'
rf'{"[а-яёa-z]*" if w.endswith("*") else ""}\b'
,
re
.
IGNORECASE
|
re
.
UNICODE
)
for
w
in
map
(
str
.
lower
,
BAN_WORDS
)
]
def
is_banned
(
text
:
str
)
-
>
bool
:
return
any
(
p
.
search
(
text
)
for
p
in
PATTERNS
)

triazovkirill
03.02.2026, 09:52
Привет Кирюха, для тебя специально настрочил, коряво конечно, но работает:

Python:






import
re
{
"ban_words"
:
[
"чучмек*"
,
# чучмеки, чучмеку и т.д.
"гeю*"
,
# геюга к примеру
"негр*"
,
# негры, негритосики, негру и т.д.
]
}
# условно хранишь слова в json там где то
def
prepare_pattern
(
word
:
str
)
-
>
re
.
Pattern
:
word
=
word
.
lower
(
)
if
word
.
endswith
(
"*"
)
:
base
=
re
.
escape
(
word
[
:
-
1
]
)
pattern
=
rf'\b{base}[а-яёa-z]*\b'
else
:
pattern
=
rf'\b{re.escape(word)}\b'
return
re
.
compile
(
pattern
,
re
.
IGNORECASE
|
re
.
UNICODE
)
ban_patterns
=
[
prepare_pattern
(
w
)
for
w
in
ban_words
]
def
contains_banned
(
text
:
str
)
-
>
bool
:
return
any
(
pat
.
search
(
text
)
for
pat
in
ban_patterns
)




Ну или вот так, как у меня в боте было с автомодом, самый ахуенный:

Python:






import
re

BAN_WORDS
=
[
"чучмек*"
,
# чучмеки, чучмеку и т.д.
"гeю*"
,
# геюга к примеру
"негр*"
,
# негры, негритосики, негру и т.д.
]
PATTERNS
=
[
re
.
compile
(
rf'\b{re.escape(w[:-1] if w.endswith("*") else w)}'
rf'{"[а-яёa-z]*" if w.endswith("*") else ""}\b'
,
re
.
IGNORECASE
|
re
.
UNICODE
)
for
w
in
map
(
str
.
lower
,
BAN_WORDS
)
]
def
is_banned
(
text
:
str
)
-
>
bool
:
return
any
(
p
.
search
(
text
)
for
p
in
PATTERNS
)





меня кто то знает, ничего себе, а это не ты мне помогал с музыкальным ботом? Спасибо за код

riverya4life
03.02.2026, 12:14
меня кто то знает, ничего себе, а это не ты мне помогал с музыкальным ботом? Спасибо за код


Как раз таки я