Skip to content

Commit aa9d597

Browse files
author
Juliano Santos
committed
Correção na verificação de usuários com "auth_file".
1 parent dded2ae commit aa9d597

1 file changed

Lines changed: 13 additions & 10 deletions

File tree

ShellBot.sh

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ readonly _ERR_PARAM_REQUIRED_='opção requerida: verique se o(s) parâmetro(s)
102102
readonly _ERR_TOKEN_UNAUTHORIZED_='não autorizado: verifique se possui permissões para utilizar o token.'
103103
readonly _ERR_TOKEN_INVALID_='token inválido: verique o número do token e tente novamente.'
104104
readonly _ERR_BOT_ALREADY_INIT_='ação não permitida: o bot já foi inicializado.'
105-
readonly _ERR_FILE_NOT_FOUND_='arquivo não encontrado: não foi possível ler o arquivo.'
105+
readonly _ERR_FILE_NOT_FOUND_='falha ao acessar: não foi possível ler o arquivo.'
106106
readonly _ERR_DIR_WRITE_DENIED_='permissão negada: não é possível gravar no diretório.'
107107
readonly _ERR_DIR_NOT_FOUND_='Não foi possível acessar: diretório não encontrado.'
108108
readonly _ERR_FILE_INVALID_ID_='id inválido: arquivo não encontrado.'
@@ -116,6 +116,7 @@ readonly _ERR_FUNCTION_NOT_FOUND_='função não encontrada: o identificador esp
116116
readonly _ERR_ARG_='argumento inválido: o argumento não é suportado pelo parâmetro especificado.'
117117
readonly _ERR_RULE_ALREADY_EXISTS_='falha ao definir: o nome da regra já existe.'
118118
readonly _ERR_HANDLE_EXISTS_='erro ao registar: já existe um handle vinculado ao callback'
119+
readonly _ERR_CONNECTION_='falha de conexão: não foi possível estabelecer conexão com o Telegram.'
119120

120121
# Maps
121122
declare -A _BOT_HANDLE_
@@ -617,7 +618,7 @@ ShellBot.init()
617618
declare -gr _API_TELEGRAM_="https://api.telegram.org/bot$_TOKEN_" # API
618619

619620
# Testa conexão.
620-
curl -s "$_API_TELEGRAM_" &>- || MessageError API 'não foi possível estabelecer conexão com o Telegram.'
621+
curl -s "$_API_TELEGRAM_" &>- || MessageError API "$_ERR_CONNECTION_"
621622

622623
# Um método simples para testar o token de autenticação do seu bot.
623624
# Não requer parâmetros. Retorna informações básicas sobre o bot em forma de um objeto Usuário.
@@ -5513,15 +5514,17 @@ _EOF
55135514

55145515
for file in ${match//|/ }; do
55155516
# Testa acesso ao arquivo.
5516-
[[ -f "$file" && -r "$file" ]] || MessageError API "'$file' $_ERR_FILE_NOT_FOUND_" "${_BOT_RULES_[$i:name]}" '[-T, --auth_file]'
5517-
5518-
while read -r line; do
5519-
user=${line%%*( )#*} # Remove os comentários e salva o usuário.
5520-
[[ $user ]] || continue # Ignora linha comentada.
5517+
if ! [[ -f "$file" && -r "$file" ]]; then
5518+
MessageError API "'$file' $_ERR_FILE_NOT_FOUND_" "${_BOT_RULES_[$i:name]}" '[-T, --auth_file]'
5519+
fi
55215520

5522-
[[ $user == $u_message_from_id ]] ||
5523-
[[ $user == $u_message_from_username ]] && break 2 # Finaliza verificação.
5524-
done < "$file" # Lê o arquivo.
5521+
# Lê os usuários removendo os comentários complementares
5522+
# e ignora a linha prefixada com hashtag '#'.
5523+
while read -r line; do
5524+
user=${line%%*( )#*}
5525+
[[ $user != *( )#* ]] &&
5526+
[[ $user == $u_message_from_id || $user == $u_message_from_username ]] && break 2
5527+
done < "$file"
55255528
done
55265529

55275530
((${BASH_REMATCH[1]} $?)) && continue

0 commit comments

Comments
 (0)