From 4704d8c908bdef0acf52834d61a5157a1c0b4837 Mon Sep 17 00:00:00 2001 From: rainerosion Date: Sun, 27 Jun 2021 21:23:32 +0800 Subject: [PATCH] add go-cqhttp Message push --- notify.py | 44 ++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 40 insertions(+), 4 deletions(-) diff --git a/notify.py b/notify.py index 246af95..f86ca95 100644 --- a/notify.py +++ b/notify.py @@ -4,16 +4,16 @@ @Last modified by : y1ndan @Last modified time : 2021-01-13 11:01:10 ''' +import base64 +import hashlib +import hmac import json import os import time -import hmac -import hashlib -import base64 +from urllib import parse import requests from requests.exceptions import HTTPError -from urllib import parse from settings import log @@ -121,6 +121,20 @@ class Notify(object): # 注: Github Actions用户请到Settings->Secrets里设置,Name=PUSH_PLUS_USER,Value=<获取的值> PUSH_PLUS_USER = '' + + # ============================== go-cqhttp ==================================== + # 官方文档:https://docs.go-cqhttp.org/guide/quick_start.html#使用 + # GO_CQHTTP_URL 服务器地址 + # GO_CQHTTP_TOKEN 你的token + # GO_CQHTTP_GROUP 参数 + # GO_CQHTTP_API 接口名 + + GO_CQHTTP_URL = '' + GO_CQHTTP_TOKEN = '' + GO_CQHTTP_GROUP_NO = '' + GO_CQHTTP_API = '' + + if os.environ.get('PUSH_PLUS_TOKEN', '') != '': PUSH_PLUS_TOKEN = os.environ['PUSH_PLUS_TOKEN'] if os.environ.get('PUSH_PLUS_USER', '') != '': @@ -314,6 +328,27 @@ class Notify(object): log.info('您未配置pushplus推送所需的PUSH_PLUS_TOKEN,取消pushplus推送') pass + def cqhttp(self, text, status, desp): + if Notify.GO_CQHTTP_URL != '': + url = '{}{}'.format(Notify.GO_CQHTTP_URL, Notify.GO_CQHTTP_API) + data = { + 'access_token': Notify.GO_CQHTTP_TOKEN, + 'message': '{} {}\n\n{}'.format(text, status, desp), + 'group_id': Notify.GO_CQHTTP_GROUP_NO + } + try: + response = self.to_python(requests.get(url, params=data).text) + except Exception as e: + log.error(e) + raise HTTPError + else: + if response['status'] == 'ok': + log.info('go-cqhttp推送成功') + else: + log.error('go-cqhttp推送失败:\n{}'.format(response)) + else: + log.info('您未配置go-cqhttp推送所需的GO_CQHTTP_URL,取消go-cqhttp推送') + pass def send(self, **kwargs): app = '原神签到小助手' status = kwargs.get('status', '') @@ -332,6 +367,7 @@ class Notify(object): self.wwBot(app, status, msg) self.iGot(app, status, msg) self.pushPlus(app, status, msg) + self.cqhttp(app, status, msg) if __name__ == '__main__':