Send_picture_automatically/send_filemsg.py
teddy f96d1eb08d feat: 更新配置和增强日志记录功能
- 修改config.py中的文件路径和定时发送时间
- 在各个脚本中添加日志记录功能,提升错误追踪和调试能力
- 更新README.md,详细说明程序功能和使用方法
- 重构scheduler.py、sendmsg.py、send_openmsg.py和send_filemsg.py,增强代码可读性和可维护性
2025-08-21 15:22:55 +08:00

95 lines
3.6 KiB
Python

import json
import lark_oapi as lark
from lark_oapi.api.im.v1 import *
from config import CONFIG
from logger_config import setup_logger
# 设置日志记录器
logger = setup_logger('send_filemsg')
def main():
logger.info("=" * 50)
logger.info("开始执行文件未找到的飞书提醒消息发送")
logger.info("=" * 50)
Local_openid = CONFIG['open_id']
logger.info(f"目标接收者数量: {len(Local_openid)}")
logger.info(f"接收者open_id列表: {Local_openid}")
# 创建client
logger.info("正在创建飞书客户端...")
try:
client = lark.Client.builder() \
.app_id(CONFIG['app_id']) \
.app_secret(CONFIG['app_secret']) \
.log_level(lark.LogLevel.DEBUG) \
.build()
logger.info("飞书客户端创建成功")
except Exception as e:
logger.error(f"飞书客户端创建失败: {str(e)}")
logger.error(f"错误类型: {type(e).__name__}")
return
success_count = 0
fail_count = 0
for i, local_openid in enumerate(Local_openid):
logger.info(f"正在处理第 {i+1}/{len(Local_openid)} 个接收者: {local_openid}")
try:
# 构造请求对象
request: CreateMessageRequest = CreateMessageRequest.builder() \
.receive_id_type("open_id") \
.request_body(CreateMessageRequestBody.builder()
.receive_id(local_openid)
.msg_type("text")
.content("{\"text\":\"未找到指定图片,请手动发送\"}")
.build()) \
.build()
logger.info("请求对象构造成功")
logger.info(f"请求内容: 未找到指定图片,请手动发送")
# 发起请求
logger.info("正在发送飞书消息...")
response: CreateMessageResponse = client.im.v1.message.create(request)
# 处理失败返回
if not response.success():
logger.error(f"消息发送失败 - 接收者: {local_openid}")
logger.error(f"错误代码: {response.code}")
logger.error(f"错误信息: {response.msg}")
logger.error(f"日志ID: {response.get_log_id()}")
logger.error(f"响应内容: {json.dumps(json.loads(response.raw.content), indent=4, ensure_ascii=False)}")
fail_count += 1
else:
logger.info(f"消息发送成功 - 接收者: {local_openid}")
logger.info(f"响应数据: {lark.JSON.marshal(response.data, indent=4)}")
success_count += 1
except Exception as e:
logger.error(f"处理接收者 {local_openid} 时出现异常: {str(e)}")
logger.error(f"异常类型: {type(e).__name__}")
import traceback
logger.error(f"异常堆栈: {traceback.format_exc()}")
fail_count += 1
# 总结报告
logger.info("=" * 50)
logger.info("文件未找到的飞书提醒消息发送完成")
logger.info(f"成功发送: {success_count}")
logger.info(f"发送失败: {fail_count}")
logger.info(f"总计处理: {len(Local_openid)} 个接收者")
logger.info("=" * 50)
if __name__ == "__main__":
try:
main()
logger.info("程序执行完成")
except Exception as e:
logger.error(f"程序执行过程中出现未捕获的异常: {str(e)}")
logger.error(f"异常类型: {type(e).__name__}")
import traceback
logger.error(f"异常堆栈: {traceback.format_exc()}")
exit(1)