Demo_QY_WX_timed reminder.py 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. #! -*- coding: utf-8 -*-
  2. """
  3. Author: ZhenYuSha
  4. Create type_time: 2020-2-24
  5. Info: 定期向企业微信推送消息
  6. Amended by: Ge Zhi
  7. Amend time: 2020-3-22
  8. 修订内容: 从原代码每分钟发布一次提醒改成在设定时间点发送提醒,可以实现多时间点发布不同内容提醒信息并@所有人
  9. """
  10. import requests
  11. import json
  12. import datetime
  13. import time
  14. # 测试机器人1号 将此网址替换成你的群聊机器人Webhook地址
  15. wx_url = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=4ebd03c3-3418-40a4-998d-8c84268814da"
  16. send_message1 = "内容1,内容1,内容1!"
  17. send_message2 = "内容2,内容2,内容2!"
  18. def get_current_time():
  19. """获取当前时间,当前时分秒"""
  20. now_time = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
  21. hour = datetime.datetime.now().strftime("%H")
  22. mm = datetime.datetime.now().strftime("%M")
  23. ss = datetime.datetime.now().strftime("%S")
  24. return now_time, hour, mm, ss
  25. def sleep_time(hour, m, sec):
  26. """返回总共秒数"""
  27. return hour * 3600 + m * 60 + sec
  28. def send_msg(content):
  29. """@全部,并发送指定信息"""
  30. data = json.dumps({"msgtype": "text", "text": {
  31. "content": content, "mentioned_list": ["@all"]}})
  32. r = requests.post(wx_url, data, auth=('Content-Type', 'application/json'))
  33. print(r.json)
  34. # 此处定义了每多长时间重复一次此指令,在这里我设置的是每31秒重复一次。且此处设置定时发送消息的时间点(24小时制),在这里我设置的是8点和12点整。
  35. def every_time_send_msg(interval_h=0, interval_m=0, interval_s=31, special_h1="08", special_h2="12", special_m="00", mode="special"):
  36. """每天指定时间发送指定消息"""
  37. # 设置自动执行间隔时间
  38. second = sleep_time(interval_h, interval_m, interval_s)
  39. # 循环
  40. while True:
  41. # 获取当前时间和当前时分秒
  42. c_now, c_h, c_m, c_s = get_current_time()
  43. print("当前时间:", c_now, c_h, c_m, c_s)
  44. if c_h == special_h1 and c_m == special_m:
  45. print('正在发送提醒')
  46. send_msg(send_message1)
  47. else:
  48. print('未到早8点提醒时间')
  49. # 下午3点报送一次体温
  50. if c_h == special_h2 and c_m == special_m:
  51. print('正在发送提醒')
  52. send_msg(send_message2)
  53. else:
  54. print('未到中午12点提醒时间')
  55. # 下午5点报送一次轨迹
  56. print("每隔" + str(interval_h) + "小时" +
  57. str(interval_m) + "分" + str(interval_s) + "秒执行一次")
  58. # 延时
  59. time.sleep(second)
  60. if __name__ == '__main__':
  61. every_time_send_msg(mode="no")