1- import httpx
21import os
2+ import re
3+ import httpx
34from urllib .parse import quote
45
56TOKEN = os .getenv ("TELEGRAM_BOT_TOKEN" )
89COMMENT_USER = os .getenv ("COMMENT_USER" )
910COMMENT_BODY = os .getenv ("COMMENT_BODY" )
1011COMMENT_URL = os .getenv ("COMMENT_URL" )
12+
13+ # carrega a lista de usuários do Telegram a partir da variável de ambiente TELEGRAM_USERS_MAP
14+ # ex: @github-user:@telegram_user,@github-user2:@telegram_user2,...
15+
16+ TELEGRAM_USERS_MAP = os .getenv ("TELEGRAM_USERS_MAP" )
17+
18+ # Gera o mapa de usuários do Telegram a partir da variável de ambiente
19+ TELEGRAM_USERS_MAP = dict (
20+ user .split (":" ) for user in TELEGRAM_USERS_MAP .split ("," ) if ":" in user
21+ )
22+
1123CHAT_ID = "-1002120660974"
1224THREAD_ID = 1888
25+
1326# url = f"https://api.telegram.org/bot{TOKEN}/getUpdates"
1427
1528
@@ -28,6 +41,21 @@ def main():
2841*Texto do comentário*:
2942{ comment_body_escaped }
3043""" .strip ()
44+
45+ # Verifica se o mapa de usuários do Telegram não está vazio para realizar a substituição
46+ if (TELEGRAM_USERS_MAP ):
47+
48+ # percorre cada palavra do corpo do comentário
49+ for palavra in COMMENT_BODY .split ():
50+
51+ # se a palavra começa com @ e tem mais de 3 caracteres, verifica se está no mapa de usuários do Telegram
52+ if palavra .startswith ("@" ) and len (palavra ) > 3 and palavra in TELEGRAM_USERS_MAP .keys ():
53+
54+ # se a palavra está no mapa de usuários do Telegram, substitui pelo id do usuário do Telegram
55+
56+ telegram_user = re .sub (r'([_*\[\]()~`>#+\-=|{}.!])' , r'\\\1' , TELEGRAM_USERS_MAP [palavra ])
57+ message += f"\n { telegram_user } "
58+
3159 params = {
3260 "chat_id" : CHAT_ID ,
3361 "message_thread_id" : THREAD_ID ,
@@ -38,7 +66,7 @@ def main():
3866 url = f"https://api.telegram.org/bot{ TOKEN } /sendMessage"
3967 response = httpx .get (url , params = params )
4068 status_code = response .status_code
41-
69+
4270 if status_code != 200 :
4371 print (f"Erro { status_code } : { response .json ()} " )
4472 raise Exception
0 commit comments