• XSS.stack #1 – первый литературный журнал от юзеров форума

Как сделать админ панель для бота?

Вот
Пишу на aiogram 3, нужны функции рассылка и бан/разбан пользователей

Вот из моего бота кусок например

Python:
from aiogram import Router, F
from aiogram.types import Message
import logging
import app.config.cfg as cfg
from icecream import ic

router: Router = Router()


@router.message(F.text.startswith(cfg.all_commands['ban_cmds']))
async def ban_user(message: Message):
    try:
        if message.from_user.id in cfg.admins:
            await message.bot.ban_chat_member(message.chat.id, message.reply_to_message.from_user.id)
            await message.answer(f'Пользователь <b>{message.reply_to_message.from_user.first_name}</b> заблокирован!')
        else:
            await message.answer(f'Недостаточно прав')
    except Exception as e:
        logging.error(e)
        ic(e)
        await message.answer(f'{e}')


@router.message(F.text.startswith(cfg.all_commands['unban_cmds']))
async def unban_user(message: Message):
    try:
        if message.from_user.id in cfg.admins:
            await message.bot.unban_chat_member(message.chat.id, message.reply_to_message.from_user.id)
            await message.answer(f'Пользователь <b>{message.reply_to_message.from_user.first_name}</b> разблокирован!')
        else:
            await message.answer(f'Недостаточно прав')
    except Exception as e:
        logging.error(e)
        ic(e)
        await message.answer(f'{e}')

В cfg.py собственно команды и id админа/ов
Python:
from aiogram import Bot
import os

bot_token = os.getenv('pt_hat_bot_token')
bot = Bot(token=bot_token, parse_mode="HTML")

all_commands = {'ban_cmds': '!ban', 'unban_cmds': '!unban'}

admins = [539491282]
 
Занятное, конечно, дело ты себе выбрал — писать ботов на aiogram. Не мучай себя, Telebot все еще актуален)
подскажи, как он мучает себя и в чем приемущество telebot?
 
подскажи, как он мучает себя и в чем приемущество telebot?
Ага, во времена продвинутых асинхронных фреймворков для работы с телеграм API, юзать телебота, это тоже самое как и на Delphi 7 писать в 2024. Можно, но зачем?
 
ТС. Если бы вы умели пользоваться поиском на гитхабе, то понимали бы что уже таких ботов как говна за баней.
Вот на кем-то любимом телеботе например (не тестил):
 
ТС. Если бы вы умели пользоваться поиском на гитхабе, то понимали бы что уже таких ботов как говна за баней.
Вот на кем-то любимом телеботе например (не тестил):
мне было легче спросить, +вопрос все таки не бессмысленный, другие пользователи форума которые не смогли решить вопрос, могут зайти сюда и сразу увидеть ответ
 
мне было легче спросить, +вопрос все таки не бессмысленный, другие пользователи форума которые не смогли решить вопрос, могут зайти сюда и сразу увидеть ответ
там по сути 3 команды+3 проверки (образно), 30-100 строк кода.
 
Ага, во времена продвинутых асинхронных фреймворков для работы с телеграм API, юзать телебота, это тоже самое как и на Delphi 7 писать в 2024. Можно, но зачем?
там так же есть async)
он имел в виду, что для новичка telebot - самое то
 
у меня тут на форуме тема есть со сливом бота, там есть реализация и рассылки и выдачи прав в боте пользователям через удобный inline mode, вот тред: threads/133759/
Пишу на aiogram 3, нужны функции рассылка и бан/разбан пользователей
 
Пишу на aiogram 3, нужны функции рассылка и бан/разбан пользователей
Рассылку можно реализовать с помощью бд, при старте если человека нету в бд, то добавляешь его, если есть то скипаешь. А потом в админке получаешь с бд список и по этим айдишникам делаешь рассылку (for _ in range)
 
Рассылку можно реализовать с помощью бд, при старте если человека нету в бд, то добавляешь его, если есть то скипаешь. А потом в админке получаешь с бд список и по этим айдишникам делаешь рассылку (for _ in range)
Согласен, лучше подвязать БД. Что-то простое. Если python, то и sqlite3 сгодится.
Надёжнее будет.
У самого на личном кейсе была проблема с тем, что по ID юзера брать не очень практично.
 
Согласен, лучше подвязать БД. Что-то простое. Если python, то и sqlite3 сгодится.
Надёжнее будет.
У самого на личном кейсе была проблема с тем, что по ID юзера брать не очень практично.
брать sqlite3 для тг бота любого уровня уже не совсем акутально, рано или поздно все кто sqlite3 юзают при масштабировании проекта или написании какого то сложно, как говорится, "в*ебываются рогом" в ошибку database locked) лучше какой нибудь postgresql использовать надежнее, либа asyncpg подходит замечательно
 
Пожалуйста, обратите внимание, что пользователь заблокирован
Да на mongoDb прыгнуть и не будет проблем
брать sqlite3 для тг бота любого уровня уже не совсем акутально, рано или поздно все кто sqlite3 юзают при масштабировании проекта или написании какого то сложно, как говорится, "в*ебываются рогом" в ошибку database locked) лучше какой нибудь postgresql использовать надежнее, либа asyncpg подходит замечательно
 
Пожалуйста, обратите внимание, что пользователь заблокирован
никогда нужды не было с NoSQL БД работать, может и лучше, тут не скажу ничего путевого
Да просто будет проще разобраться человеку и быстрее, меньше заморочек как по мне
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх