个人测试

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
# -*- coding: utf-8 -*-
import logging
import requests
import json
import random
import time
# To enable the initializer feature (https://help.aliyun.com/document_detail/158208.html)
# please implement the initializer function as below:
# def initializer(context):
# logger = logging.getLogger()
# logger.info('initializing')

def handler(event, context):
'''
下方填写key 需抓包 key在更换微信登录后会改变 具体有效期尚未可知
'''
# key_list = ['yLV+9XC/a4tNteHHklaYvdvsDTD64sSQHCW0Aai7ITUo9rouv6WBrrHZ0RbcrIL/']
session = requests.session()
headers = {
'Host': 'jdsd.gzhu.edu.cn',
'Accept': '*/*',
'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 14_4_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) '
'Mobile/15E148 MicroMessenger/8.0.2(0x18000233) NetType/WIFI Language/en',
'Referer': 'https://servicewechat.com/wxb78a5743a9eed5bf/15/page-frame.html',
'Accept-Language': 'en-us'
}
session.headers = headers
url = "https://jdsd.gzhu.edu.cn/coctl_gzhu/index_wx.php"


def get_info():
# 获取个人信息 name:名字 today:今日获得积分 total:总积分
flag = False
info_data = {
'route': 'user_info',
'key': key
}
res = session.post(url, data=info_data).json()
info = {}
if res['status'] == 1:
flag = True
info['name'] = res['re']['user_name']
info['today'] = res['re']['per_day_credits']
info['total'] = res['re']['credits']
return flag, info


def signin():
# 签到
signin_data = {
'route': 'signin',
'key': key
}
res = session.post(url, data=signin_data).json()


def train():
# 每日一题函数, 可以直接获取每日一题题目编号, 构造编号和"1"的数组发送即可完成每日一题
get_id_data = {
'route': 'train_list_get',
'diff': '0',
'key': key
}
question = session.post(url, data=get_id_data).json()
ans = []
for i in question['re']['question_bag']:
ans.append([i['num'], "1"])
train_id = question['re']['train_id']
train_data = {
'route': 'train_finish',
'train_id': train_id,
'train_result': json.dumps(ans),
'key': key
}
res = session.post(url, data=train_data).json()
if res['status'] == 1:
return True
else:
return False


def read():
# 阅读函数 type从1到5 开始先发送一个开始的数据包, 结束把addtime换成91再发一次
read_data = {
'route': 'classic_time',
'addtime': 0,
'type': 1,
'key': key
}

for i in range(1, 6):
read_data['type'] = i
read_data['addtime'] = 0
begin = session.post(url, data=read_data)
read_data['addtime'] = 91
end = session.post(url, data=read_data)

def bark(flag, message=None):
# 接入bark通知 可以修改bark_url推送到自己手机(iOS only)
bark_url = ''
global text1, text2
if flag:
text1 = '{}刷分成功/'.format(time.strftime("%Y-%m-%d", time.localtime()))
text2 = '返回信息:{}'.format(message)
else:
text1 = '{}刷分失败了快去看看/'.format(time.strftime("%Y-%m-%d", time.localtime()))
text2 = '快看看'
requests.post(bark_url + '/' + text1 + text2)

# if __name__ == '__main__':
key_list = open('num.txt', 'r')
for key in key_list:
try:
# 先验证登录
flag, info = get_info()
if not flag:
raise Exception("登录失败 请验证key")
print("{}同学您好,您目前的积分为:{}".format(info['name'], info['total']))
# 签到+2
signin()
print('已完成签到')
# 进行每日一题
for i in range(15):
train()
print('已完成每日一题')
# 阅读一哈
read()
print('已完成阅读')
# 匹配一哈
# vs()
print('已完成匹配')
# 返回
flag, info = get_info()
string = "{}同学您好,今日获得:{} 总积分:{}".format(info['name'],info['today'], info['total'])
print(string)
# 通知 需要填入bark_url
# bark(1,message = string)
except Exception as e:
print(e)
# bark(0,message = e)

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论。

💰

×

Help us with donation