| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 | """@desc 钉钉报警@auth ck手机号是str,用","分隔,如果不填,默认@所有人"""import requestsimport randomurl = "https://oapi.dingtalk.com/robot/send?access_token=ba21cd5591c44593ca7cac05902835e33298c7bf566a5381dc3f01e41c8d5c30"headers = {'Content-Type': 'application/json;charset=utf-8'}members = ["13726204048", "15168342316"]class DingTalkUtils:    """    @phone Str            不填:默认@所有人            可多个,按英文逗号隔开            可填 【ramdom】 随机发送    """    def send(self,msg, phone=""):        if phone == "":            isAtall = True            atMobiles = []        elif phone == "random":            isAtall = False            atMobiles = []            atMobiles.append(random.choice(members))        else:            isAtall = False            atMobiles =phone.split(",")        data = {'msgtype': 'text',                    "at": {"isAtAll": isAtall,                           "atMobiles": atMobiles},                    "text": {"content": msg+"\n[趣程]"}}        requests.post(url=url, headers=headers, json=data)from functools import wraps# 钉钉报警装饰器def DingTalkDecorators(msg):    def wrapper(func):        def deco(*args, **kwargs):            try:                func(*args, **kwargs)            except Exception as e:                DingTalkUtils().send(msg+"->运行出错: "+str(e))        return deco    return wrapper@DingTalkDecorators("装饰器测试")def test():    print(3/0)if __name__ == '__main__':    # DingTalkUtils.send("该下班了","13726204048,11")    # 发送的内容得加上趣程    test()
 |