可以修改小米运动中的步数,仅支持小米运动账号(即华米), 不支持小米账号'
import re
import time
import argparse
from DecryptLogin import login
'''命令行参数解析'''
def parseArgs():
parser = argparse.ArgumentParser(description='修改小米运动中的步数')
parser.add_argument('--username', dest='username', help='用户名, 仅支持小米运动账号(即华米), 不支持小米账号', type=str, required=True)
parser.add_argument('--password', dest='password', help='密码, 仅支持小米运动账号(即华米), 不支持小米账号', type=str, required=True)
parser.add_argument('--steps', dest='steps', help='想要刷到的目标步数', type=str, required=True)
args = parser.parse_args()
return args
'''修改小米运动中的步数'''
class ModifyMiHealthSteps():
def __init__(self, username, password, steps='10000', **kwargs):
self.steps = steps
self.username = username
self.password = password
self.infos_return, self.session = self.login(username, password)
self.headers = {
'User-Agent': 'Dalvik/2.1.0 (Linux; U; Android 9; MI 6 MIUI/20.6.18)'
}
'''运行'''
def run(self):
login_token = self.infos_return['token_info']['login_token']
user_id = self.infos_return['token_info']['user_id']
# 获得app token
url = 'https://account-cn.huami.com/v1/client/app_tokens'
params = {
'app_name': 'com.xiaomi.hm.health',
'dn': 'api-user.huami.com%2Capi-mifit.huami.com%2Capp-analytics.huami.com',
'login_token': login_token,
}
response = self.session.get(url, params=params, headers=self.headers)
app_token = response.json()['token_info']['app_token']
# 获得时间戳
url = 'http://api.m.taobao.com/rest/api3.do?api=mtop.common.getTimestamp'
response = self.session.get(url, headers=self.headers).json()
t = response['data']['t']
# 构造修改步数的请求
url = f'https://api-mifit-cn.huami.com/v1/data/band_data.json?&t={t}'
headers = {
'apptoken': app_token,
'Content-Type': 'application/x-www-form-urlencoded',
}
today = time.strftime('%F')
data_json = '%5B%7B%22data_hr%22%3A%22%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F9L%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2FVv%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F0v%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F9e%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F0n%5C%2Fa%5C%2F%5C%2F%5C%2FS%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F0b%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F1FK%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2FR%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F9PTFFpaf9L%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2FR%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F0j%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F9K%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2FOv%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2F%5C%2Fzf%5C%2F%5C%2F%5C%2F86%5C%