From c736a8c15fd0ee8d3b0b3e94b65016bd955c3d44 Mon Sep 17 00:00:00 2001 From: Changhua Date: Mon, 29 May 2023 11:25:44 +0800 Subject: [PATCH] Remove http --- func_http.py | 77 ---------------------------------------------------- main.py | 7 ----- robot.py | 14 ---------- 3 files changed, 98 deletions(-) delete mode 100644 func_http.py diff --git a/func_http.py b/func_http.py deleted file mode 100644 index 341046e..0000000 --- a/func_http.py +++ /dev/null @@ -1,77 +0,0 @@ -#! /usr/bin/env python3 -# -*- coding: utf-8 -*- - -import logging -from typing import Any -import uvicorn -import threading -from fastapi import FastAPI -from fastapi import Body -from wcferry import Wcf - - -class Http(FastAPI): - """将 wcferry 能力转成 HTTP 协议的示例""" - - def __init__(self, wcf: Wcf, **extra: Any) -> None: - super().__init__(**extra) - self.wcf = wcf - self.LOG = logging.getLogger(__name__) - self.add_api_route("/text", self.send_text, methods=["POST"], summary="发送文本消息") - self.add_api_route("/image", self.send_image, methods=["POST"], summary="发送图片消息") - self.add_api_route("/file", self.send_file, methods=["POST"], summary="发送文件消息") - self.add_api_route("/send", self.send_text_deprecated, methods=["GET"], summary="【已过时,不要再使用】发送消息") - - def send_text(self, msg: str = Body("消息"), receiver: str = Body("filehelper"), aters: str = Body("")) -> dict: - """ 发送消息,可参考:robot.py 里 sendTextMsg - """ - ret = self.wcf.send_text(msg, receiver, aters) - return {"status": ret} - - def send_image(self, - path: str = Body("C:\\Projs\\WeChatRobot\\TEQuant.jpeg", description="图片路径"), - receiver: str = Body("filehelper", description="roomid 或者 wxid")) -> dict: - ret = self.wcf.send_image(path, receiver) - return {"status": ret} - - def send_file(self, - path: str = Body("C:\\Projs\\WeChatRobot\\TEQuant.jpeg", description="本地文件路径,不支持网络路径"), - receiver: str = Body("filehelper", description="roomid 或者 wxid")) -> dict: - ret = self.wcf.send_file(path, receiver) - return {"status": ret} - - def send_text_deprecated(self, msg: str, receiver: str, aters: str = "") -> dict: - ret = self.wcf.send_text(msg, receiver, aters) - - return {"status": ret, "msg": msg, "receiver": receiver, "aters": aters} - - @staticmethod - def start(http, host, port): - threading.Thread(name="HTTP", - target=uvicorn.run, - kwargs={"app": http, "host": host, "port": port}).start() - - -if __name__ == "__main__": - import time - import signal - - from configuration import Config - c = Config().HTTP - if not c: - exit(0) - - def handler(sig, frame): - exit(0) - - signal.signal(signal.SIGINT, handler) - - wcf = Wcf("tcp://127.0.0.1:10086") - home = "https://github.com/lich0821/WeChatFerry" - http = Http(wcf=wcf, - title="API for send text", - description=f"Github: WeChatFerry",) - Http.start(http, c.get("host", "0.0.0.0"), c.get("port", 9999)) - - while True: - time.sleep(1) diff --git a/main.py b/main.py index 0b50f56..69f26d5 100644 --- a/main.py +++ b/main.py @@ -40,13 +40,6 @@ def main(): # 机器人启动发送测试消息 robot.sendTextMsg("机器人启动成功!", "filehelper") - # 暴露 HTTP 接口供发送消息,需要在配置文件中取消 http 注释 - # 接口文档:http://localhost:9999/docs - # 访问示例: - # 1. 浏览器访问:http://localhost:9999/send?msg=hello%20world&receiver=filehelper - # 2. curl -X 'GET' 'http://localhost:9999/send?msg=hello%20world&receiver=filehelper' -H 'accept: application/json' - robot.enableHTTP() - # 接收消息 robot.enableRecvMsg() diff --git a/robot.py b/robot.py index 6e56a11..e5d0151 100644 --- a/robot.py +++ b/robot.py @@ -10,7 +10,6 @@ from wcferry import Wcf, WxMsg from configuration import Config from func_chatgpt import ChatGPT from func_chengyu import cy -from func_http import Http from func_news import News from job_mgmt import Job @@ -191,19 +190,6 @@ class Robot(Job): self.allContacts[msg.sender] = nickName[0] self.sendTextMsg(f"Hi {nickName[0]},我自动通过了你的好友请求。", msg.sender) - def enableHTTP(self) -> None: - """暴露 HTTP 发送消息接口供外部调用,不配置则忽略""" - c = self.config.HTTP - if not c: - return - - home = "https://github.com/lich0821/WeChatFerry" - http = Http(wcf=self.wcf, - title="API for send text", - description=f"Github: WeChatFerry",) - Http.start(http, c["host"], c["port"]) - self.LOG.info(f"HTTP listening on http://{c['host']}:{c['port']}") - def newsReport(self) -> None: receivers = self.config.NEWS if not receivers: