ANTICHAT

ANTICHAT (https://forum.antichat.xyz/index.php)
-   Python (https://forum.antichat.xyz/forumdisplay.php?f=205)
-   -   🤖 Bongram Framework - Создай своего Telegram бота за 5 минут (https://forum.antichat.xyz/showthread.php?t=1547164)

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
  • Без зависимостей от баз данных (все в памяти)
  • Готово к продакшену
Зачем это нужно?​Экономьте время: вместо часов разработки — минуты на запуск. Все шаблоны протестированы и готовы к использованию.

Ссылки​Планы​
  • Больше шаблонов
  • Интеграция с базами данных
  • Платежные системы
  • Расширенная аналитика

Цитата:


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


Ну погоди! 27.01.2026 22:39

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

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

Код:





Код:

banned_words = []


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

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

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

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

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

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

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

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

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

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

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

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

triazovkirill 28.01.2026 18:40

Цитата:

Сообщение от Ну погоди!

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

Код:





Код:

banned_words = []


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

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

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

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

riverya4life 31.01.2026 08:10

Цитата:

Сообщение от triazovkirill

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

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

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

Цитата:

Сообщение от riverya4life

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

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

Цитата:

Сообщение от triazovkirill

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

Как раз таки я


Время: 10:43