Пишу на aiogram 3, нужны функции рассылка и бан/разбан пользователей
Пишу на aiogram 3, нужны функции рассылка и бан/разбан пользователей
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}')
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]
подскажи, как он мучает себя и в чем приемущество telebot?Занятное, конечно, дело ты себе выбрал — писать ботов на aiogram. Не мучай себя, Telebot все еще актуален)
Ага, во времена продвинутых асинхронных фреймворков для работы с телеграм API, юзать телебота, это тоже самое как и на Delphi 7 писать в 2024. Можно, но зачем?подскажи, как он мучает себя и в чем приемущество telebot?
мне просто удобнее на aiogramЗанятное, конечно, дело ты себе выбрал — писать ботов на aiogram. Не мучай себя, Telebot все еще актуален)
ИМХО для питона лучший фреймворк. Если кто-то не умеет в асинхронность, это его проблемы.мне просто удобнее на aiogram
мне было легче спросить, +вопрос все таки не бессмысленный, другие пользователи форума которые не смогли решить вопрос, могут зайти сюда и сразу увидеть ответТС. Если бы вы умели пользоваться поиском на гитхабе, то понимали бы что уже таких ботов как говна за баней.
Вот на кем-то любимом телеботе например (не тестил):
![]()
GitHub - vstpme/tg-admin: Simple Telegram bot
Simple Telegram bot. Contribute to vstpme/tg-admin development by creating an account on GitHub.github.com
там по сути 3 команды+3 проверки (образно), 30-100 строк кода.мне было легче спросить, +вопрос все таки не бессмысленный, другие пользователи форума которые не смогли решить вопрос, могут зайти сюда и сразу увидеть ответ
там так же есть async)Ага, во времена продвинутых асинхронных фреймворков для работы с телеграм API, юзать телебота, это тоже самое как и на Delphi 7 писать в 2024. Можно, но зачем?
ахахахахахах улыбнуло)Занятное, конечно, дело ты себе выбрал — писать ботов на aiogram. Не мучай себя, Telebot все еще актуален)
Пишу на aiogram 3, нужны функции рассылка и бан/разбан пользователей
Рассылку можно реализовать с помощью бд, при старте если человека нету в бд, то добавляешь его, если есть то скипаешь. А потом в админке получаешь с бд список и по этим айдишникам делаешь рассылку (for _ in range)Пишу на aiogram 3, нужны функции рассылка и бан/разбан пользователей
Согласен, лучше подвязать БД. Что-то простое. Если python, то и sqlite3 сгодится.Рассылку можно реализовать с помощью бд, при старте если человека нету в бд, то добавляешь его, если есть то скипаешь. А потом в админке получаешь с бд список и по этим айдишникам делаешь рассылку (for _ in range)
брать sqlite3 для тг бота любого уровня уже не совсем акутально, рано или поздно все кто sqlite3 юзают при масштабировании проекта или написании какого то сложно, как говорится, "в*ебываются рогом" в ошибку database locked) лучше какой нибудь postgresql использовать надежнее, либа asyncpg подходит замечательноСогласен, лучше подвязать БД. Что-то простое. Если python, то и sqlite3 сгодится.
Надёжнее будет.
У самого на личном кейсе была проблема с тем, что по ID юзера брать не очень практично.
брать sqlite3 для тг бота любого уровня уже не совсем акутально, рано или поздно все кто sqlite3 юзают при масштабировании проекта или написании какого то сложно, как говорится, "в*ебываются рогом" в ошибку database locked) лучше какой нибудь postgresql использовать надежнее, либа asyncpg подходит замечательно
никогда нужды не было с NoSQL БД работать, может и лучше, тут не скажу ничего путевогоДа на mongoDb прыгнуть и не будет проблем
Да просто будет проще разобраться человеку и быстрее, меньше заморочек как по мненикогда нужды не было с NoSQL БД работать, может и лучше, тут не скажу ничего путевого