• Python 京东云无线宝消息推送


    Python 京东云无线宝消息推送

    配置文件

    注释里面有写,懒得用配置文件了

    代码

    # 京东云无线路由宝推送
    import requests
    import json
    import time
    import hmac
    import hashlib
    import base64
    import urllib.parse
    from datetime import datetime
    # 发送钉钉消息
    def sendinfo_ding(token,secret,data):
        dic=get_timestamp_and_sign_by_secret(secret)
        timestamp=dic['timestamp']
        sign=dic['sign']
        url = 'https://oapi.dingtalk.com/robot/send?access_token=%s&timestamp=%s&sign=%s' %(token,timestamp,sign)  #你的机器人webhook地址
        headers = {'Content-Type': 'application/json'}
        f = requests.post(url, data=json.dumps(data), headers=headers)
    # 获取密签
    def get_timestamp_and_sign_by_secret(secret):
        timestamp = str(round(time.time() * 1000))
        secret_enc = secret.encode('utf-8')
        string_to_sign = '{}
    {}'.format(timestamp, secret)
        string_to_sign_enc = string_to_sign.encode('utf-8')
        hmac_code = hmac.new(secret_enc, string_to_sign_enc, digestmod=hashlib.sha256).digest()
        sign = urllib.parse.quote_plus(base64.b64encode(hmac_code))
        return {"timestamp":timestamp,"sign":sign}
    # 获取可用积分
    def get_jd_total_avail_point(wskey):
        url='https://router-app-api.jdcloud.com/v1/regions/cn-north-1/pinTotalAvailPoint'
        headers = {'Content-Type': 'application/json','wskey':wskey}
        rsp=requests.get(url,headers=headers)
        data=(json.loads(rsp.text)['result']['totalAvailPoint'])
        return {'totalAvailPoint':data}
    # 获取积分详情
    def get_jd_detail(wskey):
        url='https://router-app-api.jdcloud.com/v1/regions/cn-north-1/todayPointDetail?sortField=today_point&sortDirection=DESC&pageSize=15&currentPage=1'
        headers = {'Content-Type': 'application/json','wskey':wskey}
        rsp=requests.get(url,headers=headers)
        data=(json.loads(rsp.text)['result'])
        items=data['pointInfos']
        total_today_point=0
        total_all_point=0
        dic={}
        dic['todayDate']=data['todayDate']
        dic['items']=[]
        for item in items:
            mac=item['mac']
            today_point=item['todayPointIncome']
            all_point=item['allPointIncome']
            total_today_point+=int(today_point)
            total_all_point+=int(all_point)
            dic['items'].append(item)
        dic['total_today_point']=total_today_point
        dic['total_all_point']=total_all_point
        return dic
    # 发送京东路由宝日报
    def send_jd_router(wskey):
        dic=get_jd_detail(wskey)
        msg='# 京东路由宝日报
    '
        msg+='## %s 
    ' %(dic['todayDate'])
        msg+=('> 今日获取总积分为**%d**分,对应金钱为 **%.2f**元
    ' %(dic['total_today_point'],float(dic['total_today_point'])/100))
        for item in dic['items']:
            msg+=('>> 设备**%s** 
    ' %(item['mac']))
            msg+=('>>> 今日获取积分为**%s**分,对应金钱为 **%.2f**元 
    
    ' %(item['todayPointIncome'],float(item['todayPointIncome'])/100))
        msg+=('> 累计总积分为 **%s** 分,对应金钱 **%.2f** 元 
    
    ' %(dic['total_all_point'],float(dic['total_all_point'])/100))
        dic=get_jd_total_avail_point(wskey)
        msg+=('> 目前可用积分为 **%s** 分,对应金钱 **%.2f** 元' %(dic['totalAvailPoint'],float(dic['totalAvailPoint'])/100))
    
        # token=""
        # secret=""
        # data = {
        #     "msgtype": "markdown",
        #     "markdown": {
        #         "title":"京东云路由宝日报",
        #         "text": msg
        #         },
        # }
        # sendinfo_ding(token,secret,data)
        
        # 更改server酱发送
        server_send_wechat('京东路由宝日报',msg)
    
    #Server酱发送微信
    def server_send_wechat(text,desp=''):
        # Server酱 Key
        key=''
        url=('https://sc.ftqq.com/%s.send' %key)
        params={
            'text':text,
            'desp':desp
        }
        requests.get(url,params)
    
    # 更改为配置文件获取 todo
    wskey=''
    while True:
        now = datetime.now()
        print("任务执行的时间为:"+datetime.strftime(now,"%Y-%m-%d:%H:%M:%S"))
        if now.hour==8 and now.minute==0:
            send_jd_router(wskey)
        time.sleep(60)
    
    
    
    
    
    
  • 相关阅读:
    pymongo中的连接操作:Connection()与MongoClient()
    Dynamics CRM2016 新功能之从CRM APP通过电子邮件发送页面链接
    [开发工具]_[Sublime Text 2]_[配置C++编译执行环境]
    struts2 全局拦截器,显示请求方法和參数
    A. Polo the Penguin and Strings
    linux驱动之LED驱动_1
    dbgrid控件如何能在左边显示行号?
    软件提示“没有活动事务”原因以及解决办法
    刷新dbgrid 而不失去当前行位置
    用ClientDataSet更新数据表,怎样自动生成行号? [问题点数:40分]
  • 原文地址:https://www.cnblogs.com/Alex-Mercer/p/14429647.html
Copyright © 2020-2023  润新知