From 8df799a6e41eca4914ca3cc7113644192b79b2e3 Mon Sep 17 00:00:00 2001 From: WhiteChi Date: Mon, 1 Jan 2024 00:37:12 +0800 Subject: [PATCH 1/4] `Shamrock`: fix #180 --- .../shamrock/remote/action/handlers/FavAddImageMsg.kt | 2 ++ .../remote/service/api/WebSocketClientServlet.kt | 10 +++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/FavAddImageMsg.kt b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/FavAddImageMsg.kt index 14b768b..2de21aa 100644 --- a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/FavAddImageMsg.kt +++ b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/action/handlers/FavAddImageMsg.kt @@ -131,6 +131,8 @@ internal object FavAddImageMsg: IActionHandler() { val pb = ProtoUtils.decodeFromByteArray(data) itemId = pb[2, 20009, 1].asUtf8String } + + System.gc() } return ok(PicInfo( diff --git a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/service/api/WebSocketClientServlet.kt b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/service/api/WebSocketClientServlet.kt index c39a52a..cf04ea2 100644 --- a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/service/api/WebSocketClientServlet.kt +++ b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/service/api/WebSocketClientServlet.kt @@ -37,7 +37,7 @@ import kotlin.concurrent.timer internal abstract class WebSocketClientServlet( url: String, private val heartbeatInterval: Long, - wsHeaders: Map + private val wsHeaders: Map ) : BaseTransmitServlet, WebSocketClient(URI(url), wsHeaders) { private val sendLock = Mutex() @@ -85,6 +85,14 @@ internal abstract class WebSocketClientServlet( } override fun onClose(code: Int, reason: String?, remote: Boolean) { + if (code == 403) { + if (wsHeaders.containsKey("authorization")) { + val token = wsHeaders["authorization"]!!.substring(7) + LogCenter.log("WebSocketClient连接被拒绝, token: $token 失效", Level.WARN) + } else { + LogCenter.log("WebSocketClient连接被拒绝, 未设置token", Level.WARN) + } + } LogCenter.log("WebSocketClient onClose: $code, $reason, $remote") cancelFlowJobs() } From cb904c1f1c106e29c5cefcd8116a1d693a68794b Mon Sep 17 00:00:00 2001 From: WhiteChi Date: Mon, 1 Jan 2024 00:38:44 +0800 Subject: [PATCH 2/4] `Shamrock`: fix #179 --- .../fuqiuluo/shamrock/remote/service/data/push/NoticeEvent.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/service/data/push/NoticeEvent.kt b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/service/data/push/NoticeEvent.kt index 8d9ec9a..1173a03 100644 --- a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/service/data/push/NoticeEvent.kt +++ b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/service/data/push/NoticeEvent.kt @@ -71,7 +71,7 @@ internal data class NoticeEvent( @SerialName("operator_id") val operatorId: Long = 0, @SerialName("user_id") val userId: Long = 0, @SerialName("sender_id") val senderId: Long = 0, - @SerialName("duration") val duration: Int = 0, + @SerialName("duration") val duration: Int = -1, @SerialName("message_id") val msgId: Int = 0, @SerialName("tip_text") val tip: String = "", @SerialName("target_id") val target: Long = 0, From 0360c81bee4171322877d04f23e1c61e6f05474e Mon Sep 17 00:00:00 2001 From: WhiteChi Date: Mon, 1 Jan 2024 00:40:55 +0800 Subject: [PATCH 3/4] `Shamrock`: fix #173 --- .../remote/service/api/WebSocketTransmitServlet.kt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/service/api/WebSocketTransmitServlet.kt b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/service/api/WebSocketTransmitServlet.kt index 9cee9e7..19a15e7 100644 --- a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/service/api/WebSocketTransmitServlet.kt +++ b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/service/api/WebSocketTransmitServlet.kt @@ -89,7 +89,13 @@ internal abstract class WebSocketTransmitServlet( if (path != "/api") { eventReceivers.remove(conn) } - LogCenter.log({ "WSServer断开(${conn.remoteSocketAddress.address.hostAddress}:${conn.remoteSocketAddress.port}$path): $code,$reason,$remote" }, Level.WARN) + runCatching { + conn.remoteSocketAddress.address.hostAddress to conn.remoteSocketAddress.port + }.onSuccess { + LogCenter.log({ "WSServer断开(${it.first}:${it.second}$path): $code,$reason,$remote" }, Level.WARN) + }.onFailure { + LogCenter.log({ "WSServer断开($path): $code,$reason,$remote" }, Level.WARN) + } } override fun onMessage(conn: WebSocket, message: String) { From d44150ea1af4c33ad7efb02e74cc4f64077621e8 Mon Sep 17 00:00:00 2001 From: WhiteChi Date: Mon, 1 Jan 2024 00:42:47 +0800 Subject: [PATCH 4/4] =?UTF-8?q?`Shamrock`:=20=E5=9C=A8=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E6=9F=90=E4=BA=9B=E5=AD=97=E6=AE=B5=E9=94=99=E8=AF=AF=E6=97=B6?= =?UTF-8?q?=EF=BC=8C=E5=B0=86=E5=AD=97=E6=AE=B5=E5=80=BC=E5=AE=9A=E4=B9=89?= =?UTF-8?q?=E4=B8=BA0=20#150?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../remote/service/data/push/NoticeEvent.kt | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/service/data/push/NoticeEvent.kt b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/service/data/push/NoticeEvent.kt index 1173a03..627df75 100644 --- a/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/service/data/push/NoticeEvent.kt +++ b/xposed/src/main/java/moe/fuqiuluo/shamrock/remote/service/data/push/NoticeEvent.kt @@ -67,14 +67,14 @@ internal data class NoticeEvent( @SerialName("post_type") val postType: PostType, @SerialName("notice_type") val type: NoticeType, @SerialName("sub_type") val subType: NoticeSubType = NoticeSubType.None, - @SerialName("group_id") val groupId: Long = 0, - @SerialName("operator_id") val operatorId: Long = 0, - @SerialName("user_id") val userId: Long = 0, - @SerialName("sender_id") val senderId: Long = 0, + @SerialName("group_id") val groupId: Long = -1, + @SerialName("operator_id") val operatorId: Long = -1, + @SerialName("user_id") val userId: Long = -1, + @SerialName("sender_id") val senderId: Long = -1, @SerialName("duration") val duration: Int = -1, - @SerialName("message_id") val msgId: Int = 0, + @SerialName("message_id") val msgId: Int = -1, @SerialName("tip_text") val tip: String = "", - @SerialName("target_id") val target: Long = 0, + @SerialName("target_id") val target: Long = -1, @SerialName("file") val file: GroupFileMsg? = null, @SerialName("private_file") val privateFile: PrivateFileMsg? = null, @SerialName("flag") val flag: String? = null, @@ -104,8 +104,8 @@ internal data class RequestEvent( @SerialName("post_type") val postType: PostType, @SerialName("request_type") val type: RequestType, @SerialName("sub_type") val subType: RequestSubType = RequestSubType.None, - @SerialName("group_id") val groupId: Long = 0, - @SerialName("user_id") val userId: Long = 0, + @SerialName("group_id") val groupId: Long = -1, + @SerialName("user_id") val userId: Long = -1, @SerialName("comment") val comment: String = "", @SerialName("flag") val flag: String? = null, )