Skip to content
This repository was archived by the owner on Jul 24, 2024. It is now read-only.

Commit 650af0a

Browse files
authored
Merge pull request #250 from simplejuzi/main
新增运动任务
2 parents c021631 + e65aece commit 650af0a

File tree

2 files changed

+136
-14
lines changed

2 files changed

+136
-14
lines changed

app/src/main/java/tkaxv7s/xposed/sesame/model/task/antSports/AntSports.java

Lines changed: 72 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import de.robv.android.xposed.XC_MethodHook;
44
import de.robv.android.xposed.XposedHelpers;
55
import org.json.JSONArray;
6+
import org.json.JSONException;
67
import org.json.JSONObject;
78
import tkaxv7s.xposed.sesame.data.ModelFields;
89
import tkaxv7s.xposed.sesame.data.ModelGroup;
@@ -17,25 +18,16 @@
1718
import tkaxv7s.xposed.sesame.model.normal.base.BaseModel;
1819
import tkaxv7s.xposed.sesame.util.*;
1920

21+
import java.util.ArrayList;
2022
import java.util.Calendar;
2123
import java.util.LinkedHashSet;
24+
import java.util.List;
2225

2326
public class AntSports extends ModelTask {
2427

2528
private static final String TAG = AntSports.class.getSimpleName();
2629

2730
private int tmpStepCount = -1;
28-
29-
@Override
30-
public String getName() {
31-
return "运动";
32-
}
33-
34-
@Override
35-
public ModelGroup getGroup() {
36-
return ModelGroup.SPORTS;
37-
}
38-
3931
private BooleanModelField openTreasureBox;
4032
private BooleanModelField receiveCoinAsset;
4133
private BooleanModelField donateCharityCoin;
@@ -48,11 +40,23 @@ public ModelGroup getGroup() {
4840
private BooleanModelField battleForFriends;
4941
private ChoiceModelField battleForFriendType;
5042
private SelectModelField originBossIdList;
43+
private BooleanModelField sportsTasks;
44+
45+
@Override
46+
public String getName() {
47+
return "运动";
48+
}
49+
50+
@Override
51+
public ModelGroup getGroup() {
52+
return ModelGroup.SPORTS;
53+
}
5154

5255
@Override
5356
public ModelFields getFields() {
5457
ModelFields modelFields = new ModelFields();
5558
modelFields.addField(openTreasureBox = new BooleanModelField("openTreasureBox", "开启宝箱", false));
59+
modelFields.addField(sportsTasks = new BooleanModelField("sportsTasks", "开启运动任务", false));
5660
modelFields.addField(receiveCoinAsset = new BooleanModelField("receiveCoinAsset", "收运动币", false));
5761
modelFields.addField(donateCharityCoin = new BooleanModelField("donateCharityCoin", "捐运动币 | 开启", false));
5862
modelFields.addField(donateCharityCoinType = new ChoiceModelField("donateCharityCoinType", "捐运动币 | 方式", DonateCharityCoinType.ONE, DonateCharityCoinType.nickNames));
@@ -113,13 +117,13 @@ public void run() {
113117
}
114118
}));
115119
}
120+
if (sportsTasks.getValue())
121+
sportsTasks();
122+
116123
ClassLoader loader = ApplicationHook.getClassLoader();
117124
if (openTreasureBox.getValue())
118125
queryMyHomePage(loader);
119126

120-
if (receiveCoinAsset.getValue())
121-
receiveCoinAsset();
122-
123127
if (donateCharityCoin.getValue() && Status.canDonateCharityCoin())
124128
queryProjectList(loader);
125129

