diff --git a/.gitignore b/.gitignore index 3e7a4a6..3ce23a9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,9 @@ +received_requests_* +received_data_* +sent_data_* +bot_config.json +pending_messages.json + # Byte-compiled / optimized / DLL files __pycache__/ *.py[cod] diff --git a/Post_Test.bat b/Post_Test.bat new file mode 100644 index 0000000..9fb059b --- /dev/null +++ b/Post_Test.bat @@ -0,0 +1,6 @@ +title 测试post +:start +@cd /d %~dp0 +py Post_Test.py +pause +goto start \ No newline at end of file diff --git a/Post_Test.py b/Post_Test.py new file mode 100644 index 0000000..aa488d2 --- /dev/null +++ b/Post_Test.py @@ -0,0 +1,31 @@ +import requests + +def send_post_request(): + url = "http://localhost:5000" # 请替换为实际API端点 + + # 构建表单数据 + payload = { + "bot_id": "", + "chat_id": "", + "title": "Test Title", + "desp": "Test Description---Test Description", + "url": "https://example.com" + } + + # 发送POST请求 + response = requests.post(url, data=payload) + + # 输出状态码 + print(f"Status Code: {response.status_code}") + + # 输出响应文本 + print(f"Response Text: {response.text}") + + # 在尝试解析JSON之前先检查响应是否包含JSON + try: + print(f"Response Data: {response.json()}") + except: + print("Failed to parse JSON from response.") + +if __name__ == "__main__": + send_post_request() diff --git a/ServerChanPush2TelegramBot.py b/ServerChanPush2TelegramBot.py index 142154a..7a81a93 100644 --- a/ServerChanPush2TelegramBot.py +++ b/ServerChanPush2TelegramBot.py @@ -83,6 +83,7 @@ def send_telegram_message(bot_id, chat_id, title, desp=None, url=None): all_bots_config = load_config() # 用于标记是否找到匹配的关键词 found = False + delimiter = None # 遍历所有主 bot_id 的配置 for config in all_bots_config: main_bot_id = config['main_bot_id'] @@ -97,15 +98,17 @@ def send_telegram_message(bot_id, chat_id, title, desp=None, url=None): title_decode = title.decode('utf-8') if isinstance(title, bytes) else title if keyword_decode.lower() in title_decode.lower(): bot_id = sub_bot['bot_id'] - chat_id = sub_bot['chat_id'] # 新增:替换 chat_id + chat_id = sub_bot['chat_id'] # 替换 chat_id + delimiter = sub_bot.get('delimiter') # 获取隔断符配置 found = True break - if found: - break - - # 一旦找到匹配的主 bot_id 和主 chat_id,就跳出循环 if found: - break + break + + # 一旦找到匹配的主 bot_id 和主 chat_id,就跳出循环 + if found: + break + api_url = f"https://api.telegram.org/bot{bot_id}/sendMessage" @@ -115,8 +118,8 @@ def send_telegram_message(bot_id, chat_id, title, desp=None, url=None): } text = title # 初始化 text 为 title - if desp: # 如果有 desp,添加到 text - text += f"\n\n{desp}" + text += f"\n\n{(desp.split(delimiter)[0] if delimiter and desp else desp) if desp else ''}" + # 使用正则表达式来识别受影响的链接 @@ -128,7 +131,7 @@ def send_telegram_message(bot_id, chat_id, title, desp=None, url=None): text = text.replace(affected_url, corrected_url) if url: # 如果有 url,添加到 text - text += f"\n\n详情:" + text += f"\n\n[详情]({url})" text += f"{url}" # 直接添加 URL,Telegram 会自动处理预览 text=unescape_url(text) @@ -137,7 +140,7 @@ def send_telegram_message(bot_id, chat_id, title, desp=None, url=None): payload = { 'chat_id': chat_id, 'text': text, - 'parse_mode': 'HTML', + 'parse_mode': 'markdown', 'disable_web_page_preview': False # 启用网页预览 } try: diff --git a/bot_config_example.json b/bot_config_example.json new file mode 100644 index 0000000..2fbb292 --- /dev/null +++ b/bot_config_example.json @@ -0,0 +1,20 @@ + +[ + { + "main_bot_id": "YOUR_MAIN_BOT_ID_HERE", + "main_chat_id": "YOUR_MAIN_CHAT_ID_HERE", + "sub_bots": [ + { + "bot_id": "YOUR_SUB_BOT_ID_1", + "chat_id": "YOUR_SUB_CHAT_ID_1", + "keywords": ["test"], + "delimiter": "---split---" + }, + { + "bot_id": "YOUR_SUB_BOT_ID_2", + "chat_id": "YOUR_SUB_CHAT_ID_2", + "keywords": ["keyword3", "keyword4"] + } + ] + } +]