Jump to content

Problema com "menção" de usuário.


jorgebsts

Postagens Recomendadas

Estou desenvolvendo um bot em python para o telegram à qual tem a função de adicionar, remover e mencionar usuários por grupos.

Entretanto estou com problema no meu código à qual não consigo fazer com que por exemplo o comando /adicionar_tecnicos NOME (ou @NOME) adicione aquela pessoa, normalmente dando retorno como none, entre outras alterações eu mesmo.

O que eu desejo é que após o comando, o usuário "mencionado" seja ele tendo nome de usuário ou não, seja aplicado o comando sobre ele.

O código:

import logging
from telegram import Update
from telegram.ext import Application, CommandHandler, ContextTypes

# Enable logging
logging.basicConfig(
    format="%(asctime)s - %(name)s - %(levelname)s - %(message)s", level=logging.INFO
)

logger = logging.getLogger(__name__)

tecnicos_group = {}
comercial_group = {}
financeiro_group = {}
suporte_group = {}


async def mencionar_tecnicos(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
    members = " ".join([f"@{member}" for member in tecnicos_group.keys()])
    await update.message.reply_text(members)


async def mencionar_comercial(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
    members = " ".join([f"@{member}" for member in comercial_group.keys()])
    await update.message.reply_text(members)


async def mencionar_financeiro(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
    members = " ".join([f"@{member}" for member in financeiro_group.keys()])
    await update.message.reply_text(members)


async def mencionar_suporte(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
    members = " ".join([f"@{member}" for member in suporte_group.keys()])
    await update.message.reply_text(members)


async def adicionar_tecnicos(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
    username = update.message.chat.username
    tecnicos_group[username] = True
    await update.message.reply_text(f"Adicionado {username} ao grupo de técnicos.")


async def adicionar_comercial(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
    username = update.message.chat.username
    comercial_group[username] = True
    await update.message.reply_text(f"Adicionado {username} ao grupo comercial.")


async def adicionar_financeiro(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
    username = update.message.chat.username
    financeiro_group[username] = True
    await update.message.reply_text(f"Adicionado {username} ao grupo financeiro.")


async def adicionar_suporte(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
    username = update.message.chat.username
    suporte_group[username] = True
    await update.message.reply_text(f"Adicionado {username} ao grupo de suporte.")


async def remover_tecnicos(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
    username = update.message.chat.username
    if username in tecnicos_group:
        del tecnicos_group[username]
        await update.message.reply_text(f"Removido {username} do grupo de técnicos.")
    else:
        await update.message.reply_text("Você não está no grupo de técnicos.")


async def remover_comercial(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
    username = update.message.chat.username
    if username in comercial_group:
        del comercial_group[username]
        await update.message.reply_text(f"Removido {username} do grupo comercial.")
    else:
        await update.message.reply_text("Você não está no grupo comercial.")


async def remover_financeiro(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
    username = update.message.chat.username
    if username in financeiro_group:
        del financeiro_group[username]
        await update.message.reply_text(f"Removido {username} do grupo financeiro.")
    else:
        await update.message.reply_text("Você não está no grupo financeiro.")


async def remover_suporte(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
    username = update.message.chat.username
    if username in suporte_group:
        del suporte_group[username]
        await update.message.reply_text(f"Removido {username} do grupo de suporte.")
    else:
        await update.message.reply_text("Você não está no grupo de suporte.")


async def help_command(update: Update, context: ContextTypes.DEFAULT_TYPE) -> None:
    """Displays info on how to use the bot."""
    await update.message.reply_text("Use /start para testar este bot.")


def main() -> None:
    """Run the bot."""
    # Create the Application and pass it your bot's token.
    application = Application.builder().token("6473614239:AAHtG7dot5Zr5njx48eIL1YrewkkjyRn3to").build()

    application.add_handler(CommandHandler("mencionar_tecnicos", mencionar_tecnicos))
    application.add_handler(CommandHandler("mencionar_comercial", mencionar_comercial))
    application.add_handler(CommandHandler("mencionar_financeiro", mencionar_financeiro))
    application.add_handler(CommandHandler("mencionar_suporte", mencionar_suporte))
    application.add_handler(CommandHandler("adicionar_tecnicos", adicionar_tecnicos))
    application.add_handler(CommandHandler("adicionar_comercial", adicionar_comercial))
    application.add_handler(CommandHandler("adicionar_financeiro", adicionar_financeiro))
    application.add_handler(CommandHandler("adicionar_suporte", adicionar_suporte))
    application.add_handler(CommandHandler("remover_tecnicos", remover_tecnicos))
    application.add_handler(CommandHandler("remover_comercial", remover_comercial))
    application.add_handler(CommandHandler("remover_financeiro", remover_financeiro))
    application.add_handler(CommandHandler("remover_suporte", remover_suporte))
    application.add_handler(CommandHandler("help", help_command))

    # Run the bot until the user presses Ctrl-C
    application.run_polling(allowed_updates=Update.ALL_TYPES)


if __name__ == "__main__":
    main()

 

Editado por jorgebsts
Link to comment
Compartilhe em outros sites

Crie uma conta ou entre para comentar 😀

Você precisa ser um membro para deixar um comentário.

Crie a sua conta

Participe da nossa comunidade, crie sua conta.
É bem rápido!

Criar minha conta agora

Entrar

Você já tem uma conta?
Faça o login agora.

Entrar agora


×
×
  • Create New...