настройка отправки сообщения через правильный порт и ключ
ci/woodpecker/push/woodpecker Pipeline was successful

This commit is contained in:
2025-09-29 23:04:50 +03:00
parent af755115c8
commit a5d3b82092
5 changed files with 80 additions and 12 deletions
+25 -3
View File
@@ -7,27 +7,49 @@
import sys
import requests
import json
import os
def send_message(user_id, message_text, bot_url="http://localhost:8443"):
def send_message(user_id, message_text, bot_url=None, api_token=None):
"""
Отправляет сообщение пользователю через Telegram бота
Args:
user_id (int): ID пользователя в Telegram
message_text (str): Текст сообщения
bot_url (str): URL бота (по умолчанию localhost:8443)
bot_url (str): URL бота (если не указан, берется из переменных окружения)
api_token (str): API токен для аутентификации (если не указан, берется из переменных окружения)
Returns:
tuple: (success: bool, message: str)
"""
if bot_url is None:
# Пытаемся получить URL из переменных окружения
webhook_url = os.getenv('WEBHOOK_URL')
webhook_port = os.getenv('WEBHOOK_PORT', '5005')
if webhook_url:
# Извлекаем хост из WEBHOOK_URL
from urllib.parse import urlparse
parsed = urlparse(webhook_url)
bot_url = f"http://{parsed.hostname}:{webhook_port}"
else:
bot_url = f"http://localhost:{webhook_port}"
if api_token is None:
api_token = os.getenv('WEBHOOK_SECRET')
try:
url = f"{bot_url}/send_message"
data = {
"user_id": user_id,
"message": message_text
}
headers = {
'Content-Type': 'application/json',
'X-API-Secret-Token': api_token
}
response = requests.post(url, json=data, timeout=10)
response = requests.post(url, json=data, headers=headers, timeout=10)
result = response.json()
if response.status_code == 200 and result.get("success"):