@@ -139,6 +143,9 @@ public void run() {
139143
queryTrainItem();
140144
buyMember();
141145
}
146+
147+
if (receiveCoinAsset.getValue())
148+
receiveCoinAsset();
142149
} catch (Throwable t) {
143150
Log.i(TAG, "start.run err:");
144151
Log.printStackTrace(TAG, t);
@@ -159,6 +166,57 @@ public int tmpStepCount() {
159166
return tmpStepCount;
160167
}
161168

169+
// 运动
170+
private void sportsTasks() {
171+
try {
172+
Log.record("运动任务开始");
173+
174+
JSONObject jo = new JSONObject(AntSportsRpcCall.queryCoinTaskPanel());
175+
if (jo.getBoolean("success")) {
176+
JSONObject data = jo.getJSONObject("data");
177+
JSONArray taskList = data.getJSONArray("taskList");
178+
179+
for (int i = 0; i < taskList.length(); i++) {
180+
JSONObject taskDetail = taskList.getJSONObject(i);
181+
182+
String taskId = taskDetail.getString("taskId");
183+
String taskName = taskDetail.getString("taskName");
184+
String prizeAmount = taskDetail.getString("prizeAmount");
185+
String taskStatus = taskDetail.getString("taskStatus");
186+
int currentNum = taskDetail.getInt("currentNum");
187+
// 要完成的次数
188+
int limitConfigNum = taskDetail.getInt("limitConfigNum")-currentNum;
189+
190+
if (taskStatus.equals("HAS_RECEIVED"))
191+
return;
192+
for (int i1 = 0; i1 < limitConfigNum; i1++) {
193+
jo = new JSONObject(AntSportsRpcCall.completeExerciseTasks(taskId));
194+
if (jo.getBoolean("success")) {
195+
Log.record("做任务得运动币👯[完成任务:" + taskName + ",得" + prizeAmount + "🪙]");
196+
// Log.record(jo.toString());
197+
receiveCoinAsset();
198+
}else {
199+
// Log.record(jo.toString());
200+
}
201+
if (limitConfigNum>1)
202+
Thread.sleep(5000);
203+
else
204+
Thread.sleep(1000);
205+
}
206+
207+
208+
}
209+
}
210+
} catch (JSONException e) {
211+
Log.i(TAG, "sportsTasks err:");
212+
Log.printStackTrace(e);
213+
throw new RuntimeException(e);
214+
} catch (InterruptedException e) {
215+
throw new RuntimeException(e);
216+
}
217+
}
218+
219+
162220
private void receiveCoinAsset() {
163221
try {
164222
String s = AntSportsRpcCall.queryCoinBubbleModule();

app/src/main/java/tkaxv7s/xposed/sesame/model/task/antSports/AntSportsRpcCall.java

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,70 @@ public class AntSportsRpcCall {
77
timeZone = "Asia\\/Shanghai", version = "3.0.1.2", alipayAppVersion = "0.0.852",
88
cityCode = "330100", appId = "2021002116659397";
99

10+
// 运动任务查询
11+
public static String queryCoinTaskPanel() {
12+
String args1 = "[\n" +
13+
" {\n" +
14+
" \"canAddHome\": false,\n" +
15+
" \"chInfo\": \"ch_appcenter__chsub_9patch\",\n" +
16+
" \"clientAuthStatus\": \"not_support\",\n" +
17+
" \"clientOS\": \"android\",\n" +
18+
" \"features\": [\n" +
19+
" \"DAILY_STEPS_RANK_V2\",\n" +
20+
" \"STEP_BATTLE\",\n" +
21+
" \"CLUB_HOME_CARD\",\n" +
22+
" \"NEW_HOME_PAGE_STATIC\",\n" +
23+
" \"CLOUD_SDK_AUTH\",\n" +
24+
" \"STAY_ON_COMPLETE\",\n" +
25+
" \"EXTRA_TREASURE_BOX\",\n" +
26+
" \"NEW_HOME_PAGE_STATIC\",\n" +
27+
" \"SUPPORT_AI\",\n" +
28+
" \"SUPPORT_TAB3\",\n" +
29+
" \"SUPPORT_FLYRABBIT\",\n" +
30+
" \"SUPPORT_NEW_MATCH\",\n" +
31+
" \"EXTERNAL_ADVERTISEMENT_TASK\",\n" +
32+
" \"PROP\",\n" +
33+
" \"PROPV2\",\n" +
34+
" \"ASIAN_GAMES\"\n" +
35+
" ],\n" +
36+
" \"topTaskId\": \"\"\n" +
37+
" }\n" +
38+
"]";
39+
40+
return ApplicationHook.requestString("com.alipay.sportshealth.biz.rpc.SportsHealthCoinTaskRpc.queryCoinTaskPanel", args1);
41+
}
42+
// 去完成任务
43+
public static String completeExerciseTasks(String taskId) {
44+
String args1 = "[\n" +
45+
" {\n" +
46+
" \"chInfo\": \"ch_appcenter__chsub_9patch\",\n" +
47+
" \"clientOS\": \"android\",\n" +
48+
" \"features\": [\n" +
49+
" \"DAILY_STEPS_RANK_V2\",\n" +
50+
" \"STEP_BATTLE\",\n" +
51+
" \"CLUB_HOME_CARD\",\n" +
52+
" \"NEW_HOME_PAGE_STATIC\",\n" +
53+
" \"CLOUD_SDK_AUTH\",\n" +
54+
" \"STAY_ON_COMPLETE\",\n" +
55+
" \"EXTRA_TREASURE_BOX\",\n" +
56+
" \"NEW_HOME_PAGE_STATIC\",\n" +
57+
" \"SUPPORT_AI\",\n" +
58+
" \"SUPPORT_TAB3\",\n" +
59+
" \"SUPPORT_FLYRABBIT\",\n" +
60+
" \"SUPPORT_NEW_MATCH\",\n" +
61+
" \"EXTERNAL_ADVERTISEMENT_TASK\",\n" +
62+
" \"PROP\",\n" +
63+
" \"PROPV2\",\n" +
64+
" \"ASIAN_GAMES\"\n" +
65+
" ],\n" +
66+
" \"taskAction\": \"JUMP\",\n" +
67+
" \"taskId\": \""+taskId+"\"\n" +
68+
" }\n" +
69+
"]";
70+
71+
return ApplicationHook.requestString("com.alipay.sportshealth.biz.rpc.SportsHealthCoinTaskRpc.completeTask", args1);
72+
}
73+
1074
public static String queryCoinBubbleModule() {
1175
return ApplicationHook.requestString("com.alipay.sportshealth.biz.rpc.sportsHealthHomeRpc.queryCoinBubbleModule",
1276
"[{\"bubbleId\":\"\",\"canAddHome\":false,\"chInfo\":\"" + chInfo

0 commit comments

Comments
 (0)