HOME FORUMS MEMBERS RECENT POSTS LOG IN  
× Авторизация
Имя пользователя:
Пароль:
Нет аккаунта? Регистрация
Баннер 1   Баннер 2
НОВЫЕ ТОРГОВАЯ НОВОСТИ ЧАТ
loading...
Скрыть
Вернуться   ANTICHAT > ПРОГРАММИРОВАНИЕ > Python
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #1  
Старый 07.11.2025, 23:49
MrApostolAngels
Новичок
Регистрация: 26.10.2023
Сообщений: 15
С нами: 1343521

Репутация: 3
По умолчанию

Бот Moderator с управлением чата, участников.

Выдача рангов администрации взято под основу как у Iris

Установка бота

moder.py откройте в блокноте замените токен на свой!

Где взять токен?

Перейдите в бота @BotFather, создайте бота в нем и скопируйте ваш токен.

Запуск бота!

Распакуйте архив в любое для вас удобное место, установите последнию версию Python

Установите зависимости для бота в командной строке

pip install python-telegram-bot

пароль от архива: 123123
 
Ответить с цитированием

  #2  
Старый 08.11.2025, 14:54
dask
Участник форума
Регистрация: 06.12.2024
Сообщений: 105
С нами: 757887

Репутация: 23
По умолчанию

Цитата:
Сообщение от MrApostolAngels  

Бот Moderator с управлением чата, участников.

Выдача рангов администрации взято под основу как у Iris

Установка бота

moder.py откройте в блокноте замените токен на свой!

Где взять токен?

Перейдите в бота @BotFather, создайте бота в нем и скопируйте ваш токен.

Запуск бота!

Распакуйте архив в любое для вас удобное место, установите последнию версию Python

Установите зависимости для бота в командной строке

pip install python-telegram-bot

пароль от архива: 123123

 
Ответить с цитированием

  #3  
Старый 08.11.2025, 15:02
MrApostolAngels
Новичок
Регистрация: 26.10.2023
Сообщений: 15
С нами: 1343521

Репутация: 3
По умолчанию

Цитата:
Сообщение от dask  
?

Цитата:
Сообщение от dask  
Если ты про то что там канал то пиши @useryoufi1
 
Ответить с цитированием

  #4  
Старый 08.11.2025, 15:24
dask
Участник форума
Регистрация: 06.12.2024
Сообщений: 105
С нами: 757887

Репутация: 23
По умолчанию

Цитата:
Сообщение от MrApostolAngels  

?

Если ты про то что там канал то пиши @useryoufi1
я про то что ты не указал
 
Ответить с цитированием

  #5  
Старый 08.11.2025, 15:25
MrApostolAngels
Новичок
Регистрация: 26.10.2023
Сообщений: 15
С нами: 1343521

Репутация: 3
По умолчанию

Цитата:
Сообщение от dask  

я про то что ты не указал
А зачем мне указывать это мой телеграм
 
Ответить с цитированием

  #6  
Старый 08.11.2025, 15:27
dask
Участник форума
Регистрация: 06.12.2024
Сообщений: 105
С нами: 757887

Репутация: 23
По умолчанию

Цитата:
Сообщение от MrApostolAngels  

А зачем мне указывать это мой телеграм
ladno
 
Ответить с цитированием

  #7  
Старый 08.11.2025, 15:43
vindarix
Познающий
Регистрация: 07.11.2025
Сообщений: 72
С нами: 273762

Репутация: 0
По умолчанию

Отличный пример говнокода. Всё сделано через одно место.

Во-первых, вся логика и обработка команд свалены в один гигантский файл. Вместо нормального разделения на handlers.py, database.py, utils.py — там просто огромная плеяда десятков функций подряд, например:

Python:





Код:
async
def
show_admins
(
update
,
context
)
:
async
def
promote_user
(
update
,
context
)
:
async
def
demote_user
(
update
,
context
)
:


Каждая из этих функций делает почти одно и то же, но код повторяется слово в слово.

Во-вторых, вместо СУБД используется JSON:

Python:





Код:
DATA_FILE
=
'admin_system_data.json'
def
load_data
(
)
:
with
open
(
DATA_FILE
,
'r'
)
as
f
:
return
json
.
load
(
f
)


и потом в десятках мест:

Python:





Код:
data
=
load_data
(
)
d
ata
[
'admins'
]
.
append
(
user_id
)
save_data
(
data
)


При параллельных записях файл запросто повредится. Надо юзать SQLite или PostgreSQL.

Третье — асинхронность нарушена: код объявлен как async, но внутри есть блокирующие операции:

Python:





Код:
with
open
(
DATA_FILE
,
'w'
)
as
f
:
json
.
dump
(
data
,
f
)


Получаем блокировку event loop'а и торможение бота при любой записи.

К этому добавляем глобал переменные и хардкод по всему коду:

Python:





