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