小修补
Some checks failed
Android CI / build (push) Failing after 14m56s

This commit is contained in:
MoonLeeeaf
2024-10-26 11:00:44 +08:00
parent 59c457675d
commit 3a57d0b23f
2 changed files with 38 additions and 54 deletions

View File

@@ -4,62 +4,17 @@
"file": "/storage/emulated/0/MoonLeaf/Projects/FuckMaoNemo/app/src/main/java/io/github/moonleeeaf/fuckmaonemo/Hook.java", "file": "/storage/emulated/0/MoonLeaf/Projects/FuckMaoNemo/app/src/main/java/io/github/moonleeeaf/fuckmaonemo/Hook.java",
"selection": { "selection": {
"end": { "end": {
"column": 101, "column": 34,
"index": 9409, "index": 10304,
"line": 222 "line": 244
}, },
"start": { "start": {
"column": 101, "column": 34,
"index": 9409, "index": 10304,
"line": 222 "line": 244
}
}
},
{
"file": "/storage/emulated/0/MoonLeaf/Projects/FuckMaoNemo/app/build.gradle",
"selection": {
"end": {
"column": 22,
"index": 272,
"line": 14
},
"start": {
"column": 22,
"index": 272,
"line": 14
}
}
},
{
"file": "/storage/emulated/0/MoonLeaf/Projects/FuckMaoNemo/app/src/main/java/io/github/moonleeeaf/fuckmaonemo/ConfigActivity.java",
"selection": {
"end": {
"column": 8,
"index": 2261,
"line": 57
},
"start": {
"column": 8,
"index": 2261,
"line": 57
}
}
},
{
"file": "/storage/emulated/0/MoonLeaf/Projects/FuckMaoNemo/app/src/main/res/xml/config.xml",
"selection": {
"end": {
"column": 48,
"index": 2950,
"line": 86
},
"start": {
"column": 25,
"index": 2927,
"line": 86
} }
} }
} }
], ],
"selectedFile": "/storage/emulated/0/MoonLeaf/Projects/FuckMaoNemo/app/src/main/java/io/github/moonleeeaf/fuckmaonemo/ConfigActivity.java" "selectedFile": "/storage/emulated/0/MoonLeaf/Projects/FuckMaoNemo/app/src/main/java/io/github/moonleeeaf/fuckmaonemo/Hook.java"
} }

View File

@@ -232,20 +232,37 @@ public class Hook implements IXposedHookLoadPackage {
filters.add(nwf); filters.add(nwf);
} }
XposedBridge.hookMethod(
getMethod(
XposedHelpers.findClass("com.codemao.nemo.bean.LatestWorks", classLoader),
"getLimit",
null //List.class
),
new XC_MethodReplacement() {
@Override
protected Object replaceHookedMethod(MethodHookParam mp) throws Throwable {
return 100;
}
}
);
XposedBridge.hookMethod( XposedBridge.hookMethod(
getMethod( getMethod(
XposedHelpers.findClass("com.codemao.nemo.bean.LatestWorks", classLoader), XposedHelpers.findClass("com.codemao.nemo.bean.LatestWorks", classLoader),
"getItems", "getItems",
null null //List.class
), ),
new XC_MethodReplacement() { new XC_MethodReplacement() {
@Override @Override
protected Object replaceHookedMethod(MethodHookParam mp) throws Throwable { protected Object replaceHookedMethod(MethodHookParam mp) throws Throwable {
List ls = (List) XposedHelpers.getObjectField(mp.thisObject, "items"); List ls = (List) XposedHelpers.getObjectField(mp.thisObject, "items"); // mp.args[0]; //
ArrayList al = new ArrayList(); ArrayList al = new ArrayList();
int passed = 0;
for (Object o : ls) { for (Object o : ls) {
String workName = (String) XposedHelpers.getObjectField(o, "work_name"); String workName = (String) XposedHelpers.getObjectField(o, "work_name");
String userId = "" + XposedHelpers.getLongField(o, "user_id"); String userId = "" + XposedHelpers.getLongField(o, "user_id");
@@ -255,6 +272,7 @@ public class Hook implements IXposedHookLoadPackage {
for (NewestWorksFilter filter : filters) { for (NewestWorksFilter filter : filters) {
if (filter.matches(userId, workName)) { if (filter.matches(userId, workName)) {
disadd = true; disadd = true;
passed++;
break; break;
} }
} }
@@ -268,7 +286,18 @@ public class Hook implements IXposedHookLoadPackage {
al.add(o); al.add(o);
} }
// XposedHelpers.setObjectField(mp.thisObject, "items", al);
int offset = XposedHelpers.getIntField(mp.thisObject, "offset");
XposedHelpers.setIntField(mp.thisObject, "offset", offset + passed);
int total = XposedHelpers.getIntField(mp.thisObject, "total");
// XposedHelpers.setIntField(mp.thisObject, "total", total - passed);
XposedBridge.log("[FuckMaoNemo] 过滤完毕 原数据: offset=" + offset + " total=" + total);
return al; return al;
// return null;
} }
} }
); );