Код:
RANKS
=
[
'Helper'
,
'Moderator'
,
'Admin'
,
'Owner'
]
TOKEN
=
'123456:ABC-DEF'


такое нельзя держать в коде, нужно выносить в переменные окружения.

Отдельно отмечу, что python-telegram-bot — не лучший выбор для такого бота. Он громоздкий, неудобен для масштабных ботов и плохо справляется с асинхронностью. Тут лучше юзать aiogram.

В итоге имеем:

1. Монолитный код без адекватной структуры

2. JSON вместо СУБД

3. Дублирование функций

4. Блокирующие вызовы в async-коде

5. Хардкод токенов и рангов

Проще будет реально переписать с нуля: сделать отдельный модуль для БД, разбить проект на файлы и настроить нормальные хендлеры.

P.s. пишу с телефона, поэтому мне лень расставлять табы в блоках с кодом
 
Ответить с цитированием

  #8  
Старый 10.11.2025, 11:36
MrApostolAngels
Новичок
Регистрация: 26.10.2023
Сообщений: 15
С нами: 1343521

Репутация: 3
По умолчанию

Цитата:
Сообщение от vindarix  

Отличный пример говнокода. Всё сделано через одно место.
Во-первых, вся логика и обработка команд свалены в один гигантский файл. Вместо нормального разделения на handlers.py, database.py, utils.py — там просто огромная плеяда десятков функций подряд, например:

Python:





Код:
async
def
show_admins
(
update
,
context
)
:
async
def
promote_user
(
update
,
context
)
:
async
def
demote_user
(
update
,
context
)
:


Каждая из этих функций делает почти одно и то же, но код повторяется слово в слово.

Во-вторых, вместо СУБД используется JSON:

Python:





Код:
DATA_FILE
=
'admin_system_data.json'
def
load_data
(
)
:
with
open
(
DATA_FILE
,
'r'
)
as
f
:
return
json
.
load
(
f
)


и потом в десятках мест:

Python:





Код:
data
=
load_data
(
)
d
ata
[
'admins'
]
.
append
(
user_id
)
save_data
(
data
)


При параллельных записях файл запросто повредится. Надо юзать SQLite или PostgreSQL.

Третье — асинхронность нарушена: код объявлен как async, но внутри есть блокирующие операции:

Python:





Код:
with
open
(
DATA_FILE
,
'w'
)
as
f
:
json
.
dump
(
data
,
f
)


Получаем блокировку event loop'а и торможение бота при любой записи.

К этому добавляем глобал переменные и хардкод по всему коду:

Python:





Код:
RANKS
=
[
'Helper'
,
'Moderator'
,
'Admin'
,
'Owner'
]
TOKEN
=
'123456:ABC-DEF'


такое нельзя держать в коде, нужно выносить в переменные окружения.

Отдельно отмечу, что python-telegram-bot — не лучший выбор для такого бота. Он громоздкий, неудобен для масштабных ботов и плохо справляется с асинхронностью. Тут лучше юзать aiogram.

В итоге имеем:
1. Монолитный код без адекватной структуры
2. JSON вместо СУБД
3. Дублирование функций
4. Блокирующие вызовы в async-коде
5. Хардкод токенов и рангов
Проще будет реально переписать с нуля: сделать отдельный модуль для БД, разбить проект на файлы и настроить нормальные хендлеры.

P.s. пишу с телефона, поэтому мне лень расставлять табы в блоках с кодом
Спасибо за предоставленную информацию! Учту следующий раз.
 
Ответить с цитированием

  #9  
Старый 25.12.2025, 00:03
MEMER_FAUD
Участник форума
Регистрация: 01.10.2024
Сообщений: 244
С нами: 852837

Репутация: 28
По умолчанию

Цитата:
Сообщение от MrApostolAngels  

Бот Moderator с управлением чата, участников.

Выдача рангов администрации взято под основу как у Iris

Установка бота

moder.py откройте в блокноте замените токен на свой!

Где взять токен?

Перейдите в бота @BotFather, создайте бота в нем и скопируйте ваш токен.

Запуск бота!

Распакуйте архив в любое для вас удобное место, установите последнию версию Python

Установите зависимости для бота в командной строке

pip install python-telegram-bot

пароль от архива: 123123

А зачем токен бота выставлять в открытый доступ?
 
Ответить с цитированием

  #10  
Старый 25.12.2025, 11:02
MrApostolAngels
Новичок
Регистрация: 26.10.2023
Сообщений: 15
С нами: 1343521

Репутация: 3
По умолчанию

Цитата:
Сообщение от MEMER_FAUD  

А зачем токен бота выставлять в открытый доступ?
Это для примера
 
Ответить с цитированием
Ответ





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT ™ © 2001- Antichat Kft.

×

Внести депозит

Введите сумму USDT:

Принимается только USDT TRC20. Fake/Flash USDT не засчитывается.

×

Вывести депозит

Сумма USDT:

Ваш USDT TRC20 кошелек:

Заявка будет отправлена администратору.