mirror of
https://github.com/whitechi73/OpenShamrock.git
synced 2024-08-14 05:12:17 +00:00
Compare commits
97 Commits
46ed966c18
...
v1.0.9
Author | SHA1 | Date | |
---|---|---|---|
976526ab79 | |||
cdc9ca1a72 | |||
609e87d0ec | |||
cf01a25ea6 | |||
f090ef1937 | |||
1cc033498c | |||
7eaa470dd2 | |||
c49861d982 | |||
36ed55d220 | |||
e2f27cb36a | |||
65ddca2ea4 | |||
a6f570e4f0 | |||
29dfc1590b | |||
ffeda0a472 | |||
0e5add2146 | |||
be9ff46134 | |||
1d6ac3e022 | |||
2db187e3d5 | |||
18ec586b12 | |||
7782feb6ac | |||
824f280b3a | |||
6936262d62 | |||
0955267ee5 | |||
f3da62fa74 | |||
abbac6315c | |||
0cf10eabd6 | |||
8c33267887 | |||
f030104ff2 | |||
5e819179b4 | |||
ea206faf4f | |||
5adfc544a2 | |||
bdb75841cf | |||
a3dc0d06b2 | |||
3664352f23 | |||
2770979fee | |||
be58c368e9 | |||
1d035fa378 | |||
7d0b60271e | |||
d38777d06a | |||
93c49953cf | |||
883e949cc1 | |||
2ac0003166 | |||
d92d1daffb | |||
27f837adbe | |||
661680e60b | |||
54b7eb95a8 | |||
265fff3cd2 | |||
8ca0a3815a | |||
da6d34c53e | |||
61ffb37951 | |||
593f461ffe | |||
12d594697d | |||
352aa5f737 | |||
9546e90bec | |||
26b4d95ad8 | |||
4a6109fbe6 | |||
d6142173c9 | |||
38cf806b40 | |||
82269bb171 | |||
fc0d7a62af | |||
60fdfd9071 | |||
1f620bcc06 | |||
737acfa41b | |||
3619cba33c | |||
52ec43abf8 | |||
e96c356de4 | |||
bbdb0a65fb | |||
ec56e32be1 | |||
4dc83fdeba | |||
541422a43e | |||
cb7bf00e17 | |||
a3171b3111 | |||
02626489eb | |||
a9a2e9a3dd | |||
964c55de31 | |||
befb4a2bef | |||
210609bd7b | |||
3e03d4782d | |||
675a7a5321 | |||
a78b5cab23 | |||
252a3527a8 | |||
ea4cf06edf | |||
1424efd7f8 | |||
eb807a0332 | |||
e9a3a82b68 | |||
fca66f3259 | |||
92ebe0c6a8 | |||
6b1147d065 | |||
720313124c | |||
68ea62ea0b | |||
5584a41af0 | |||
0bca46bba3 | |||
4f1d19fcbd | |||
9a85e4d537 | |||
fac92d8094 | |||
605f58da47 | |||
d22f3ad1cb |
4
.github/workflows/build-apk.yml
vendored
4
.github/workflows/build-apk.yml
vendored
@ -3,7 +3,7 @@ name: Build Shamrock APK
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
branches: [ master ]
|
||||
branches: [ v1.0.9 ]
|
||||
paths-ignore:
|
||||
- '**.md'
|
||||
- '**.txt'
|
||||
@ -97,4 +97,4 @@ jobs:
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: "${{ env.SHAMROCK_VERSION_x86_64 }}"
|
||||
path: "${{ env.APK_FILE_X86_64 }}"
|
||||
path: "${{ env.APK_FILE_X86_64 }}"
|
||||
|
24
README.md
24
README.md
@ -16,7 +16,7 @@
|
||||
|
||||
## 简介
|
||||
|
||||
☘ 基于 Lsposed(**Non**-Riru) 实现 OneBot 标准的 QQ 机器人框架,原作者[**fuqiuluo**](https://github.com/fuqiuluo)已脱离开发,接下来由白池接手哦!本项目为OpenShamrock,不会有任何收费行为,欢迎大家的加入!
|
||||
☘ 基于 Lsposed(**Non**-Riru) 实现 OneBot 标准的 QQ 机器人框架!
|
||||
|
||||
> 本项目仅提供学习与交流用途,请在24小时内删除。
|
||||
> 本项目目的是研究 Xposed 和 LSPosed 框架的使用。 Epic 框架开发相关知识。
|
||||
@ -27,9 +27,27 @@
|
||||
|
||||
## 兼容|迁移|替代 说明
|
||||
|
||||
仅支持QQ9.0.70以上的版本,低版本问题将不再修复与处理。
|
||||
|
||||
- 一键移植:本项目基于 go-cqhttp 的文档进行开发实现。
|
||||
- 平行部署:可多平台部署,未来将会支持 Docker 部署的教程。
|
||||
- 替代方案:[Lagrange.Core](https://github.com/LagrangeDev/Lagrange.Core)
|
||||
- 平行部署:可多平台部署,未来将会支持 Docker 部署的教程。
|
||||
|
||||
## 相关项目
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<td><a href="https://github.com/LagrangeDev/Lagrange.Core">Lagrange.Core</a></td>
|
||||
<td>NTQQ 的协议实现</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/whitechi73/OpenShamrock">OpenShamrock</a></td>
|
||||
<td>基于 Xposed 实现 OneBot 标准的机器人框架(👈你在这里</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a href="https://github.com/chrononeko/chronocat">Chronocat</a></td>
|
||||
<td>基于 Electron 的、模块化的 Satori 框架</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
## 权限声明
|
||||
|
||||
|
@ -7,10 +7,6 @@ import kotlin.reflect.KClass
|
||||
|
||||
interface Protobuf<T: Protobuf<T>>
|
||||
|
||||
inline fun <reified T: Protobuf<T>> KClass<T>.decode(data: ByteArray): T {
|
||||
return ProtoBuf.decodeFromByteArray(data)
|
||||
}
|
||||
|
||||
inline fun <reified T: Protobuf<T>> ByteArray.decodeProtobuf(to: KClass<T>? = null): T {
|
||||
return ProtoBuf.decodeFromByteArray(this)
|
||||
}
|
||||
|
@ -4,7 +4,7 @@ import java.io.ByteArrayOutputStream
|
||||
plugins {
|
||||
id("com.android.application")
|
||||
id("org.jetbrains.kotlin.android")
|
||||
kotlin("plugin.serialization") version "1.9.21"
|
||||
kotlin("plugin.serialization") version "1.9.22"
|
||||
}
|
||||
|
||||
android {
|
||||
@ -17,7 +17,7 @@ android {
|
||||
minSdk = 27
|
||||
targetSdk = 34
|
||||
versionCode = getVersionCode()
|
||||
versionName = "1.0.8" + ".r${getGitCommitCount()}." + getVersionName()
|
||||
versionName = "1.1.1.onebot" + ".r${getGitCommitCount()}." + getVersionName()
|
||||
|
||||
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
||||
vectorDrawables {
|
||||
@ -92,7 +92,7 @@ android {
|
||||
compose = true
|
||||
}
|
||||
composeOptions {
|
||||
kotlinCompilerExtensionVersion = "1.5.4"
|
||||
kotlinCompilerExtensionVersion = "1.5.10"
|
||||
}
|
||||
packaging {
|
||||
jniLibs {
|
||||
@ -127,11 +127,6 @@ android {
|
||||
}
|
||||
|
||||
configureAppSigningConfigsForRelease(project)
|
||||
packagingOptions {
|
||||
jniLibs {
|
||||
useLegacyPackaging = true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fun configureAppSigningConfigsForRelease(project: Project) {
|
||||
|
21
app/proguard-rules.pro
vendored
21
app/proguard-rules.pro
vendored
@ -199,17 +199,36 @@
|
||||
|
||||
-keep class com.arthenica.ffmpegkit.NativeLoader { *; }
|
||||
|
||||
-keep class moe.fuqiuluo.** { *; }
|
||||
-keep class moe.fuqiuluo.shamrock.app.** { *; }
|
||||
-keep class moe.fuqiuluo.shamrock.ui.** { *; }
|
||||
-keep class moe.fuqiuluo.shamrock.MainActivity { *; }
|
||||
-keep class moe.fuqiuluo.shamrock.MainActivityKt { *; }
|
||||
-keep class moe.fuqiuluo.shamrock.Manifest { *; }
|
||||
|
||||
-keep class moe.fuqiuluo.shamrock.xposed.** { *; }
|
||||
-keep class moe.fuqiuluo.shamrock.helper.** { *; }
|
||||
|
||||
# tencent interfaces rules
|
||||
-keep class com.tencent.** { *; }
|
||||
-keep class com.qq.** { *; }
|
||||
-keep class com.google.gson.** { *; }
|
||||
-keep class de.** { *; }
|
||||
-keep class epic.** { *; }
|
||||
-keep class friendlist.** { *; }
|
||||
-keep class KQQ.** { *; }
|
||||
-keep class mqq.** { *; }
|
||||
-keep class msf.** { *; }
|
||||
-keep class oicq.** { *; }
|
||||
-keep class QQService.** { *; }
|
||||
-keep class SummaryCard.** { *; }
|
||||
-keep class tencent.** { *; }
|
||||
-keep class VIP.** { *; }
|
||||
|
||||
-keepclassmembers class * {
|
||||
native <methods>;
|
||||
}
|
||||
-keep class io.netty.** { *; }
|
||||
|
||||
-keepclasseswithmembernames class * {
|
||||
native <methods>;
|
||||
}
|
||||
|
@ -39,7 +39,6 @@ add_library(${CMAKE_PROJECT_NAME} SHARED
|
||||
md5.cpp
|
||||
cqcode.cpp
|
||||
silk.cpp
|
||||
group_honor.cpp
|
||||
message.cpp
|
||||
shamrock.cpp)
|
||||
|
||||
|
@ -12,7 +12,8 @@
|
||||
|
||||
extern "C"
|
||||
JNIEXPORT jstring JNICALL
|
||||
Java_moe_fuqiuluo_shamrock_xposed_hooks_PullConfig_testNativeLibrary(JNIEnv *env, jobject thiz) {
|
||||
Java_moe_fuqiuluo_shamrock_xposed_hooks_PullConfig_00024Companion_testNativeLibrary(JNIEnv *env,
|
||||
jobject thiz) {
|
||||
return env->NewStringUTF("加载Shamrock库成功~");
|
||||
}
|
||||
|
||||
|
@ -52,7 +52,6 @@ import androidx.compose.runtime.rememberCoroutineScope
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.draw.shadow
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.graphics.painter.Painter
|
||||
import androidx.compose.ui.platform.LocalContext
|
||||
import androidx.compose.ui.platform.LocalView
|
||||
import androidx.compose.ui.res.painterResource
|
||||
@ -64,6 +63,7 @@ import androidx.compose.ui.unit.sp
|
||||
import androidx.core.view.WindowCompat
|
||||
import com.google.accompanist.systemuicontroller.rememberSystemUiController
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.delay
|
||||
import kotlinx.coroutines.launch
|
||||
import moe.fuqiuluo.shamrock.ui.app.AppRuntime
|
||||
import moe.fuqiuluo.shamrock.ui.app.Logger
|
||||
@ -79,7 +79,7 @@ import moe.fuqiuluo.shamrock.ui.theme.RANDOM_SUB_TITLE
|
||||
import moe.fuqiuluo.shamrock.ui.theme.RANDOM_TITLE
|
||||
import moe.fuqiuluo.shamrock.ui.theme.ShamrockTheme
|
||||
import moe.fuqiuluo.shamrock.ui.tools.NoIndication
|
||||
import moe.fuqiuluo.shamrock.ui.tools.ShamrockTab
|
||||
import moe.fuqiuluo.shamrock.ui.tools.ShamrockTabV2
|
||||
import moe.fuqiuluo.shamrock.ui.tools.getShamrockVersion
|
||||
|
||||
class MainActivity : ComponentActivity() {
|
||||
@ -87,6 +87,15 @@ class MainActivity : ComponentActivity() {
|
||||
super.onCreate(savedInstanceState)
|
||||
|
||||
setContent {
|
||||
LaunchedEffect(Unit) {
|
||||
while (true) {
|
||||
delay(5_000) // Delay in milliseconds
|
||||
broadcastToModule {
|
||||
putExtra("__cmd", "switch_status")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
CompositionLocalProvider(
|
||||
LocalIndication provides NoIndication
|
||||
) {
|
||||
@ -336,7 +345,7 @@ private fun AnimatedTab(
|
||||
}
|
||||
}
|
||||
|
||||
ShamrockTab(
|
||||
ShamrockTabV2(
|
||||
selected = curSelected,
|
||||
onClick = {
|
||||
scope.launch {
|
||||
|
@ -162,6 +162,17 @@ object ShamrockConfig {
|
||||
pushUpdate(ctx)
|
||||
}
|
||||
|
||||
fun getUploadResourceGroup(ctx: Context): String {
|
||||
val preferences = ctx.getSharedPreferences("config", 0)
|
||||
return preferences.getString("up_res_group", "100000000")!!
|
||||
}
|
||||
|
||||
fun setUploadResourceGroup(ctx: Context, v: String) {
|
||||
val preferences = ctx.getSharedPreferences("config", 0)
|
||||
preferences.edit().putString("up_res_group", v).apply()
|
||||
pushUpdate(ctx)
|
||||
}
|
||||
|
||||
fun getHttpPort(ctx: Context): Int {
|
||||
val preferences = ctx.getSharedPreferences("config", 0)
|
||||
return preferences.getInt("port", 5700)
|
||||
@ -299,6 +310,16 @@ object ShamrockConfig {
|
||||
return preferences.getBoolean("enable_self_msg", false)
|
||||
}
|
||||
|
||||
fun enableOldBDH(ctx: Context): Boolean {
|
||||
val preferences = ctx.getSharedPreferences("config", 0)
|
||||
return preferences.getBoolean("enable_old_bdh", false)
|
||||
}
|
||||
|
||||
fun setEnableOldBDH(ctx: Context, v: Boolean) {
|
||||
val preferences = ctx.getSharedPreferences("config", 0)
|
||||
preferences.edit().putBoolean("enable_old_bdh", v).apply()
|
||||
}
|
||||
|
||||
fun enableSyncMsgAsSentMsg(ctx: Context): Boolean {
|
||||
val preferences = ctx.getSharedPreferences("config", 0)
|
||||
return preferences.getBoolean("enable_sync_msg_as_sent_msg", false)
|
||||
@ -334,7 +355,6 @@ object ShamrockConfig {
|
||||
"inject_packet" to preferences.getBoolean("inject_packet", false),
|
||||
"debug" to preferences.getBoolean("debug", false),
|
||||
"anti_qq_trace" to preferences.getBoolean("anti_qq_trace", true),
|
||||
//"auto_clear" to preferences.getBoolean("auto_clear", false),
|
||||
"ssl_private_pwd" to preferences.getString("ssl_private_pwd", ""),
|
||||
"key_store" to preferences.getString("key_store", ""),
|
||||
"enable_self_msg" to preferences.getBoolean("enable_self_msg", false),
|
||||
@ -343,7 +363,9 @@ object ShamrockConfig {
|
||||
"alive_reply" to preferences.getBoolean("alive_reply", false),
|
||||
"enable_sync_msg_as_sent_msg" to preferences.getBoolean("enable_sync_msg_as_sent_msg", false),
|
||||
"disable_auto_sync_setting" to preferences.getBoolean("disable_auto_sync_setting", false),
|
||||
"forbid_useless_process" to preferences.getBoolean("forbid_useless_process", false)
|
||||
"forbid_useless_process" to preferences.getBoolean("forbid_useless_process", false),
|
||||
"enable_old_bdh" to preferences.getBoolean("enable_old_bdh", false),
|
||||
"up_res_group" to preferences.getString("up_res_group", ""),
|
||||
)
|
||||
}
|
||||
|
||||
|
@ -356,6 +356,36 @@ private fun FunctionCard(
|
||||
return@Function true
|
||||
}
|
||||
|
||||
run {
|
||||
val uploadResourceGroup = remember { mutableStateOf(ShamrockConfig.getUploadResourceGroup(ctx)) }
|
||||
Column(
|
||||
modifier = Modifier
|
||||
.absolutePadding(left = 8.dp, right = 8.dp, top = 12.dp, bottom = 0.dp)
|
||||
) {
|
||||
Text(
|
||||
modifier = Modifier.padding(2.dp),
|
||||
text = "用来上传资源的群聊,错误的资源上传终点可能导致封禁,请自建一个群聊并填写在下方。",
|
||||
color = Color.Red,
|
||||
fontSize = 11.sp
|
||||
)
|
||||
}
|
||||
TextItem(
|
||||
title = "接受资源群聊",
|
||||
desc = "用来上传资源的群聊,请自建一个群聊并填写在下方。",
|
||||
text = uploadResourceGroup,
|
||||
hint = "请输入群号",
|
||||
error = "群号不合法",
|
||||
checker = {
|
||||
it.isNotBlank() && it.toULongOrNull() != null
|
||||
},
|
||||
confirm = {
|
||||
val groupId = uploadResourceGroup.value
|
||||
ShamrockConfig.setUploadResourceGroup(ctx, groupId)
|
||||
AppRuntime.log("设置接受资源群聊为[$groupId]。")
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
/*
|
||||
Function(
|
||||
title = "专业级接口",
|
||||
@ -445,9 +475,7 @@ private fun InfoItem(
|
||||
.fillMaxWidth()
|
||||
.combinedClickable(onDoubleClick = {
|
||||
doubleClick?.invoke(content)
|
||||
}) {
|
||||
true
|
||||
}
|
||||
}) { true }
|
||||
,
|
||||
verticalAlignment = Alignment.CenterVertically
|
||||
) {
|
||||
|
@ -102,7 +102,7 @@ fun LabFragment() {
|
||||
|
||||
Function(
|
||||
title = "禁止无用进程",
|
||||
desc = "禁止QQ生成无用进程浪费内存",
|
||||
desc = "禁止QQ生成无用进程浪费内存,可能造成部分功能闪退。",
|
||||
descColor = color,
|
||||
isSwitch = ShamrockConfig.isForbidUselessProcess(ctx)
|
||||
) {
|
||||
@ -221,7 +221,7 @@ fun LabFragment() {
|
||||
}.onSuccess {
|
||||
Function(
|
||||
title = "反检测加强",
|
||||
desc = "可能导致某些设备频繁闪退",
|
||||
desc = "可能导致某些设备频繁闪退,将拦截环境包上报。",
|
||||
descColor = color,
|
||||
isSwitch = it.getBoolean("super_anti", false)
|
||||
) { v ->
|
||||
@ -295,17 +295,16 @@ fun LabFragment() {
|
||||
return@Function true
|
||||
}
|
||||
|
||||
/*
|
||||
Function(
|
||||
title = "使用纯数字ECHO",
|
||||
desc = "在部分强类型语言框架,需要打开此开关。",
|
||||
title = "启用旧版资源上传系统",
|
||||
desc = "如果NT内核无法上传资源,请打开本开关。",
|
||||
descColor = it,
|
||||
isSwitch = ShamrockConfig.isEchoNumber(ctx)
|
||||
isSwitch = ShamrockConfig.enableOldBDH(ctx)
|
||||
) {
|
||||
ShamrockConfig.setEchoNumber(ctx, it)
|
||||
ShamrockConfig.setEnableOldBDH(ctx, it)
|
||||
ShamrockConfig.pushUpdate(ctx)
|
||||
return@Function true
|
||||
}*/
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -30,6 +30,7 @@ abstract class ModuleHandler {
|
||||
}
|
||||
}
|
||||
putExtra("__hash", callbackId)
|
||||
putExtra("__cmd", cmd)
|
||||
}
|
||||
}
|
||||
}
|
@ -58,7 +58,7 @@ class MultifunctionalProvider: ContentProvider() {
|
||||
|
||||
inline fun Context.broadcastToModule(intentBuilder: Intent.() -> Unit) {
|
||||
val intent = Intent()
|
||||
intent.action = "moe.fuqiuluo.xqbot.dynamic"
|
||||
intent.action = "moe.fuqiuluo.onebot.dynamic"
|
||||
intent.intentBuilder()
|
||||
sendBroadcast(intent)
|
||||
}
|
@ -242,13 +242,13 @@ private fun Placeable.PlacementScope.placeTextAndIcon(
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun ShamrockTab(
|
||||
fun ShamrockTabV2(
|
||||
selected: Boolean,
|
||||
onClick: () -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
enabled: Boolean = true,
|
||||
text: @Composable (() -> Unit)? = null,
|
||||
icon: @Composable (() -> Unit)? = null,
|
||||
text: (@Composable (() -> Unit))? = null,
|
||||
icon: (@Composable (() -> Unit))? = null,
|
||||
selectedContentColor: Color = GlobalColor.TabSelected,
|
||||
unselectedContentColor: Color = selectedContentColor,
|
||||
indication: Indication? = rememberRipple(bounded = true, color = selectedContentColor),
|
||||
@ -262,7 +262,7 @@ fun ShamrockTab(
|
||||
ProvideTextStyle(style, content = text)
|
||||
}
|
||||
}
|
||||
ShamrockTab(
|
||||
ShamrockTabV2(
|
||||
selected,
|
||||
onClick,
|
||||
modifier,
|
||||
@ -277,7 +277,7 @@ fun ShamrockTab(
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun ShamrockTab(
|
||||
fun ShamrockTabV2(
|
||||
selected: Boolean,
|
||||
onClick: () -> Unit,
|
||||
modifier: Modifier = Modifier,
|
||||
|
@ -2,16 +2,14 @@ package moe.fuqiuluo.shamrock
|
||||
|
||||
import org.junit.Test
|
||||
|
||||
import org.junit.Assert.*
|
||||
|
||||
/**
|
||||
* Example local unit test, which will execute on the development machine (host).
|
||||
*
|
||||
* See [testing documentation](http://d.android.com/tools/testing).
|
||||
*/
|
||||
class ExampleUnitTest {
|
||||
|
||||
@Test
|
||||
fun addition_isCorrect() {
|
||||
assertEquals(4, 2 + 2)
|
||||
fun test() {
|
||||
}
|
||||
}
|
@ -1,6 +1,6 @@
|
||||
// Top-level build file where you can add configuration options common to all sub-projects/modules.
|
||||
plugins {
|
||||
id("com.android.application") version "8.2.0" apply false
|
||||
id("org.jetbrains.kotlin.android") version "1.9.20" apply false
|
||||
id("com.android.library") version "8.2.0" apply false
|
||||
id("com.android.application") version "8.2.1" apply false
|
||||
id("org.jetbrains.kotlin.android") version "1.9.22" apply false
|
||||
id("com.android.library") version "8.2.1" apply false
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
plugins {
|
||||
kotlin("jvm")
|
||||
id("com.google.devtools.ksp") version "1.9.21-1.0.15"
|
||||
kotlin("plugin.serialization") version "1.9.21"
|
||||
id("com.google.devtools.ksp") version "1.9.22-1.0.17"
|
||||
kotlin("plugin.serialization") version "1.9.22"
|
||||
}
|
||||
|
||||
ksp {
|
||||
|
@ -1,8 +1,10 @@
|
||||
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
|
||||
|
||||
plugins {
|
||||
id("com.android.library")
|
||||
id("org.jetbrains.kotlin.android")
|
||||
kotlin("plugin.serialization") version "1.9.21"
|
||||
id("com.google.devtools.ksp") version "1.9.21-1.0.15"
|
||||
kotlin("plugin.serialization") version "1.9.22"
|
||||
id("com.google.devtools.ksp") version "1.9.22-1.0.17"
|
||||
}
|
||||
|
||||
android {
|
||||
@ -42,4 +44,8 @@ dependencies {
|
||||
implementation(project(":annotations"))
|
||||
|
||||
ksp(project(":processor"))
|
||||
}
|
||||
|
||||
tasks.withType<KotlinCompile>().configureEach {
|
||||
kotlinOptions.freeCompilerArgs += "-Xopt-in=kotlin.RequiresOptIn"
|
||||
}
|
@ -32,6 +32,11 @@ data class AdaptShareInfoReq(
|
||||
|
||||
@Serializable
|
||||
data class Template(
|
||||
@ProtoNumber(1) var templateId: UInt? = null,
|
||||
@ProtoNumber(1) var templateId: ULong? = null,
|
||||
@ProtoNumber(2) var templateData: ByteArray? = null,
|
||||
)
|
||||
)
|
||||
|
||||
@Serializable
|
||||
data class AdaptShareInfoResp(
|
||||
@ProtoNumber(2) var json: String? = null,
|
||||
): Protobuf<AdaptShareInfoResp>
|
26
protobuf/src/main/java/protobuf/message/AppShareInfo.kt
Normal file
26
protobuf/src/main/java/protobuf/message/AppShareInfo.kt
Normal file
@ -0,0 +1,26 @@
|
||||
package protobuf.message
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
|
||||
@Serializable
|
||||
data class AppShareInfo(
|
||||
@ProtoNumber(1) var appshareId: UInt? = null,
|
||||
@ProtoNumber(2) var appshareCookie: ByteArray? = null,
|
||||
@ProtoNumber(3) var appshareResource: PluginInfo? = null,
|
||||
)
|
||||
|
||||
@Serializable
|
||||
data class PluginInfo(
|
||||
@ProtoNumber(1) var resId: UInt = 0u,
|
||||
@ProtoNumber(2) var pkgName: String = "",
|
||||
@ProtoNumber(3) var newVer: UInt = 0u,
|
||||
@ProtoNumber(4) var resType: UInt = 0u,
|
||||
@ProtoNumber(5) var lanType: UInt = 0u,
|
||||
@ProtoNumber(6) var priority: UInt = 0u,
|
||||
@ProtoNumber(7) var resName: String = "",
|
||||
@ProtoNumber(8) var resDesc: String = "",
|
||||
@ProtoNumber(9) var resUrlBig: String = "",
|
||||
@ProtoNumber(10) var resUrlSmall: String = "",
|
||||
@ProtoNumber(11) var resConf: String = "",
|
||||
)
|
@ -4,18 +4,18 @@ import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
|
||||
@Serializable
|
||||
data class MessageContent(
|
||||
data class ContentHead(
|
||||
@ProtoNumber(1) val msgType: Int = Int.MIN_VALUE,
|
||||
@ProtoNumber(2) val msgSubType: Int? = null,
|
||||
@ProtoNumber(3) val u1: Int? = null,
|
||||
@ProtoNumber(3) val divSeq: Int? = null,
|
||||
@ProtoNumber(4) val msgViaRandom: Long = Long.MIN_VALUE,
|
||||
@ProtoNumber(5) val msgSeq_: Long? = null,
|
||||
@ProtoNumber(5) val sequence: Long? = null,
|
||||
@ProtoNumber(6) val msgTime: Long? = null,
|
||||
@ProtoNumber(7) val u2: Int? = null,
|
||||
@ProtoNumber(8) val u6: Int? = null,
|
||||
@ProtoNumber(9) val u7: Int? = null,
|
||||
@ProtoNumber(11) val msgSeq: Long? = null,
|
||||
@ProtoNumber(12) val msgRandom: Long = Long.MIN_VALUE,
|
||||
@ProtoNumber(12) val msgRandom: Long = Long.MIN_VALUE, // 0x0100000000000000L xor msgViaRandom
|
||||
@ProtoNumber(14) val u4: Long? = null,
|
||||
@ProtoNumber(15) val forwardHead: ForwardHead? = null,
|
||||
@ProtoNumber(28) val u5: Long? = null
|
||||
@ -27,5 +27,5 @@ data class ForwardHead(
|
||||
@ProtoNumber(2) val u2: Int? = null,
|
||||
@ProtoNumber(3) val u3: Int? = null,
|
||||
@ProtoNumber(4) val ub641: String? = null,
|
||||
@ProtoNumber(5) val Avatar: String? = null
|
||||
@ProtoNumber(5) val avatar: String? = null
|
||||
)
|
64
protobuf/src/main/java/protobuf/message/Elem.kt
Normal file
64
protobuf/src/main/java/protobuf/message/Elem.kt
Normal file
@ -0,0 +1,64 @@
|
||||
package protobuf.message
|
||||
|
||||
import kotlinx.serialization.ExperimentalSerializationApi
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
import protobuf.message.element.*
|
||||
|
||||
@OptIn(ExperimentalSerializationApi::class)
|
||||
@Serializable
|
||||
data class Elem(
|
||||
@ProtoNumber(1) val text: TextMsg? = null,
|
||||
@ProtoNumber(2) val face: FaceMsg? = null,
|
||||
// @ProtoNumber(3) val onlineImage: OnlineImage? = null,
|
||||
@ProtoNumber(4) val notOnlineImage: NotOnlineImage? = null,
|
||||
// @ProtoNumber(5) var transElemInfo: TransElem? = null,
|
||||
@ProtoNumber(6) val marketFace: MarketFace? = null,
|
||||
// @ProtoNumber(7) var elemFlags: ElemFlags? = null,
|
||||
@ProtoNumber(8) val customFace: CustomFace? = null,
|
||||
@ProtoNumber(9) var elemFlags2: ElemFlags2? = null,
|
||||
// @ProtoNumber(10) var funFace: FunFace? = null,
|
||||
// @ProtoNumber(11) var secretFile: SecretFileMsg? = null,
|
||||
// @ProtoNumber(12) var richMsg: RichMsg? = null,
|
||||
// @ProtoNumber(13) var groupFile: GroupFile? = null,
|
||||
// @ProtoNumber(14) var pubGroup: PubGroup? = null,
|
||||
// @ProtoNumber(15) var marketTrans: MarketTrans? = null,
|
||||
// @ProtoNumber(16) var extraInfo: ExtraInfo? = null,
|
||||
// @ProtoNumber(17) var shakeWindow: ShakeWindow? = null,
|
||||
// @ProtoNumber(18) var pubAccount: PubAccount? = null,
|
||||
// @ProtoNumber(19) var videoFile: VideoFile? = null,
|
||||
// @ProtoNumber(20) var tipsInfo: TipsInfo? = null,
|
||||
// @ProtoNumber(21) var anonGroupMsg: AnonymousGroupMsg? = null,
|
||||
// @ProtoNumber(22) var qqLiveOld: QQLiveOld? = null,
|
||||
// @ProtoNumber(23) var lifeOnline: LifeOnlineAccount? = null,
|
||||
// @ProtoNumber(24) var qqwalletMsg: QQWalletMsg? = null,
|
||||
// @ProtoNumber(25) var crmElem: CrmElem? = null,
|
||||
// @ProtoNumber(26) var conferenceTipsInfo: ConferenceTipsInfo? = null,
|
||||
// @ProtoNumber(27) var redbagInfo: RedBagInfo? = null,
|
||||
// @ProtoNumber(28) var lowVersionTips: LowVersionTips? = null,
|
||||
// @ProtoNumber(29) var bankcodeCtrlInfo: ByteArray? = null,
|
||||
// @ProtoNumber(30) var nearByMsg: NearByMessageType? = null,
|
||||
// @ProtoNumber(31) var customElem: CustomElem? = null,
|
||||
// @ProtoNumber(32) var locationInfo: LocationInfo? = null,
|
||||
// @ProtoNumber(33) var pubAccInfo: PubAccInfo? = null,
|
||||
// @ProtoNumber(34) var smallEmoji: SmallEmoji? = null,
|
||||
// @ProtoNumber(35) var fsjMsgElem: FSJMessageElem? = null,
|
||||
// @ProtoNumber(36) var arkApp: ArkAppElem? = null,
|
||||
@ProtoNumber(37) val generalFlags: GeneralFlags? = null,
|
||||
// @ProtoNumber(38) var hcFlashPic: CustomFace? = null,
|
||||
// @ProtoNumber(39) var deliverGiftMsg: DeliverGiftMsg? = null,
|
||||
// @ProtoNumber(40) var bitapp_msg: BitAppMsg? = null,
|
||||
// @ProtoNumber(41) var openQqData: OpenQQData? = null,
|
||||
// @ProtoNumber(42) var apolloMsg: ApolloActMsg? = null,
|
||||
// @ProtoNumber(43) var groupPubAccInfo: GroupPubAccountInfo? = null,
|
||||
// @ProtoNumber(44) var blessMsg: BlessingMessage? = null,
|
||||
@ProtoNumber(45) var srcMsg: SourceMsg? = null,
|
||||
// @ProtoNumber(46) var lolaMsg: LolaMsg? = null,
|
||||
// @ProtoNumber(47) var groupBusinessMsg: GroupBusinessMsg? = null,
|
||||
// @ProtoNumber(48) var msgWorkflowNotify: WorkflowNotifyMsg? = null,
|
||||
// @ProtoNumber(49) var patElem: PatsElem? = null,
|
||||
// @ProtoNumber(50) var groupPostElem: GroupPostElem? = null,
|
||||
@ProtoNumber(51) val lightApp: LightAppElem? = null,
|
||||
// @ProtoNumber(52) var eimInfo: EIMInfo? = null,
|
||||
@ProtoNumber(53) val commonElem: CommonElem? = null,
|
||||
)
|
@ -1,17 +0,0 @@
|
||||
@file:OptIn(ExperimentalSerializationApi::class)
|
||||
package protobuf.message
|
||||
|
||||
import kotlinx.serialization.ExperimentalSerializationApi
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
|
||||
@Serializable
|
||||
data class RichMessage(
|
||||
@ProtoNumber(1) val font: Font? = null,
|
||||
@ProtoNumber(2) val elements: List<MessageElement>? = null
|
||||
)
|
||||
|
||||
@Serializable
|
||||
data class Font(
|
||||
@ProtoNumber(9) val fontName: String? = null
|
||||
)
|
@ -1,11 +0,0 @@
|
||||
package protobuf.message
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
|
||||
@Serializable
|
||||
data class MessageBody(
|
||||
@ProtoNumber(1) val rich: RichMessage? = null,
|
||||
@ProtoNumber(2) val rawBuffer: ByteArray? = null,
|
||||
@ProtoNumber(3) val MsgEncryptContent: ByteArray? = null
|
||||
)
|
@ -1,13 +0,0 @@
|
||||
package protobuf.message
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
import protobuf.message.element.*
|
||||
|
||||
@Serializable
|
||||
data class MessageElement(
|
||||
@ProtoNumber(1) val text: TextElement? = null,
|
||||
@ProtoNumber(2) val face: FaceElement? = null,
|
||||
@ProtoNumber(51) val json: JsonElement? = null,
|
||||
@ProtoNumber(53) val comm: CommonElement? = null,
|
||||
)
|
11
protobuf/src/main/java/protobuf/message/MsgBody.kt
Normal file
11
protobuf/src/main/java/protobuf/message/MsgBody.kt
Normal file
@ -0,0 +1,11 @@
|
||||
package protobuf.message
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
|
||||
@Serializable
|
||||
data class MsgBody(
|
||||
@ProtoNumber(1) val richText: RichText? = null,
|
||||
@ProtoNumber(2) val msgContent: ByteArray? = null,
|
||||
@ProtoNumber(3) val msgEncryptContent: ByteArray? = null
|
||||
)
|
@ -1,9 +1,9 @@
|
||||
package protobuf.message.element
|
||||
package protobuf.message
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
|
||||
@Serializable
|
||||
data class FaceElement(
|
||||
@ProtoNumber(1) val id: Int? = null,
|
||||
data class MsgControl(
|
||||
@ProtoNumber(1) val msgFlag: Int? = null,
|
||||
)
|
28
protobuf/src/main/java/protobuf/message/NotOnlineFile.kt
Normal file
28
protobuf/src/main/java/protobuf/message/NotOnlineFile.kt
Normal file
@ -0,0 +1,28 @@
|
||||
package protobuf.message
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
|
||||
@Serializable
|
||||
data class NotOnlineFile(
|
||||
@ProtoNumber(1) var fileType: UInt? = null,
|
||||
@ProtoNumber(2) var sig: ByteArray? = null,
|
||||
@ProtoNumber(3) var fileUuid: ByteArray? = null,
|
||||
@ProtoNumber(4) var fileMd5: ByteArray? = null,
|
||||
@ProtoNumber(5) var fileName: ByteArray? = null,
|
||||
@ProtoNumber(6) var fileSize: ULong? = null,
|
||||
@ProtoNumber(7) var note: ByteArray? = null,
|
||||
@ProtoNumber(8) var reserved: UInt? = null,
|
||||
@ProtoNumber(9) var subcmd: UInt? = null,
|
||||
@ProtoNumber(10) var microCloud: UInt? = null,
|
||||
@ProtoNumber(11) var rptFileUrls: List<String>? = null,
|
||||
@ProtoNumber(12) var downloadFlag: UInt? = null,
|
||||
@ProtoNumber(50) var dangerEvel: UInt? = null,
|
||||
@ProtoNumber(51) var lifeTime: UInt? = null,
|
||||
@ProtoNumber(52) var uploadTime: UInt? = null,
|
||||
@ProtoNumber(53) var absFileType: UInt? = null,
|
||||
@ProtoNumber(54) var clientType: UInt? = null,
|
||||
@ProtoNumber(55) var expireTime: UInt? = null,
|
||||
@ProtoNumber(56) var pbReserve: ByteArray? = null,
|
||||
@ProtoNumber(57) var fileidcrcMedia: String? = null,
|
||||
)
|
@ -1,11 +0,0 @@
|
||||
package protobuf.message
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
|
||||
@Serializable
|
||||
data class NtMessage(
|
||||
@ProtoNumber(1) val msgHead: MessageHead? = null,
|
||||
@ProtoNumber(2) val contentHead: MessageContent? = null,
|
||||
@ProtoNumber(3) val body: MessageBody? = null,
|
||||
)
|
23
protobuf/src/main/java/protobuf/message/PbSendMsgReq.kt
Normal file
23
protobuf/src/main/java/protobuf/message/PbSendMsgReq.kt
Normal file
@ -0,0 +1,23 @@
|
||||
package protobuf.message
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
import moe.fuqiuluo.symbols.Protobuf
|
||||
|
||||
@Serializable
|
||||
data class PbSendMsgReq(
|
||||
@ProtoNumber(1) val routingHead: RoutingHead? = null,
|
||||
@ProtoNumber(2) val contentHead: ContentHead? = null,
|
||||
@ProtoNumber(3) val msgBody: MsgBody? = null,
|
||||
@ProtoNumber(4) val msgSeq: UInt? = null,
|
||||
@ProtoNumber(5) val msgRand: UInt? = null,
|
||||
@ProtoNumber(6) val syncCookie: ByteArray? = null,
|
||||
@ProtoNumber(7) val appShare: AppShareInfo? = null,
|
||||
@ProtoNumber(8) val msgVia: UInt? = null,
|
||||
@ProtoNumber(9) val dataStatist: UInt? = null,
|
||||
// @ProtoNumber(10) val multiMsgAssist: MultiMsgAssist? = null,
|
||||
// @ProtoNumber(11) val inputNotifyInfo: InputNotifyInfo? = null,
|
||||
@ProtoNumber(12) val ctrl: MsgControl? = null,
|
||||
// @ProtoNumber(13) val receiptReq: ReceiptReq? = null,
|
||||
@ProtoNumber(14) val multiSendSeq: UInt? = null
|
||||
) : Protobuf<PbSendMsgReq>
|
40
protobuf/src/main/java/protobuf/message/Ptt.kt
Normal file
40
protobuf/src/main/java/protobuf/message/Ptt.kt
Normal file
@ -0,0 +1,40 @@
|
||||
package protobuf.message
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
|
||||
@Serializable
|
||||
data class Ptt(
|
||||
@ProtoNumber(1) var fileType: UInt?=null,
|
||||
@ProtoNumber(2) var srcUin: ULong?=null,
|
||||
@ProtoNumber(3) var fileUuid: String?=null,
|
||||
@ProtoNumber(4) var fileMd5: ByteArray?=null,
|
||||
@ProtoNumber(5) var fileName: String?=null,
|
||||
@ProtoNumber(6) var fileSize: UInt?=null,
|
||||
@ProtoNumber(7) var reserve: ByteArray?=null,
|
||||
@ProtoNumber(8) var fileId: UInt?=null,
|
||||
@ProtoNumber(9) var serverIp: UInt?=null,
|
||||
@ProtoNumber(10) var serverPort: UInt?=null,
|
||||
@ProtoNumber(11) var boolValid: Boolean = false,
|
||||
@ProtoNumber(12) var signature: ByteArray?=null,
|
||||
@ProtoNumber(13) var shortcut: ByteArray?=null,
|
||||
@ProtoNumber(14) var fileKey: ByteArray?=null,
|
||||
@ProtoNumber(15) var magicPttIndex: UInt?=null,
|
||||
@ProtoNumber(16) var voiceSwitch: UInt?=null,
|
||||
@ProtoNumber(17) var pttUrl: ByteArray?=null,
|
||||
@ProtoNumber(18) var groupFileKey: String?=null,
|
||||
@ProtoNumber(19) var time: UInt?=null,
|
||||
@ProtoNumber(20) var downPara: ByteArray?=null,
|
||||
@ProtoNumber(29) var format: UInt?=null,
|
||||
@ProtoNumber(30) var pbReserve: PbReserve?=null,
|
||||
@ProtoNumber(31) var rptPttUrls: List<String>? = null,
|
||||
@ProtoNumber(32) var downloadFlag: UInt?=null,
|
||||
){
|
||||
companion object{
|
||||
@Serializable
|
||||
data class PbReserve(
|
||||
@ProtoNumber(2) var magic: Int?=null,
|
||||
@ProtoNumber(7) var reserve: Int?=null,
|
||||
)
|
||||
}
|
||||
}
|
11
protobuf/src/main/java/protobuf/message/PushMsgBody.kt
Normal file
11
protobuf/src/main/java/protobuf/message/PushMsgBody.kt
Normal file
@ -0,0 +1,11 @@
|
||||
package protobuf.message
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
|
||||
@Serializable
|
||||
data class PushMsgBody(
|
||||
@ProtoNumber(1) val msgHead: ResponseHead? = null,
|
||||
@ProtoNumber(2) val contentHead: ContentHead? = null,
|
||||
@ProtoNumber(3) val body: MsgBody? = null,
|
||||
)
|
@ -6,25 +6,25 @@ import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
|
||||
@Serializable
|
||||
data class MessageHead(
|
||||
data class ResponseHead(
|
||||
@ProtoNumber(1) val peer: Long = Long.MIN_VALUE,
|
||||
@ProtoNumber(2) val peerUid: String? = null,
|
||||
@ProtoNumber(3) val flag: Int = Int.MIN_VALUE,
|
||||
@ProtoNumber(4) val appId: Int = Int.MIN_VALUE,
|
||||
@ProtoNumber(5) val receiver: Long? = null,
|
||||
@ProtoNumber(6) val receiverUid: String? = null,
|
||||
@ProtoNumber(7) val forward: MessageForward? = null,
|
||||
@ProtoNumber(8) val groupInfo: GroupInfo? = null,
|
||||
@ProtoNumber(7) val forward: ResponseForward? = null,
|
||||
@ProtoNumber(8) val responseGrp: ResponseGrp? = null,
|
||||
)
|
||||
|
||||
@Serializable
|
||||
data class MessageForward(
|
||||
data class ResponseForward(
|
||||
@ProtoNumber(6) val friendName: String? = null,
|
||||
@ProtoNumber(11) val u1: Int? = null,
|
||||
)
|
||||
|
||||
@Serializable
|
||||
data class GroupInfo(
|
||||
data class ResponseGrp(
|
||||
@ProtoNumber(1) val groupCode: ULong = ULong.MIN_VALUE,
|
||||
@ProtoNumber(4) val memberCard: String? = null,
|
||||
@ProtoNumber(5) val u1: Int? = null,
|
31
protobuf/src/main/java/protobuf/message/RichText.kt
Normal file
31
protobuf/src/main/java/protobuf/message/RichText.kt
Normal file
@ -0,0 +1,31 @@
|
||||
@file:OptIn(ExperimentalSerializationApi::class)
|
||||
|
||||
package protobuf.message
|
||||
|
||||
import kotlinx.serialization.ExperimentalSerializationApi
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
|
||||
@Serializable
|
||||
data class RichText(
|
||||
@ProtoNumber(1) val attr: Attr? = null,
|
||||
@ProtoNumber(2) var elements: List<Elem>? = null,
|
||||
@ProtoNumber(3) var not_online_file: NotOnlineFile? = null,
|
||||
@ProtoNumber(4) var ptt: Ptt? = null,
|
||||
@ProtoNumber(5) val tmp_ptt: TmpPtt? = null,
|
||||
@ProtoNumber(6) val trans_211_tmp_msg: Trans211TmpMsg? = null,
|
||||
)
|
||||
|
||||
@Serializable
|
||||
data class Attr(
|
||||
@ProtoNumber(1) val codePage: Int? = null,
|
||||
@ProtoNumber(2) val time: UInt? = null,
|
||||
@ProtoNumber(3) val random: UInt? = null,
|
||||
@ProtoNumber(4) val color: UInt? = null,
|
||||
@ProtoNumber(5) val size: UInt? = null,
|
||||
@ProtoNumber(6) val effect: UInt? = null,
|
||||
@ProtoNumber(7) val charSet: UInt? = null,
|
||||
@ProtoNumber(8) val pitchAndFamily: UInt? = null,
|
||||
@ProtoNumber(9) val fontName: String? = null,
|
||||
@ProtoNumber(10) val reserve_data: ByteArray? = null,
|
||||
)
|
14
protobuf/src/main/java/protobuf/message/RoutingHead.kt
Normal file
14
protobuf/src/main/java/protobuf/message/RoutingHead.kt
Normal file
@ -0,0 +1,14 @@
|
||||
package protobuf.message
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
import protobuf.message.routing.*
|
||||
|
||||
@Serializable
|
||||
data class RoutingHead(
|
||||
@ProtoNumber(1) val c2c: C2C? = null,
|
||||
@ProtoNumber(2) val grp: Grp? = null,
|
||||
@ProtoNumber(3) val grpTmp: GrpTmp? = null,
|
||||
@ProtoNumber(6) val wpaTmp: WPATmp? = null,
|
||||
@ProtoNumber(15) val trans0X211: Trans0X211? = null
|
||||
)
|
20
protobuf/src/main/java/protobuf/message/TmpPtt.kt
Normal file
20
protobuf/src/main/java/protobuf/message/TmpPtt.kt
Normal file
@ -0,0 +1,20 @@
|
||||
package protobuf.message
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
|
||||
@Serializable
|
||||
data class TmpPtt(
|
||||
@ProtoNumber(1) var fileType: UInt? = null,
|
||||
@ProtoNumber(2) var fileUuid: ByteArray? = null,
|
||||
@ProtoNumber(3) var fileMd5: ByteArray? = null,
|
||||
@ProtoNumber(4) var fileName: ByteArray? = null,
|
||||
@ProtoNumber(5) var fileSize: UInt? = null,
|
||||
@ProtoNumber(6) var pttTimes: UInt? = null,
|
||||
@ProtoNumber(7) var userType: UInt? = null,
|
||||
@ProtoNumber(8) var ptttransFlag: UInt? = null,
|
||||
@ProtoNumber(9) var busiType: UInt? = null,
|
||||
@ProtoNumber(10) var msgId: ULong? = null,
|
||||
@ProtoNumber(30) var pbReserve: ByteArray? = null,
|
||||
@ProtoNumber(31) var pttEncodeData: ByteArray? = null,
|
||||
)
|
10
protobuf/src/main/java/protobuf/message/Trans211TmpMsg.kt
Normal file
10
protobuf/src/main/java/protobuf/message/Trans211TmpMsg.kt
Normal file
@ -0,0 +1,10 @@
|
||||
package protobuf.message
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
|
||||
@Serializable
|
||||
data class Trans211TmpMsg(
|
||||
@ProtoNumber(1) var msgBody: ByteArray? = null,
|
||||
@ProtoNumber(2) var c2cCmd: UInt? = null,
|
||||
)
|
@ -0,0 +1,11 @@
|
||||
package protobuf.message.element
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
|
||||
@Serializable
|
||||
data class CommonElem(
|
||||
@ProtoNumber(1) val serviceType: Int? = null,
|
||||
@ProtoNumber(2) val elem: ByteArray? = null,
|
||||
@ProtoNumber(3) val businessType: Int? = null,
|
||||
)
|
@ -1,11 +0,0 @@
|
||||
package protobuf.message.element
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
|
||||
@Serializable
|
||||
data class CommonElement(
|
||||
@ProtoNumber(1) val type: Int? = null,
|
||||
@ProtoNumber(2) val data: ByteArray? = null,
|
||||
@ProtoNumber(3) val u1: Int? = null,
|
||||
)
|
@ -0,0 +1,64 @@
|
||||
package protobuf.message.element
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
|
||||
@Serializable
|
||||
data class CustomFace(
|
||||
@ProtoNumber(1) var guid: ByteArray? = null,
|
||||
@ProtoNumber(2) var filePath: String? = null,
|
||||
@ProtoNumber(3) var shortcut: String? = null,
|
||||
@ProtoNumber(4) var buffer: ByteArray? = null,
|
||||
@ProtoNumber(5) var flag: ByteArray? = null,
|
||||
@ProtoNumber(6) var oldData: ByteArray? = null,
|
||||
@ProtoNumber(7) var fileId: UInt? = null,
|
||||
@ProtoNumber(8) var serverIp: UInt? = null,
|
||||
@ProtoNumber(9) var serverPort: UInt? = null,
|
||||
@ProtoNumber(10) var fileType: UInt? = null, // 66
|
||||
@ProtoNumber(11) var signature: ByteArray? = null,
|
||||
@ProtoNumber(12) var useful: UInt? = null,
|
||||
@ProtoNumber(13) var md5: ByteArray? = null,
|
||||
@ProtoNumber(14) var thumbUrl: String? = null,
|
||||
@ProtoNumber(15) var bigUrl: String? = null,
|
||||
@ProtoNumber(16) var origUrl: String? = null,
|
||||
@ProtoNumber(17) var bizType: UInt? = null,
|
||||
@ProtoNumber(18) var repeatIndex: UInt? = null,
|
||||
@ProtoNumber(19) var repeatImage: UInt? = null,
|
||||
@ProtoNumber(20) var imageType: UInt? = null,
|
||||
@ProtoNumber(21) var index: UInt? = null,
|
||||
@ProtoNumber(22) var width: UInt? = null,
|
||||
@ProtoNumber(23) var height: UInt? = null,
|
||||
@ProtoNumber(24) var source: UInt? = null,
|
||||
@ProtoNumber(25) var size: UInt? = null,
|
||||
@ProtoNumber(26) var origin: Boolean? = null,
|
||||
@ProtoNumber(27) var thumbWidth: UInt? = null,
|
||||
@ProtoNumber(28) var thumbHeight: UInt? = null,
|
||||
@ProtoNumber(29) var showLen: UInt? = null,
|
||||
@ProtoNumber(30) var downloadLen: UInt? = null,
|
||||
@ProtoNumber(31) var url400: String? = null,
|
||||
@ProtoNumber(32) var width400: UInt? = null,
|
||||
@ProtoNumber(33) var height400: UInt? = null,
|
||||
@ProtoNumber(34) var pbReserve: PbReserve? = null,
|
||||
) {
|
||||
companion object {
|
||||
@Serializable
|
||||
data class PbReserve(
|
||||
@ProtoNumber(1) var field1: Int? = null,
|
||||
@ProtoNumber(3) var field3: Int? = null,
|
||||
@ProtoNumber(4) var field4: Int? = null,
|
||||
@ProtoNumber(10) var field10: Int? = null,
|
||||
@ProtoNumber(21) var field21: Object1? = null,
|
||||
@ProtoNumber(31) var field31: String? = null
|
||||
)
|
||||
|
||||
@Serializable
|
||||
data class Object1(
|
||||
@ProtoNumber(1) var field1: Int? = null,
|
||||
@ProtoNumber(2) var field2: String? = null,
|
||||
@ProtoNumber(3) var field3: Int? = null,
|
||||
@ProtoNumber(4) var field4: Int? = null,
|
||||
@ProtoNumber(5) var field5: Int? = null,
|
||||
@ProtoNumber(7) var md5Str: String? = null
|
||||
)
|
||||
}
|
||||
}
|
@ -0,0 +1,38 @@
|
||||
package protobuf.message.element
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
|
||||
@Serializable
|
||||
data class ElemFlags2(
|
||||
@ProtoNumber(1) var color_text_id: UInt? = null,
|
||||
@ProtoNumber(2) var msg_id: ULong? = null,
|
||||
@ProtoNumber(3) var whisper_session_id: UInt? = null,
|
||||
@ProtoNumber(4) var ptt_change_bit: UInt? = null,
|
||||
@ProtoNumber(5) var vip_status: UInt? = null,
|
||||
@ProtoNumber(6) var compatible_id: UInt? = null,
|
||||
@ProtoNumber(7) var rpt_insts: List<Inst>? = null,
|
||||
@ProtoNumber(8) var msg_rpt_cnt: UInt? = null,
|
||||
@ProtoNumber(9) var src_inst: Inst? = null,
|
||||
@ProtoNumber(10) var longtitude: UInt? = null,
|
||||
@ProtoNumber(11) var latitude: UInt? = null,
|
||||
@ProtoNumber(12) var custom_font: UInt? = null,
|
||||
@ProtoNumber(13) var pc_support_def: PcSupportDef? = null,
|
||||
@ProtoNumber(14) var crm_flags: UInt? = null,
|
||||
)
|
||||
|
||||
@Serializable
|
||||
data class Inst(
|
||||
@ProtoNumber(1) var app_id: UInt? = null,
|
||||
@ProtoNumber(2) var inst_id: UInt? = null,
|
||||
)
|
||||
|
||||
@Serializable
|
||||
data class PcSupportDef(
|
||||
@ProtoNumber(1) var pc_ptl_begin: UInt? = null,
|
||||
@ProtoNumber(2) var pc_ptl_end: UInt? = null,
|
||||
@ProtoNumber(3) var mac_ptl_begin: UInt? = null,
|
||||
@ProtoNumber(4) var mac_ptl_end: UInt? = null,
|
||||
@ProtoNumber(5) var rpt_ptls_support: List<Int>? = null,
|
||||
@ProtoNumber(6) var rpt_ptls_not_support: List<Int>? = null,
|
||||
)
|
12
protobuf/src/main/java/protobuf/message/element/FaceMsg.kt
Normal file
12
protobuf/src/main/java/protobuf/message/element/FaceMsg.kt
Normal file
@ -0,0 +1,12 @@
|
||||
package protobuf.message.element
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
|
||||
@Serializable
|
||||
data class FaceMsg(
|
||||
@ProtoNumber(1) val index: Int? = null,
|
||||
@ProtoNumber(2) var old: ByteArray? = null,
|
||||
@ProtoNumber(11) var buf: ByteArray? = null,
|
||||
|
||||
)
|
@ -0,0 +1,28 @@
|
||||
package protobuf.message.element
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
|
||||
|
||||
@Serializable
|
||||
data class GeneralFlags(
|
||||
@ProtoNumber(1) val bubbleDiyTextId: UInt? = null,
|
||||
@ProtoNumber(2) val groupFlagNew: UInt? = null,
|
||||
@ProtoNumber(3) val uin: ULong? = null,
|
||||
@ProtoNumber(4) val rpId: ByteArray? = null,
|
||||
@ProtoNumber(5) val prpFold: UInt? = null,
|
||||
@ProtoNumber(6) val longTextFlag: UInt? = null,
|
||||
@ProtoNumber(7) val longTextResid: String? = null,
|
||||
@ProtoNumber(8) val groupType: UInt? = null,
|
||||
@ProtoNumber(9) val toUinFlag: UInt? = null,
|
||||
@ProtoNumber(10) val glamourLevel: UInt? = null,
|
||||
@ProtoNumber(11) val memberLevel: UInt? = null,
|
||||
@ProtoNumber(12) val groupRankSeq: ULong? = null,
|
||||
@ProtoNumber(13) val olympicTorch: UInt? = null,
|
||||
@ProtoNumber(14) val babyqGuideMsgCookie: ByteArray? = null,
|
||||
@ProtoNumber(15) val expertFlag: UInt? = null,
|
||||
@ProtoNumber(16) val bubbleSubId: UInt? = null,
|
||||
@ProtoNumber(17) val pendantId: ULong? = null,
|
||||
@ProtoNumber(18) val rpIndex: ByteArray? = null,
|
||||
@ProtoNumber(19) val reserve: ByteArray? = null,
|
||||
)
|
@ -4,6 +4,6 @@ import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
|
||||
@Serializable
|
||||
data class JsonElement(
|
||||
data class LightAppElem(
|
||||
@ProtoNumber(1) val data: ByteArray? = null,
|
||||
)
|
@ -0,0 +1,21 @@
|
||||
package protobuf.message.element
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
|
||||
@Serializable
|
||||
data class MarketFace(
|
||||
@ProtoNumber(1) var faceName: String? = null,
|
||||
@ProtoNumber(2) var itemType: Int? = null,
|
||||
@ProtoNumber(3) var faceInfo: Int? = null,
|
||||
@ProtoNumber(4) var faceId: String? = null,
|
||||
@ProtoNumber(5) var tabId: Int? = null,
|
||||
@ProtoNumber(6) var subType: Int? = null,
|
||||
@ProtoNumber(7) var key: ByteArray? = null,
|
||||
@ProtoNumber(8) var param: ByteArray? = null,
|
||||
@ProtoNumber(9) var mediaType: Int? = null,
|
||||
@ProtoNumber(10) var imageWidth: Int? = null,
|
||||
@ProtoNumber(11) var imageHeight: Int? = null,
|
||||
@ProtoNumber(12) var mobileparam: ByteArray? = null,
|
||||
@ProtoNumber(13) var pbReserve: ByteArray? = null,
|
||||
)
|
@ -0,0 +1,61 @@
|
||||
package protobuf.message.element
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
|
||||
@Serializable
|
||||
data class NotOnlineImage(
|
||||
@ProtoNumber(1) val filePath: String? = null,
|
||||
@ProtoNumber(2) val fileLen: UInt? = null,
|
||||
@ProtoNumber(3) val downloadPath: String? = null,
|
||||
@ProtoNumber(4) val oldVerSendFile: ByteArray? = null,
|
||||
@ProtoNumber(5) val imgType: UInt? = null,
|
||||
@ProtoNumber(6) val previewsImage: ByteArray? = null,
|
||||
@ProtoNumber(7) val picMd5: ByteArray? = null,
|
||||
@ProtoNumber(8) val picHeight: UInt? = null,
|
||||
@ProtoNumber(9) val picWidth: UInt? = null,
|
||||
@ProtoNumber(10) val resId: String? = null, // md5 + ".jpg"
|
||||
@ProtoNumber(11) val flag: ByteArray? = null,
|
||||
@ProtoNumber(12) val thumbUrl: String? = null,
|
||||
@ProtoNumber(13) val original: Boolean? = null,
|
||||
@ProtoNumber(14) val bigUrl: String? = null,
|
||||
@ProtoNumber(15) val origUrl: String? = null,
|
||||
@ProtoNumber(16) val bizType: UInt? = null,
|
||||
@ProtoNumber(17) val result: UInt? = null,
|
||||
@ProtoNumber(18) val index: UInt? = null,
|
||||
@ProtoNumber(19) val opFaceBuf: ByteArray? = null,
|
||||
@ProtoNumber(20) val oldPicMd5: Boolean = false,
|
||||
@ProtoNumber(21) val thumbWidth: UInt? = null,
|
||||
@ProtoNumber(22) val thumbHeight: UInt? = null,
|
||||
@ProtoNumber(23) val fileId: UInt? = null,
|
||||
@ProtoNumber(24) val showLen: UInt? = null,
|
||||
@ProtoNumber(25) val downloadLen: UInt? = null,
|
||||
@ProtoNumber(26) val url400: String? = null,
|
||||
@ProtoNumber(27) val width400: UInt? = null,
|
||||
@ProtoNumber(28) val height400: UInt? = null,
|
||||
@ProtoNumber(29) val pbReserve: PbReserve? = null,
|
||||
) {
|
||||
companion object {
|
||||
@Serializable
|
||||
data class PbReserve(
|
||||
@ProtoNumber(1) var field1: Int? = null,
|
||||
@ProtoNumber(3) var field3: Int? = null,
|
||||
@ProtoNumber(4) var field4: Int? = null,
|
||||
@ProtoNumber(8) var field8: String? = null,
|
||||
@ProtoNumber(10) var field10: Int? = null,
|
||||
@ProtoNumber(20) var field20: Object1? = null,
|
||||
@ProtoNumber(30) var url: String? = null,
|
||||
@ProtoNumber(31) var md5Str: String? = null
|
||||
)
|
||||
|
||||
@Serializable
|
||||
data class Object1(
|
||||
@ProtoNumber(1) var field1: Int? = null,
|
||||
@ProtoNumber(2) var field2: String? = null,
|
||||
@ProtoNumber(3) var field3: Int? = null,
|
||||
@ProtoNumber(4) var field4: Int? = null,
|
||||
@ProtoNumber(5) var field5: Int? = null,
|
||||
@ProtoNumber(7) var field7: String? = null
|
||||
)
|
||||
}
|
||||
}
|
30
protobuf/src/main/java/protobuf/message/element/SourceMsg.kt
Normal file
30
protobuf/src/main/java/protobuf/message/element/SourceMsg.kt
Normal file
@ -0,0 +1,30 @@
|
||||
package protobuf.message.element
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
import protobuf.message.Elem
|
||||
|
||||
@Serializable
|
||||
data class SourceMsg(
|
||||
@ProtoNumber(1) var origSeqs: List<Int>? = null,
|
||||
@ProtoNumber(2) var senderUin: ULong? = null,
|
||||
@ProtoNumber(3) var time: ULong? = null,
|
||||
@ProtoNumber(4) var flag: UInt? = null,
|
||||
@ProtoNumber(5) var elems: List<Elem>? = null,
|
||||
@ProtoNumber(6) var type: UInt? = null,
|
||||
@ProtoNumber(7) var richMsg: ByteArray? = null,
|
||||
@ProtoNumber(8) var pbReserve: PbReserve? = null,
|
||||
@ProtoNumber(9) var srcMsg: ByteArray? = null,
|
||||
@ProtoNumber(10) var toUin: ULong? = null,
|
||||
@ProtoNumber(11) var troopName: String? = null,
|
||||
) {
|
||||
companion object {
|
||||
@Serializable
|
||||
data class PbReserve(
|
||||
@ProtoNumber(3) var msgRand: ULong? = null,
|
||||
@ProtoNumber(6) var senderUid: String? = null,
|
||||
@ProtoNumber(7) var receiverUid: String? = null,
|
||||
@ProtoNumber(8) var field8: Int? = null,
|
||||
)
|
||||
}
|
||||
}
|
@ -1,40 +0,0 @@
|
||||
package protobuf.message.element
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
|
||||
@Serializable
|
||||
data class TextElement(
|
||||
@ProtoNumber(1) val text: String? = null,
|
||||
@ProtoNumber(2) val link: String? = null,
|
||||
@ProtoNumber(3) val attr6Buf: ByteArray? = null,
|
||||
@ProtoNumber(4) val attr7Buf: ByteArray? = null,
|
||||
@ProtoNumber(11) val buf: ByteArray? = null,
|
||||
@ProtoNumber(12) val pbReserve: TextResvAttr? = null,
|
||||
) {
|
||||
companion object {
|
||||
@Serializable
|
||||
data class TextResvAttr(
|
||||
@ProtoNumber(1) val wording: ByteArray? = null,
|
||||
@ProtoNumber(2) val textAnalysisResult: Int? = null,
|
||||
@ProtoNumber(3) val atType: Int? = null,
|
||||
@ProtoNumber(4) val atMemberUin: Long? = null,
|
||||
@ProtoNumber(5) val atMemberTinyid: Long? = null,
|
||||
@ProtoNumber(6) val atChannelInfo: ExtChannelInfo? = null,
|
||||
@ProtoNumber(7) val atRoleInfo: ExtRoleInfo? = null,
|
||||
)
|
||||
|
||||
@Serializable
|
||||
data class ExtChannelInfo(
|
||||
@ProtoNumber(1) val guildId: Long? = null,
|
||||
@ProtoNumber(2) val channelId: Long? = null,
|
||||
)
|
||||
|
||||
@Serializable
|
||||
data class ExtRoleInfo(
|
||||
@ProtoNumber(1) val id: Long? = null,
|
||||
@ProtoNumber(2) val info: ByteArray? = null,
|
||||
@ProtoNumber(3) val flag: Int? = null,
|
||||
)
|
||||
}
|
||||
}
|
21
protobuf/src/main/java/protobuf/message/element/TextMsg.kt
Normal file
21
protobuf/src/main/java/protobuf/message/element/TextMsg.kt
Normal file
@ -0,0 +1,21 @@
|
||||
package protobuf.message.element
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
|
||||
@Serializable
|
||||
data class TextMsg(
|
||||
@ProtoNumber(1) val str: String? = null,
|
||||
@ProtoNumber(2) val link: String? = null,
|
||||
@ProtoNumber(3) val attr6Buf: ByteArray? = null,
|
||||
@ProtoNumber(4) val attr7Buf: ByteArray? = null,
|
||||
@ProtoNumber(11) val buf: ByteArray? = null,
|
||||
@ProtoNumber(12) val pbReserve: PbReserve? = null,
|
||||
){
|
||||
companion object {
|
||||
@Serializable
|
||||
data class PbReserve(
|
||||
@ProtoNumber(1) val field1: String? = null, // [打 call]] 请使用最新版手机 QQ 体验新功能
|
||||
)
|
||||
}
|
||||
}
|
@ -0,0 +1,53 @@
|
||||
package protobuf.message.element.commelem
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
import moe.fuqiuluo.symbols.Protobuf
|
||||
|
||||
|
||||
@Serializable
|
||||
data class ButtonExtra(
|
||||
@ProtoNumber(1) val field1: Object1? = null,
|
||||
) : Protobuf<ButtonExtra>
|
||||
|
||||
@Serializable
|
||||
data class Object1(
|
||||
@ProtoNumber(1) val rows: List<Row>? = null,
|
||||
@ProtoNumber(2) val appid: Int? = null,
|
||||
)
|
||||
|
||||
@Serializable
|
||||
data class Row(
|
||||
@ProtoNumber(1) val buttons: List<Button>? = null,
|
||||
)
|
||||
|
||||
@Serializable
|
||||
data class Button(
|
||||
@ProtoNumber(1) val id: String? = null,
|
||||
@ProtoNumber(2) val renderData: RenderData? = null,
|
||||
@ProtoNumber(3) val action: Action? = null,
|
||||
)
|
||||
|
||||
@Serializable
|
||||
data class RenderData(
|
||||
@ProtoNumber(1) val label: String? = null,
|
||||
@ProtoNumber(2) val visitedLabel: String? = null,
|
||||
@ProtoNumber(3) val style: Int? = null,
|
||||
)
|
||||
|
||||
@Serializable
|
||||
data class Action(
|
||||
@ProtoNumber(1) val type: Int? = null,
|
||||
@ProtoNumber(2) val permission: Permission? = null,
|
||||
@ProtoNumber(4) val unsupportTips: String? = null,
|
||||
@ProtoNumber(5) val data: String? = null,
|
||||
@ProtoNumber(7) val reply: Boolean? = null,
|
||||
@ProtoNumber(8) val enter: Boolean? = null,
|
||||
)
|
||||
|
||||
@Serializable
|
||||
data class Permission(
|
||||
@ProtoNumber(1) val type: Int? = null,
|
||||
@ProtoNumber(2) val specifyRoleIds: List<String>? = null,
|
||||
@ProtoNumber(3) val specifyUserIds: List<String>? = null,
|
||||
)
|
@ -0,0 +1,10 @@
|
||||
package protobuf.message.element.commelem
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
import moe.fuqiuluo.symbols.Protobuf
|
||||
|
||||
@Serializable
|
||||
data class MarkdownExtra(
|
||||
@ProtoNumber(1) val content: String? = null,
|
||||
) : Protobuf<MarkdownExtra>
|
@ -0,0 +1,12 @@
|
||||
package protobuf.message.element.commelem
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
import moe.fuqiuluo.symbols.Protobuf
|
||||
|
||||
@Serializable
|
||||
data class PokeExtra(
|
||||
@ProtoNumber(1) val type: Int? = null,
|
||||
@ProtoNumber(7) val field7: Int? = null,
|
||||
@ProtoNumber(8) val field8: Int? = null
|
||||
) : Protobuf<PokeExtra>
|
@ -0,0 +1,17 @@
|
||||
package protobuf.message.element.commelem
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
import moe.fuqiuluo.symbols.Protobuf
|
||||
|
||||
@Serializable
|
||||
data class QFaceExtra(
|
||||
@ProtoNumber(1) val packId: String? = null,
|
||||
@ProtoNumber(2) val stickerId: String? = null,
|
||||
@ProtoNumber(3) val faceId: Int? = null,
|
||||
@ProtoNumber(4) val field4: Int? = null,
|
||||
@ProtoNumber(5) val field5: Int? = null,
|
||||
@ProtoNumber(6) val result: String? = null,
|
||||
@ProtoNumber(7) val faceText: String? = null,
|
||||
@ProtoNumber(9) val field9: Int? = null
|
||||
) : Protobuf<QFaceExtra>
|
@ -31,7 +31,7 @@ data class RecvLongMsgInfo(
|
||||
data class SendLongMsgInfo(
|
||||
@ProtoNumber(1) val type: Int? = null,
|
||||
@ProtoNumber(2) val uid: LongMsgUid? = null,
|
||||
@ProtoNumber(3) val groupUin: Int? = null,
|
||||
@ProtoNumber(3) val groupUin: ULong? = null,
|
||||
@ProtoNumber(4) val payload: ByteArray? = null,
|
||||
)
|
||||
|
||||
|
@ -6,16 +6,7 @@ import kotlinx.serialization.ExperimentalSerializationApi
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
import moe.fuqiuluo.symbols.Protobuf
|
||||
import protobuf.message.MessageBody
|
||||
import protobuf.message.MessageContent
|
||||
import protobuf.message.MessageHead
|
||||
|
||||
@Serializable
|
||||
data class PushMsgBody(
|
||||
@ProtoNumber(1) val head: MessageHead? = null,
|
||||
@ProtoNumber(2) val content: MessageContent? = null,
|
||||
@ProtoNumber(3) val body: MessageBody? = null
|
||||
)
|
||||
import protobuf.message.PushMsgBody
|
||||
|
||||
@Serializable
|
||||
data class LongMsgContent(
|
||||
|
@ -1,55 +1 @@
|
||||
@file:OptIn(ExperimentalSerializationApi::class)
|
||||
package protobuf.message.multimedia
|
||||
|
||||
import kotlinx.serialization.ExperimentalSerializationApi
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
import moe.fuqiuluo.symbols.Protobuf
|
||||
|
||||
@Serializable
|
||||
data class RichMediaForPicData(
|
||||
@ProtoNumber(1) val info: MediaInfo?,
|
||||
@ProtoNumber(2) val display: DisplayMediaInfo?,
|
||||
): Protobuf<RichMediaForPicData> {
|
||||
companion object {
|
||||
@Serializable
|
||||
data class MediaInfo(
|
||||
@ProtoNumber(1) val picture: Picture? = null,
|
||||
)
|
||||
|
||||
@Serializable
|
||||
data class Picture(
|
||||
@ProtoNumber(1) val info: PictureInfo? = null,
|
||||
@ProtoNumber(2) val fileId: String? = null,
|
||||
@ProtoNumber(4) val time: ULong? = null,
|
||||
)
|
||||
|
||||
@Serializable
|
||||
data class PictureInfo(
|
||||
@ProtoNumber(2) val md5Hex: String? = null,
|
||||
@ProtoNumber(3) val sha: String? = null,
|
||||
@ProtoNumber(4) val name: String? = null,
|
||||
@ProtoNumber(6) val width: Int? = null,
|
||||
@ProtoNumber(7) val height: Int? = null,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@Serializable
|
||||
data class DisplayMediaInfo(
|
||||
@ProtoNumber(1) val show: Show? = null,
|
||||
) {
|
||||
companion object {
|
||||
@Serializable
|
||||
data class Show(
|
||||
@ProtoNumber(2) val text: String? = null,
|
||||
@ProtoNumber(12) val download: Download? = null
|
||||
)
|
||||
|
||||
@Serializable
|
||||
data class Download(
|
||||
@ProtoNumber(30) val url: String? = null,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
|
14
protobuf/src/main/java/protobuf/message/routing/C2C.kt
Normal file
14
protobuf/src/main/java/protobuf/message/routing/C2C.kt
Normal file
@ -0,0 +1,14 @@
|
||||
package protobuf.message.routing
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
|
||||
@Serializable
|
||||
data class C2C(
|
||||
@ProtoNumber(1) val uin: UInt? = null,
|
||||
@ProtoNumber(2) val uid: String? = null,
|
||||
@ProtoNumber(3) val field3: UInt? = null,
|
||||
@ProtoNumber(4) val sig: UInt? = null,
|
||||
@ProtoNumber(5) val receiverUin: UInt? = null,
|
||||
@ProtoNumber(6) val receiverUid: String? = null
|
||||
)
|
9
protobuf/src/main/java/protobuf/message/routing/Grp.kt
Normal file
9
protobuf/src/main/java/protobuf/message/routing/Grp.kt
Normal file
@ -0,0 +1,9 @@
|
||||
package protobuf.message.routing
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
|
||||
@Serializable
|
||||
data class Grp (
|
||||
@ProtoNumber(1) var groupCode: UInt? = null,
|
||||
)
|
10
protobuf/src/main/java/protobuf/message/routing/GrpTmp.kt
Normal file
10
protobuf/src/main/java/protobuf/message/routing/GrpTmp.kt
Normal file
@ -0,0 +1,10 @@
|
||||
package protobuf.message.routing
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
|
||||
@Serializable
|
||||
data class GrpTmp (
|
||||
@ProtoNumber(1) var groupCode: UInt? = null,
|
||||
@ProtoNumber(2) var ToUin: UInt? = null,
|
||||
)
|
@ -0,0 +1,11 @@
|
||||
package protobuf.message.routing
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
|
||||
@Serializable
|
||||
data class Trans0X211(
|
||||
@ProtoNumber(1) val toUin: ULong? = null,
|
||||
@ProtoNumber(2) val ccCmd: UInt? = null,
|
||||
@ProtoNumber(8) val uid: String? = null
|
||||
)
|
10
protobuf/src/main/java/protobuf/message/routing/WPATmp.kt
Normal file
10
protobuf/src/main/java/protobuf/message/routing/WPATmp.kt
Normal file
@ -0,0 +1,10 @@
|
||||
package protobuf.message.routing
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
|
||||
@Serializable
|
||||
data class WPATmp (
|
||||
@ProtoNumber(1) val toUin: Int? = null,
|
||||
@ProtoNumber(2) val sig: ByteArray? = null,
|
||||
)
|
@ -1,104 +0,0 @@
|
||||
package protobuf.msg
|
||||
|
||||
import com.google.protobuf.Internal.EMPTY_BYTE_ARRAY
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
|
||||
@Serializable
|
||||
data class MsgBody(
|
||||
@ProtoNumber(1) var richText: RichText,
|
||||
//@ProtoNumber(2) var msgContent: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
//@/ProtoNumber(3) var msgEncryptContent: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
)
|
||||
|
||||
@Serializable
|
||||
data class RichText(
|
||||
//@ProtoNumber(1) var attr: Attr? = null,
|
||||
@ProtoNumber(2) var elems: ArrayList<Elem>? = null,
|
||||
//@ProtoNumber(3) var not_online_file: NotOnlineFile? = null,
|
||||
//@ProtoNumber(4) var ptt: Ptt? = null,
|
||||
//@ProtoNumber(5) var tmp_ptt: TmpPtt? = null,
|
||||
//@ProtoNumber(6) var trans_211_tmp_msg: Trans211TmpMsg? = null,
|
||||
)
|
||||
|
||||
@Serializable
|
||||
data class Elem(
|
||||
/*@ProtoNumber(1) var text: TextMsg? = null,
|
||||
@ProtoNumber(2) var face: FaceMsg? = null,
|
||||
@ProtoNumber(3) var online_image: OnlineImage? = null,
|
||||
@ProtoNumber(4) var not_online_image: NotOnlineImage? = null,
|
||||
@ProtoNumber(5) var trans_elem_info: TransElem? = null,
|
||||
@ProtoNumber(6) var market_face: MarketFace? = null,
|
||||
@ProtoNumber(7) var elem_flags: ElemFlags? = null,
|
||||
@ProtoNumber(8) var customFace: CustomFace? = null,
|
||||
@ProtoNumber(9) var elem_flags2: ElemFlags2? = null,
|
||||
@ProtoNumber(10) var fun_face: FunFace? = null,
|
||||
@ProtoNumber(11) var secret_file: SecretFileMsg? = null,
|
||||
@ProtoNumber(12) var rich_msg: RichMsg? = null,
|
||||
@ProtoNumber(13) var group_file: GroupFile? = null,
|
||||
@ProtoNumber(14) var pub_group: PubGroup? = null,
|
||||
@ProtoNumber(15) var market_trans: MarketTrans? = null,
|
||||
@ProtoNumber(16) var extra_info: ExtraInfo? = null,
|
||||
@ProtoNumber(17) var shake_window: ShakeWindow? = null,
|
||||
@ProtoNumber(18) var pub_account: PubAccount? = null,
|
||||
@ProtoNumber(19) var video_file: VideoFile? = null,
|
||||
@ProtoNumber(20) var tips_info: TipsInfo? = null,
|
||||
@ProtoNumber(21) var anon_group_msg: AnonymousGroupMsg? = null,
|
||||
@ProtoNumber(22) var qq_live_old: QQLiveOld? = null,
|
||||
@ProtoNumber(23) var life_online: LifeOnlineAccount? = null,
|
||||
@ProtoNumber(24) var qqwallet_msg: QQWalletMsg? = null,
|
||||
@ProtoNumber(25) var crm_elem: CrmElem? = null,
|
||||
@ProtoNumber(26) var conference_tips_info: ConferenceTipsInfo? = null,
|
||||
@ProtoNumber(27) var redbag_info: RedBagInfo? = null,
|
||||
@ProtoNumber(28) var low_version_tips: LowVersionTips? = null,
|
||||
@ProtoNumber(29) var bankcode_ctrl_info: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(30) var near_by_msg: NearByMessageType? = null,
|
||||
@ProtoNumber(31) var custom_elem: CustomElem? = null,
|
||||
@ProtoNumber(32) var location_info: LocationInfo? = null,
|
||||
@ProtoNumber(33) var pub_acc_info: PubAccInfo? = null,
|
||||
@ProtoNumber(34) var small_emoji: SmallEmoji? = null,
|
||||
@ProtoNumber(35) var fsj_msg_elem: FSJMessageElem? = null,
|
||||
@ProtoNumber(36) var ark_app: ArkAppElem? = null,
|
||||
*/
|
||||
@ProtoNumber(37) var generalFlags: GeneralFlags? = null,
|
||||
/*
|
||||
@ProtoNumber(38) var hc_flash_pic: CustomFace? = null,
|
||||
@ProtoNumber(39) var deliver_gift_msg: DeliverGiftMsg? = null,
|
||||
@ProtoNumber(40) var bitapp_msg: BitAppMsg? = null,
|
||||
@ProtoNumber(41) var open_qq_data: OpenQQData? = null,
|
||||
@ProtoNumber(42) var apollo_msg: ApolloActMsg? = null,
|
||||
@ProtoNumber(43) var group_pub_acc_info: GroupPubAccountInfo? = null,
|
||||
@ProtoNumber(44) var bless_msg: BlessingMessage? = null,
|
||||
@ProtoNumber(45) var src_msg: SourceMsg? = null,
|
||||
@ProtoNumber(46) var lola_msg: LolaMsg? = null,
|
||||
@ProtoNumber(47) var group_business_msg: GroupBusinessMsg? = null,
|
||||
@ProtoNumber(48) var msg_workflow_notify: WorkflowNotifyMsg? = null,
|
||||
@ProtoNumber(49) var pat_elem: PatsElem? = null,
|
||||
@ProtoNumber(50) var group_post_elem: GroupPostElem? = null,
|
||||
@ProtoNumber(51) var light_app: LightAppElem? = null,
|
||||
@ProtoNumber(52) var eim_info: EIMInfo? = null,
|
||||
@ProtoNumber(53) var commonElem: CommonElem? = null,*/
|
||||
)
|
||||
|
||||
@Serializable
|
||||
data class GeneralFlags(
|
||||
@ProtoNumber(1) var uint32_bubble_diy_text_id: UInt = 0u,
|
||||
@ProtoNumber(2) var uint32_group_flag_new: UInt = 0u,
|
||||
@ProtoNumber(3) var uint64_uin: ULong = 0u,
|
||||
@ProtoNumber(4) var bytes_rp_id: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(5) var uint32_prp_fold: UInt = 0u,
|
||||
@ProtoNumber(6) var long_text_flag: UInt = 0u,
|
||||
@ProtoNumber(7) var long_text_resid: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(8) var uint32_group_type: UInt = 0u,
|
||||
@ProtoNumber(9) var uint32_to_uin_flag: UInt = 0u,
|
||||
@ProtoNumber(10) var uint32_glamour_level: UInt = 0u,
|
||||
@ProtoNumber(11) var uint32_member_level: UInt = 0u,
|
||||
@ProtoNumber(12) var uint64_group_rank_seq: ULong = 0u,
|
||||
@ProtoNumber(13) var uint32_olympic_torch: UInt = 0u,
|
||||
@ProtoNumber(14) var babyq_guide_msg_cookie: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(15) var uin32_expert_flag: UInt = 0u,
|
||||
@ProtoNumber(16) var uint32_bubble_sub_id: UInt = 0u,
|
||||
@ProtoNumber(17) var pendantId: ULong = 0u,
|
||||
@ProtoNumber(18) var bytes_rp_index: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(19) var reserve: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
)
|
@ -1,67 +0,0 @@
|
||||
package protobuf.msg
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
import moe.fuqiuluo.symbols.Protobuf
|
||||
|
||||
@Serializable
|
||||
class PbSendMsgReq(
|
||||
@ProtoNumber(1) var routingHead: RoutingHead,
|
||||
@ProtoNumber(2) var contentHead: ContentHead,
|
||||
@ProtoNumber(3) var msgBody: MsgBody,
|
||||
@ProtoNumber(4) var msgSeq: ULong = 0u,
|
||||
@ProtoNumber(5) var msgRand: UInt = 0u,
|
||||
//@ProtoNumber(6) var sync_cookie: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
//@ProtoNumber(7) var app_share: AppShareInfo? = null,
|
||||
@ProtoNumber(8) var msgVia: UInt = 0u,
|
||||
//@ProtoNumber(9) var data_statist: UInt = 0u,
|
||||
//@ProtoNumber(10) var multi_msg_assist: MultiMsgAssist? = null,
|
||||
//@ProtoNumber(11) var input_notify_info: PbInputNotifyInfo? = null,
|
||||
//@ProtoNumber(12) var msgCtrl: MsgCtrl? = null,
|
||||
//@ProtoNumber(13) var receipt_req: ReceiptReq? = null,
|
||||
//@ProtoNumber(14) var multi_send_seq: UInt = 0u,
|
||||
): Protobuf<PbSendMsgReq>
|
||||
|
||||
@Serializable
|
||||
data class ContentHead(
|
||||
@ProtoNumber(1) var pkg_num: UInt = 0u,
|
||||
@ProtoNumber(2) var pkg_index: UInt = 0u,
|
||||
@ProtoNumber(3) var div_seq: UInt = 0u,
|
||||
@ProtoNumber(4) var auto_reply: UInt = 0u,
|
||||
)
|
||||
|
||||
@Serializable
|
||||
class RoutingHead(
|
||||
@ProtoNumber(1) var c2c: C2C? = null,
|
||||
@ProtoNumber(2) var grp: Grp? = null,
|
||||
// @ProtoNumber(3) var grp_tmp: GrpTmp? = null,
|
||||
//@ProtoNumber(4) var dis: Dis? = null,
|
||||
// @ProtoNumber(5) var dis_tmp: DisTmp? = null,
|
||||
// @ProtoNumber(6) var wpa_tmp: WPATmp? = null,
|
||||
// @ProtoNumber(7) var secret_file: SecretFileHead? = null,
|
||||
// @ProtoNumber(8) var public_plat: PublicPlat? = null,
|
||||
/*@ProtoNumber(9) var trans_msg: TransMsg? = null,
|
||||
@ProtoNumber(10) var address_list: AddressListTmp? = null,
|
||||
@ProtoNumber(11) var rich_status_tmp: RichStatusTmp? = null,
|
||||
@ProtoNumber(12) var trans_cmd: TransCmd? = null,
|
||||
@ProtoNumber(13) var accost_tmp: AccostTmp? = null,
|
||||
@ProtoNumber(14) var pub_group_tmp: PubGroupTmp? = null,
|
||||
@ProtoNumber(15) var trans_0x211: Trans0x211? = null,
|
||||
@ProtoNumber(16) var business_wpa_tmp: BusinessWPATmp? = null,
|
||||
@ProtoNumber(17) var auth_tmp: AuthTmp? = null,
|
||||
@ProtoNumber(18) var bsns_tmp: BsnsTmp? = null,
|
||||
@ProtoNumber(19) var qq_querybusiness_tmp: QQQueryBusinessTmp? = null,
|
||||
@ProtoNumber(20) var nearby_dating_tmp: NearByDatingTmp? = null,
|
||||
@ProtoNumber(21) var nearby_assistant_tmp: NearByAssistantTmp? = null,
|
||||
@ProtoNumber(22) var comm_tmp: CommTmp? = null,*/
|
||||
)
|
||||
|
||||
@Serializable
|
||||
class C2C(
|
||||
@ProtoNumber(1) var to_uin: ULong = 0u,
|
||||
)
|
||||
|
||||
@Serializable
|
||||
class Grp(
|
||||
@ProtoNumber(1) var groupCode: ULong = 0u,
|
||||
)
|
@ -49,8 +49,8 @@ data class UploadCompletedReq(
|
||||
@Serializable
|
||||
data class MsgInfo(
|
||||
@ProtoNumber(1) val msgInfoBody: List<MsgInfoBody>,
|
||||
@ProtoNumber(2) val extBizInfo: ExtBizInfo,
|
||||
)
|
||||
@ProtoNumber(2) val extBizInfo: ExtBizInfo?,
|
||||
): Protobuf<MsgInfo>
|
||||
|
||||
@Serializable
|
||||
data class MsgInfoBody(
|
||||
@ -94,7 +94,8 @@ data class DeleteReq(
|
||||
|
||||
@Serializable
|
||||
data class DownloadRkeyReq(
|
||||
@ProtoNumber(1) val types: List<Int>
|
||||
@ProtoNumber(1) val types: List<Int>,
|
||||
@ProtoNumber(2) val downloadType: Int
|
||||
)
|
||||
|
||||
@Serializable
|
||||
@ -106,7 +107,7 @@ data class UploadReq(
|
||||
@ProtoNumber(5) val compatQMsgSceneType: UInt? = null,
|
||||
@ProtoNumber(6) val extBizInfo: ExtBizInfo? = null,
|
||||
@ProtoNumber(7) val clientSeq: UInt? = null,
|
||||
@ProtoNumber(8) val noNeedCompatMsg: Boolean = false,
|
||||
@ProtoNumber(8) val noNeedCompatMsg: Boolean? = null,
|
||||
)
|
||||
|
||||
@Serializable
|
||||
@ -114,7 +115,7 @@ data class ExtBizInfo(
|
||||
@ProtoNumber(1) val pic: PicExtBizInfo? = null,
|
||||
@ProtoNumber(2) val video: VideoExtBizInfo? = null,
|
||||
@ProtoNumber(3) val ptt: PttExtBizInfo? = null,
|
||||
@ProtoNumber(10) val busiType: UInt,
|
||||
@ProtoNumber(10) val busiType: UInt?,
|
||||
)
|
||||
|
||||
@Serializable
|
||||
@ -132,15 +133,15 @@ data class PttExtBizInfo(
|
||||
|
||||
@Serializable
|
||||
data class VideoExtBizInfo(
|
||||
@ProtoNumber(1) val fromScene: UInt,
|
||||
@ProtoNumber(2) val toScene: UInt,
|
||||
@ProtoNumber(3) val bytesPbReserve: ByteArray,
|
||||
@ProtoNumber(1) val fromScene: UInt?,
|
||||
@ProtoNumber(2) val toScene: UInt?,
|
||||
@ProtoNumber(3) val bytesPbReserve: ByteArray?,
|
||||
)
|
||||
|
||||
@Serializable
|
||||
data class PicExtBizInfo(
|
||||
@ProtoNumber(1) val bizType: UInt,
|
||||
@ProtoNumber(2) val textSummary: String,
|
||||
@ProtoNumber(1) val bizType: UInt?,
|
||||
@ProtoNumber(2) val textSummary: String?,
|
||||
@ProtoNumber(11) val bytesPbReserveC2c: ByteArray? = null,
|
||||
@ProtoNumber(12) val bytesPbReserveTroop: ByteArray? = null,
|
||||
@ProtoNumber(1001) val fromScene: UInt? = null,
|
||||
@ -156,15 +157,15 @@ data class UploadInfo(
|
||||
|
||||
@Serializable
|
||||
data class FileInfo(
|
||||
@ProtoNumber(1) val fileSize: ULong,
|
||||
@ProtoNumber(2) val md5: String,
|
||||
@ProtoNumber(3) val sha1: String,
|
||||
@ProtoNumber(4) val name: String,
|
||||
@ProtoNumber(5) val fileType: FileType,
|
||||
@ProtoNumber(6) val width: UInt,
|
||||
@ProtoNumber(7) val height: UInt,
|
||||
@ProtoNumber(8) val time: UInt,
|
||||
@ProtoNumber(9) val original: UInt,
|
||||
@ProtoNumber(1) val fileSize: ULong?,
|
||||
@ProtoNumber(2) val md5: String?,
|
||||
@ProtoNumber(3) val sha1: String?,
|
||||
@ProtoNumber(4) val name: String?,
|
||||
@ProtoNumber(5) val fileType: FileType?,
|
||||
@ProtoNumber(6) val width: UInt?,
|
||||
@ProtoNumber(7) val height: UInt?,
|
||||
@ProtoNumber(8) val time: UInt?,
|
||||
@ProtoNumber(9) val original: UInt?,
|
||||
)
|
||||
|
||||
@Serializable
|
||||
@ -217,7 +218,7 @@ data class IndexNode(
|
||||
@ProtoNumber(3) val storeId: UInt, // 0为旧服务器 1为nt服务器
|
||||
@ProtoNumber(4) val uploadTime: ULong,
|
||||
@ProtoNumber(5) val ttl: ULong,
|
||||
@ProtoNumber(6) val subType: UInt,
|
||||
@ProtoNumber(6) val subType: UInt? = null,
|
||||
@ProtoNumber(7) val storeAppId: UInt? = null
|
||||
)
|
||||
|
||||
|
@ -26,8 +26,8 @@ class DownloadSafeRsp
|
||||
|
||||
@Serializable
|
||||
data class UploadKeyRenewalRsp(
|
||||
@ProtoNumber(1) val ukey: String,
|
||||
@ProtoNumber(2) val ukeyTtlSec: ULong,
|
||||
@ProtoNumber(1) val ukey: String?,
|
||||
@ProtoNumber(2) val ukeyTtlSec: ULong?,
|
||||
)
|
||||
|
||||
@Serializable
|
||||
@ -39,7 +39,7 @@ data class MsgInfoAuthRsp(
|
||||
|
||||
@Serializable
|
||||
data class UploadCompletedRsp(
|
||||
@ProtoNumber(1) val msgSeq: ULong
|
||||
@ProtoNumber(1) val msgSeq: ULong?
|
||||
)
|
||||
|
||||
@Serializable
|
||||
@ -47,22 +47,22 @@ class DeleteRsp
|
||||
|
||||
@Serializable
|
||||
data class DownloadRkeyRsp(
|
||||
@ProtoNumber(1) val rkeys: List<RKeyInfo>
|
||||
@ProtoNumber(1) val rkeys: List<RKeyInfo>?
|
||||
)
|
||||
|
||||
@Serializable
|
||||
data class RKeyInfo(
|
||||
@ProtoNumber(1) val rkey: String,
|
||||
@ProtoNumber(2) val rkeyTtlSec: ULong,
|
||||
@ProtoNumber(2) val rkeyTtlSec: ULong?,
|
||||
@ProtoNumber(3) val storeId: UInt = 0u,
|
||||
@ProtoNumber(4) val rkeyCreateTime: UInt?,
|
||||
@ProtoNumber(4) val type: UInt?,
|
||||
@ProtoNumber(5) val type: UInt,
|
||||
)
|
||||
|
||||
@Serializable
|
||||
data class DownloadRsp(
|
||||
@ProtoNumber(1) val rkeyParam: String,
|
||||
@ProtoNumber(2) val rkeyTtlSec: ULong,
|
||||
@ProtoNumber(1) val rkeyParam: String?,
|
||||
@ProtoNumber(2) val rkeyTtlSec: ULong?,
|
||||
@ProtoNumber(3) val downloadInfo: DownloadInfo?,
|
||||
@ProtoNumber(4) val rkeyCreateTime: UInt?
|
||||
)
|
||||
@ -80,16 +80,16 @@ data class DownloadInfo(
|
||||
|
||||
@Serializable
|
||||
data class VideoExtInfo(
|
||||
@ProtoNumber(1) val videoCodecFormat: UInt,
|
||||
@ProtoNumber(1) val videoCodecFormat: UInt? = null,
|
||||
)
|
||||
|
||||
@Serializable
|
||||
data class UploadRsp(
|
||||
@ProtoNumber(1) val ukey: String,
|
||||
@ProtoNumber(2) val ukeyTtlSec: ULong,
|
||||
@ProtoNumber(3) val ipv4: List<Ipv4>,
|
||||
@ProtoNumber(4) val ipv6: List<Ipv6>,
|
||||
@ProtoNumber(5) val msgSeq: ULong,
|
||||
@ProtoNumber(1) val ukey: String?,
|
||||
@ProtoNumber(2) val ukeyTtlSec: ULong?,
|
||||
@ProtoNumber(3) val ipv4: List<Ipv4>?,
|
||||
@ProtoNumber(4) val ipv6: List<Ipv6>?,
|
||||
@ProtoNumber(5) val msgSeq: ULong?,
|
||||
@ProtoNumber(6) val msgInfo: MsgInfo? = null,
|
||||
@ProtoNumber(7) val ext: List<RichmediaStorageTransInfo>? = null,
|
||||
@ProtoNumber(8) val compatQMsg: ByteArray? = null,
|
||||
@ -98,11 +98,11 @@ data class UploadRsp(
|
||||
|
||||
@Serializable
|
||||
data class SubFileInfo(
|
||||
@ProtoNumber(1) val subType: UInt,
|
||||
@ProtoNumber(2) val ukey: String,
|
||||
@ProtoNumber(3) val ukeyTTLSec: ULong,
|
||||
@ProtoNumber(4) val ipv4: List<Ipv4>,
|
||||
@ProtoNumber(5) val ipv6: List<Ipv6>,
|
||||
@ProtoNumber(1) val subType: UInt?,
|
||||
@ProtoNumber(2) val ukey: String?,
|
||||
@ProtoNumber(3) val ukeyTTLSec: ULong?,
|
||||
@ProtoNumber(4) val ipv4: List<Ipv4>?,
|
||||
@ProtoNumber(5) val ipv6: List<Ipv6>?,
|
||||
)
|
||||
|
||||
@Serializable
|
||||
@ -132,8 +132,8 @@ data class Ipv6(
|
||||
|
||||
@Serializable
|
||||
data class RspHead(
|
||||
@ProtoNumber(1) val commonHead: CommonHead,
|
||||
@ProtoNumber(1) val commonHead: CommonHead?,
|
||||
@ProtoNumber(2) val retCode: UInt = 0u,
|
||||
@ProtoNumber(3) val msg: String
|
||||
@ProtoNumber(3) val msg: String?
|
||||
)
|
||||
|
||||
|
63
protobuf/src/main/java/protobuf/oidb/cmd0x388/Cmd0x388Req.kt
Normal file
63
protobuf/src/main/java/protobuf/oidb/cmd0x388/Cmd0x388Req.kt
Normal file
@ -0,0 +1,63 @@
|
||||
package protobuf.oidb.cmd0x388
|
||||
|
||||
import com.google.protobuf.Internal.EMPTY_BYTE_ARRAY
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
import moe.fuqiuluo.symbols.Protobuf
|
||||
|
||||
@Serializable
|
||||
data class Cmd0x388ReqBody(
|
||||
@ProtoNumber(1) var netType: Int = 0,
|
||||
@ProtoNumber(2) var subCmd: Int = 0,
|
||||
@ProtoNumber(3) var msgTryUpImg: ArrayList<TryUpImgReq>? = null,
|
||||
// @ProtoNumber(4) var rpt_msg_getimg_url_req: ArrayList<GetImgUrlReq>? = null,
|
||||
@ProtoNumber(5) var msgTryUpPttReq: ArrayList<TryUpPttReq>? = null,
|
||||
// @ProtoNumber(6) var msgGetPttUrlReq: ArrayList<GetPttUrlReq>? = null,
|
||||
@ProtoNumber(7) var commandId: Int = 0,
|
||||
// @ProtoNumber(8) var rpt_msg_del_img_req: ArrayList<DelImgReq>? = null,
|
||||
@ProtoNumber(1001) var extension: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
): Protobuf<Cmd0x388ReqBody>
|
||||
|
||||
@Serializable
|
||||
data class TryUpImgReq(
|
||||
@ProtoNumber(1) var groupCode: Long = 0,
|
||||
@ProtoNumber(2) var srcUin: Long = 0,
|
||||
@ProtoNumber(3) var fileId: Long? = null,
|
||||
@ProtoNumber(4) var fileMd5: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(5) var fileSize: Long = 0,
|
||||
@ProtoNumber(6) var fileName: String = "",
|
||||
@ProtoNumber(7) var srcTerm: Int = 0,
|
||||
@ProtoNumber(8) var platformType: Int = 0,
|
||||
@ProtoNumber(9) var buType: Int = 0,
|
||||
@ProtoNumber(10) var picWidth: Int = 0,
|
||||
@ProtoNumber(11) var picHeight: Int = 0,
|
||||
@ProtoNumber(12) var picType: Int = 0,
|
||||
@ProtoNumber(13) var buildVer: String = "",
|
||||
@ProtoNumber(14) var innerIp: Int = 0,
|
||||
@ProtoNumber(15) var appPicType: Int = 0,
|
||||
@ProtoNumber(16) var originalPic: Int = 0,
|
||||
@ProtoNumber(17) var fileIndex: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(18) var dstUin: Long = 0,
|
||||
@ProtoNumber(19) var srvUpload: Int? = null,
|
||||
@ProtoNumber(20) var transferUrl: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
)
|
||||
|
||||
@Serializable
|
||||
data class TryUpPttReq(
|
||||
@ProtoNumber(1) var groupCode: Long = 0,
|
||||
@ProtoNumber(2) var srcUin: Long = 0,
|
||||
@ProtoNumber(3) var fileId: Long = 0,
|
||||
@ProtoNumber(4) var fileMd5: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(5) var fileSize: Long = 0,
|
||||
@ProtoNumber(6) var fileName: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(7) var srcTerm: Int = 0,
|
||||
@ProtoNumber(8) var platformType: Int = 0,
|
||||
@ProtoNumber(9) var buType: Int = 0,
|
||||
@ProtoNumber(10) var buildVer: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(11) var innerIp: Int = 0,
|
||||
@ProtoNumber(12) var voiceLength: Int = 0,
|
||||
@ProtoNumber(13) var newUpChan: Boolean = false,
|
||||
@ProtoNumber(14) var codec: Int = 0,
|
||||
@ProtoNumber(15) var voiceType: Int = 0,
|
||||
@ProtoNumber(16) var buId: Int = 0,
|
||||
)
|
78
protobuf/src/main/java/protobuf/oidb/cmd0x388/Cmd0x388Rsp.kt
Normal file
78
protobuf/src/main/java/protobuf/oidb/cmd0x388/Cmd0x388Rsp.kt
Normal file
@ -0,0 +1,78 @@
|
||||
@file:OptIn(ExperimentalSerializationApi::class)
|
||||
|
||||
package protobuf.oidb.cmd0x388
|
||||
|
||||
import com.google.protobuf.Internal.EMPTY_BYTE_ARRAY
|
||||
import kotlinx.serialization.ExperimentalSerializationApi
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
import moe.fuqiuluo.symbols.Protobuf
|
||||
|
||||
@Serializable
|
||||
data class Cmd0x388RspBody(
|
||||
@ProtoNumber(1) var clientIp: UInt = 0u,
|
||||
@ProtoNumber(2) var subCmd: UInt = 0u,
|
||||
@ProtoNumber(3) var msgTryUpImgRsp: ArrayList<TryUpImgRsp>? = null,
|
||||
@ProtoNumber(5) var msgTryUpPttRsp: ArrayList<TryUpPttRsp>? = null,
|
||||
): Protobuf<Cmd0x388RspBody>
|
||||
|
||||
@Serializable
|
||||
data class TryUpPttRsp(
|
||||
@ProtoNumber(1) var fileId: Long = 0,
|
||||
@ProtoNumber(2) var result: Int = 0,
|
||||
@ProtoNumber(3) var failMsg: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(4) var fileExit: Boolean = false,
|
||||
@ProtoNumber(5) var upIp: List<Int>? = null,
|
||||
@ProtoNumber(6) var upPort: List<Int>? = null,
|
||||
@ProtoNumber(7) var upUkey: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(8) var fileid: Long = 0,
|
||||
@ProtoNumber(9) var upOffset: Long = 0,
|
||||
@ProtoNumber(10) var blockSize: Long = 0,
|
||||
@ProtoNumber(11) var fileKey: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(12) var channelType: Int = 0,
|
||||
@ProtoNumber(26) var msgUpIp6: ArrayList<IPv6Info>? = null,
|
||||
@ProtoNumber(27) var clientIp6: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
): Protobuf<TryUpPttRsp>
|
||||
|
||||
@Serializable
|
||||
data class TryUpImgRsp(
|
||||
@ProtoNumber(1) var extFileId: ULong = 0u, // 没有实际作用
|
||||
@ProtoNumber(2) var result: UInt = 0u,
|
||||
@ProtoNumber(3) var faiMsg: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(4) var fileExist: Boolean = false,
|
||||
@ProtoNumber(5) var msgImgInfo: ImgInfo? = null, // 里面只是一堆垃圾
|
||||
@ProtoNumber(6) var upIp: ArrayList<Long>? = null,
|
||||
@ProtoNumber(7) var upPort: ArrayList<Int>? = null,
|
||||
@ProtoNumber(8) var ukey: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(9) var fileId: Long = 0,
|
||||
@ProtoNumber(10) var upOffset: ULong = 0u,
|
||||
@ProtoNumber(11) var blockSize: Long = 0,
|
||||
@ProtoNumber(12) var bool_new_big_chan: Boolean = false,
|
||||
@ProtoNumber(26) var rpt_msg_up_ip6: ArrayList<IPv6Info>? = null,
|
||||
@ProtoNumber(27) var client_ip6: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(1001) var msg_info4busi: TryUpInfo4Busi? = null,
|
||||
)
|
||||
|
||||
@Serializable
|
||||
data class TryUpInfo4Busi(
|
||||
@ProtoNumber(1) var down_domain: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(2) var thumb_down_url: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(3) var original_down_url: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(4) var big_down_url: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(5) var file_resid: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
)
|
||||
|
||||
@Serializable
|
||||
data class IPv6Info(
|
||||
@ProtoNumber(1) var ip6: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(2) var port: UInt = 0u,
|
||||
)
|
||||
|
||||
@Serializable
|
||||
data class ImgInfo(
|
||||
@ProtoNumber(1) var file_md5: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(2) var file_type: UInt = 0u,
|
||||
@ProtoNumber(3) var file_size: ULong = 0u,
|
||||
@ProtoNumber(4) var file_width: UInt = 0u,
|
||||
@ProtoNumber(5) var file_height: UInt = 0u,
|
||||
)
|
@ -3,11 +3,11 @@ package protobuf.push
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
import moe.fuqiuluo.symbols.Protobuf
|
||||
import protobuf.message.NtMessage
|
||||
import protobuf.message.PushMsgBody
|
||||
|
||||
@Serializable
|
||||
data class MessagePush(
|
||||
@ProtoNumber(1) val msgBody: NtMessage? = null,
|
||||
@ProtoNumber(1) val msgBody: PushMsgBody? = null,
|
||||
@ProtoNumber(4) val clientInfo: MessagePushClientInfo? = null,
|
||||
): Protobuf<MessagePush>
|
||||
|
||||
|
@ -7,6 +7,8 @@ import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
import moe.fuqiuluo.symbols.Protobuf
|
||||
|
||||
const val DEFAULT_DEVICE_INFO = "i=&imsi=&mac=02:00:00:00:00:00&m=Shamrock&o=114514&a=1919810&sd=0&c64=1&sc=1&p=8000*8000&aid=123456789012345678901234567890abcdef&f=Tencent&mm=5610&cf=1726&cc=8&qimei=&qimei36=&sharpP=1&n=nether_world&support_xsj_live=false&client_mod=concise&timezone=America/La_Paz&material_sdk_version=&vh265=&refreshrate=10086&hwlevel=9&suphdr=1&is_teenager_mod=8&liveH265=&bmst=5&AV1=0"
|
||||
|
||||
@Serializable
|
||||
data class QWebReq(
|
||||
@ProtoNumber(1) val seq: Int = 0,
|
||||
|
@ -0,0 +1,74 @@
|
||||
package com.tencent.mobileqq.data;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class MessageForPic extends MessageRecord {
|
||||
public String SpeedInfo;
|
||||
public String actMsgContentValue;
|
||||
public String action;
|
||||
public String bigMsgUrl;
|
||||
public String bigThumbMsgUrl;
|
||||
public int busiType;
|
||||
public int fileSizeFlag;
|
||||
public long groupFileID;
|
||||
public long height;
|
||||
public int imageType;
|
||||
public boolean isInMixedMsg;
|
||||
public boolean isMixed;
|
||||
public boolean isRead;
|
||||
public boolean isShareAppActionMsg;
|
||||
public String localUUID;
|
||||
public int mCurrlength;
|
||||
public int mDownloadLength;
|
||||
public long mPresendTransferedSize;
|
||||
public int mShowLength;
|
||||
public String md5;
|
||||
//@RecordForTest
|
||||
// public msg_ctrl$MsgCtrl msgCtrl;
|
||||
public int msgVia;
|
||||
public int ntChatType;
|
||||
public String ntPeerUid;
|
||||
public String path;
|
||||
//public PicMessageExtraData picExtraData;
|
||||
public int picExtraFlag;
|
||||
public Object picExtraObject;
|
||||
public int previewed;
|
||||
public String rawMsgUrl;
|
||||
/// public ReportInfo reportInfo;
|
||||
//public MsgRecordParams rootMsgRecordParams;
|
||||
public String serverStoreSource;
|
||||
public long shareAppID;
|
||||
public long size;
|
||||
public long subTypeId;
|
||||
public int thumbHeight;
|
||||
public String thumbMsgUrl;
|
||||
public int thumbWidth;
|
||||
//public ThumbWidthHeightDP thumbWidthHeightDP;
|
||||
public int type;
|
||||
public String uuid;
|
||||
public long width;
|
||||
public boolean isDownStatusReady = false;
|
||||
public int subMsgId = 0;
|
||||
public int isReport = 0;
|
||||
public int subVersion = 5;
|
||||
public int preDownState = -1;
|
||||
public int preDownNetworkType = -1;
|
||||
public long DSKey = 0;
|
||||
public int mNotPredownloadReason = 0;
|
||||
public int subThumbWidth = -1;
|
||||
public int subThumbHeight = -1;
|
||||
public int aiofileType = -1;
|
||||
public int subMsgType = -1;
|
||||
public boolean bEnableEnc = false;
|
||||
public int thumbSize = -1;
|
||||
public boolean isBlessPic = false;
|
||||
public boolean sync2Story = false;
|
||||
public boolean isQzonePic = false;
|
||||
public boolean isStoryPhoto = false;
|
||||
public long replyRealSourceMsgId = -1;
|
||||
|
||||
public String toLogString() {
|
||||
return "path:" + this.path + ",uuid:" + this.uuid + ",md5:" + this.md5 + ",size:" + this.size + ",groupFileID:" + this.groupFileID;
|
||||
}
|
||||
}
|
@ -146,6 +146,7 @@ public class TroopInfo {
|
||||
public byte[] troopInfoExtByte;
|
||||
public String troopLevelMap;
|
||||
public String troopRemark;
|
||||
@Deprecated
|
||||
public String troopcode;
|
||||
public short troopface;
|
||||
public String troopmemo;
|
||||
@ -154,6 +155,7 @@ public class TroopInfo {
|
||||
public int trooptype;
|
||||
public String troopuin;
|
||||
public long udwCmdUinRingtoneID;
|
||||
@Deprecated
|
||||
public String uin;
|
||||
public int wClickBAFTipCount;
|
||||
public int wInsertBAFTipCount;
|
||||
|
@ -1,63 +1,92 @@
|
||||
package com.tencent.mobileqq.data.troop;
|
||||
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import com.tencent.qqnt.kernelpublic.nativeinterface.MemberRole;
|
||||
|
||||
public class TroopMemberInfo {
|
||||
public long active_point;
|
||||
public static final long VALUE_DISTANCE_TO_SELF_UNKOWN = -100;
|
||||
protected static final int VALUE_INVALID = -100;
|
||||
public static final long VALUE_MEMBER_CLOSE_SHARE_LBS = -1001;
|
||||
|
||||
public int addState;
|
||||
public byte age;
|
||||
public String alias;
|
||||
|
||||
@Deprecated(since = "推荐使用TroopMemberNickInfo")
|
||||
public String autoremark;
|
||||
public long cmduinFlagEx3Grocery;
|
||||
public long credit_level;
|
||||
public long datetime;
|
||||
public String displayedNamePinyinFirst;
|
||||
public short faceid;
|
||||
|
||||
@Nullable
|
||||
public TroopMemberInfoExt extInfo;
|
||||
|
||||
@Deprecated(since = "推荐使用TroopMemberNickInfo")
|
||||
public String friendnick;
|
||||
public long gagTimeStamp;
|
||||
public String honorList;
|
||||
public boolean isTroopFollowed;
|
||||
public long join_time;
|
||||
public long last_active_time;
|
||||
public int level;
|
||||
public int mBigClubVipType;
|
||||
public byte mHonorRichFlag;
|
||||
public boolean mIsShielded;
|
||||
public int mVipType;
|
||||
public String memberUid;
|
||||
public String memberuin;
|
||||
public int newRealLevel;
|
||||
public TroopMemberNickInfo nickInfo;
|
||||
public int realLevel;
|
||||
public MemberRole role;
|
||||
|
||||
@Nullable
|
||||
public TroopMemberSpecialTitleInfo specialTitleInfo;
|
||||
|
||||
@Deprecated(since = "推荐使用TroopMemberNickInfo")
|
||||
public String troopColorNick;
|
||||
|
||||
@Deprecated(since = "推荐使用TroopMemberNickInfo")
|
||||
public int troopColorNickId;
|
||||
|
||||
@Deprecated(since = "推荐使用TroopMemberNickInfo")
|
||||
public String troopnick;
|
||||
public String troopuin;
|
||||
public int globalTroopLevel = VALUE_INVALID;
|
||||
public int flagEx = 0;
|
||||
|
||||
// QQ OLD API DATA
|
||||
public long active_point;
|
||||
public byte age;
|
||||
public String alias;
|
||||
public long cmduinFlagEx3Grocery;
|
||||
public long datetime;
|
||||
public short faceid;
|
||||
public String hwCourse;
|
||||
public int hwIdentity;
|
||||
public String hwName;
|
||||
public int isShowQZone;
|
||||
public boolean isTroopFollowed;
|
||||
public long join_time;
|
||||
public long lastMsgUpdateHonorRichTime;
|
||||
public long last_active_time;
|
||||
public int level;
|
||||
public int mBigClubTemplateId;
|
||||
public int mBigClubVipLevel;
|
||||
public int mBigClubVipType;
|
||||
public int mGlamourLevel;
|
||||
public byte mHonorRichFlag;
|
||||
public int mIsHideBigClub;
|
||||
public boolean mIsShielded;
|
||||
public String mUniqueTitle;
|
||||
public int mVipLevel;
|
||||
public int mVipTemplateId;
|
||||
public int mVipType;
|
||||
public String memberuin;
|
||||
public int newRealLevel;
|
||||
public String pyAll_autoremark;
|
||||
public String pyAll_friendnick;
|
||||
public String pyAll_troopnick;
|
||||
public String pyFirst_autoremark;
|
||||
public String pyFirst_friendnick;
|
||||
public String pyFirst_troopnick;
|
||||
public int realLevel;
|
||||
public String recommendRemark;
|
||||
public byte sex;
|
||||
public byte status;
|
||||
public int tribeLevel;
|
||||
public int tribePoint;
|
||||
public String troopColorNick;
|
||||
public int troopColorNickId;
|
||||
public String troopnick;
|
||||
public String troopremark;
|
||||
public String troopuin;
|
||||
public int qqVipInfo = 0;
|
||||
public int superQqInfo = 0;
|
||||
public int superVipInfo = 0;
|
||||
public int hotChatGlamourLevel = -100;
|
||||
public int globalTroopLevel = -100;
|
||||
public int distance = 0;
|
||||
public long msgseq = -100;
|
||||
public double distanceToSelf = -100.0d;
|
||||
|
@ -0,0 +1,48 @@
|
||||
package com.tencent.mobileqq.data.troop;
|
||||
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import kotlin.jvm.JvmField;
|
||||
|
||||
public class TroopMemberInfoExt {
|
||||
@JvmField
|
||||
public int commonFrdCnt;
|
||||
|
||||
@JvmField
|
||||
public long flagEx3;
|
||||
|
||||
@JvmField
|
||||
public int hwIdentity;
|
||||
|
||||
@JvmField
|
||||
public long lastMsgUpdateHonorRichTime;
|
||||
|
||||
@JvmField
|
||||
@Nullable
|
||||
public String memberUin;
|
||||
|
||||
@JvmField
|
||||
@Nullable
|
||||
public byte[] nickIconRepeatMsgBuffer;
|
||||
|
||||
@JvmField
|
||||
@Nullable
|
||||
public String recommendRemark;
|
||||
|
||||
@JvmField
|
||||
@Nullable
|
||||
public String showNameForPinyin;
|
||||
|
||||
@JvmField
|
||||
@Nullable
|
||||
public String showNamePinyinAll;
|
||||
|
||||
@JvmField
|
||||
@Nullable
|
||||
public String showNamePinyinFirst;
|
||||
|
||||
@JvmField
|
||||
@Nullable
|
||||
public String troopUin;
|
||||
|
||||
}
|
@ -0,0 +1,54 @@
|
||||
package com.tencent.mobileqq.data.troop;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class TroopMemberNickInfo {
|
||||
@NotNull
|
||||
public final String getAutoRemark() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public final String getColorNick() {
|
||||
return null;
|
||||
}
|
||||
|
||||
public final int getColorNickId() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public final String getFriendNick() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public final String getHBShowName() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public final String getRemarkFromFriend() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public final String getRemarkFromFriendV2() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public final String getShowName() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public final String getTroopNick() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public final String getTroopUin() {
|
||||
return null;
|
||||
}
|
||||
}
|
@ -0,0 +1,29 @@
|
||||
package com.tencent.mobileqq.data.troop;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class TroopMemberSpecialTitleInfo {
|
||||
public final int getExpireTimeSec() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public final String getFriendNick() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public final String getSpecialTitle() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public final String getTroopUin() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public final String getUin() {
|
||||
return null;
|
||||
}
|
||||
}
|
15
qqinterface/src/main/java/com/tencent/mobileqq/l0/b/a.java
Normal file
15
qqinterface/src/main/java/com/tencent/mobileqq/l0/b/a.java
Normal file
@ -0,0 +1,15 @@
|
||||
package com.tencent.mobileqq.l0.b;
|
||||
|
||||
public class a {
|
||||
public void b () {
|
||||
|
||||
}
|
||||
|
||||
public void c (c cVar) {
|
||||
|
||||
}
|
||||
|
||||
public void onUpdate(int progress, boolean z, Object obj) {
|
||||
|
||||
}
|
||||
}
|
23
qqinterface/src/main/java/com/tencent/mobileqq/l0/b/b.java
Normal file
23
qqinterface/src/main/java/com/tencent/mobileqq/l0/b/b.java
Normal file
@ -0,0 +1,23 @@
|
||||
package com.tencent.mobileqq.l0.b;
|
||||
|
||||
import android.graphics.Point;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class b {
|
||||
// text
|
||||
public String a;
|
||||
|
||||
// confidence
|
||||
public int b;
|
||||
|
||||
// coordinates
|
||||
public ArrayList<Point> c;
|
||||
|
||||
/* renamed from: d */
|
||||
public int d;
|
||||
|
||||
/* renamed from: e */
|
||||
public boolean e;
|
||||
|
||||
}
|
39
qqinterface/src/main/java/com/tencent/mobileqq/l0/b/c.java
Normal file
39
qqinterface/src/main/java/com/tencent/mobileqq/l0/b/c.java
Normal file
@ -0,0 +1,39 @@
|
||||
package com.tencent.mobileqq.l0.b;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
|
||||
public class c {
|
||||
// image
|
||||
public String a;
|
||||
|
||||
// width
|
||||
public int b;
|
||||
|
||||
// height
|
||||
public int c;
|
||||
|
||||
// lang
|
||||
public String d;
|
||||
|
||||
// url
|
||||
public String e;
|
||||
|
||||
// results
|
||||
public ArrayList<b> f;
|
||||
|
||||
public ArrayList<String> g;
|
||||
|
||||
public HashMap<String, String> h;
|
||||
|
||||
public int i;
|
||||
|
||||
public int j;
|
||||
|
||||
public int k;
|
||||
|
||||
public String l;
|
||||
|
||||
public int m;
|
||||
|
||||
}
|
@ -1,7 +1,7 @@
|
||||
package com.tencent.mobileqq.msf.core;
|
||||
|
||||
public class MsfCore {
|
||||
public static synchronized int getNextSeq() {
|
||||
public synchronized int getNextSeq() {
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
@ -0,0 +1,18 @@
|
||||
package com.tencent.mobileqq.msf.sdk;
|
||||
|
||||
import com.tencent.qphone.base.remote.FromServiceMsg;
|
||||
import com.tencent.qphone.base.remote.ToServiceMsg;
|
||||
|
||||
public class MsfMessagePair {
|
||||
public FromServiceMsg fromServiceMsg;
|
||||
public String sendProcess;
|
||||
public ToServiceMsg toServiceMsg;
|
||||
|
||||
public MsfMessagePair(String str, ToServiceMsg toServiceMsg, FromServiceMsg fromServiceMsg) {
|
||||
|
||||
}
|
||||
|
||||
public MsfMessagePair(ToServiceMsg toServiceMsg, FromServiceMsg fromServiceMsg) {
|
||||
|
||||
}
|
||||
}
|
@ -0,0 +1,22 @@
|
||||
package com.tencent.mobileqq.msf.service;
|
||||
|
||||
import android.app.Service;
|
||||
import android.content.Intent;
|
||||
import android.os.IBinder;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.tencent.mobileqq.msf.core.MsfCore;
|
||||
|
||||
public class MsfService extends Service {
|
||||
@Nullable
|
||||
@Override
|
||||
public IBinder onBind(Intent intent) {
|
||||
return null;
|
||||
}
|
||||
|
||||
public static MsfCore getCore() {
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
38
qqinterface/src/main/java/com/tencent/mobileqq/ocr/a/a.java
Normal file
38
qqinterface/src/main/java/com/tencent/mobileqq/ocr/a/a.java
Normal file
@ -0,0 +1,38 @@
|
||||
package com.tencent.mobileqq.ocr.a;
|
||||
|
||||
public class a {
|
||||
public String a;
|
||||
|
||||
// 1
|
||||
public int b;
|
||||
|
||||
// file location
|
||||
public String c;
|
||||
|
||||
// null
|
||||
public String d;
|
||||
|
||||
// 0
|
||||
public long e;
|
||||
|
||||
// md5
|
||||
public String f;
|
||||
|
||||
// null
|
||||
public String g;
|
||||
|
||||
// false
|
||||
public boolean h;
|
||||
|
||||
// 0
|
||||
public int i;
|
||||
|
||||
// 0
|
||||
public int j;
|
||||
|
||||
// 0
|
||||
public long k;
|
||||
|
||||
// null
|
||||
public String l;
|
||||
}
|
@ -0,0 +1,10 @@
|
||||
package com.tencent.mobileqq.ocr.api;
|
||||
|
||||
import mqq.app.api.IRuntimeService;
|
||||
|
||||
public interface IPicOcrService extends IRuntimeService {
|
||||
void putOcrResult(String str, com.tencent.mobileqq.l0.b.c cVar);
|
||||
|
||||
void requestOcr(com.tencent.mobileqq.ocr.a.a aVar, com.tencent.mobileqq.l0.b.a callback);
|
||||
|
||||
}
|
@ -0,0 +1,4 @@
|
||||
package com.tencent.mobileqq.ocr.api.impl;
|
||||
|
||||
public class OcrServiceImpl {
|
||||
}
|
@ -0,0 +1,4 @@
|
||||
package com.tencent.mobileqq.ocr.api.impl;
|
||||
|
||||
public class PicOcrServiceImpl {
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
package com.tencent.mobileqq.qqguildsdk.api.impl;
|
||||
|
||||
import com.tencent.qqnt.kernelgpro.nativeinterface.IKernelGuildService;
|
||||
|
||||
public class GProSessionImpl {
|
||||
public IKernelGuildService getGuildService() {
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
}
|
@ -1,20 +1,12 @@
|
||||
package com.tencent.mobileqq.qqguildsdk.data;
|
||||
|
||||
import android.text.TextUtils;
|
||||
|
||||
import com.tencent.mobileqq.qqguildsdk.data.genc.GGProMedalInfo;
|
||||
import com.tencent.mobileqq.qqguildsdk.data.genc.GGProNavigationInfo;
|
||||
import com.tencent.mobileqq.qqguildsdk.data.genc.IGProMedalInfo;
|
||||
import com.tencent.mobileqq.qqguildsdk.data.genc.IGProNavigationInfo;
|
||||
import com.tencent.qqnt.kernel.nativeinterface.GProGuild;
|
||||
import com.tencent.qqnt.kernel.nativeinterface.GProGuildSpeakableThreshold;
|
||||
import com.tencent.qqnt.kernel.nativeinterface.GProMedalInfo;
|
||||
import com.tencent.qqnt.kernel.nativeinterface.GProNavigationInfo;
|
||||
import com.tencent.qqnt.kernelgpro.nativeinterface.GProGuild;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
|
||||
|
||||
public class GProGuildInfo implements IGProGuildInfo {
|
||||
|
@ -2,7 +2,7 @@ package com.tencent.mobileqq.qqguildsdk.data;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import com.tencent.qqnt.kernel.nativeinterface.GProGuildRole;
|
||||
import com.tencent.qqnt.kernelgpro.nativeinterface.GProGuildRole;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
|
@ -1,6 +1,6 @@
|
||||
package com.tencent.mobileqq.qqguildsdk.data;
|
||||
|
||||
import com.tencent.qqnt.kernel.nativeinterface.GProGuildRole;
|
||||
import com.tencent.qqnt.kernelgpro.nativeinterface.GProGuildRole;
|
||||
import com.tencent.qqnt.kernel.nativeinterface.GProUser;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
@ -1,14 +1,9 @@
|
||||
package com.tencent.mobileqq.qqguildsdk.data.genc;
|
||||
|
||||
import com.tencent.mobileqq.qqguildsdk.data.GProGuildRoleInfo;
|
||||
import com.tencent.mobileqq.qqguildsdk.data.GProUserInfo;
|
||||
import com.tencent.mobileqq.qqguildsdk.data.IGProGuildRoleInfo;
|
||||
import com.tencent.mobileqq.qqguildsdk.data.IGProUserInfo;
|
||||
import com.tencent.qqnt.kernel.nativeinterface.GProGuildRole;
|
||||
import com.tencent.qqnt.kernel.nativeinterface.GProUser;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
|
||||
public class GGProGuildMemberSearchResult implements IGProGuildMemberSearchResult {
|
||||
|
||||
|
@ -1,6 +1,8 @@
|
||||
package com.tencent.mobileqq.transfile;
|
||||
|
||||
public class BaseTransProcessor {
|
||||
import com.tencent.mobileqq.utils.httputils.IHttpCommunicatorListener;
|
||||
|
||||
public class BaseTransProcessor implements IHttpCommunicatorListener {
|
||||
public FileMsg file;
|
||||
|
||||
public long getFileStatus() {
|
||||
|
@ -0,0 +1,5 @@
|
||||
package com.tencent.mobileqq.transfile;
|
||||
|
||||
public class BaseUploadProcessor extends BaseTransProcessor {
|
||||
|
||||
}
|
@ -1,5 +1,9 @@
|
||||
package com.tencent.mobileqq.transfile;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
|
||||
public class FileMsg {
|
||||
public static final int STATUS_FILE_EXPIRED = 5002;
|
||||
public static final int STATUS_FILE_TRANSFERING = 5000;
|
||||
@ -107,4 +111,58 @@ public class FileMsg {
|
||||
public static final int UIN_BUDDY = 0;
|
||||
public static final int UIN_DISCUSS = 2;
|
||||
public static final int UIN_TROOP = 1;
|
||||
|
||||
public String domain;
|
||||
public String downDomain;
|
||||
public long endTime;
|
||||
public int errorCode;
|
||||
public String errorMessage;
|
||||
public File file;
|
||||
public long fileID;
|
||||
public String fileKey;
|
||||
public String fileMd5;
|
||||
public String filePath;
|
||||
public long fileSize;
|
||||
public int fileType;
|
||||
public String fileUrl;
|
||||
public String forwardTaskKey;
|
||||
public String friendUin;
|
||||
public int isRead;
|
||||
public boolean isStreamMode;
|
||||
public int lastStatus;
|
||||
public byte[] localFileMd5;
|
||||
public String logTag;
|
||||
public long mSecMsgId;
|
||||
public long mSubMsgId;
|
||||
public String mUin;
|
||||
public String msgImageData;
|
||||
public String msgTime;
|
||||
public String orgiDownUrl;
|
||||
public String peerUin;
|
||||
public int picScale;
|
||||
public long picThumbSize;
|
||||
public BaseTransProcessor processor;
|
||||
public boolean processorDoReportSelf;
|
||||
public int pttSlicePos;
|
||||
public String pttSliceText;
|
||||
public OutputStream revStream;
|
||||
public String selfUin;
|
||||
public InputStream sendStream;
|
||||
public String serverPath;
|
||||
public long startTime;
|
||||
public int status;
|
||||
public long stepUrlCost;
|
||||
public String suffixType;
|
||||
public String thumbDownUrl;
|
||||
public String thumbPath;
|
||||
public String thumbUrl;
|
||||
public String tmpFilePath;
|
||||
public byte[] transferData;
|
||||
public long transferedSize;
|
||||
public String uKey;
|
||||
public int uinType;
|
||||
public long uniseq;
|
||||
public String[] urls;
|
||||
public byte[] userInfo;
|
||||
public String uuidPath;
|
||||
}
|
||||
|
@ -1,4 +1,6 @@
|
||||
package com.tencent.mobileqq.transfile;
|
||||
|
||||
public class GroupPicUploadProcessor {
|
||||
import com.tencent.mobileqq.utils.httputils.IHttpCommunicatorListener;
|
||||
|
||||
public class GroupPicUploadProcessor extends BaseUploadProcessor {
|
||||
}
|
||||
|
@ -1,7 +1,9 @@
|
||||
package com.tencent.qphone.base.util;
|
||||
|
||||
public abstract class CodecWarpper {
|
||||
public abstract void onResponse(int i2, Object obj, int i3);
|
||||
// public abstract void onResponse(int i2, Object obj, int i3);
|
||||
|
||||
public abstract void onInvalidData(int i2, int i3, String str);
|
||||
|
||||
public abstract void onResponse(int i2, Object obj, int i3, byte[] bArr);
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
package com.tencent.qqnt.aio.api;
|
||||
|
||||
import com.tencent.mobileqq.qroute.QRouteApi;
|
||||
import com.tencent.qqnt.kernel.nativeinterface.Contact;
|
||||
import com.tencent.qqnt.kernel.nativeinterface.IOperateCallback;
|
||||
import com.tencent.qqnt.kernelpublic.nativeinterface.Contact;
|
||||
|
||||
public interface IAIOFileTransfer extends QRouteApi {
|
||||
void sendLocalFile(Contact contact, String path, IOperateCallback cb);
|
||||
|
@ -0,0 +1,4 @@
|
||||
package com.tencent.qqnt.kernel.api.impl;
|
||||
|
||||
public class GroupService {
|
||||
}
|
@ -1,5 +1,7 @@
|
||||
package com.tencent.qqnt.kernel.nativeinterface;
|
||||
|
||||
import com.tencent.qqnt.kernelpublic.nativeinterface.Contact;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
|
||||
|
@ -1,5 +1,7 @@
|
||||
package com.tencent.qqnt.kernel.nativeinterface;
|
||||
|
||||
import com.tencent.qqnt.kernelgpro.nativeinterface.GProGuild;
|
||||
|
||||
public final class GProJoinGuildResult {
|
||||
GProGuild guildInfo;
|
||||
GProGuildInit guildInit;
|
||||
|
@ -1,5 +1,7 @@
|
||||
package com.tencent.qqnt.kernel.nativeinterface;
|
||||
|
||||
import com.tencent.qqnt.kernelgpro.nativeinterface.GProGuild;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
public final class GProJoinGuildsResult implements Serializable {
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user