当前位置:   article > 正文

微信机器人框架【Python】_企业微信机器人框架

企业微信机器人框架

前面写了两篇:

太罗嗦。今天提供一个框架,终结这个话题吧。
这框架提供了几个功能示例:

  • 每天 7 点发送天气预报
  • 成语解释
  • 成语接龙
  • 天气查询
  • 自动通过好友申请
  • 闲聊对话(空壳)

传送门

robot.py

这是框架的重要部分,对接收到的消息进行解析,并根据需要进行处理。
robot.py

具体实现见 robot.py

main.py

这是应用的入口,实现如下:

#! /usr/bin/env python3
# -*- coding: utf-8 -*-

import signal
from wcferry import Wcf

from robot import Robot


def weather_report(robot: Robot):
    """模拟发送天气预报
    """
    # 获取接收人
    receivers = ["filehelper"]

    # 获取天气,需要自己实现,可以参考 https://gitee.com/lch0821/WeatherScrapy 获取天气。
    report = "这就是获取到的天气情况了"

    for r in receivers:
        robot.sendTextMsg(report, r)


def main():
    wcf = Wcf()

    def handler(sig, frame):
        wcf.cleanup()  # 退出前清理环境
        exit(0)

    signal.signal(signal.SIGINT, handler)

    robot = Robot(wcf)
    robot.LOG.info("机器人已启动")

    # 接收消息
    robot.enableRecvMsg()

    # 每天 7 点发送天气预报
    robot.onEveryTime("07:00", weather_report, robot=robot)

    # 让机器人一直跑
    robot.keepRunningAndBlockProcess()


if __name__ == "__main__":
    main()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46

其他

其他文件,不再一一介绍,整体说说项目结构:

WeChatRobot
├── LICENSE                 # 开源许可协议,这里使用了 MIT
├── README.MD               # 项目说明
├── chengyu.csv             # 成语库
├── config.yaml.template    # 配置文件模板
├── configuration.py        # 项目配置
├── func_chengyu.py         # 成语解释、接龙实现
├── job_mgmt.py             # 封装的调度器
├── main.py                 # 应用入口
├── requirements.txt        # 工程依赖
└── robot.py                # 机器人框架主体
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

好了,收工。
【后台回复 WeChatFerry,进群体验】
碲矿

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/酷酷是懒虫/article/detail/766064
推荐阅读
相关标签
  

闽ICP备14008679号