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

Commit 032310b

Browse files
committed
feat: implement WeProfileNameSetter for custom WeChat nickname updates via CGI requests
1 parent 8bb5f49 commit 032310b

1 file changed

Lines changed: 71 additions & 0 deletions

File tree

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
package moe.ouom.wekit.hooks.item.dev
2+
3+
import android.content.Context
4+
import com.afollestad.materialdialogs.MaterialDialog
5+
import com.afollestad.materialdialogs.input.input
6+
import moe.ouom.wekit.config.WeConfig
7+
import moe.ouom.wekit.core.model.BaseClickableFunctionHookItem
8+
import moe.ouom.wekit.hooks.core.annotation.HookItem
9+
import moe.ouom.wekit.hooks.sdk.protocol.WePkgHelper
10+
import moe.ouom.wekit.util.log.WeLogger
11+
12+
@HookItem(path = "娱乐功能/设置微信昵称", desc = "通过发包来更灵活的设置微信昵称")
13+
class WeProfileNameSetter : BaseClickableFunctionHookItem() {
14+
override fun entry(classLoader: ClassLoader) {}
15+
16+
override fun onClick(context: Context?) {
17+
context?.let {
18+
MaterialDialog(context)
19+
.title(text = "设置新的微信昵称")
20+
.input(
21+
hint = "请输入新的微信昵称",
22+
allowEmpty = true,
23+
waitForPositiveButton = true
24+
) { dialog, text ->
25+
val payload = """{"1":{"1":1,"2":{"1":64,"2":{"1":16,"2":{"1":1,"2":"${escapeJsonString(text.toString())}"}}}}}"""
26+
27+
WePkgHelper.INSTANCE?.sendCgi(
28+
"/cgi-bin/micromsg-bin/oplog",
29+
681, 0, 0,
30+
jsonPayload = payload
31+
) {
32+
onSuccess { json, bytes ->
33+
WeLogger.i("WeProfileNameSetter", "成功,回包: $json")
34+
MaterialDialog(it)
35+
.title(text = "提示")
36+
.message(text = "微信响应了你的请求,你可能需要重启才能看到更改。\n服务器响应数据: $json")
37+
.positiveButton(text = "我知道了") { dialog ->
38+
dialog.dismiss()
39+
}
40+
.show()
41+
}
42+
43+
onFail { errType, errCode, errMsg ->
44+
WeLogger.e("WeProfileNameSetter", "失败: type=$errType, code=$errCode, msg=$errMsg")
45+
MaterialDialog(it)
46+
.title(text = "出错了!")
47+
.message(text = "微信拒绝了你的请求!\n错误: $errType, $errCode, $errMsg")
48+
.positiveButton(text = "我知道了") { dialog ->
49+
dialog.dismiss()
50+
}
51+
.show()
52+
}
53+
}
54+
}
55+
.negativeButton(text = "取消") { dialog ->
56+
dialog.dismiss()
57+
}
58+
.show()
59+
60+
}
61+
}
62+
63+
64+
private fun escapeJsonString(input: String): String {
65+
return input.replace("\"", "\\\"")
66+
}
67+
68+
override fun noSwitchWidget(): Boolean {
69+
return true
70+
}
71+
}

0 commit comments

Comments
 (0)