[Python] 纯文本查看 复制代码#!/usr/bin/env python
# -*- coding: utf-8 -*-
# [url=home.php?mod=space&uid=238618]@Time[/url] : 2020/8/16
# @Author: Error 基于馬騳驫兄弟的脚本修改
# [url=home.php?mod=space&uid=267492]@file[/url] : 小米运动云函数刷步数.py
# @Software: PyCharm
import requests
import time
import json
import re
import random
'''
前提需要登入小米运动,绑定支付宝,微信
小米运动刷步教(同步微信支付宝),有两种方式
大家需要在小米运动中抓包
方式一: app_token登录,app_token有效期为1天,需要每天抓取
方拾二: login_token登录,小米运动只要不退出登录,就会自动获取新的token,即永久有效
'''
login = '2' # 填入1或者2,推荐2
app_token = ''
userid = ''
login_token = '填自己抓取的login——token'
push_one = '1' # 填入1 酷推 or 填入2 server酱
# 酷推机器人key
key = "#"
# 填写server酱的sckey
sckey = '#'
## 想要修改的步数,范围内随机取值
step = random.randint(19999, 29999)
def get_time():
global t, today
url = "http://api.m.taobao.com/rest/api3.do?api=mtop.common.getTimestamp"
res = requests.get(url).text
find = re.compile(r'"t":"(.*)"')
t = find.findall(res)
t = t[0]
today = time.strftime("%F")
# 获取本地时间
def localtime():
global now
now = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
return time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
def start():
if login == '1':
change_step()
elif login == '2':
get_app_token()
else:
print('选择的方式有误,请重新填写')
exit()
if push_one == '1' :
push_robot(desp)
elif push_one == '2' :
push_wx(desp)
def get_app_token():
# 获取app_token
global app_token, userid, desp
url = 'https://account-cn.huami.com/v1/client/app_tokens?app_name=com.xiaomi.hm.health&dn=api-user.huami.com%2Capi-mifit.huami.com%2Capp-analytics.huami.com&login_token=' + login_token
headers = {
'User-Agent': 'Dalvik/2.1.0 (Linux; U; Android 9; MI 6 MIUI/20.6.18)'
}
response = requests.get(url, headers=headers).text
if str(response).find('token_info') != -1:
token_info = json.loads(response)['token_info']
app_token = token_info['app_token']
userid = token_info['user_id']
change_step()
else:
desp = 'login_token已失效,请重新获取'
print(localtime() + ' ' + desp)
# 推送server
def push_wx(desp=""):
"""
推送消息到微信
"""
server_url = "https://sc.ftqq.com/%s.send" % sckey
params = {
"text": '小米运动 步数修改',
"desp": desp
}
response = requests.get(server_url, params=params)
json_data = response.json()
if json_data['errno'] == 0:
print(localtime() + " 推送成功。")
else:
print("{0} 推送失败:{1} \n {2}".format(localtime(),
json_data['errno'], json_data['errmsg']))
# 推送酷推
def push_robot(desp=''):