Айди пользователя из беседы?

async def adm(self, user):
        async with self.pool.acquire() as conn:
            async with conn.cursor() as cur:
                result = await cur.execute("SELECT admin FROM profile WHERE uid=%s", user.id)
                row = await cur.fetchall()
                if result == 1:
                    await cur.execute("UPDATE profile SET admin='Хелпер' WHERE uid=%s", user.id)
                    await conn.commit()
                    for adm in row[0]:
                        return adm


Что передать место user.id, что бы админку выдать пользователю из беседы, а не самому себе понижать ранг

@command(name="+адм")
    async def prov(self, ctx, member=None):
        user = await self.bot.get_user(ctx.from_id)
        adm = await basa.register.main.chekc_adm(user)
        if member is None:
            await ctx.send("Перешлите или укажите айди пользователя")
        elif adm == "Разраб":
            await ctx.send(format(user.first_name) + ", выдал роль администратора пользователю " + format(member))
            await basa.register.main.adm(user)
        else:
            await ctx.send("Не достаточно прав")
  • Вопрос задан
  • 82 просмотра
Решения вопроса 1
@EnotShow
Ты можешь ловить команды вроде /+адм @username, а затем сравнивать, есть ли такой пользователь в твоей бд. И если есть, тогда брать его айдишник и делать его админом. Пример на aiogram:
# Отправляет сообщения всем пользователям.
async def announcement(message: types.Message):
    if message.chat.id == admin_chat_id:
        message_to_send = message.get_args()
        stmt = select(Questionnaire).where(Questionnaire.is_delete == False, Questionnaire.is_banned == False)
        result = engine.connect().execute(stmt).fetchall()
        await bot.delete_message(message.chat.id, message.message_id)
        for user in result:
            try:
                await bot.send_message(user.user_id, message_to_send)
            except:
                pass
        await bot.send_message(message.chat.id, 'Сообщения доставлены')
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы