mirror of
https://github.com/mamoe/mirai.git
synced 2025-01-03 01:39:35 +08:00
Merge branch 'dev' into dev
This commit is contained in:
commit
7d321ee206
11
.github/workflows/bintray.yml
vendored
11
.github/workflows/bintray.yml
vendored
@ -28,13 +28,10 @@ jobs:
|
||||
run: ./gradlew build # if test's failed, don't publish
|
||||
- name: Check keys
|
||||
run: ./gradlew :mirai-core:ensureBintrayAvailable :mirai-core-qqandroid:ensureBintrayAvailable -Dbintray_user=${{ secrets.BINTRAY_USER }} -Pbintray_user=${{ secrets.BINTRAY_USER }} -Dbintray_key=${{ secrets.BINTRAY_KEY }} -Pbintray_key=${{ secrets.BINTRAY_KEY }}
|
||||
- name: Gradle :mirai-core:bintrayUpload
|
||||
run: ./gradlew :mirai-core:bintrayUpload -Dbintray_user=${{ secrets.BINTRAY_USER }} -Pbintray_user=${{ secrets.BINTRAY_USER }} -Dbintray_key=${{ secrets.BINTRAY_KEY }} -Pbintray_key=${{ secrets.BINTRAY_KEY }}
|
||||
- name: Gradle :mirai-core-qqandroid:bintrayUpload
|
||||
run: ./gradlew :mirai-core-qqandroid:bintrayUpload -Dbintray_user=${{ secrets.BINTRAY_USER }} -Pbintray_user=${{ secrets.BINTRAY_USER }} -Dbintray_key=${{ secrets.BINTRAY_KEY }} -Pbintray_key=${{ secrets.BINTRAY_KEY }}
|
||||
- name: Gradle :mirai-serialization:bintrayUpload
|
||||
run: ./gradlew :mirai-serialization:bintrayUpload -Dbintray_user=${{ secrets.BINTRAY_USER }} -Pbintray_user=${{ secrets.BINTRAY_USER }} -Dbintray_key=${{ secrets.BINTRAY_KEY }} -Pbintray_key=${{ secrets.BINTRAY_KEY }}
|
||||
|
||||
- name: Gradle :mirai-core:publish
|
||||
run: ./gradlew :mirai-core:publish -Dbintray_user=${{ secrets.BINTRAY_USER }} -Pbintray_user=${{ secrets.BINTRAY_USER }} -Dbintray_key=${{ secrets.BINTRAY_KEY }} -Pbintray_key=${{ secrets.BINTRAY_KEY }}
|
||||
- name: Gradle :mirai-core-qqandroid:publish
|
||||
run: ./gradlew :mirai-core-qqandroid:publish -Dbintray_user=${{ secrets.BINTRAY_USER }} -Pbintray_user=${{ secrets.BINTRAY_USER }} -Dbintray_key=${{ secrets.BINTRAY_KEY }} -Pbintray_key=${{ secrets.BINTRAY_KEY }}
|
||||
|
||||
# - name: Upload artifact
|
||||
# uses: actions/upload-artifact@v1.0.0
|
||||
|
@ -19,7 +19,7 @@ mirai 欢迎一切形式的代码贡献。你可以通过以下几种途径向 m
|
||||
### 注意事项
|
||||
- 尽量不要引用新的库
|
||||
- 遵守 Kotlin 官方代码规范(提交前使用 IDE 格式化代码 (commit 时勾选 'Reformat code'))
|
||||
- 不要手动拆解数据包. 请一定使用 `kotlinx.serialization` 拆解 ProtoBuf, 使用 [`jcekt`](https://github.com/him188/jcekt) 拆解 Tars 数据包, 使用 `kotlinx.serialization` 拆解 Json 数据.
|
||||
- 不要手动拆解数据包. 请一定使用 `kotlinx.serialization` 拆解 ProtoBuf, 使用 `net.mamoe.mirai.qqandroid.utils.io.serialization.Tars` 拆解 Tars 数据包, 使用 `kotlinx.serialization` 拆解 Json 数据.
|
||||
|
||||
## 社区
|
||||
|
||||
|
@ -13,11 +13,11 @@ object Versions {
|
||||
}
|
||||
|
||||
object Kotlin {
|
||||
const val compiler = "1.4.0-rc"
|
||||
const val stdlib = "1.4.0-rc"
|
||||
const val coroutines = "1.3.8-1.4.0-rc"
|
||||
const val atomicFU = "0.14.3-1.4.0-rc"
|
||||
const val serialization = "1.0-M1-1.4.0-rc"
|
||||
const val compiler = "1.4.0"
|
||||
const val stdlib = "1.4.0"
|
||||
const val coroutines = "1.3.9"
|
||||
const val atomicFU = "0.14.4"
|
||||
const val serialization = "1.0.0-RC"
|
||||
const val ktor = "1.3.2-1.4.0-rc"
|
||||
const val binaryValidator = "0.2.3"
|
||||
|
||||
@ -26,8 +26,6 @@ object Versions {
|
||||
const val dokka = "0.10.1"
|
||||
}
|
||||
|
||||
const val jcekt = "2.0.0-1.4.0-rc-4"
|
||||
|
||||
object Android {
|
||||
const val androidGradlePlugin = "3.5.3"
|
||||
}
|
||||
|
@ -121,15 +121,15 @@ Mirai 通过某种方式同时生成了桥梁方法 `public void sendMessage(Mes
|
||||
|
||||
在 `1.0.0` 及更新版本, mirai-core 通过 gradle 依赖的 `api` 方式暴露了如下依赖库:
|
||||
|
||||
- `kotlin-stdlib`: Kotlin 标准库, 版本至少为 1.3.72
|
||||
- `kotlin-reflect`: Kotlin 反射, 版本至少为 1.3.72
|
||||
- `kotlinx-coroutines-core`: Kotlin 协程, 版本至少为 1.3.7
|
||||
- `kotlinx-serialization-runtime`: Kotlin 序列化运行时, 和 JSON 序列化, 版本至少为 0.20.0
|
||||
- `kotlinx-serialization-protobuf`: Kotlin ProtocolBuffers 序列化, 版本至少为 0.20.0
|
||||
- `kotlin-stdlib`: Kotlin 标准库, 版本 1.4.0
|
||||
- `kotlin-reflect`: Kotlin 反射, 版本 1.4.0
|
||||
- `kotlinx-coroutines-core`: Kotlin 协程, 版本 1.3.9
|
||||
- `kotlinx-serialization-core`: Kotlin 序列化运行时, 和 JSON 序列化, 版本 1.0.0-RC (此库不稳定, 请不要用新版本覆盖)
|
||||
- `kotlinx-serialization-protobuf`: Kotlin ProtocolBuffers 序列化, 版本 1.0.0-RC (此库不稳定, 请不要用新版本覆盖)
|
||||
- `kotlinx-io`: Kotlin IO, 版本至少为 0.1.16 (此库非常不稳定, 不建议使用它)
|
||||
- `kotlinx-coroutines-io`: Kotlin 异步 IO, 版本至少为 0.1.16 (此库非常不稳定, 不建议使用它)
|
||||
- `kotlinx-atomicfu`: Kotlin 原子操作, 版本至少为 0.14.2
|
||||
- `ktor-client-core`, `ktor-network`, `ktor-client-cio`: Ktor HTTP, 版本至少为 1.3.2
|
||||
- `kotlinx-atomicfu`: Kotlin 原子操作, 版本至少为 0.14.4
|
||||
- `ktor-client-core`, `ktor-network`, `ktor-client-cio`: Ktor HTTP, 版本至少为 1.3.2-1.4.0-rc
|
||||
|
||||
在 JVM, mirai 使用 `"org.bouncycastle:bcprov-jdk15on:1.64"` 进行密匙计算.
|
||||
|
||||
|
@ -6,4 +6,6 @@ kotlin.parallel.tasks.in.project=true
|
||||
org.gradle.jvmargs=-Xmx4096m -XX:MaxPermSize=512m -Dfile.encoding=UTF-8
|
||||
org.gradle.parallel=true
|
||||
|
||||
#kotlin.mpp.enableGranularSourceSetsMetadata=true
|
||||
#kotlin.mpp.enableGranularSourceSetsMetadata=true
|
||||
|
||||
systemProp.org.gradle.internal.publish.checksums.insecure=true
|
12
gradle/bintray.gradle
Normal file
12
gradle/bintray.gradle
Normal file
@ -0,0 +1,12 @@
|
||||
publishing {
|
||||
repositories {
|
||||
maven {
|
||||
url = "https://api.bintray.com/maven/mamoe/mirai/mirai-core/;publish=0"
|
||||
|
||||
credentials {
|
||||
username = upload.Bintray.getUser(project)
|
||||
password = upload.Bintray.getKey(project)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -1,87 +1,42 @@
|
||||
import upload.Bintray
|
||||
|
||||
// 部分源码来自 kotlinx.coroutines
|
||||
// Source code from kotlinx.coroutines
|
||||
|
||||
task ensureBintrayAvailable() {
|
||||
tasks.register("ensureBintrayAvailable") {
|
||||
doLast {
|
||||
if (!Bintray.isBintrayAvailable(project)) {
|
||||
if (!upload.Bintray.isBintrayAvailable(project)) {
|
||||
throw new IllegalStateException("bintray isn't available. ")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!Bintray.isBintrayAvailable(project)) {
|
||||
println("bintray isn't available. NO PUBLICATIONS WILL BE SET")
|
||||
return
|
||||
}
|
||||
def vcs = "https://github.com/mamoe/mirai"
|
||||
|
||||
def miraiGitHubUrl = "https://github.com/mamoe/mirai"
|
||||
|
||||
bintray {
|
||||
user = Bintray.getUser(project)
|
||||
key = Bintray.getKey(project)
|
||||
|
||||
pkg {
|
||||
repo = 'mirai'
|
||||
name = "mirai-core"
|
||||
licenses = ['AGPL']
|
||||
vcsUrl = miraiGitHubUrl
|
||||
websiteUrl = miraiGitHubUrl
|
||||
githubRepo = miraiGitHubUrl
|
||||
issueTrackerUrl = "$miraiGitHubUrl/issues"
|
||||
/* version {
|
||||
name = project.version
|
||||
}*/
|
||||
}
|
||||
}
|
||||
|
||||
afterEvaluate {
|
||||
project.publishing.publications.forEach { publication ->
|
||||
publication.pom.withXml {
|
||||
def root = asNode()
|
||||
//root.appendNode('groupId', project.group)
|
||||
//root.appendNode('artifactId', project.name)
|
||||
//root.appendNode('version', project.version)
|
||||
root.appendNode('name', project.name)
|
||||
root.appendNode('description', project.description)
|
||||
root.appendNode('url', miraiGitHubUrl)
|
||||
root.children().last() + {
|
||||
licenses {
|
||||
license {
|
||||
name "AGPL-V3"
|
||||
url "https://www.gnu.org/licenses/agpl-3.0.txt"
|
||||
distribution "repo"
|
||||
}
|
||||
}
|
||||
developers {
|
||||
developer {
|
||||
id "mamoe"
|
||||
name "Mamoe Technologies"
|
||||
email "support@mamoe.net"
|
||||
}
|
||||
}
|
||||
scm {
|
||||
url miraiGitHubUrl
|
||||
}
|
||||
}
|
||||
def pomConfig = {
|
||||
licenses {
|
||||
license {
|
||||
name "AGPLv3 with Mamoe Exceptions"
|
||||
url "https://github.com/mamoe/mirai/blob/master/LICENSE"
|
||||
distribution "repo"
|
||||
}
|
||||
}
|
||||
developers {
|
||||
developer {
|
||||
id "mamoe"
|
||||
name "Mamoe Technologies"
|
||||
email "support@mamoe.net"
|
||||
}
|
||||
}
|
||||
scm {
|
||||
url vcs
|
||||
}
|
||||
}
|
||||
|
||||
bintrayUpload.doFirst {
|
||||
publications = project.publishing.publications
|
||||
}
|
||||
|
||||
bintrayUpload.dependsOn {
|
||||
def list = new LinkedList<Task>()
|
||||
list.add(tasks.getByName("build"))
|
||||
|
||||
list.addAll(tasks.findAll { task -> task.name.contains('Jar') })
|
||||
list.addAll(tasks.findAll { task -> task.name.startsWith('generateMetadataFileFor') })
|
||||
list.addAll(tasks.findAll { task -> task.name.startsWith('generatePomFileFor') })
|
||||
|
||||
list
|
||||
project.ext.configureMavenCentralMetadata = { pom ->
|
||||
def root = asNode()
|
||||
root.appendNode('name', project.name)
|
||||
root.appendNode('description', project.description)
|
||||
root.appendNode('url', vcs)
|
||||
root.children().last() + pomConfig
|
||||
}
|
||||
|
||||
try {
|
||||
@ -90,40 +45,117 @@ try {
|
||||
task javadocJar(type: Jar) {
|
||||
archiveClassifier = 'javadoc'
|
||||
}
|
||||
|
||||
} catch (Exception ignored) {
|
||||
|
||||
}
|
||||
publishing {
|
||||
publications.all {
|
||||
// add empty javadocs (no need for MPP root publication which publishes only pom file)
|
||||
if (it.name != 'kotlinMultiplatform') {
|
||||
it.artifact(javadocJar)
|
||||
|
||||
try {
|
||||
task stubJavadoc(type: Jar) {
|
||||
archiveClassifier = 'javadoc'
|
||||
}
|
||||
}catch (Exception ignored) {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Publish the platform JAR and POM so that consumers who depend on this module and can't read Gradle module
|
||||
* metadata can still get the platform artifact and transitive dependencies from the POM
|
||||
* (see details in https://youtrack.jetbrains.com/issue/KT-39184#focus=streamItem-27-4115233.0-0)
|
||||
*/
|
||||
project.ext.publishPlatformArtifactsInRootModule = { platformPublication ->
|
||||
afterEvaluate {
|
||||
def platformPomBuilder = null
|
||||
|
||||
platformPublication.pom.withXml { platformPomBuilder = asString() }
|
||||
|
||||
publishing.publications.kotlinMultiplatform {
|
||||
platformPublication.artifacts.forEach {
|
||||
artifact(it)
|
||||
}
|
||||
|
||||
pom.withXml {
|
||||
def pomStringBuilder = asString()
|
||||
pomStringBuilder.setLength(0)
|
||||
// The platform POM needs its artifact ID replaced with the artifact ID of the root module:
|
||||
def platformPomString = platformPomBuilder.toString()
|
||||
platformPomString.eachLine { line ->
|
||||
if (!line.contains("<!--")) { // Remove the Gradle module metadata marker as it will be added anew
|
||||
pomStringBuilder.append(line.replace(platformPublication.artifactId, artifactId))
|
||||
pomStringBuilder.append("\n")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Rename MPP artifacts for backward compatibility
|
||||
def type = it.name
|
||||
switch (type) {
|
||||
case 'kotlinMultiplatform':
|
||||
it.artifactId = "$project.name-native"
|
||||
break
|
||||
case 'metadata':
|
||||
it.artifactId = "$project.name-common"
|
||||
break
|
||||
case 'jvm':
|
||||
it.artifactId = "$project.name"
|
||||
break
|
||||
case 'js':
|
||||
case 'native':
|
||||
it.artifactId = "$project.name-$type"
|
||||
break
|
||||
}
|
||||
|
||||
// disable metadata everywhere, but in native modules
|
||||
if (type == 'maven' || type == 'metadata' || type == 'jvm' || type == 'js') {
|
||||
moduleDescriptorGenerator = null
|
||||
tasks.matching { it.name == "generatePomFileForKotlinMultiplatformPublication" }.configureEach {
|
||||
dependsOn(tasks["generatePomFileFor${platformPublication.name.capitalize()}Publication"])
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// bintrayUpload.dependsOn publishToMavenLocal
|
||||
def isKotlin137x = false
|
||||
|
||||
afterEvaluate {
|
||||
|
||||
publishing {
|
||||
def variantName = "${project.name}"
|
||||
|
||||
// Rename artifacts for backward compatibility
|
||||
publications.all {
|
||||
def type = it.name
|
||||
logger.info("Configuring $type")
|
||||
switch (type) {
|
||||
case 'kotlinMultiplatform':
|
||||
if (isKotlin137x) {
|
||||
it.artifactId = "$variantName-native"
|
||||
it.artifact sourcesJar
|
||||
} else {
|
||||
// With Kotlin 1.4.0, the root module ID has no suffix, but for compatibility with
|
||||
// the consumers who can't read Gradle module metadata, we publish the JVM artifacts in it
|
||||
it.artifactId = variantName
|
||||
publishPlatformArtifactsInRootModule(publications["jvm"])
|
||||
}
|
||||
break
|
||||
|
||||
case 'metadata':
|
||||
it.artifactId = isKotlin137x ? "$variantName-common" : "$variantName-metadata"
|
||||
break
|
||||
|
||||
case 'jvm':
|
||||
it.artifactId = isKotlin137x ? "$variantName" : "$variantName-jvm"
|
||||
break
|
||||
|
||||
case 'js':
|
||||
it.artifactId = "$variantName-$type"
|
||||
break
|
||||
}
|
||||
logger.info("Artifact id = ${it.artifactId}")
|
||||
|
||||
pom.withXml(configureMavenCentralMetadata)
|
||||
|
||||
// The 'root' module publishes the JVM module's Javadoc JAR as per publishPlatformArtifactsInRootModule, and
|
||||
|
||||
if (name != "kotlinMultiplatform")
|
||||
artifact stubJavadoc
|
||||
}
|
||||
|
||||
if (isKotlin137x) {
|
||||
disableMetadataPublication()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (upload.Bintray.isBintrayAvailable(project)) {
|
||||
apply from: rootProject.file("gradle/bintray.gradle")
|
||||
}
|
||||
|
||||
/*
|
||||
task bintrayUpload(dependsOn: publish)
|
||||
|
||||
// This is required for K/N publishing
|
||||
bintrayUpload.dependsOn publishToMavenLocal
|
||||
|
||||
|
||||
bintrayUpload.dependsOn generatePomFileForKotlinMultiplatformPublication
|
||||
*/
|
129
gradle/publishOld.gradle
Normal file
129
gradle/publishOld.gradle
Normal file
@ -0,0 +1,129 @@
|
||||
import upload.Bintray
|
||||
|
||||
// 部分源码来自 kotlinx.coroutines
|
||||
// Source code from kotlinx.coroutines
|
||||
|
||||
task ensureBintrayAvailable() {
|
||||
doLast {
|
||||
if (!Bintray.isBintrayAvailable(project)) {
|
||||
throw new IllegalStateException("bintray isn't available. ")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!Bintray.isBintrayAvailable(project)) {
|
||||
println("bintray isn't available. NO PUBLICATIONS WILL BE SET")
|
||||
return
|
||||
}
|
||||
|
||||
def miraiGitHubUrl = "https://github.com/mamoe/mirai"
|
||||
|
||||
bintray {
|
||||
user = Bintray.getUser(project)
|
||||
key = Bintray.getKey(project)
|
||||
|
||||
pkg {
|
||||
repo = 'mirai'
|
||||
name = "mirai-core"
|
||||
licenses = ['AGPL']
|
||||
vcsUrl = miraiGitHubUrl
|
||||
websiteUrl = miraiGitHubUrl
|
||||
githubRepo = miraiGitHubUrl
|
||||
issueTrackerUrl = "$miraiGitHubUrl/issues"
|
||||
/* version {
|
||||
name = project.version
|
||||
}*/
|
||||
}
|
||||
}
|
||||
|
||||
afterEvaluate {
|
||||
project.publishing.publications.forEach { publication ->
|
||||
publication.pom.withXml {
|
||||
def root = asNode()
|
||||
//root.appendNode('groupId', project.group)
|
||||
//root.appendNode('artifactId', project.name)
|
||||
//root.appendNode('version', project.version)
|
||||
root.appendNode('name', project.name)
|
||||
root.appendNode('description', project.description)
|
||||
root.appendNode('url', miraiGitHubUrl)
|
||||
root.children().last() + {
|
||||
licenses {
|
||||
license {
|
||||
name "AGPL-V3"
|
||||
url "https://www.gnu.org/licenses/agpl-3.0.txt"
|
||||
distribution "repo"
|
||||
}
|
||||
}
|
||||
developers {
|
||||
developer {
|
||||
id "mamoe"
|
||||
name "Mamoe Technologies"
|
||||
email "support@mamoe.net"
|
||||
}
|
||||
}
|
||||
scm {
|
||||
url miraiGitHubUrl
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bintrayUpload.doFirst {
|
||||
publications = project.publishing.publications
|
||||
}
|
||||
|
||||
bintrayUpload.dependsOn {
|
||||
def list = new LinkedList<Task>()
|
||||
list.add(tasks.getByName("build"))
|
||||
|
||||
list.addAll(tasks.findAll { task -> task.name.contains('Jar') })
|
||||
list.addAll(tasks.findAll { task -> task.name.startsWith('generateMetadataFileFor') })
|
||||
list.addAll(tasks.findAll { task -> task.name.startsWith('generatePomFileFor') })
|
||||
|
||||
list
|
||||
}
|
||||
|
||||
try {
|
||||
|
||||
// empty xxx-javadoc.jar
|
||||
task javadocJar(type: Jar) {
|
||||
archiveClassifier = 'javadoc'
|
||||
}
|
||||
|
||||
} catch (Exception ignored) {
|
||||
|
||||
}
|
||||
publishing {
|
||||
publications.all {
|
||||
// add empty javadocs (no need for MPP root publication which publishes only pom file)
|
||||
if (it.name != 'kotlinMultiplatform') {
|
||||
it.artifact(javadocJar)
|
||||
}
|
||||
|
||||
// Rename MPP artifacts for backward compatibility
|
||||
def type = it.name
|
||||
switch (type) {
|
||||
case 'kotlinMultiplatform':
|
||||
it.artifactId = "$project.name-native"
|
||||
break
|
||||
case 'metadata':
|
||||
it.artifactId = "$project.name-common"
|
||||
break
|
||||
case 'jvm':
|
||||
it.artifactId = "$project.name"
|
||||
break
|
||||
case 'js':
|
||||
case 'native':
|
||||
it.artifactId = "$project.name-$type"
|
||||
break
|
||||
}
|
||||
|
||||
// disable metadata everywhere, but in native modules
|
||||
if (type == 'maven' || type == 'metadata' || type == 'jvm' || type == 'js') {
|
||||
moduleDescriptorGenerator = null
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// bintrayUpload.dependsOn publishToMavenLocal
|
@ -47,6 +47,7 @@ kotlin {
|
||||
languageSettings.useExperimentalAnnotation("kotlin.experimental.ExperimentalTypeInference")
|
||||
languageSettings.useExperimentalAnnotation("kotlin.time.ExperimentalTime")
|
||||
languageSettings.useExperimentalAnnotation("kotlin.contracts.ExperimentalContracts")
|
||||
languageSettings.useExperimentalAnnotation("kotlinx.serialization.ExperimentalSerializationApi")
|
||||
|
||||
languageSettings.progressiveMode = true
|
||||
|
||||
@ -57,13 +58,11 @@ kotlin {
|
||||
|
||||
val commonMain by getting {
|
||||
dependencies {
|
||||
api(kotlinx("serialization-runtime", Versions.Kotlin.serialization))
|
||||
api(kotlinx("serialization-core", Versions.Kotlin.serialization))
|
||||
implementation(kotlinx("serialization-protobuf", Versions.Kotlin.serialization))
|
||||
api("org.jetbrains.kotlinx:atomicfu:${Versions.Kotlin.atomicFU}")
|
||||
implementation(kotlinx("io", Versions.Kotlin.io))
|
||||
implementation(kotlinx("coroutines-io", Versions.Kotlin.coroutinesIo))
|
||||
//implementation("moe.him188:jcekt:${Versions.jcekt}")
|
||||
implementation("moe.him188:jcekt:${Versions.jcekt}")
|
||||
}
|
||||
}
|
||||
|
||||
@ -95,6 +94,7 @@ kotlin {
|
||||
dependencies {
|
||||
runtimeOnly(files("build/classes/kotlin/jvm/main")) // classpath is not properly set by IDE
|
||||
implementation("org.bouncycastle:bcprov-jdk15on:1.64")
|
||||
implementation(kotlinx("io-jvm", Versions.Kotlin.io))
|
||||
// api(kotlinx("coroutines-debug", Versions.Kotlin.coroutines))
|
||||
}
|
||||
}
|
||||
@ -114,3 +114,19 @@ kotlin {
|
||||
}
|
||||
|
||||
apply(from = rootProject.file("gradle/publish.gradle"))
|
||||
|
||||
|
||||
tasks.withType<com.jfrog.bintray.gradle.tasks.BintrayUploadTask> {
|
||||
doFirst {
|
||||
publishing.publications
|
||||
.filterIsInstance<MavenPublication>()
|
||||
.forEach { publication ->
|
||||
val moduleFile = buildDir.resolve("publications/${publication.name}/module.json")
|
||||
if (moduleFile.exists()) {
|
||||
publication.artifact(object : org.gradle.api.publish.maven.internal.artifact.FileBasedMavenArtifact(moduleFile) {
|
||||
override fun getDefaultExtension() = "module"
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -12,7 +12,9 @@
|
||||
|
||||
package net.mamoe.mirai.qqandroid.contact
|
||||
|
||||
import kotlinx.coroutines.*
|
||||
import kotlinx.coroutines.Job
|
||||
import kotlinx.coroutines.SupervisorJob
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.io.core.Closeable
|
||||
import net.mamoe.mirai.LowLevelAPI
|
||||
import net.mamoe.mirai.contact.*
|
||||
@ -373,8 +375,10 @@ internal class GroupImpl(
|
||||
source.ensureSequenceIdAvailable()
|
||||
} catch (e: Exception) {
|
||||
bot.network.logger.warning {
|
||||
"Timeout awaiting sequenceId for group message(${message.contentToString()
|
||||
.take(10)}). Some features may not work properly"
|
||||
"Timeout awaiting sequenceId for group message(${
|
||||
message.contentToString()
|
||||
.take(10)
|
||||
}). Some features may not work properly"
|
||||
}
|
||||
bot.network.logger.warning(e)
|
||||
}
|
||||
@ -449,27 +453,36 @@ internal class GroupImpl(
|
||||
* 上传一个语音消息以备发送.
|
||||
* 请注意,这是一个实验性api且随时会被删除
|
||||
* @throws EventCancelledException 当发送消息事件被取消
|
||||
* @throws OverFileSizeMaxException 当图片文件过大而被服务器拒绝上传时. (最大大小约为 1 MB)
|
||||
* @throws OverFileSizeMaxException 当语音文件过大而被服务器拒绝上传时. (最大大小约为 1 MB)
|
||||
*/
|
||||
@JvmSynthetic
|
||||
@MiraiExperimentalAPI
|
||||
override suspend fun uploadGroupVoice(input: InputStream): Voice {
|
||||
@SinceMirai("1.2.0")
|
||||
override suspend fun uploadVoice(input: InputStream): Voice {
|
||||
val content = ByteArray(input.available())
|
||||
input.read(content)
|
||||
if (content.size > 1048576) {
|
||||
throw OverFileSizeMaxException()
|
||||
}
|
||||
val md5 = MiraiPlatformUtils.md5(content)
|
||||
val codec = with(content.copyOfRange(0, 10).toUHexString("")) {
|
||||
when {
|
||||
startsWith("2321414D52") -> 0 // amr
|
||||
startsWith("02232153494C4B5F5633") -> 1 // silk V3
|
||||
else -> 0 // use amr by default
|
||||
}
|
||||
}
|
||||
return bot.network.run {
|
||||
val response: PttStore.GroupPttUp.Response.RequireUpload =
|
||||
PttStore.GroupPttUp(bot.client, bot.id, 0L, md5, content.size.toLong()).sendAndExpect()
|
||||
PttStore.GroupPttUp(bot.client, bot.id, id, md5, content.size.toLong(), codec).sendAndExpect()
|
||||
HighwayHelper.uploadPttToServers(
|
||||
bot,
|
||||
response.uploadIpList.zip(response.uploadPortList),
|
||||
content,
|
||||
md5,
|
||||
response.uKey,
|
||||
response.fileKey
|
||||
response.fileKey,
|
||||
codec
|
||||
)
|
||||
Voice("${md5.toUHexString("")}.amr", md5, content.size.toLong(), "")
|
||||
}
|
||||
|
@ -46,13 +46,13 @@ private fun generateGuid(androidId: ByteArray, macAddress: ByteArray): ByteArray
|
||||
internal fun getRandomByteArray(length: Int): ByteArray = ByteArray(length) { Random.nextInt(0, 255).toByte() }
|
||||
|
||||
internal object DefaultServerList : Set<Pair<String, Int>> by setOf(
|
||||
"msfwifi.3g.qq.com" to 8080,
|
||||
"42.81.169.46" to 8080,
|
||||
"42.81.172.81" to 80,
|
||||
"114.221.148.59" to 14000,
|
||||
"42.81.172.147" to 443,
|
||||
"125.94.60.146" to 80,
|
||||
"114.221.144.215" to 80,
|
||||
"msfwifi.3g.qq.com" to 8080,
|
||||
"42.81.172.22" to 80
|
||||
)
|
||||
|
||||
@ -133,7 +133,7 @@ internal open class QQAndroidClient(
|
||||
throw NoServerAvailableException(null)
|
||||
}
|
||||
retryCatching(bot.client.serverList.size, except = LoginFailedException::class) {
|
||||
val pair = bot.client.serverList.random()
|
||||
val pair = bot.client.serverList[0]
|
||||
kotlin.runCatching {
|
||||
block(pair.first, pair.second)
|
||||
return@retryCatching
|
||||
|
@ -190,7 +190,9 @@ internal object HighwayHelper {
|
||||
servers: List<Pair<Int, Int>>,
|
||||
content: ByteArray,
|
||||
md5: ByteArray,
|
||||
uKey: ByteArray, fileKey: ByteArray
|
||||
uKey: ByteArray,
|
||||
fileKey: ByteArray,
|
||||
codec: Int
|
||||
) {
|
||||
servers.retryWithServers(10 * 1000, {
|
||||
throw IllegalStateException("cannot upload ptt, failed on all servers.", it)
|
||||
@ -199,7 +201,7 @@ internal object HighwayHelper {
|
||||
"[Highway] Uploading ptt to ${s}:$i, size=${content.size.toLong().sizeToString()}"
|
||||
}
|
||||
val time = measureTime {
|
||||
uploadPttToServer(s, i, content, md5, uKey, fileKey)
|
||||
uploadPttToServer(s, i, content, md5, uKey, fileKey, codec)
|
||||
}
|
||||
bot.network.logger.verbose {
|
||||
"[Highway] Uploading ptt: succeed at ${(content.size.toDouble() / 1024 / time.inSeconds).roundToInt()} KiB/s"
|
||||
@ -214,7 +216,9 @@ internal object HighwayHelper {
|
||||
serverPort: Int,
|
||||
content: ByteArray,
|
||||
md5: ByteArray,
|
||||
uKey: ByteArray, fileKey: ByteArray
|
||||
uKey: ByteArray,
|
||||
fileKey: ByteArray,
|
||||
codec: Int
|
||||
) {
|
||||
MiraiPlatformUtils.Http.post<String> {
|
||||
url("http://$serverIp:$serverPort")
|
||||
@ -224,7 +228,7 @@ internal object HighwayHelper {
|
||||
parameter("filesize", content.size)
|
||||
parameter("bmd5", md5.toUHexString(""))
|
||||
parameter("mType", "pttDu")
|
||||
parameter("voice_encodec", 0)
|
||||
parameter("voice_encodec", codec)
|
||||
body = content
|
||||
}
|
||||
}
|
||||
|
@ -1,173 +1,173 @@
|
||||
package net.mamoe.mirai.qqandroid.network.protocol.data.jce
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import moe.him188.jcekt.JceId
|
||||
import net.mamoe.mirai.qqandroid.network.Packet
|
||||
import net.mamoe.mirai.qqandroid.utils.io.JceStruct
|
||||
import net.mamoe.mirai.qqandroid.utils.io.serialization.tars.TarsId
|
||||
import kotlin.jvm.JvmField
|
||||
|
||||
@Serializable
|
||||
internal class BigDataChannel(
|
||||
@JceId(0) @JvmField val vBigdataIplists: List<BigDataIpList>,
|
||||
@JceId(1) @JvmField val sBigdataSigSession: ByteArray? = null,
|
||||
@JceId(2) @JvmField val sBigdataKeySession: ByteArray? = null,
|
||||
@JceId(3) @JvmField val uSigUin: Long? = null,
|
||||
@JceId(4) @JvmField val iConnectFlag: Int? = 1,
|
||||
@JceId(5) @JvmField val vBigdataPbBuf: ByteArray? = null
|
||||
@TarsId(0) @JvmField val vBigdataIplists: List<BigDataIpList>,
|
||||
@TarsId(1) @JvmField val sBigdataSigSession: ByteArray? = null,
|
||||
@TarsId(2) @JvmField val sBigdataKeySession: ByteArray? = null,
|
||||
@TarsId(3) @JvmField val uSigUin: Long? = null,
|
||||
@TarsId(4) @JvmField val iConnectFlag: Int? = 1,
|
||||
@TarsId(5) @JvmField val vBigdataPbBuf: ByteArray? = null
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class BigDataIpInfo(
|
||||
@JceId(0) @JvmField val uType: Long,
|
||||
@JceId(1) @JvmField val sIp: String = "",
|
||||
@JceId(2) @JvmField val uPort: Long
|
||||
@TarsId(0) @JvmField val uType: Long,
|
||||
@TarsId(1) @JvmField val sIp: String = "",
|
||||
@TarsId(2) @JvmField val uPort: Long
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class BigDataIpList(
|
||||
@JceId(0) @JvmField val uServiceType: Long,
|
||||
@JceId(1) @JvmField val vIplist: List<BigDataIpInfo>,
|
||||
@JceId(2) @JvmField val netSegConfs: List<NetSegConf>? = null,
|
||||
@JceId(3) @JvmField val ufragmentSize: Long? = null
|
||||
@TarsId(0) @JvmField val uServiceType: Long,
|
||||
@TarsId(1) @JvmField val vIplist: List<BigDataIpInfo>,
|
||||
@TarsId(2) @JvmField val netSegConfs: List<NetSegConf>? = null,
|
||||
@TarsId(3) @JvmField val ufragmentSize: Long? = null
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class ClientLogConfig(
|
||||
@JceId(1) @JvmField val type: Int,
|
||||
@JceId(2) @JvmField val timeStart: TimeStamp? = null,
|
||||
@JceId(3) @JvmField val timeFinish: TimeStamp? = null,
|
||||
@JceId(4) @JvmField val loglevel: Byte? = null,
|
||||
@JceId(5) @JvmField val cookie: Int? = null,
|
||||
@JceId(6) @JvmField val lseq: Long? = null
|
||||
@TarsId(1) @JvmField val type: Int,
|
||||
@TarsId(2) @JvmField val timeStart: TimeStamp? = null,
|
||||
@TarsId(3) @JvmField val timeFinish: TimeStamp? = null,
|
||||
@TarsId(4) @JvmField val loglevel: Byte? = null,
|
||||
@TarsId(5) @JvmField val cookie: Int? = null,
|
||||
@TarsId(6) @JvmField val lseq: Long? = null
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class DomainIpChannel(
|
||||
@JceId(0) @JvmField val vDomainIplists: List<DomainIpList>
|
||||
@TarsId(0) @JvmField val vDomainIplists: List<DomainIpList>
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class DomainIpInfo(
|
||||
@JceId(1) @JvmField val uIp: Int,
|
||||
@JceId(2) @JvmField val uPort: Int
|
||||
@TarsId(1) @JvmField val uIp: Int,
|
||||
@TarsId(2) @JvmField val uPort: Int
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class DomainIpList(
|
||||
@JceId(0) @JvmField val uDomainType: Int,
|
||||
@JceId(1) @JvmField val vIplist: List<DomainIpInfo>,
|
||||
@JceId(2) @JvmField val unknown: ByteArray? = null,
|
||||
@JceId(4) @JvmField val int: Int? = null// added
|
||||
@TarsId(0) @JvmField val uDomainType: Int,
|
||||
@TarsId(1) @JvmField val vIplist: List<DomainIpInfo>,
|
||||
@TarsId(2) @JvmField val unknown: ByteArray? = null,
|
||||
@TarsId(4) @JvmField val int: Int? = null// added
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class _340(
|
||||
@JceId(1) @JvmField val field1315: List<_339>,
|
||||
@JceId(3) @JvmField val field1316: List<_339>,
|
||||
@JceId(4) @JvmField val field1317: Int,
|
||||
@JceId(5) @JvmField val field1318: Byte? = 0,
|
||||
@JceId(6) @JvmField val field1319: Byte? = 0,
|
||||
@JceId(7) @JvmField val field1320: Int? = 1,
|
||||
@JceId(8) @JvmField val field1321: List<_339>? = null,
|
||||
@JceId(9) @JvmField val field1322: List<_339>? = null,
|
||||
@JceId(10) @JvmField val field1323: List<_339>? = null,
|
||||
@JceId(11) @JvmField val field1324: List<_339>? = null,
|
||||
@JceId(12) @JvmField val field1325: List<_339>? = null,
|
||||
@JceId(13) @JvmField val field1326: List<_339>? = null,
|
||||
@JceId(14) @JvmField val netType: Byte? = 0,
|
||||
@JceId(15) @JvmField val heThreshold: Int? = 0,
|
||||
@JceId(16) @JvmField val policyId: String? = ""
|
||||
@TarsId(1) @JvmField val field1315: List<_339>,
|
||||
@TarsId(3) @JvmField val field1316: List<_339>,
|
||||
@TarsId(4) @JvmField val field1317: Int,
|
||||
@TarsId(5) @JvmField val field1318: Byte? = 0,
|
||||
@TarsId(6) @JvmField val field1319: Byte? = 0,
|
||||
@TarsId(7) @JvmField val field1320: Int? = 1,
|
||||
@TarsId(8) @JvmField val field1321: List<_339>? = null,
|
||||
@TarsId(9) @JvmField val field1322: List<_339>? = null,
|
||||
@TarsId(10) @JvmField val field1323: List<_339>? = null,
|
||||
@TarsId(11) @JvmField val field1324: List<_339>? = null,
|
||||
@TarsId(12) @JvmField val field1325: List<_339>? = null,
|
||||
@TarsId(13) @JvmField val field1326: List<_339>? = null,
|
||||
@TarsId(14) @JvmField val netType: Byte? = 0,
|
||||
@TarsId(15) @JvmField val heThreshold: Int? = 0,
|
||||
@TarsId(16) @JvmField val policyId: String? = ""
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class _339(
|
||||
@JceId(1) @JvmField val field1298: String = "",
|
||||
@JceId(2) @JvmField val field1299: Int = 0,
|
||||
@JceId(3) @JvmField val field1300: Byte = 0,
|
||||
@JceId(4) @JvmField val field1301: Byte = 0,
|
||||
@JceId(5) @JvmField val field1302: Byte? = 0,
|
||||
@JceId(6) @JvmField val field1303: Int? = 8,
|
||||
@JceId(7) @JvmField val field1304: Byte? = 0,
|
||||
@JceId(8) @JvmField val field1305: String = "",
|
||||
@JceId(9) @JvmField val field1306: String = ""
|
||||
@TarsId(1) @JvmField val field1298: String = "",
|
||||
@TarsId(2) @JvmField val field1299: Int = 0,
|
||||
@TarsId(3) @JvmField val field1300: Byte = 0,
|
||||
@TarsId(4) @JvmField val field1301: Byte = 0,
|
||||
@TarsId(5) @JvmField val field1302: Byte? = 0,
|
||||
@TarsId(6) @JvmField val field1303: Int? = 8,
|
||||
@TarsId(7) @JvmField val field1304: Byte? = 0,
|
||||
@TarsId(8) @JvmField val field1305: String = "",
|
||||
@TarsId(9) @JvmField val field1306: String = ""
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class FileStoragePushFSSvcListFuckKotlin(
|
||||
@JceId(0) @JvmField val vUpLoadList: List<FileStorageServerListInfo>? = listOf(),
|
||||
@JceId(1) @JvmField val vPicDownLoadList: List<FileStorageServerListInfo>? = listOf(),
|
||||
@JceId(2) @JvmField val vGPicDownLoadList: List<FileStorageServerListInfo>? = null,
|
||||
@JceId(3) @JvmField val vQzoneProxyServiceList: List<FileStorageServerListInfo>? = null,
|
||||
@JceId(4) @JvmField val vUrlEncodeServiceList: List<FileStorageServerListInfo>? = null,
|
||||
@JceId(5) @JvmField val bigDataChannel: BigDataChannel? = null,
|
||||
@JceId(6) @JvmField val vVipEmotionList: List<FileStorageServerListInfo>? = null,
|
||||
@JceId(7) @JvmField val vC2CPicDownList: List<FileStorageServerListInfo>? = null,
|
||||
@JceId(8) @JvmField val fmtIPInfo: FmtIPInfo? = null,
|
||||
@JceId(9) @JvmField val domainIpChannel: DomainIpChannel? = null,
|
||||
@JceId(10) @JvmField val pttlist: ByteArray? = null
|
||||
@TarsId(0) @JvmField val vUpLoadList: List<FileStorageServerListInfo>? = listOf(),
|
||||
@TarsId(1) @JvmField val vPicDownLoadList: List<FileStorageServerListInfo>? = listOf(),
|
||||
@TarsId(2) @JvmField val vGPicDownLoadList: List<FileStorageServerListInfo>? = null,
|
||||
@TarsId(3) @JvmField val vQzoneProxyServiceList: List<FileStorageServerListInfo>? = null,
|
||||
@TarsId(4) @JvmField val vUrlEncodeServiceList: List<FileStorageServerListInfo>? = null,
|
||||
@TarsId(5) @JvmField val bigDataChannel: BigDataChannel? = null,
|
||||
@TarsId(6) @JvmField val vVipEmotionList: List<FileStorageServerListInfo>? = null,
|
||||
@TarsId(7) @JvmField val vC2CPicDownList: List<FileStorageServerListInfo>? = null,
|
||||
@TarsId(8) @JvmField val fmtIPInfo: FmtIPInfo? = null,
|
||||
@TarsId(9) @JvmField val domainIpChannel: DomainIpChannel? = null,
|
||||
@TarsId(10) @JvmField val pttlist: ByteArray? = null
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class FileStorageServerListInfo(
|
||||
@JceId(1) @JvmField val sIP: String = "",
|
||||
@JceId(2) @JvmField val iPort: Int
|
||||
@TarsId(1) @JvmField val sIP: String = "",
|
||||
@TarsId(2) @JvmField val iPort: Int
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class FmtIPInfo(
|
||||
@JceId(0) @JvmField val sGateIp: String = "",
|
||||
@JceId(1) @JvmField val iGateIpOper: Long
|
||||
@TarsId(0) @JvmField val sGateIp: String = "",
|
||||
@TarsId(1) @JvmField val iGateIpOper: Long
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class NetSegConf(
|
||||
@JceId(0) @JvmField val uint32NetType: Long? = null,
|
||||
@JceId(1) @JvmField val uint32Segsize: Long? = null,
|
||||
@JceId(2) @JvmField val uint32Segnum: Long? = null,
|
||||
@JceId(3) @JvmField val uint32Curconnnum: Long? = null
|
||||
@TarsId(0) @JvmField val uint32NetType: Long? = null,
|
||||
@TarsId(1) @JvmField val uint32Segsize: Long? = null,
|
||||
@TarsId(2) @JvmField val uint32Segnum: Long? = null,
|
||||
@TarsId(3) @JvmField val uint32Curconnnum: Long? = null
|
||||
) : JceStruct
|
||||
|
||||
@Suppress("ArrayInDataClass")
|
||||
@Serializable
|
||||
internal class PushReq(
|
||||
@JceId(1) @JvmField val type: Int,
|
||||
@JceId(2) @JvmField val jcebuf: ByteArray,
|
||||
@JceId(3) @JvmField val seq: Long
|
||||
@TarsId(1) @JvmField val type: Int,
|
||||
@TarsId(2) @JvmField val jcebuf: ByteArray,
|
||||
@TarsId(3) @JvmField val seq: Long
|
||||
) : JceStruct, Packet
|
||||
|
||||
@Serializable
|
||||
internal class PushResp(
|
||||
@JceId(1) @JvmField val type: Int,
|
||||
@JceId(2) @JvmField val seq: Long,
|
||||
@JceId(3) @JvmField val jcebuf: ByteArray? = null
|
||||
@TarsId(1) @JvmField val type: Int,
|
||||
@TarsId(2) @JvmField val seq: Long,
|
||||
@TarsId(3) @JvmField val jcebuf: ByteArray? = null
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class SsoServerList(
|
||||
@JceId(1) @JvmField val v2G3GList: List<SsoServerListInfo>,
|
||||
@JceId(3) @JvmField val vWifiList: List<SsoServerListInfo>,
|
||||
@JceId(4) @JvmField val iReconnect: Int,
|
||||
@JceId(5) @JvmField val testSpeed: Byte? = null,
|
||||
@JceId(6) @JvmField val useNewList: Byte? = null,
|
||||
@JceId(7) @JvmField val iMultiConn: Int? = 1,
|
||||
@JceId(8) @JvmField val vHttp2g3glist: List<SsoServerListInfo>? = null,
|
||||
@JceId(9) @JvmField val vHttpWifilist: List<SsoServerListInfo>? = null
|
||||
@TarsId(1) @JvmField val v2G3GList: List<SsoServerListInfo>,
|
||||
@TarsId(3) @JvmField val vWifiList: List<SsoServerListInfo>,
|
||||
@TarsId(4) @JvmField val iReconnect: Int,
|
||||
@TarsId(5) @JvmField val testSpeed: Byte? = null,
|
||||
@TarsId(6) @JvmField val useNewList: Byte? = null,
|
||||
@TarsId(7) @JvmField val iMultiConn: Int? = 1,
|
||||
@TarsId(8) @JvmField val vHttp2g3glist: List<SsoServerListInfo>? = null,
|
||||
@TarsId(9) @JvmField val vHttpWifilist: List<SsoServerListInfo>? = null
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class SsoServerListInfo(
|
||||
@JceId(1) @JvmField val sIP: String = "",
|
||||
@JceId(2) @JvmField val iPort: Int,
|
||||
@JceId(3) @JvmField val linkType: Byte,
|
||||
@JceId(4) @JvmField val proxy: Byte,
|
||||
@JceId(5) @JvmField val protocolType: Byte? = null,
|
||||
@JceId(6) @JvmField val iTimeOut: Int? = 10
|
||||
@TarsId(1) @JvmField val sIP: String = "",
|
||||
@TarsId(2) @JvmField val iPort: Int,
|
||||
@TarsId(3) @JvmField val linkType: Byte,
|
||||
@TarsId(4) @JvmField val proxy: Byte,
|
||||
@TarsId(5) @JvmField val protocolType: Byte? = null,
|
||||
@TarsId(6) @JvmField val iTimeOut: Int? = 10
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class TimeStamp(
|
||||
@JceId(1) @JvmField val year: Int,
|
||||
@JceId(2) @JvmField val month: Byte,
|
||||
@JceId(3) @JvmField val day: Byte,
|
||||
@JceId(4) @JvmField val hour: Byte
|
||||
@TarsId(1) @JvmField val year: Int,
|
||||
@TarsId(2) @JvmField val month: Byte,
|
||||
@TarsId(3) @JvmField val day: Byte,
|
||||
@TarsId(4) @JvmField val hour: Byte
|
||||
) : JceStruct
|
||||
|
@ -1,175 +1,175 @@
|
||||
package net.mamoe.mirai.qqandroid.network.protocol.data.jce
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import moe.him188.jcekt.JceId
|
||||
import net.mamoe.mirai.qqandroid.utils.io.JceStruct
|
||||
import net.mamoe.mirai.qqandroid.utils.io.serialization.tars.TarsId
|
||||
import kotlin.jvm.JvmField
|
||||
|
||||
@Serializable
|
||||
internal class ModifyGroupCardReq(
|
||||
@JceId(0) @JvmField val dwZero: Long,
|
||||
@JceId(1) @JvmField val dwGroupCode: Long,
|
||||
@JceId(2) @JvmField val dwNewSeq: Long,
|
||||
@JceId(3) @JvmField val vecUinInfo: List<stUinInfo>
|
||||
@TarsId(0) @JvmField val dwZero: Long,
|
||||
@TarsId(1) @JvmField val dwGroupCode: Long,
|
||||
@TarsId(2) @JvmField val dwNewSeq: Long,
|
||||
@TarsId(3) @JvmField val vecUinInfo: List<stUinInfo>
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class stUinInfo(
|
||||
@JceId(0) @JvmField val dwuin: Long,
|
||||
@JceId(1) @JvmField val dwFlag: Long,
|
||||
@JceId(2) @JvmField val sName: String = "",
|
||||
@JceId(3) @JvmField val gender: Byte,
|
||||
@JceId(4) @JvmField val sPhone: String = "",
|
||||
@JceId(5) @JvmField val sEmail: String = "",
|
||||
@JceId(6) @JvmField val sRemark: String = ""
|
||||
@TarsId(0) @JvmField val dwuin: Long,
|
||||
@TarsId(1) @JvmField val dwFlag: Long,
|
||||
@TarsId(2) @JvmField val sName: String = "",
|
||||
@TarsId(3) @JvmField val gender: Byte,
|
||||
@TarsId(4) @JvmField val sPhone: String = "",
|
||||
@TarsId(5) @JvmField val sEmail: String = "",
|
||||
@TarsId(6) @JvmField val sRemark: String = ""
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class GetFriendListReq(
|
||||
@JceId(0) @JvmField val reqtype: Int? = null,
|
||||
@JceId(1) @JvmField val ifReflush: Byte? = null,
|
||||
@JceId(2) @JvmField val uin: Long? = null,
|
||||
@JceId(3) @JvmField val startIndex: Short? = null,
|
||||
@JceId(4) @JvmField val getfriendCount: Short? = null,
|
||||
@JceId(5) @JvmField val groupid: Byte? = null,
|
||||
@JceId(6) @JvmField val ifGetGroupInfo: Byte? = null,
|
||||
@JceId(7) @JvmField val groupstartIndex: Byte? = null,
|
||||
@JceId(8) @JvmField val getgroupCount: Byte? = null,
|
||||
@JceId(9) @JvmField val ifGetMSFGroup: Byte? = null,
|
||||
@JceId(10) @JvmField val ifShowTermType: Byte? = null,
|
||||
@JceId(11) @JvmField val version: Long? = null,
|
||||
@JceId(12) @JvmField val uinList: List<Long>? = null,
|
||||
@JceId(13) @JvmField val eAppType: Int = 0,
|
||||
@JceId(14) @JvmField val ifGetDOVId: Byte? = null,
|
||||
@JceId(15) @JvmField val ifGetBothFlag: Byte? = null,
|
||||
@JceId(16) @JvmField val vec0xd50Req: ByteArray? = null,
|
||||
@JceId(17) @JvmField val vec0xd6bReq: ByteArray? = null,
|
||||
@JceId(18) @JvmField val vecSnsTypelist: List<Long>? = null
|
||||
@TarsId(0) @JvmField val reqtype: Int? = null,
|
||||
@TarsId(1) @JvmField val ifReflush: Byte? = null,
|
||||
@TarsId(2) @JvmField val uin: Long? = null,
|
||||
@TarsId(3) @JvmField val startIndex: Short? = null,
|
||||
@TarsId(4) @JvmField val getfriendCount: Short? = null,
|
||||
@TarsId(5) @JvmField val groupid: Byte? = null,
|
||||
@TarsId(6) @JvmField val ifGetGroupInfo: Byte? = null,
|
||||
@TarsId(7) @JvmField val groupstartIndex: Byte? = null,
|
||||
@TarsId(8) @JvmField val getgroupCount: Byte? = null,
|
||||
@TarsId(9) @JvmField val ifGetMSFGroup: Byte? = null,
|
||||
@TarsId(10) @JvmField val ifShowTermType: Byte? = null,
|
||||
@TarsId(11) @JvmField val version: Long? = null,
|
||||
@TarsId(12) @JvmField val uinList: List<Long>? = null,
|
||||
@TarsId(13) @JvmField val eAppType: Int = 0,
|
||||
@TarsId(14) @JvmField val ifGetDOVId: Byte? = null,
|
||||
@TarsId(15) @JvmField val ifGetBothFlag: Byte? = null,
|
||||
@TarsId(16) @JvmField val vec0xd50Req: ByteArray? = null,
|
||||
@TarsId(17) @JvmField val vec0xd6bReq: ByteArray? = null,
|
||||
@TarsId(18) @JvmField val vecSnsTypelist: List<Long>? = null
|
||||
) : JceStruct
|
||||
|
||||
|
||||
@Serializable
|
||||
internal class GetFriendListResp(
|
||||
@JceId(0) @JvmField val reqtype: Int,
|
||||
@JceId(1) @JvmField val ifReflush: Byte,
|
||||
@JceId(2) @JvmField val uin: Long,
|
||||
@JceId(3) @JvmField val startIndex: Short,
|
||||
@JceId(4) @JvmField val getfriendCount: Short,
|
||||
@JceId(5) @JvmField val totoalFriendCount: Short,
|
||||
@JceId(6) @JvmField val friendCount: Short,
|
||||
@JceId(7) @JvmField val vecFriendInfo: List<FriendInfo>? = null,
|
||||
@JceId(8) @JvmField val groupid: Byte? = null,
|
||||
@JceId(9) @JvmField val ifGetGroupInfo: Byte,
|
||||
@JceId(10) @JvmField val groupstartIndex: Byte? = null,
|
||||
@JceId(11) @JvmField val getgroupCount: Byte? = null,
|
||||
@JceId(12) @JvmField val totoalGroupCount: Short? = null,
|
||||
@JceId(13) @JvmField val groupCount: Byte? = null,
|
||||
@JceId(14) @JvmField val vecGroupInfo: List<GroupInfo>? = null,
|
||||
@JceId(15) @JvmField val result: Int,
|
||||
@JceId(16) @JvmField val errorCode: Short? = null,
|
||||
@JceId(17) @JvmField val onlineFriendCount: Short? = null,
|
||||
@JceId(18) @JvmField val serverTime: Long? = null,
|
||||
@JceId(19) @JvmField val sqqOnLineCount: Short? = null,
|
||||
@JceId(20) @JvmField val vecMSFGroupInfo: List<GroupInfo>? = null,
|
||||
@JceId(21) @JvmField val respType: Byte? = null,
|
||||
@JceId(22) @JvmField val hasOtherRespFlag: Byte? = null,
|
||||
@JceId(23) @JvmField val stSelfInfo: FriendInfo? = null,
|
||||
@JceId(24) @JvmField val showPcIcon: Byte? = null,
|
||||
@JceId(25) @JvmField val wGetExtSnsRspCode: Short? = null,
|
||||
@JceId(26) @JvmField val stSubSrvRspCode: FriendListSubSrvRspCode? = null
|
||||
@TarsId(0) @JvmField val reqtype: Int,
|
||||
@TarsId(1) @JvmField val ifReflush: Byte,
|
||||
@TarsId(2) @JvmField val uin: Long,
|
||||
@TarsId(3) @JvmField val startIndex: Short,
|
||||
@TarsId(4) @JvmField val getfriendCount: Short,
|
||||
@TarsId(5) @JvmField val totoalFriendCount: Short,
|
||||
@TarsId(6) @JvmField val friendCount: Short,
|
||||
@TarsId(7) @JvmField val vecFriendInfo: List<FriendInfo>? = null,
|
||||
@TarsId(8) @JvmField val groupid: Byte? = null,
|
||||
@TarsId(9) @JvmField val ifGetGroupInfo: Byte,
|
||||
@TarsId(10) @JvmField val groupstartIndex: Byte? = null,
|
||||
@TarsId(11) @JvmField val getgroupCount: Byte? = null,
|
||||
@TarsId(12) @JvmField val totoalGroupCount: Short? = null,
|
||||
@TarsId(13) @JvmField val groupCount: Byte? = null,
|
||||
@TarsId(14) @JvmField val vecGroupInfo: List<GroupInfo>? = null,
|
||||
@TarsId(15) @JvmField val result: Int,
|
||||
@TarsId(16) @JvmField val errorCode: Short? = null,
|
||||
@TarsId(17) @JvmField val onlineFriendCount: Short? = null,
|
||||
@TarsId(18) @JvmField val serverTime: Long? = null,
|
||||
@TarsId(19) @JvmField val sqqOnLineCount: Short? = null,
|
||||
@TarsId(20) @JvmField val vecMSFGroupInfo: List<GroupInfo>? = null,
|
||||
@TarsId(21) @JvmField val respType: Byte? = null,
|
||||
@TarsId(22) @JvmField val hasOtherRespFlag: Byte? = null,
|
||||
@TarsId(23) @JvmField val stSelfInfo: FriendInfo? = null,
|
||||
@TarsId(24) @JvmField val showPcIcon: Byte? = null,
|
||||
@TarsId(25) @JvmField val wGetExtSnsRspCode: Short? = null,
|
||||
@TarsId(26) @JvmField val stSubSrvRspCode: FriendListSubSrvRspCode? = null
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class FriendListSubSrvRspCode(
|
||||
@JceId(0) @JvmField val wGetMutualMarkRspCode: Short? = null,
|
||||
@JceId(1) @JvmField val wGetIntimateInfoRspCode: Short? = null
|
||||
@TarsId(0) @JvmField val wGetMutualMarkRspCode: Short? = null,
|
||||
@TarsId(1) @JvmField val wGetIntimateInfoRspCode: Short? = null
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class FriendInfo(
|
||||
@JceId(0) @JvmField val friendUin: Long,
|
||||
@JceId(1) @JvmField val groupId: Byte,
|
||||
@JceId(2) @JvmField val faceId: Short,
|
||||
@JceId(3) @JvmField val remark: String = "",
|
||||
@JceId(4) @JvmField val sqqtype: Byte,
|
||||
@JceId(5) @JvmField val status: Byte = 20,
|
||||
@JceId(6) @JvmField val memberLevel: Byte? = null,
|
||||
@JceId(7) @JvmField val isMqqOnLine: Byte? = null,
|
||||
@JceId(8) @JvmField val sqqOnLineState: Byte? = null,
|
||||
@JceId(9) @JvmField val isIphoneOnline: Byte? = null,
|
||||
@JceId(10) @JvmField val detalStatusFlag: Byte? = null,
|
||||
@JceId(11) @JvmField val sqqOnLineStateV2: Byte? = null,
|
||||
@JceId(12) @JvmField val sShowName: String? = "",
|
||||
@JceId(13) @JvmField val isRemark: Byte? = null,
|
||||
@JceId(14) @JvmField val nick: String = "",
|
||||
@JceId(15) @JvmField val specialFlag: Byte? = null,
|
||||
@JceId(16) @JvmField val vecIMGroupID: ByteArray? = null,
|
||||
@JceId(17) @JvmField val vecMSFGroupID: ByteArray? = null,
|
||||
@JceId(18) @JvmField val iTermType: Int? = null,
|
||||
@JceId(19) @JvmField val oVipInfo: VipBaseInfo? = null, //? bad
|
||||
@JceId(20) @JvmField val network: Byte? = null,
|
||||
@JceId(21) @JvmField val vecRing: ByteArray? = null,
|
||||
@JceId(22) @JvmField val uAbiFlag: Long? = null,
|
||||
@JceId(23) @JvmField val ulFaceAddonId: Long? = null,
|
||||
@JceId(24) @JvmField val eNetworkType: Int? = 0,
|
||||
@JceId(25) @JvmField val uVipFont: Long? = null,
|
||||
@JceId(26) @JvmField val eIconType: Int? = 0,
|
||||
@JceId(27) @JvmField val termDesc: String? = "",
|
||||
@JceId(28) @JvmField val uColorRing: Long? = null,
|
||||
@JceId(29) @JvmField val apolloFlag: Byte? = null,
|
||||
@JceId(30) @JvmField val uApolloTimestamp: Long? = null,
|
||||
@JceId(31) @JvmField val sex: Byte? = null,
|
||||
@JceId(32) @JvmField val uFounderFont: Long? = null,
|
||||
@JceId(33) @JvmField val eimId: String? = "",
|
||||
@JceId(34) @JvmField val eimMobile: String? = "",
|
||||
@JceId(35) @JvmField val olympicTorch: Byte? = null,
|
||||
@JceId(36) @JvmField val uApolloSignTime: Long? = null,
|
||||
@JceId(37) @JvmField val uLaviUin: Long? = null,
|
||||
@JceId(38) @JvmField val uTagUpdateTime: Long? = null,
|
||||
@JceId(39) @JvmField val uGameLastLoginTime: Long? = null,
|
||||
@JceId(40) @JvmField val uGameAppid: Long? = null,
|
||||
@JceId(41) @JvmField val vecCardID: ByteArray? = null,
|
||||
@JceId(42) @JvmField val ulBitSet: Long? = null,
|
||||
@JceId(43) @JvmField val kingOfGloryFlag: Byte? = null,
|
||||
@JceId(44) @JvmField val ulKingOfGloryRank: Long? = null,
|
||||
@JceId(45) @JvmField val masterUin: String? = "",
|
||||
@JceId(46) @JvmField val uLastMedalUpdateTime: Long? = null,
|
||||
@JceId(47) @JvmField val uFaceStoreId: Long? = null,
|
||||
@JceId(48) @JvmField val uFontEffect: Long? = null,
|
||||
@JceId(49) @JvmField val sDOVId: String? = "",
|
||||
@JceId(50) @JvmField val uBothFlag: Long? = null,
|
||||
@JceId(51) @JvmField val centiShow3DFlag: Byte? = null,
|
||||
@JceId(52) @JvmField val vecIntimateInfo: ByteArray? = null,
|
||||
@JceId(53) @JvmField val showNameplate: Byte? = null,
|
||||
@JceId(54) @JvmField val newLoverDiamondFlag: Byte? = null,
|
||||
@JceId(55) @JvmField val vecExtSnsFrdData: ByteArray? = null,
|
||||
@JceId(56) @JvmField val vecMutualMarkData: ByteArray? = null
|
||||
@TarsId(0) @JvmField val friendUin: Long,
|
||||
@TarsId(1) @JvmField val groupId: Byte,
|
||||
@TarsId(2) @JvmField val faceId: Short,
|
||||
@TarsId(3) @JvmField val remark: String = "",
|
||||
@TarsId(4) @JvmField val sqqtype: Byte,
|
||||
@TarsId(5) @JvmField val status: Byte = 20,
|
||||
@TarsId(6) @JvmField val memberLevel: Byte? = null,
|
||||
@TarsId(7) @JvmField val isMqqOnLine: Byte? = null,
|
||||
@TarsId(8) @JvmField val sqqOnLineState: Byte? = null,
|
||||
@TarsId(9) @JvmField val isIphoneOnline: Byte? = null,
|
||||
@TarsId(10) @JvmField val detalStatusFlag: Byte? = null,
|
||||
@TarsId(11) @JvmField val sqqOnLineStateV2: Byte? = null,
|
||||
@TarsId(12) @JvmField val sShowName: String? = "",
|
||||
@TarsId(13) @JvmField val isRemark: Byte? = null,
|
||||
@TarsId(14) @JvmField val nick: String = "",
|
||||
@TarsId(15) @JvmField val specialFlag: Byte? = null,
|
||||
@TarsId(16) @JvmField val vecIMGroupID: ByteArray? = null,
|
||||
@TarsId(17) @JvmField val vecMSFGroupID: ByteArray? = null,
|
||||
@TarsId(18) @JvmField val iTermType: Int? = null,
|
||||
@TarsId(19) @JvmField val oVipInfo: VipBaseInfo? = null, //? bad
|
||||
@TarsId(20) @JvmField val network: Byte? = null,
|
||||
@TarsId(21) @JvmField val vecRing: ByteArray? = null,
|
||||
@TarsId(22) @JvmField val uAbiFlag: Long? = null,
|
||||
@TarsId(23) @JvmField val ulFaceAddonId: Long? = null,
|
||||
@TarsId(24) @JvmField val eNetworkType: Int? = 0,
|
||||
@TarsId(25) @JvmField val uVipFont: Long? = null,
|
||||
@TarsId(26) @JvmField val eIconType: Int? = 0,
|
||||
@TarsId(27) @JvmField val termDesc: String? = "",
|
||||
@TarsId(28) @JvmField val uColorRing: Long? = null,
|
||||
@TarsId(29) @JvmField val apolloFlag: Byte? = null,
|
||||
@TarsId(30) @JvmField val uApolloTimestamp: Long? = null,
|
||||
@TarsId(31) @JvmField val sex: Byte? = null,
|
||||
@TarsId(32) @JvmField val uFounderFont: Long? = null,
|
||||
@TarsId(33) @JvmField val eimId: String? = "",
|
||||
@TarsId(34) @JvmField val eimMobile: String? = "",
|
||||
@TarsId(35) @JvmField val olympicTorch: Byte? = null,
|
||||
@TarsId(36) @JvmField val uApolloSignTime: Long? = null,
|
||||
@TarsId(37) @JvmField val uLaviUin: Long? = null,
|
||||
@TarsId(38) @JvmField val uTagUpdateTime: Long? = null,
|
||||
@TarsId(39) @JvmField val uGameLastLoginTime: Long? = null,
|
||||
@TarsId(40) @JvmField val uGameAppid: Long? = null,
|
||||
@TarsId(41) @JvmField val vecCardID: ByteArray? = null,
|
||||
@TarsId(42) @JvmField val ulBitSet: Long? = null,
|
||||
@TarsId(43) @JvmField val kingOfGloryFlag: Byte? = null,
|
||||
@TarsId(44) @JvmField val ulKingOfGloryRank: Long? = null,
|
||||
@TarsId(45) @JvmField val masterUin: String? = "",
|
||||
@TarsId(46) @JvmField val uLastMedalUpdateTime: Long? = null,
|
||||
@TarsId(47) @JvmField val uFaceStoreId: Long? = null,
|
||||
@TarsId(48) @JvmField val uFontEffect: Long? = null,
|
||||
@TarsId(49) @JvmField val sDOVId: String? = "",
|
||||
@TarsId(50) @JvmField val uBothFlag: Long? = null,
|
||||
@TarsId(51) @JvmField val centiShow3DFlag: Byte? = null,
|
||||
@TarsId(52) @JvmField val vecIntimateInfo: ByteArray? = null,
|
||||
@TarsId(53) @JvmField val showNameplate: Byte? = null,
|
||||
@TarsId(54) @JvmField val newLoverDiamondFlag: Byte? = null,
|
||||
@TarsId(55) @JvmField val vecExtSnsFrdData: ByteArray? = null,
|
||||
@TarsId(56) @JvmField val vecMutualMarkData: ByteArray? = null
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class VipBaseInfo(
|
||||
@JceId(0) @JvmField val mOpenInfo: Map<Int, VipOpenInfo>? = null,
|
||||
@TarsId(0) @JvmField val mOpenInfo: Map<Int, VipOpenInfo>? = null,
|
||||
// 1, 2 are since 8.2.7
|
||||
@JceId(1) @JvmField val iNameplateVipType: Int? = 0,
|
||||
@JceId(2) @JvmField val iGrayNameplateFlag: Int? = 0
|
||||
@TarsId(1) @JvmField val iNameplateVipType: Int? = 0,
|
||||
@TarsId(2) @JvmField val iGrayNameplateFlag: Int? = 0
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class VipOpenInfo(
|
||||
@JceId(0) @JvmField val open: Boolean? = false,
|
||||
@JceId(1) @JvmField val iVipType: Int = -1,
|
||||
@JceId(2) @JvmField val iVipLevel: Int = -1,
|
||||
@JceId(3) @JvmField val iVipFlag: Int? = null,
|
||||
@JceId(4) @JvmField val nameplateId: Long? = null
|
||||
@TarsId(0) @JvmField val open: Boolean? = false,
|
||||
@TarsId(1) @JvmField val iVipType: Int = -1,
|
||||
@TarsId(2) @JvmField val iVipLevel: Int = -1,
|
||||
@TarsId(3) @JvmField val iVipFlag: Int? = null,
|
||||
@TarsId(4) @JvmField val nameplateId: Long? = null
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class GroupInfo(
|
||||
@JceId(0) @JvmField val groupId: Byte,
|
||||
@JceId(1) @JvmField val groupname: String = "",
|
||||
@JceId(2) @JvmField val friendCount: Int,
|
||||
@JceId(3) @JvmField val onlineFriendCount: Int,
|
||||
@JceId(4) @JvmField val seqid: Byte? = null,
|
||||
@JceId(5) @JvmField val sqqOnLineCount: Int? = null
|
||||
@TarsId(0) @JvmField val groupId: Byte,
|
||||
@TarsId(1) @JvmField val groupname: String = "",
|
||||
@TarsId(2) @JvmField val friendCount: Int,
|
||||
@TarsId(3) @JvmField val onlineFriendCount: Int,
|
||||
@TarsId(4) @JvmField val seqid: Byte? = null,
|
||||
@TarsId(5) @JvmField val sqqOnLineCount: Int? = null
|
||||
) : JceStruct
|
||||
|
||||
|
@ -1,43 +1,43 @@
|
||||
package net.mamoe.mirai.qqandroid.network.protocol.data.jce
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import moe.him188.jcekt.JceId
|
||||
import net.mamoe.mirai.qqandroid.utils.io.JceStruct
|
||||
import net.mamoe.mirai.qqandroid.utils.io.serialization.tars.TarsId
|
||||
import kotlin.jvm.JvmField
|
||||
|
||||
@Serializable
|
||||
internal class GroupMngReqJce(
|
||||
@JceId(0) @JvmField val reqtype: Int,
|
||||
@JceId(1) @JvmField val uin: Long,
|
||||
@JceId(2) @JvmField val vecBody: ByteArray,
|
||||
@JceId(3) @JvmField val checkInGroup: Byte? = null,
|
||||
@JceId(4) @JvmField val sGroupLocation: String? = "",
|
||||
@JceId(5) @JvmField val statOption: Byte? = null,
|
||||
@JceId(6) @JvmField val wSourceID: Int? = null,
|
||||
@JceId(7) @JvmField val wSourceSubID: Int? = null,
|
||||
@JceId(8) @JvmField val isSupportAuthQuestionJoin: Byte? = null,
|
||||
@JceId(9) @JvmField val ifGetAuthInfo: Byte? = null,
|
||||
@JceId(10) @JvmField val dwDiscussUin: Long? = null,
|
||||
@JceId(11) @JvmField val sJoinGroupKey: String? = "",
|
||||
@JceId(12) @JvmField val sJoinGroupPicUrl: String? = "",
|
||||
@JceId(13) @JvmField val vecJoinGroupRichMsg: ByteArray? = null,
|
||||
@JceId(14) @JvmField val sJoinGroupAuth: String? = "",
|
||||
@JceId(15) @JvmField val sJoinGroupVerifyToken: String? = "",
|
||||
@JceId(16) @JvmField val dwJoinVerifyType: Long? = null
|
||||
@TarsId(0) @JvmField val reqtype: Int,
|
||||
@TarsId(1) @JvmField val uin: Long,
|
||||
@TarsId(2) @JvmField val vecBody: ByteArray,
|
||||
@TarsId(3) @JvmField val checkInGroup: Byte? = null,
|
||||
@TarsId(4) @JvmField val sGroupLocation: String? = "",
|
||||
@TarsId(5) @JvmField val statOption: Byte? = null,
|
||||
@TarsId(6) @JvmField val wSourceID: Int? = null,
|
||||
@TarsId(7) @JvmField val wSourceSubID: Int? = null,
|
||||
@TarsId(8) @JvmField val isSupportAuthQuestionJoin: Byte? = null,
|
||||
@TarsId(9) @JvmField val ifGetAuthInfo: Byte? = null,
|
||||
@TarsId(10) @JvmField val dwDiscussUin: Long? = null,
|
||||
@TarsId(11) @JvmField val sJoinGroupKey: String? = "",
|
||||
@TarsId(12) @JvmField val sJoinGroupPicUrl: String? = "",
|
||||
@TarsId(13) @JvmField val vecJoinGroupRichMsg: ByteArray? = null,
|
||||
@TarsId(14) @JvmField val sJoinGroupAuth: String? = "",
|
||||
@TarsId(15) @JvmField val sJoinGroupVerifyToken: String? = "",
|
||||
@TarsId(16) @JvmField val dwJoinVerifyType: Long? = null
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class GroupMngRes(
|
||||
@JceId(0) @JvmField val reqtype: Int,
|
||||
@JceId(1) @JvmField val result: Byte,
|
||||
@JceId(2) @JvmField val vecBody: ByteArray,
|
||||
@JceId(3) @JvmField val errorString: String = "",
|
||||
@JceId(4) @JvmField val errorCode: Short = 0,
|
||||
@JceId(5) @JvmField val isInGroup: Byte? = null,
|
||||
@JceId(6) @JvmField val sGroupLocation: String? = "",
|
||||
@JceId(7) @JvmField val isMemInvite: Byte? = null,
|
||||
@JceId(8) @JvmField val sAuthGrpInfo: String? = "",
|
||||
@JceId(9) @JvmField val sJoinQuestion: String? = "",
|
||||
@JceId(10) @JvmField val sJoinAnswer: String? = "",
|
||||
@JceId(11) @JvmField val dwDis2GrpLimitType: Long? = null
|
||||
@TarsId(0) @JvmField val reqtype: Int,
|
||||
@TarsId(1) @JvmField val result: Byte,
|
||||
@TarsId(2) @JvmField val vecBody: ByteArray,
|
||||
@TarsId(3) @JvmField val errorString: String = "",
|
||||
@TarsId(4) @JvmField val errorCode: Short = 0,
|
||||
@TarsId(5) @JvmField val isInGroup: Byte? = null,
|
||||
@TarsId(6) @JvmField val sGroupLocation: String? = "",
|
||||
@TarsId(7) @JvmField val isMemInvite: Byte? = null,
|
||||
@TarsId(8) @JvmField val sAuthGrpInfo: String? = "",
|
||||
@TarsId(9) @JvmField val sJoinQuestion: String? = "",
|
||||
@TarsId(10) @JvmField val sJoinAnswer: String? = "",
|
||||
@TarsId(11) @JvmField val dwDis2GrpLimitType: Long? = null
|
||||
) : JceStruct
|
||||
|
@ -1,216 +1,216 @@
|
||||
package net.mamoe.mirai.qqandroid.network.protocol.data.jce
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import moe.him188.jcekt.JceId
|
||||
import net.mamoe.mirai.qqandroid.network.protocol.packet.EMPTY_BYTE_ARRAY
|
||||
import net.mamoe.mirai.qqandroid.utils.io.JceStruct
|
||||
import net.mamoe.mirai.qqandroid.utils.io.serialization.tars.TarsId
|
||||
import kotlin.jvm.JvmField
|
||||
|
||||
@Serializable
|
||||
internal class AddGroup(
|
||||
@JceId(0) @JvmField val dwGroupID: Long? = null,
|
||||
@JceId(1) @JvmField val dwSortID: Long? = null,
|
||||
@JceId(2) @JvmField val groupName: String? = ""
|
||||
@TarsId(0) @JvmField val dwGroupID: Long? = null,
|
||||
@TarsId(1) @JvmField val dwSortID: Long? = null,
|
||||
@TarsId(2) @JvmField val groupName: String? = ""
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class DelGroup(
|
||||
@JceId(0) @JvmField val dwGroupID: Long? = null
|
||||
@TarsId(0) @JvmField val dwGroupID: Long? = null
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class FriendGroup(
|
||||
@JceId(0) @JvmField val dwFuin: Long? = null,
|
||||
@JceId(1) @JvmField val vOldGroupID: List<Long>? = null,
|
||||
@JceId(2) @JvmField val vNewGroupID: List<Long>? = null
|
||||
@TarsId(0) @JvmField val dwFuin: Long? = null,
|
||||
@TarsId(1) @JvmField val vOldGroupID: List<Long>? = null,
|
||||
@TarsId(2) @JvmField val vNewGroupID: List<Long>? = null
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class GroupSort(
|
||||
@JceId(0) @JvmField val dwGroupID: Long? = null,
|
||||
@JceId(1) @JvmField val dwSortID: Long? = null
|
||||
@TarsId(0) @JvmField val dwGroupID: Long? = null,
|
||||
@TarsId(1) @JvmField val dwSortID: Long? = null
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class MarketFaceInfo(
|
||||
@JceId(0) @JvmField val insertIdx: Long,
|
||||
@JceId(1) @JvmField val marketFaceBuff: ByteArray
|
||||
@TarsId(0) @JvmField val insertIdx: Long,
|
||||
@TarsId(1) @JvmField val marketFaceBuff: ByteArray
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class ModFriendGroup(
|
||||
@JceId(0) @JvmField val vMsgFrdGroup: List<FriendGroup>? = null
|
||||
@TarsId(0) @JvmField val vMsgFrdGroup: List<FriendGroup>? = null
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class ModGroupName(
|
||||
@JceId(0) @JvmField val dwGroupID: Long? = null,
|
||||
@JceId(1) @JvmField val groupName: String? = ""
|
||||
@TarsId(0) @JvmField val dwGroupID: Long? = null,
|
||||
@TarsId(1) @JvmField val groupName: String? = ""
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class ModGroupSort(
|
||||
@JceId(0) @JvmField val vMsgGroupSort: List<GroupSort>? = null
|
||||
@TarsId(0) @JvmField val vMsgGroupSort: List<GroupSort>? = null
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class MsgType0x210(
|
||||
@JceId(0) @JvmField val uSubMsgType: Long,
|
||||
@JceId(1) @JvmField val stMsgInfo0x2: MsgType0x210SubMsgType0x2? = null,
|
||||
@JceId(3) @JvmField val stMsgInfo0xa: MsgType0x210SubMsgType0xa? = null,
|
||||
@JceId(4) @JvmField val stMsgInfo0xe: MsgType0x210SubMsgType0xe? = null,
|
||||
@JceId(5) @JvmField val stMsgInfo0x13: MsgType0x210SubMsgType0x13? = null,
|
||||
@JceId(6) @JvmField val stMsgInfo0x17: MsgType0x210SubMsgType0x17? = null,
|
||||
@JceId(7) @JvmField val stMsgInfo0x20: MsgType0x210SubMsgType0x20? = null,
|
||||
@JceId(8) @JvmField val stMsgInfo0x1d: MsgType0x210SubMsgType0x1d? = null,
|
||||
@JceId(9) @JvmField val stMsgInfo0x24: MsgType0x210SubMsgType0x24? = null,
|
||||
@JceId(10) @JvmField val vProtobuf: ByteArray = EMPTY_BYTE_ARRAY
|
||||
@TarsId(0) @JvmField val uSubMsgType: Long,
|
||||
@TarsId(1) @JvmField val stMsgInfo0x2: MsgType0x210SubMsgType0x2? = null,
|
||||
@TarsId(3) @JvmField val stMsgInfo0xa: MsgType0x210SubMsgType0xa? = null,
|
||||
@TarsId(4) @JvmField val stMsgInfo0xe: MsgType0x210SubMsgType0xe? = null,
|
||||
@TarsId(5) @JvmField val stMsgInfo0x13: MsgType0x210SubMsgType0x13? = null,
|
||||
@TarsId(6) @JvmField val stMsgInfo0x17: MsgType0x210SubMsgType0x17? = null,
|
||||
@TarsId(7) @JvmField val stMsgInfo0x20: MsgType0x210SubMsgType0x20? = null,
|
||||
@TarsId(8) @JvmField val stMsgInfo0x1d: MsgType0x210SubMsgType0x1d? = null,
|
||||
@TarsId(9) @JvmField val stMsgInfo0x24: MsgType0x210SubMsgType0x24? = null,
|
||||
@TarsId(10) @JvmField val vProtobuf: ByteArray = EMPTY_BYTE_ARRAY
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class MsgType0x210SubMsgType0x13(
|
||||
@JceId(0) @JvmField val uint32SrcAppId: Long? = null,
|
||||
@JceId(1) @JvmField val uint32SrcInstId: Long? = null,
|
||||
@JceId(2) @JvmField val uint32DstAppId: Long? = null,
|
||||
@JceId(3) @JvmField val uint32DstInstId: Long? = null,
|
||||
@JceId(4) @JvmField val uint64DstUin: Long? = null,
|
||||
@JceId(5) @JvmField val uint64Sessionid: Long? = null,
|
||||
@JceId(6) @JvmField val uint32Size: Long? = null,
|
||||
@JceId(7) @JvmField val uint32Index: Long? = null,
|
||||
@JceId(8) @JvmField val uint32Type: Long? = null,
|
||||
@JceId(9) @JvmField val buf: ByteArray? = null
|
||||
@TarsId(0) @JvmField val uint32SrcAppId: Long? = null,
|
||||
@TarsId(1) @JvmField val uint32SrcInstId: Long? = null,
|
||||
@TarsId(2) @JvmField val uint32DstAppId: Long? = null,
|
||||
@TarsId(3) @JvmField val uint32DstInstId: Long? = null,
|
||||
@TarsId(4) @JvmField val uint64DstUin: Long? = null,
|
||||
@TarsId(5) @JvmField val uint64Sessionid: Long? = null,
|
||||
@TarsId(6) @JvmField val uint32Size: Long? = null,
|
||||
@TarsId(7) @JvmField val uint32Index: Long? = null,
|
||||
@TarsId(8) @JvmField val uint32Type: Long? = null,
|
||||
@TarsId(9) @JvmField val buf: ByteArray? = null
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class MsgType0x210SubMsgType0x13_MsgItem(
|
||||
@JceId(0) @JvmField val uint32Type: Long? = null,
|
||||
@JceId(1) @JvmField val text: ByteArray? = null
|
||||
@TarsId(0) @JvmField val uint32Type: Long? = null,
|
||||
@TarsId(1) @JvmField val text: ByteArray? = null
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class MsgType0x210SubMsgType0x17(
|
||||
@JceId(0) @JvmField val dwOpType: Long? = null,
|
||||
@JceId(1) @JvmField val stAddGroup: AddGroup? = null,
|
||||
@JceId(2) @JvmField val stDelGroup: DelGroup? = null,
|
||||
@JceId(3) @JvmField val stModGroupName: ModGroupName? = null,
|
||||
@JceId(4) @JvmField val stModGroupSort: ModGroupSort? = null,
|
||||
@JceId(5) @JvmField val stModFriendGroup: ModFriendGroup? = null
|
||||
@TarsId(0) @JvmField val dwOpType: Long? = null,
|
||||
@TarsId(1) @JvmField val stAddGroup: AddGroup? = null,
|
||||
@TarsId(2) @JvmField val stDelGroup: DelGroup? = null,
|
||||
@TarsId(3) @JvmField val stModGroupName: ModGroupName? = null,
|
||||
@TarsId(4) @JvmField val stModGroupSort: ModGroupSort? = null,
|
||||
@TarsId(5) @JvmField val stModFriendGroup: ModFriendGroup? = null
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class MsgType0x210SubMsgType0x1d(
|
||||
@JceId(0) @JvmField val dwOpType: Long? = null,
|
||||
@JceId(1) @JvmField val dwUin: Long? = null,
|
||||
@JceId(2) @JvmField val dwID: Long? = null,
|
||||
@JceId(3) @JvmField val value: String? = ""
|
||||
@TarsId(0) @JvmField val dwOpType: Long? = null,
|
||||
@TarsId(1) @JvmField val dwUin: Long? = null,
|
||||
@TarsId(2) @JvmField val dwID: Long? = null,
|
||||
@TarsId(3) @JvmField val value: String? = ""
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class MsgType0x210SubMsgType0x2(
|
||||
@JceId(0) @JvmField val uSrcAppId: Long? = null,
|
||||
@JceId(1) @JvmField val uSrcInstId: Long? = null,
|
||||
@JceId(2) @JvmField val uDstAppId: Long? = null,
|
||||
@JceId(3) @JvmField val uDstInstId: Long? = null,
|
||||
@JceId(4) @JvmField val uDstUin: Long? = null,
|
||||
@JceId(5) @JvmField val fileName: ByteArray? = null,
|
||||
@JceId(6) @JvmField val fileIndex: ByteArray? = null,
|
||||
@JceId(7) @JvmField val fileMd5: ByteArray? = null,
|
||||
@JceId(8) @JvmField val fileKey: ByteArray? = null,
|
||||
@JceId(9) @JvmField val uServerIp: Long? = null,
|
||||
@JceId(10) @JvmField val uServerPort: Long? = null,
|
||||
@JceId(11) @JvmField val fileLen: Long? = null,
|
||||
@JceId(12) @JvmField val sessionId: Long? = null,
|
||||
@JceId(13) @JvmField val originfileMd5: ByteArray? = null,
|
||||
@JceId(14) @JvmField val uOriginfiletype: Long? = null,
|
||||
@JceId(15) @JvmField val uSeq: Long? = null
|
||||
@TarsId(0) @JvmField val uSrcAppId: Long? = null,
|
||||
@TarsId(1) @JvmField val uSrcInstId: Long? = null,
|
||||
@TarsId(2) @JvmField val uDstAppId: Long? = null,
|
||||
@TarsId(3) @JvmField val uDstInstId: Long? = null,
|
||||
@TarsId(4) @JvmField val uDstUin: Long? = null,
|
||||
@TarsId(5) @JvmField val fileName: ByteArray? = null,
|
||||
@TarsId(6) @JvmField val fileIndex: ByteArray? = null,
|
||||
@TarsId(7) @JvmField val fileMd5: ByteArray? = null,
|
||||
@TarsId(8) @JvmField val fileKey: ByteArray? = null,
|
||||
@TarsId(9) @JvmField val uServerIp: Long? = null,
|
||||
@TarsId(10) @JvmField val uServerPort: Long? = null,
|
||||
@TarsId(11) @JvmField val fileLen: Long? = null,
|
||||
@TarsId(12) @JvmField val sessionId: Long? = null,
|
||||
@TarsId(13) @JvmField val originfileMd5: ByteArray? = null,
|
||||
@TarsId(14) @JvmField val uOriginfiletype: Long? = null,
|
||||
@TarsId(15) @JvmField val uSeq: Long? = null
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class MsgType0x210SubMsgType0x20(
|
||||
@JceId(0) @JvmField val dwOpType: Long? = null,
|
||||
@JceId(1) @JvmField val dwType: Long? = null,
|
||||
@JceId(2) @JvmField val dwUin: Long? = null,
|
||||
@JceId(3) @JvmField val remaek: String? = ""
|
||||
@TarsId(0) @JvmField val dwOpType: Long? = null,
|
||||
@TarsId(1) @JvmField val dwType: Long? = null,
|
||||
@TarsId(2) @JvmField val dwUin: Long? = null,
|
||||
@TarsId(3) @JvmField val remaek: String? = ""
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class MsgType0x210SubMsgType0x24(
|
||||
@JceId(0) @JvmField val vPluginNumList: List<PluginNum>? = null
|
||||
@TarsId(0) @JvmField val vPluginNumList: List<PluginNum>? = null
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class MsgType0x210SubMsgType0xa(
|
||||
@JceId(0) @JvmField val uSrcAppId: Long? = null,
|
||||
@JceId(1) @JvmField val uSrcInstId: Long? = null,
|
||||
@JceId(2) @JvmField val uDstAppId: Long? = null,
|
||||
@JceId(3) @JvmField val uDstInstId: Long? = null,
|
||||
@JceId(4) @JvmField val uDstUin: Long? = null,
|
||||
@JceId(5) @JvmField val uType: Long? = null,
|
||||
@JceId(6) @JvmField val uServerIp: Long? = null,
|
||||
@JceId(7) @JvmField val uServerPort: Long? = null,
|
||||
@JceId(8) @JvmField val vUrlNotify: ByteArray? = null,
|
||||
@JceId(9) @JvmField val vTokenKey: ByteArray? = null,
|
||||
@JceId(10) @JvmField val uFileLen: Long? = null,
|
||||
@JceId(11) @JvmField val fileName: ByteArray? = null,
|
||||
@JceId(12) @JvmField val vMd5: ByteArray? = null,
|
||||
@JceId(13) @JvmField val sessionId: Long? = null,
|
||||
@JceId(14) @JvmField val originfileMd5: ByteArray? = null,
|
||||
@JceId(15) @JvmField val uOriginfiletype: Long? = null,
|
||||
@JceId(16) @JvmField val uSeq: Long? = null
|
||||
@TarsId(0) @JvmField val uSrcAppId: Long? = null,
|
||||
@TarsId(1) @JvmField val uSrcInstId: Long? = null,
|
||||
@TarsId(2) @JvmField val uDstAppId: Long? = null,
|
||||
@TarsId(3) @JvmField val uDstInstId: Long? = null,
|
||||
@TarsId(4) @JvmField val uDstUin: Long? = null,
|
||||
@TarsId(5) @JvmField val uType: Long? = null,
|
||||
@TarsId(6) @JvmField val uServerIp: Long? = null,
|
||||
@TarsId(7) @JvmField val uServerPort: Long? = null,
|
||||
@TarsId(8) @JvmField val vUrlNotify: ByteArray? = null,
|
||||
@TarsId(9) @JvmField val vTokenKey: ByteArray? = null,
|
||||
@TarsId(10) @JvmField val uFileLen: Long? = null,
|
||||
@TarsId(11) @JvmField val fileName: ByteArray? = null,
|
||||
@TarsId(12) @JvmField val vMd5: ByteArray? = null,
|
||||
@TarsId(13) @JvmField val sessionId: Long? = null,
|
||||
@TarsId(14) @JvmField val originfileMd5: ByteArray? = null,
|
||||
@TarsId(15) @JvmField val uOriginfiletype: Long? = null,
|
||||
@TarsId(16) @JvmField val uSeq: Long? = null
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class MsgType0x210SubMsgType0xe(
|
||||
@JceId(0) @JvmField val uint32SrcAppId: Long? = null,
|
||||
@JceId(1) @JvmField val uint32SrcInstId: Long? = null,
|
||||
@JceId(2) @JvmField val uint32DstAppId: Long? = null,
|
||||
@JceId(3) @JvmField val uint32DstInstId: Long? = null,
|
||||
@JceId(4) @JvmField val uint64DstUin: Long? = null,
|
||||
@JceId(5) @JvmField val uint64Sessionid: Long? = null,
|
||||
@JceId(6) @JvmField val uint32Operate: Long? = null,
|
||||
@JceId(7) @JvmField val uint32Seq: Long? = null,
|
||||
@JceId(8) @JvmField val uint32Code: Long? = null,
|
||||
@JceId(9) @JvmField val msg: String? = ""
|
||||
@TarsId(0) @JvmField val uint32SrcAppId: Long? = null,
|
||||
@TarsId(1) @JvmField val uint32SrcInstId: Long? = null,
|
||||
@TarsId(2) @JvmField val uint32DstAppId: Long? = null,
|
||||
@TarsId(3) @JvmField val uint32DstInstId: Long? = null,
|
||||
@TarsId(4) @JvmField val uint64DstUin: Long? = null,
|
||||
@TarsId(5) @JvmField val uint64Sessionid: Long? = null,
|
||||
@TarsId(6) @JvmField val uint32Operate: Long? = null,
|
||||
@TarsId(7) @JvmField val uint32Seq: Long? = null,
|
||||
@TarsId(8) @JvmField val uint32Code: Long? = null,
|
||||
@TarsId(9) @JvmField val msg: String? = ""
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class PersonInfoChange(
|
||||
@JceId(0) @JvmField val type: Byte? = null,
|
||||
@JceId(1) @JvmField val vChgField: List<PersonInfoField>? = null
|
||||
@TarsId(0) @JvmField val type: Byte? = null,
|
||||
@TarsId(1) @JvmField val vChgField: List<PersonInfoField>? = null
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class PersonInfoField(
|
||||
@JceId(0) @JvmField val uField: Long? = null
|
||||
@TarsId(0) @JvmField val uField: Long? = null
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class PluginNum(
|
||||
@JceId(0) @JvmField val dwID: Long? = null,
|
||||
@JceId(1) @JvmField val dwNUm: Long? = null,
|
||||
@JceId(2) @JvmField val flag: Byte? = null
|
||||
@TarsId(0) @JvmField val dwID: Long? = null,
|
||||
@TarsId(1) @JvmField val dwNUm: Long? = null,
|
||||
@TarsId(2) @JvmField val flag: Byte? = null
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class SlaveMasterMsg(
|
||||
@JceId(0) @JvmField val uMsgType: Long? = null,
|
||||
@JceId(1) @JvmField val uCmd: Long? = null,
|
||||
@JceId(2) @JvmField val uSeq: Long? = null,
|
||||
@JceId(3) @JvmField val fromUin: Long? = null,
|
||||
@JceId(4) @JvmField val wFromApp: Short? = null,
|
||||
@JceId(5) @JvmField val uFromInstId: Long? = null,
|
||||
@JceId(6) @JvmField val toUin: Long? = null,
|
||||
@JceId(7) @JvmField val wToApp: Short? = null,
|
||||
@JceId(8) @JvmField val uToInstId: Long? = null,
|
||||
@JceId(9) @JvmField val vOrigMsg: ByteArray? = null,
|
||||
@JceId(10) @JvmField val uLastChangeTime: Long? = null,
|
||||
@JceId(11) @JvmField val vReserved: ByteArray? = null,
|
||||
@JceId(12) @JvmField val vMarketFace: List<MarketFaceInfo>? = null,
|
||||
@JceId(13) @JvmField val uSuperQQBubbleId: Long? = null
|
||||
@TarsId(0) @JvmField val uMsgType: Long? = null,
|
||||
@TarsId(1) @JvmField val uCmd: Long? = null,
|
||||
@TarsId(2) @JvmField val uSeq: Long? = null,
|
||||
@TarsId(3) @JvmField val fromUin: Long? = null,
|
||||
@TarsId(4) @JvmField val wFromApp: Short? = null,
|
||||
@TarsId(5) @JvmField val uFromInstId: Long? = null,
|
||||
@TarsId(6) @JvmField val toUin: Long? = null,
|
||||
@TarsId(7) @JvmField val wToApp: Short? = null,
|
||||
@TarsId(8) @JvmField val uToInstId: Long? = null,
|
||||
@TarsId(9) @JvmField val vOrigMsg: ByteArray? = null,
|
||||
@TarsId(10) @JvmField val uLastChangeTime: Long? = null,
|
||||
@TarsId(11) @JvmField val vReserved: ByteArray? = null,
|
||||
@TarsId(12) @JvmField val vMarketFace: List<MarketFaceInfo>? = null,
|
||||
@TarsId(13) @JvmField val uSuperQQBubbleId: Long? = null
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class Type_1_QQDataTextMsg(
|
||||
@JceId(0) @JvmField val msgItem: List<MsgType0x210SubMsgType0x13_MsgItem>? = null
|
||||
@TarsId(0) @JvmField val msgItem: List<MsgType0x210SubMsgType0x13_MsgItem>? = null
|
||||
) : JceStruct
|
||||
|
||||
|
@ -1,250 +1,250 @@
|
||||
package net.mamoe.mirai.qqandroid.network.protocol.data.jce
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import moe.him188.jcekt.JceId
|
||||
import net.mamoe.mirai.qqandroid.utils.io.JceStruct
|
||||
import net.mamoe.mirai.qqandroid.utils.io.serialization.tars.TarsId
|
||||
import kotlin.jvm.JvmField
|
||||
|
||||
internal class OnlinePushPack {
|
||||
@Serializable
|
||||
internal class DelMsgInfo(
|
||||
@JceId(0) @JvmField val fromUin: Long,
|
||||
@JceId(1) @JvmField val uMsgTime: Long,
|
||||
@JceId(2) @JvmField val shMsgSeq: Short,
|
||||
@JceId(3) @JvmField val vMsgCookies: ByteArray? = null,
|
||||
@JceId(4) @JvmField val wCmd: Short? = null,
|
||||
@JceId(5) @JvmField val uMsgType: Long? = null,
|
||||
@JceId(6) @JvmField val uAppId: Long? = null,
|
||||
@JceId(7) @JvmField val sendTime: Long? = null,
|
||||
@JceId(8) @JvmField val ssoSeq: Int? = null,
|
||||
@JceId(9) @JvmField val ssoIp: Int? = null,
|
||||
@JceId(10) @JvmField val clientIp: Int? = null
|
||||
@TarsId(0) @JvmField val fromUin: Long,
|
||||
@TarsId(1) @JvmField val uMsgTime: Long,
|
||||
@TarsId(2) @JvmField val shMsgSeq: Short,
|
||||
@TarsId(3) @JvmField val vMsgCookies: ByteArray? = null,
|
||||
@TarsId(4) @JvmField val wCmd: Short? = null,
|
||||
@TarsId(5) @JvmField val uMsgType: Long? = null,
|
||||
@TarsId(6) @JvmField val uAppId: Long? = null,
|
||||
@TarsId(7) @JvmField val sendTime: Long? = null,
|
||||
@TarsId(8) @JvmField val ssoSeq: Int? = null,
|
||||
@TarsId(9) @JvmField val ssoIp: Int? = null,
|
||||
@TarsId(10) @JvmField val clientIp: Int? = null
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class DeviceInfo(
|
||||
@JceId(0) @JvmField val netType: Byte? = null,
|
||||
@JceId(1) @JvmField val devType: String? = "",
|
||||
@JceId(2) @JvmField val oSVer: String? = "",
|
||||
@JceId(3) @JvmField val vendorName: String? = "",
|
||||
@JceId(4) @JvmField val vendorOSName: String? = "",
|
||||
@JceId(5) @JvmField val iOSIdfa: String? = ""
|
||||
@TarsId(0) @JvmField val netType: Byte? = null,
|
||||
@TarsId(1) @JvmField val devType: String? = "",
|
||||
@TarsId(2) @JvmField val oSVer: String? = "",
|
||||
@TarsId(3) @JvmField val vendorName: String? = "",
|
||||
@TarsId(4) @JvmField val vendorOSName: String? = "",
|
||||
@TarsId(5) @JvmField val iOSIdfa: String? = ""
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class Name(
|
||||
@JceId(0) @JvmField val fromUin: Long,
|
||||
@JceId(1) @JvmField val uMsgTime: Long,
|
||||
@JceId(2) @JvmField val shMsgType: Short,
|
||||
@JceId(3) @JvmField val shMsgSeq: Short,
|
||||
@JceId(4) @JvmField val msg: String = "",
|
||||
@JceId(5) @JvmField val uRealMsgTime: Int? = null,
|
||||
@JceId(6) @JvmField val vMsg: ByteArray? = null,
|
||||
@JceId(7) @JvmField val uAppShareID: Long? = null,
|
||||
@JceId(8) @JvmField val vMsgCookies: ByteArray? = null,
|
||||
@JceId(9) @JvmField val vAppShareCookie: ByteArray? = null,
|
||||
@JceId(10) @JvmField val msgUid: Long? = null,
|
||||
@JceId(11) @JvmField val lastChangeTime: Long? = 1L,
|
||||
@JceId(12) @JvmField val vCPicInfo: List<CPicInfo>? = null,
|
||||
@JceId(13) @JvmField val stShareData: ShareData? = null,
|
||||
@JceId(14) @JvmField val fromInstId: Long? = null,
|
||||
@JceId(15) @JvmField val vRemarkOfSender: ByteArray? = null,
|
||||
@JceId(16) @JvmField val fromMobile: String? = "",
|
||||
@JceId(17) @JvmField val fromName: String? = "",
|
||||
@JceId(18) @JvmField val vNickName: List<String>? = null,
|
||||
@JceId(19) @JvmField val stC2CTmpMsgHead: TempMsgHead? = null
|
||||
@TarsId(0) @JvmField val fromUin: Long,
|
||||
@TarsId(1) @JvmField val uMsgTime: Long,
|
||||
@TarsId(2) @JvmField val shMsgType: Short,
|
||||
@TarsId(3) @JvmField val shMsgSeq: Short,
|
||||
@TarsId(4) @JvmField val msg: String = "",
|
||||
@TarsId(5) @JvmField val uRealMsgTime: Int? = null,
|
||||
@TarsId(6) @JvmField val vMsg: ByteArray? = null,
|
||||
@TarsId(7) @JvmField val uAppShareID: Long? = null,
|
||||
@TarsId(8) @JvmField val vMsgCookies: ByteArray? = null,
|
||||
@TarsId(9) @JvmField val vAppShareCookie: ByteArray? = null,
|
||||
@TarsId(10) @JvmField val msgUid: Long? = null,
|
||||
@TarsId(11) @JvmField val lastChangeTime: Long? = 1L,
|
||||
@TarsId(12) @JvmField val vCPicInfo: List<CPicInfo>? = null,
|
||||
@TarsId(13) @JvmField val stShareData: ShareData? = null,
|
||||
@TarsId(14) @JvmField val fromInstId: Long? = null,
|
||||
@TarsId(15) @JvmField val vRemarkOfSender: ByteArray? = null,
|
||||
@TarsId(16) @JvmField val fromMobile: String? = "",
|
||||
@TarsId(17) @JvmField val fromName: String? = "",
|
||||
@TarsId(18) @JvmField val vNickName: List<String>? = null,
|
||||
@TarsId(19) @JvmField val stC2CTmpMsgHead: TempMsgHead? = null
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class SvcReqPushMsg(
|
||||
@JceId(0) @JvmField val uin: Long,
|
||||
@JceId(1) @JvmField val uMsgTime: Long,
|
||||
@JceId(2) @JvmField val vMsgInfos: List<MsgInfo>,
|
||||
@JceId(3) @JvmField val svrip: Int? = 0,
|
||||
@JceId(4) @JvmField val vSyncCookie: ByteArray? = null,
|
||||
@JceId(5) @JvmField val vUinPairMsg: List<UinPairMsg>? = null,
|
||||
@JceId(6) @JvmField val mPreviews: Map<String, ByteArray>? = null
|
||||
@TarsId(0) @JvmField val uin: Long,
|
||||
@TarsId(1) @JvmField val uMsgTime: Long,
|
||||
@TarsId(2) @JvmField val vMsgInfos: List<MsgInfo>,
|
||||
@TarsId(3) @JvmField val svrip: Int? = 0,
|
||||
@TarsId(4) @JvmField val vSyncCookie: ByteArray? = null,
|
||||
@TarsId(5) @JvmField val vUinPairMsg: List<UinPairMsg>? = null,
|
||||
@TarsId(6) @JvmField val mPreviews: Map<String, ByteArray>? = null
|
||||
// @SerialId(7) @JvmField val wUserActive: Int? = null,
|
||||
//@SerialId(12) @JvmField val wGeneralFlag: Int? = null
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class SvcRespPushMsg(
|
||||
@JceId(0) @JvmField val uin: Long,
|
||||
@JceId(1) @JvmField val vDelInfos: List<DelMsgInfo>,
|
||||
@JceId(2) @JvmField val svrip: Int = 0,
|
||||
@JceId(3) @JvmField val pushToken: ByteArray? = null,
|
||||
@JceId(4) @JvmField val serviceType: Int? = null,
|
||||
@JceId(5) @JvmField val deviceInfo: DeviceInfo? = null
|
||||
@TarsId(0) @JvmField val uin: Long,
|
||||
@TarsId(1) @JvmField val vDelInfos: List<DelMsgInfo>,
|
||||
@TarsId(2) @JvmField val svrip: Int = 0,
|
||||
@TarsId(3) @JvmField val pushToken: ByteArray? = null,
|
||||
@TarsId(4) @JvmField val serviceType: Int? = null,
|
||||
@TarsId(5) @JvmField val deviceInfo: DeviceInfo? = null
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class UinPairMsg(
|
||||
@JceId(1) @JvmField val uLastReadTime: Long? = null,
|
||||
@JceId(2) @JvmField val peerUin: Long? = null,
|
||||
@JceId(3) @JvmField val uMsgCompleted: Long? = null,
|
||||
@JceId(4) @JvmField val vMsgInfos: List<MsgInfo>? = null
|
||||
@TarsId(1) @JvmField val uLastReadTime: Long? = null,
|
||||
@TarsId(2) @JvmField val peerUin: Long? = null,
|
||||
@TarsId(3) @JvmField val uMsgCompleted: Long? = null,
|
||||
@TarsId(4) @JvmField val vMsgInfos: List<MsgInfo>? = null
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class MsgType0x210(
|
||||
@JceId(0) @JvmField val uSubMsgType: Long,
|
||||
@JceId(1) @JvmField val stMsgInfo0x2: MsgType0x210SubMsgType0x2? = null,
|
||||
@JceId(3) @JvmField val stMsgInfo0xa: MsgType0x210SubMsgType0xa? = null,
|
||||
@JceId(4) @JvmField val stMsgInfo0xe: MsgType0x210SubMsgType0xe? = null,
|
||||
@JceId(5) @JvmField val stMsgInfo0x13: MsgType0x210SubMsgType0x13? = null,
|
||||
@JceId(6) @JvmField val stMsgInfo0x17: MsgType0x210SubMsgType0x17? = null,
|
||||
@JceId(7) @JvmField val stMsgInfo0x20: MsgType0x210SubMsgType0x20? = null,
|
||||
@JceId(8) @JvmField val stMsgInfo0x1d: MsgType0x210SubMsgType0x1d? = null,
|
||||
@JceId(9) @JvmField val stMsgInfo0x24: MsgType0x210SubMsgType0x24? = null,
|
||||
@JceId(10) @JvmField val vProtobuf: ByteArray? = null
|
||||
@TarsId(0) @JvmField val uSubMsgType: Long,
|
||||
@TarsId(1) @JvmField val stMsgInfo0x2: MsgType0x210SubMsgType0x2? = null,
|
||||
@TarsId(3) @JvmField val stMsgInfo0xa: MsgType0x210SubMsgType0xa? = null,
|
||||
@TarsId(4) @JvmField val stMsgInfo0xe: MsgType0x210SubMsgType0xe? = null,
|
||||
@TarsId(5) @JvmField val stMsgInfo0x13: MsgType0x210SubMsgType0x13? = null,
|
||||
@TarsId(6) @JvmField val stMsgInfo0x17: MsgType0x210SubMsgType0x17? = null,
|
||||
@TarsId(7) @JvmField val stMsgInfo0x20: MsgType0x210SubMsgType0x20? = null,
|
||||
@TarsId(8) @JvmField val stMsgInfo0x1d: MsgType0x210SubMsgType0x1d? = null,
|
||||
@TarsId(9) @JvmField val stMsgInfo0x24: MsgType0x210SubMsgType0x24? = null,
|
||||
@TarsId(10) @JvmField val vProtobuf: ByteArray? = null
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class MsgType0x210SubMsgType0x13(
|
||||
@JceId(0) @JvmField val uint32SrcAppId: Long? = null,
|
||||
@JceId(1) @JvmField val uint32SrcInstId: Long? = null,
|
||||
@JceId(2) @JvmField val uint32DstAppId: Long? = null,
|
||||
@JceId(3) @JvmField val uint32DstInstId: Long? = null,
|
||||
@JceId(4) @JvmField val uint64DstUin: Long? = null,
|
||||
@JceId(5) @JvmField val uint64Sessionid: Long? = null,
|
||||
@JceId(6) @JvmField val uint32Size: Long? = null,
|
||||
@JceId(7) @JvmField val uint32Index: Long? = null,
|
||||
@JceId(8) @JvmField val uint32Type: Long? = null,
|
||||
@JceId(9) @JvmField val buf: ByteArray? = null
|
||||
@TarsId(0) @JvmField val uint32SrcAppId: Long? = null,
|
||||
@TarsId(1) @JvmField val uint32SrcInstId: Long? = null,
|
||||
@TarsId(2) @JvmField val uint32DstAppId: Long? = null,
|
||||
@TarsId(3) @JvmField val uint32DstInstId: Long? = null,
|
||||
@TarsId(4) @JvmField val uint64DstUin: Long? = null,
|
||||
@TarsId(5) @JvmField val uint64Sessionid: Long? = null,
|
||||
@TarsId(6) @JvmField val uint32Size: Long? = null,
|
||||
@TarsId(7) @JvmField val uint32Index: Long? = null,
|
||||
@TarsId(8) @JvmField val uint32Type: Long? = null,
|
||||
@TarsId(9) @JvmField val buf: ByteArray? = null
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class MsgType0x210SubMsgType0x17(
|
||||
@JceId(0) @JvmField val dwOpType: Long? = null,
|
||||
@JceId(1) @JvmField val stAddGroup: AddGroup? = null,
|
||||
@JceId(2) @JvmField val stDelGroup: DelGroup? = null,
|
||||
@JceId(3) @JvmField val stModGroupName: ModGroupName? = null,
|
||||
@JceId(4) @JvmField val stModGroupSort: ModGroupSort? = null,
|
||||
@JceId(5) @JvmField val stModFriendGroup: ModFriendGroup? = null
|
||||
@TarsId(0) @JvmField val dwOpType: Long? = null,
|
||||
@TarsId(1) @JvmField val stAddGroup: AddGroup? = null,
|
||||
@TarsId(2) @JvmField val stDelGroup: DelGroup? = null,
|
||||
@TarsId(3) @JvmField val stModGroupName: ModGroupName? = null,
|
||||
@TarsId(4) @JvmField val stModGroupSort: ModGroupSort? = null,
|
||||
@TarsId(5) @JvmField val stModFriendGroup: ModFriendGroup? = null
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class AddGroup(
|
||||
@JceId(0) @JvmField val dwGroupID: Long? = null,
|
||||
@JceId(1) @JvmField val dwSortID: Long? = null,
|
||||
@JceId(2) @JvmField val groupName: String? = ""
|
||||
@TarsId(0) @JvmField val dwGroupID: Long? = null,
|
||||
@TarsId(1) @JvmField val dwSortID: Long? = null,
|
||||
@TarsId(2) @JvmField val groupName: String? = ""
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class DelGroup(
|
||||
@JceId(0) @JvmField val dwGroupID: Long? = null
|
||||
@TarsId(0) @JvmField val dwGroupID: Long? = null
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class ModFriendGroup(
|
||||
@JceId(0) @JvmField val vMsgFrdGroup: List<FriendGroup>? = null
|
||||
@TarsId(0) @JvmField val vMsgFrdGroup: List<FriendGroup>? = null
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class FriendGroup(
|
||||
@JceId(0) @JvmField val dwFuin: Long? = null,
|
||||
@JceId(1) @JvmField val vOldGroupID: List<Long>? = null,
|
||||
@JceId(2) @JvmField val vNewGroupID: List<Long>? = null
|
||||
@TarsId(0) @JvmField val dwFuin: Long? = null,
|
||||
@TarsId(1) @JvmField val vOldGroupID: List<Long>? = null,
|
||||
@TarsId(2) @JvmField val vNewGroupID: List<Long>? = null
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class ModGroupName(
|
||||
@JceId(0) @JvmField val dwGroupID: Long? = null,
|
||||
@JceId(1) @JvmField val groupName: String? = ""
|
||||
@TarsId(0) @JvmField val dwGroupID: Long? = null,
|
||||
@TarsId(1) @JvmField val groupName: String? = ""
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class ModGroupSort(
|
||||
@JceId(0) @JvmField val vMsgGroupSort: List<GroupSort>? = null
|
||||
@TarsId(0) @JvmField val vMsgGroupSort: List<GroupSort>? = null
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class GroupSort(
|
||||
@JceId(0) @JvmField val dwGroupID: Long? = null,
|
||||
@JceId(1) @JvmField val dwSortID: Long? = null
|
||||
@TarsId(0) @JvmField val dwGroupID: Long? = null,
|
||||
@TarsId(1) @JvmField val dwSortID: Long? = null
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class MsgType0x210SubMsgType0x1d(
|
||||
@JceId(0) @JvmField val dwOpType: Long? = null,
|
||||
@JceId(1) @JvmField val dwUin: Long? = null,
|
||||
@JceId(2) @JvmField val dwID: Long? = null,
|
||||
@JceId(3) @JvmField val value: String? = ""
|
||||
@TarsId(0) @JvmField val dwOpType: Long? = null,
|
||||
@TarsId(1) @JvmField val dwUin: Long? = null,
|
||||
@TarsId(2) @JvmField val dwID: Long? = null,
|
||||
@TarsId(3) @JvmField val value: String? = ""
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class MsgType0x210SubMsgType0x2(
|
||||
@JceId(0) @JvmField val uSrcAppId: Long? = null,
|
||||
@JceId(1) @JvmField val uSrcInstId: Long? = null,
|
||||
@JceId(2) @JvmField val uDstAppId: Long? = null,
|
||||
@JceId(3) @JvmField val uDstInstId: Long? = null,
|
||||
@JceId(4) @JvmField val uDstUin: Long? = null,
|
||||
@JceId(5) @JvmField val fileName: ByteArray? = null,
|
||||
@JceId(6) @JvmField val fileIndex: ByteArray? = null,
|
||||
@JceId(7) @JvmField val fileMd5: ByteArray? = null,
|
||||
@JceId(8) @JvmField val fileKey: ByteArray? = null,
|
||||
@JceId(9) @JvmField val uServerIp: Long? = null,
|
||||
@JceId(10) @JvmField val uServerPort: Long? = null,
|
||||
@JceId(11) @JvmField val fileLen: Long? = null,
|
||||
@JceId(12) @JvmField val sessionId: Long? = null,
|
||||
@JceId(13) @JvmField val originfileMd5: ByteArray? = null,
|
||||
@JceId(14) @JvmField val uOriginfiletype: Long? = null,
|
||||
@JceId(15) @JvmField val uSeq: Long? = null
|
||||
@TarsId(0) @JvmField val uSrcAppId: Long? = null,
|
||||
@TarsId(1) @JvmField val uSrcInstId: Long? = null,
|
||||
@TarsId(2) @JvmField val uDstAppId: Long? = null,
|
||||
@TarsId(3) @JvmField val uDstInstId: Long? = null,
|
||||
@TarsId(4) @JvmField val uDstUin: Long? = null,
|
||||
@TarsId(5) @JvmField val fileName: ByteArray? = null,
|
||||
@TarsId(6) @JvmField val fileIndex: ByteArray? = null,
|
||||
@TarsId(7) @JvmField val fileMd5: ByteArray? = null,
|
||||
@TarsId(8) @JvmField val fileKey: ByteArray? = null,
|
||||
@TarsId(9) @JvmField val uServerIp: Long? = null,
|
||||
@TarsId(10) @JvmField val uServerPort: Long? = null,
|
||||
@TarsId(11) @JvmField val fileLen: Long? = null,
|
||||
@TarsId(12) @JvmField val sessionId: Long? = null,
|
||||
@TarsId(13) @JvmField val originfileMd5: ByteArray? = null,
|
||||
@TarsId(14) @JvmField val uOriginfiletype: Long? = null,
|
||||
@TarsId(15) @JvmField val uSeq: Long? = null
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class MsgType0x210SubMsgType0x20(
|
||||
@JceId(0) @JvmField val dwOpType: Long? = null,
|
||||
@JceId(1) @JvmField val dwType: Long? = null,
|
||||
@JceId(2) @JvmField val dwUin: Long? = null,
|
||||
@JceId(3) @JvmField val remaek: String? = ""
|
||||
@TarsId(0) @JvmField val dwOpType: Long? = null,
|
||||
@TarsId(1) @JvmField val dwType: Long? = null,
|
||||
@TarsId(2) @JvmField val dwUin: Long? = null,
|
||||
@TarsId(3) @JvmField val remaek: String? = ""
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class MsgType0x210SubMsgType0x24(
|
||||
@JceId(0) @JvmField val vPluginNumList: List<PluginNum>? = null
|
||||
@TarsId(0) @JvmField val vPluginNumList: List<PluginNum>? = null
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class PluginNum(
|
||||
@JceId(0) @JvmField val dwID: Long? = null,
|
||||
@JceId(1) @JvmField val dwNUm: Long? = null,
|
||||
@JceId(2) @JvmField val flag: Byte? = null
|
||||
@TarsId(0) @JvmField val dwID: Long? = null,
|
||||
@TarsId(1) @JvmField val dwNUm: Long? = null,
|
||||
@TarsId(2) @JvmField val flag: Byte? = null
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class MsgType0x210SubMsgType0xa(
|
||||
@JceId(0) @JvmField val uSrcAppId: Long? = null,
|
||||
@JceId(1) @JvmField val uSrcInstId: Long? = null,
|
||||
@JceId(2) @JvmField val uDstAppId: Long? = null,
|
||||
@JceId(3) @JvmField val uDstInstId: Long? = null,
|
||||
@JceId(4) @JvmField val uDstUin: Long? = null,
|
||||
@JceId(5) @JvmField val uType: Long? = null,
|
||||
@JceId(6) @JvmField val uServerIp: Long? = null,
|
||||
@JceId(7) @JvmField val uServerPort: Long? = null,
|
||||
@JceId(8) @JvmField val vUrlNotify: ByteArray? = null,
|
||||
@JceId(9) @JvmField val vTokenKey: ByteArray? = null,
|
||||
@JceId(10) @JvmField val uFileLen: Long? = null,
|
||||
@JceId(11) @JvmField val fileName: ByteArray? = null,
|
||||
@JceId(12) @JvmField val vMd5: ByteArray? = null,
|
||||
@JceId(13) @JvmField val sessionId: Long? = null,
|
||||
@JceId(14) @JvmField val originfileMd5: ByteArray? = null,
|
||||
@JceId(15) @JvmField val uOriginfiletype: Long? = null,
|
||||
@JceId(16) @JvmField val uSeq: Long? = null
|
||||
@TarsId(0) @JvmField val uSrcAppId: Long? = null,
|
||||
@TarsId(1) @JvmField val uSrcInstId: Long? = null,
|
||||
@TarsId(2) @JvmField val uDstAppId: Long? = null,
|
||||
@TarsId(3) @JvmField val uDstInstId: Long? = null,
|
||||
@TarsId(4) @JvmField val uDstUin: Long? = null,
|
||||
@TarsId(5) @JvmField val uType: Long? = null,
|
||||
@TarsId(6) @JvmField val uServerIp: Long? = null,
|
||||
@TarsId(7) @JvmField val uServerPort: Long? = null,
|
||||
@TarsId(8) @JvmField val vUrlNotify: ByteArray? = null,
|
||||
@TarsId(9) @JvmField val vTokenKey: ByteArray? = null,
|
||||
@TarsId(10) @JvmField val uFileLen: Long? = null,
|
||||
@TarsId(11) @JvmField val fileName: ByteArray? = null,
|
||||
@TarsId(12) @JvmField val vMd5: ByteArray? = null,
|
||||
@TarsId(13) @JvmField val sessionId: Long? = null,
|
||||
@TarsId(14) @JvmField val originfileMd5: ByteArray? = null,
|
||||
@TarsId(15) @JvmField val uOriginfiletype: Long? = null,
|
||||
@TarsId(16) @JvmField val uSeq: Long? = null
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class MsgType0x210SubMsgType0xe(
|
||||
@JceId(0) @JvmField val uint32SrcAppId: Long? = null,
|
||||
@JceId(1) @JvmField val uint32SrcInstId: Long? = null,
|
||||
@JceId(2) @JvmField val uint32DstAppId: Long? = null,
|
||||
@JceId(3) @JvmField val uint32DstInstId: Long? = null,
|
||||
@JceId(4) @JvmField val uint64DstUin: Long? = null,
|
||||
@JceId(5) @JvmField val uint64Sessionid: Long? = null,
|
||||
@JceId(6) @JvmField val uint32Operate: Long? = null,
|
||||
@JceId(7) @JvmField val uint32Seq: Long? = null,
|
||||
@JceId(8) @JvmField val uint32Code: Long? = null,
|
||||
@JceId(9) @JvmField val msg: String? = ""
|
||||
@TarsId(0) @JvmField val uint32SrcAppId: Long? = null,
|
||||
@TarsId(1) @JvmField val uint32SrcInstId: Long? = null,
|
||||
@TarsId(2) @JvmField val uint32DstAppId: Long? = null,
|
||||
@TarsId(3) @JvmField val uint32DstInstId: Long? = null,
|
||||
@TarsId(4) @JvmField val uint64DstUin: Long? = null,
|
||||
@TarsId(5) @JvmField val uint64Sessionid: Long? = null,
|
||||
@TarsId(6) @JvmField val uint32Operate: Long? = null,
|
||||
@TarsId(7) @JvmField val uint32Seq: Long? = null,
|
||||
@TarsId(8) @JvmField val uint32Code: Long? = null,
|
||||
@TarsId(9) @JvmField val msg: String? = ""
|
||||
) : JceStruct
|
||||
}
|
@ -1,72 +1,72 @@
|
||||
package net.mamoe.mirai.qqandroid.network.protocol.data.jce
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import moe.him188.jcekt.JceId
|
||||
import net.mamoe.mirai.qqandroid.network.Packet
|
||||
import net.mamoe.mirai.qqandroid.network.protocol.packet.EMPTY_BYTE_ARRAY
|
||||
import net.mamoe.mirai.qqandroid.utils.io.JceStruct
|
||||
import net.mamoe.mirai.qqandroid.utils.io.serialization.tars.TarsId
|
||||
import kotlin.jvm.JvmField
|
||||
|
||||
@Suppress("ArrayInDataClass")
|
||||
@Serializable
|
||||
internal class RequestPushNotify(
|
||||
@JceId(0) @JvmField val uin: Long? = 0L,
|
||||
@JceId(1) @JvmField val ctype: Byte = 0,
|
||||
@JceId(2) @JvmField val strService: String?,
|
||||
@JceId(3) @JvmField val strCmd: String?,
|
||||
@JceId(4) @JvmField val vNotifyCookie: ByteArray? = EMPTY_BYTE_ARRAY,
|
||||
@JceId(5) @JvmField val usMsgType: Int?,
|
||||
@JceId(6) @JvmField val wUserActive: Int?,
|
||||
@JceId(7) @JvmField val wGeneralFlag: Int?,
|
||||
@JceId(8) @JvmField val bindedUin: Long?,
|
||||
@JceId(9) @JvmField val stMsgInfo: MsgInfo?,
|
||||
@JceId(10) @JvmField val msgCtrlBuf: String?,
|
||||
@JceId(11) @JvmField val serverBuf: ByteArray?,
|
||||
@JceId(12) @JvmField val pingFlag: Long?,
|
||||
@JceId(13) @JvmField val svrip: Int?
|
||||
@TarsId(0) @JvmField val uin: Long? = 0L,
|
||||
@TarsId(1) @JvmField val ctype: Byte = 0,
|
||||
@TarsId(2) @JvmField val strService: String?,
|
||||
@TarsId(3) @JvmField val strCmd: String?,
|
||||
@TarsId(4) @JvmField val vNotifyCookie: ByteArray? = EMPTY_BYTE_ARRAY,
|
||||
@TarsId(5) @JvmField val usMsgType: Int?,
|
||||
@TarsId(6) @JvmField val wUserActive: Int?,
|
||||
@TarsId(7) @JvmField val wGeneralFlag: Int?,
|
||||
@TarsId(8) @JvmField val bindedUin: Long?,
|
||||
@TarsId(9) @JvmField val stMsgInfo: MsgInfo?,
|
||||
@TarsId(10) @JvmField val msgCtrlBuf: String?,
|
||||
@TarsId(11) @JvmField val serverBuf: ByteArray?,
|
||||
@TarsId(12) @JvmField val pingFlag: Long?,
|
||||
@TarsId(13) @JvmField val svrip: Int?
|
||||
) : JceStruct, Packet
|
||||
|
||||
@Serializable
|
||||
internal class MsgInfo(
|
||||
@JceId(0) @JvmField val lFromUin: Long = 0L,
|
||||
@JceId(1) @JvmField val uMsgTime: Long = 0L,
|
||||
@JceId(2) @JvmField val shMsgType: Short,
|
||||
@JceId(3) @JvmField val shMsgSeq: Short,
|
||||
@JceId(4) @JvmField val strMsg: String?,
|
||||
@JceId(5) @JvmField val uRealMsgTime: Int?,
|
||||
@JceId(6) @JvmField val vMsg: ByteArray,
|
||||
@JceId(7) @JvmField val uAppShareID: Long?,
|
||||
@JceId(8) @JvmField val vMsgCookies: ByteArray? = EMPTY_BYTE_ARRAY,
|
||||
@JceId(9) @JvmField val vAppShareCookie: ByteArray? = EMPTY_BYTE_ARRAY,
|
||||
@JceId(10) @JvmField val lMsgUid: Long?,
|
||||
@JceId(11) @JvmField val lLastChangeTime: Long?,
|
||||
@JceId(12) @JvmField val vCPicInfo: List<CPicInfo>?,
|
||||
@JceId(13) @JvmField val stShareData: ShareData?,
|
||||
@JceId(14) @JvmField val lFromInstId: Long?,
|
||||
@JceId(15) @JvmField val vRemarkOfSender: ByteArray?,
|
||||
@JceId(16) @JvmField val strFromMobile: String?,
|
||||
@JceId(17) @JvmField val strFromName: String?,
|
||||
@JceId(18) @JvmField val vNickName: List<String>?//,
|
||||
@TarsId(0) @JvmField val lFromUin: Long = 0L,
|
||||
@TarsId(1) @JvmField val uMsgTime: Long = 0L,
|
||||
@TarsId(2) @JvmField val shMsgType: Short,
|
||||
@TarsId(3) @JvmField val shMsgSeq: Short,
|
||||
@TarsId(4) @JvmField val strMsg: String?,
|
||||
@TarsId(5) @JvmField val uRealMsgTime: Int?,
|
||||
@TarsId(6) @JvmField val vMsg: ByteArray,
|
||||
@TarsId(7) @JvmField val uAppShareID: Long?,
|
||||
@TarsId(8) @JvmField val vMsgCookies: ByteArray? = EMPTY_BYTE_ARRAY,
|
||||
@TarsId(9) @JvmField val vAppShareCookie: ByteArray? = EMPTY_BYTE_ARRAY,
|
||||
@TarsId(10) @JvmField val lMsgUid: Long?,
|
||||
@TarsId(11) @JvmField val lLastChangeTime: Long?,
|
||||
@TarsId(12) @JvmField val vCPicInfo: List<CPicInfo>?,
|
||||
@TarsId(13) @JvmField val stShareData: ShareData?,
|
||||
@TarsId(14) @JvmField val lFromInstId: Long?,
|
||||
@TarsId(15) @JvmField val vRemarkOfSender: ByteArray?,
|
||||
@TarsId(16) @JvmField val strFromMobile: String?,
|
||||
@TarsId(17) @JvmField val strFromName: String?,
|
||||
@TarsId(18) @JvmField val vNickName: List<String>?//,
|
||||
//@SerialId(19) @JvmField val stC2CTmpMsgHead: TempMsgHead?
|
||||
) : JceStruct
|
||||
|
||||
|
||||
@Serializable
|
||||
internal class ShareData(
|
||||
@JceId(0) @JvmField val pkgname: String = "",
|
||||
@JceId(1) @JvmField val msgtail: String = "",
|
||||
@JceId(2) @JvmField val picurl: String = "",
|
||||
@JceId(3) @JvmField val url: String = ""
|
||||
@TarsId(0) @JvmField val pkgname: String = "",
|
||||
@TarsId(1) @JvmField val msgtail: String = "",
|
||||
@TarsId(2) @JvmField val picurl: String = "",
|
||||
@TarsId(3) @JvmField val url: String = ""
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class TempMsgHead(
|
||||
@JceId(0) @JvmField val c2c_type: Int? = 0,
|
||||
@JceId(1) @JvmField val serviceType: Int? = 0
|
||||
@TarsId(0) @JvmField val c2c_type: Int? = 0,
|
||||
@TarsId(1) @JvmField val serviceType: Int? = 0
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class CPicInfo(
|
||||
@JceId(0) @JvmField val vPath: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@JceId(1) @JvmField val vHost: ByteArray? = EMPTY_BYTE_ARRAY
|
||||
@TarsId(0) @JvmField val vPath: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@TarsId(1) @JvmField val vHost: ByteArray? = EMPTY_BYTE_ARRAY
|
||||
) : JceStruct
|
@ -1,26 +1,26 @@
|
||||
package net.mamoe.mirai.qqandroid.network.protocol.data.jce
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import moe.him188.jcekt.JceId
|
||||
import net.mamoe.mirai.qqandroid.utils.io.JceStruct
|
||||
import net.mamoe.mirai.qqandroid.utils.io.serialization.tars.TarsId
|
||||
import kotlin.jvm.JvmField
|
||||
|
||||
@Serializable
|
||||
internal class RequestMSFForceOffline(
|
||||
@JceId(0) @JvmField val uin: Long = 0L,
|
||||
@JceId(1) @JvmField val iSeqno: Long = 0L,
|
||||
@JceId(2) @JvmField val kickType: Byte = 0,
|
||||
@JceId(3) @JvmField val info: String = "",
|
||||
@JceId(4) @JvmField val title: String? = "",
|
||||
@JceId(5) @JvmField val sigKick: Byte? = 0,
|
||||
@JceId(6) @JvmField val vecSigKickData: ByteArray? = null,
|
||||
@JceId(7) @JvmField val sameDevice: Byte? = 0
|
||||
@TarsId(0) @JvmField val uin: Long = 0L,
|
||||
@TarsId(1) @JvmField val iSeqno: Long = 0L,
|
||||
@TarsId(2) @JvmField val kickType: Byte = 0,
|
||||
@TarsId(3) @JvmField val info: String = "",
|
||||
@TarsId(4) @JvmField val title: String? = "",
|
||||
@TarsId(5) @JvmField val sigKick: Byte? = 0,
|
||||
@TarsId(6) @JvmField val vecSigKickData: ByteArray? = null,
|
||||
@TarsId(7) @JvmField val sameDevice: Byte? = 0
|
||||
) : JceStruct
|
||||
|
||||
|
||||
@Serializable
|
||||
internal class RspMSFForceOffline(
|
||||
@JceId(0) @JvmField val uin: Long,
|
||||
@JceId(1) @JvmField val seq: Long,
|
||||
@JceId(2) @JvmField val const: Byte = 0
|
||||
@TarsId(0) @JvmField val uin: Long,
|
||||
@TarsId(1) @JvmField val seq: Long,
|
||||
@TarsId(2) @JvmField val const: Byte = 0
|
||||
) : JceStruct
|
@ -1,38 +1,38 @@
|
||||
package net.mamoe.mirai.qqandroid.network.protocol.data.jce
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import moe.him188.jcekt.JceId
|
||||
import net.mamoe.mirai.qqandroid.network.protocol.packet.EMPTY_BYTE_ARRAY
|
||||
import net.mamoe.mirai.qqandroid.utils.io.JceStruct
|
||||
import net.mamoe.mirai.qqandroid.utils.io.serialization.tars.TarsId
|
||||
import kotlin.jvm.JvmField
|
||||
|
||||
private val EMPTY_MAP = mapOf<String, String>()
|
||||
|
||||
@Serializable
|
||||
internal class RequestPacket(
|
||||
@JceId(1) @JvmField val iVersion: Short? = 3,
|
||||
@JceId(2) @JvmField val cPacketType: Byte = 0,
|
||||
@JceId(3) @JvmField val iMessageType: Int = 0,
|
||||
@JceId(4) @JvmField val iRequestId: Int = 0,
|
||||
@JceId(5) @JvmField val sServantName: String = "",
|
||||
@JceId(6) @JvmField val sFuncName: String = "",
|
||||
@JceId(7) @JvmField val sBuffer: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@JceId(8) @JvmField val iTimeout: Int? = 0,
|
||||
@JceId(9) @JvmField val context: Map<String, String>? = EMPTY_MAP,
|
||||
@JceId(10) @JvmField val status: Map<String, String>? = EMPTY_MAP
|
||||
@TarsId(1) @JvmField val iVersion: Short? = 3,
|
||||
@TarsId(2) @JvmField val cPacketType: Byte = 0,
|
||||
@TarsId(3) @JvmField val iMessageType: Int = 0,
|
||||
@TarsId(4) @JvmField val iRequestId: Int = 0,
|
||||
@TarsId(5) @JvmField val sServantName: String = "",
|
||||
@TarsId(6) @JvmField val sFuncName: String = "",
|
||||
@TarsId(7) @JvmField val sBuffer: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@TarsId(8) @JvmField val iTimeout: Int? = 0,
|
||||
@TarsId(9) @JvmField val context: Map<String, String>? = EMPTY_MAP,
|
||||
@TarsId(10) @JvmField val status: Map<String, String>? = EMPTY_MAP
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class RequestDataVersion3(
|
||||
@JceId(0) @JvmField val map: Map<String, ByteArray> // 注意: ByteArray 不能直接放序列化的 JceStruct!! 要放类似 RequestDataStructSvcReqRegister 的
|
||||
@TarsId(0) @JvmField val map: Map<String, ByteArray> // 注意: ByteArray 不能直接放序列化的 JceStruct!! 要放类似 RequestDataStructSvcReqRegister 的
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class RequestDataVersion2(
|
||||
@JceId(0) @JvmField val map: Map<String, Map<String, ByteArray>>
|
||||
@TarsId(0) @JvmField val map: Map<String, Map<String, ByteArray>>
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class RequestDataStructSvcReqRegister(
|
||||
@JceId(0) @JvmField val struct: SvcReqRegister
|
||||
@TarsId(0) @JvmField val struct: SvcReqRegister
|
||||
) : JceStruct
|
@ -1,14 +1,14 @@
|
||||
package net.mamoe.mirai.qqandroid.network.protocol.data.jce
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import moe.him188.jcekt.JceId
|
||||
import net.mamoe.mirai.qqandroid.utils.io.JceStruct
|
||||
import net.mamoe.mirai.qqandroid.utils.io.serialization.tars.TarsId
|
||||
import kotlin.jvm.JvmField
|
||||
|
||||
@Serializable
|
||||
internal class RequestPushForceOffline(
|
||||
@JceId(0) @JvmField val uin: Long,
|
||||
@JceId(1) @JvmField val title: String? = "",
|
||||
@JceId(2) @JvmField val tips: String? = "",
|
||||
@JceId(3) @JvmField val sameDevice: Byte? = null
|
||||
@TarsId(0) @JvmField val uin: Long,
|
||||
@TarsId(1) @JvmField val title: String? = "",
|
||||
@TarsId(2) @JvmField val tips: String? = "",
|
||||
@TarsId(3) @JvmField val sameDevice: Byte? = null
|
||||
) : JceStruct
|
@ -1,47 +1,47 @@
|
||||
package net.mamoe.mirai.qqandroid.network.protocol.data.jce
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import moe.him188.jcekt.JceId
|
||||
import net.mamoe.mirai.qqandroid.utils.io.JceStruct
|
||||
import net.mamoe.mirai.qqandroid.utils.io.serialization.tars.TarsId
|
||||
import kotlin.jvm.JvmField
|
||||
|
||||
@Serializable
|
||||
internal class SvcReqRegister(
|
||||
@JceId(0) @JvmField val lUin: Long = 0L,
|
||||
@JceId(1) @JvmField val lBid: Long = 0L,
|
||||
@JceId(2) @JvmField val cConnType: Byte = 0,
|
||||
@JceId(3) @JvmField val sOther: String = "",
|
||||
@JceId(4) @JvmField val iStatus: Int = 11,
|
||||
@JceId(5) @JvmField val bOnlinePush: Byte = 0,
|
||||
@JceId(6) @JvmField val bIsOnline: Byte = 0,
|
||||
@JceId(7) @JvmField val bIsShowOnline: Byte = 0,
|
||||
@JceId(8) @JvmField val bKikPC: Byte = 0,
|
||||
@JceId(9) @JvmField val bKikWeak: Byte = 0,
|
||||
@JceId(10) @JvmField val timeStamp: Long = 0L,
|
||||
@JceId(11) @JvmField val iOSVersion: Long = 0L,
|
||||
@JceId(12) @JvmField val cNetType: Byte = 0,
|
||||
@JceId(13) @JvmField val sBuildVer: String? = "",
|
||||
@JceId(14) @JvmField val bRegType: Byte = 0,
|
||||
@JceId(15) @JvmField val vecDevParam: ByteArray? = null,
|
||||
@JceId(16) @JvmField val vecGuid: ByteArray? = null,
|
||||
@JceId(17) @JvmField val iLocaleID: Int = 2052,
|
||||
@JceId(18) @JvmField val bSlientPush: Byte = 0,
|
||||
@JceId(19) @JvmField val strDevName: String? = null,
|
||||
@JceId(20) @JvmField val strDevType: String? = null,
|
||||
@JceId(21) @JvmField val strOSVer: String? = null,
|
||||
@JceId(22) @JvmField val bOpenPush: Byte = 1,
|
||||
@JceId(23) @JvmField val iLargeSeq: Long = 0L,
|
||||
@JceId(24) @JvmField val iLastWatchStartTime: Long = 0L,
|
||||
@JceId(26) @JvmField val uOldSSOIp: Long = 0L,
|
||||
@JceId(27) @JvmField val uNewSSOIp: Long = 0L,
|
||||
@JceId(28) @JvmField val sChannelNo: String? = null,
|
||||
@JceId(29) @JvmField val lCpId: Long = 0L,
|
||||
@JceId(30) @JvmField val strVendorName: String? = null,
|
||||
@JceId(31) @JvmField val strVendorOSName: String? = null,
|
||||
@JceId(32) @JvmField val strIOSIdfa: String? = null,
|
||||
@JceId(33) @JvmField val bytes_0x769_reqbody: ByteArray? = null,
|
||||
@JceId(34) @JvmField val bIsSetStatus: Byte = 0,
|
||||
@JceId(35) @JvmField val vecServerBuf: ByteArray? = null,
|
||||
@JceId(36) @JvmField val bSetMute: Byte = 0
|
||||
@TarsId(0) @JvmField val lUin: Long = 0L,
|
||||
@TarsId(1) @JvmField val lBid: Long = 0L,
|
||||
@TarsId(2) @JvmField val cConnType: Byte = 0,
|
||||
@TarsId(3) @JvmField val sOther: String = "",
|
||||
@TarsId(4) @JvmField val iStatus: Int = 11,
|
||||
@TarsId(5) @JvmField val bOnlinePush: Byte = 0,
|
||||
@TarsId(6) @JvmField val bIsOnline: Byte = 0,
|
||||
@TarsId(7) @JvmField val bIsShowOnline: Byte = 0,
|
||||
@TarsId(8) @JvmField val bKikPC: Byte = 0,
|
||||
@TarsId(9) @JvmField val bKikWeak: Byte = 0,
|
||||
@TarsId(10) @JvmField val timeStamp: Long = 0L,
|
||||
@TarsId(11) @JvmField val iOSVersion: Long = 0L,
|
||||
@TarsId(12) @JvmField val cNetType: Byte = 0,
|
||||
@TarsId(13) @JvmField val sBuildVer: String? = "",
|
||||
@TarsId(14) @JvmField val bRegType: Byte = 0,
|
||||
@TarsId(15) @JvmField val vecDevParam: ByteArray? = null,
|
||||
@TarsId(16) @JvmField val vecGuid: ByteArray? = null,
|
||||
@TarsId(17) @JvmField val iLocaleID: Int = 2052,
|
||||
@TarsId(18) @JvmField val bSlientPush: Byte = 0,
|
||||
@TarsId(19) @JvmField val strDevName: String? = null,
|
||||
@TarsId(20) @JvmField val strDevType: String? = null,
|
||||
@TarsId(21) @JvmField val strOSVer: String? = null,
|
||||
@TarsId(22) @JvmField val bOpenPush: Byte = 1,
|
||||
@TarsId(23) @JvmField val iLargeSeq: Long = 0L,
|
||||
@TarsId(24) @JvmField val iLastWatchStartTime: Long = 0L,
|
||||
@TarsId(26) @JvmField val uOldSSOIp: Long = 0L,
|
||||
@TarsId(27) @JvmField val uNewSSOIp: Long = 0L,
|
||||
@TarsId(28) @JvmField val sChannelNo: String? = null,
|
||||
@TarsId(29) @JvmField val lCpId: Long = 0L,
|
||||
@TarsId(30) @JvmField val strVendorName: String? = null,
|
||||
@TarsId(31) @JvmField val strVendorOSName: String? = null,
|
||||
@TarsId(32) @JvmField val strIOSIdfa: String? = null,
|
||||
@TarsId(33) @JvmField val bytes_0x769_reqbody: ByteArray? = null,
|
||||
@TarsId(34) @JvmField val bIsSetStatus: Byte = 0,
|
||||
@TarsId(35) @JvmField val vecServerBuf: ByteArray? = null,
|
||||
@TarsId(36) @JvmField val bSetMute: Byte = 0
|
||||
// @SerialId(25) var vecBindUin: ArrayList<*>? = null // ?? 未知泛型
|
||||
) : JceStruct
|
@ -1,97 +1,97 @@
|
||||
package net.mamoe.mirai.qqandroid.network.protocol.data.jce
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import moe.him188.jcekt.JceId
|
||||
import net.mamoe.mirai.qqandroid.utils.io.JceStruct
|
||||
import net.mamoe.mirai.qqandroid.utils.io.serialization.tars.TarsId
|
||||
import kotlin.jvm.JvmField
|
||||
|
||||
@Serializable
|
||||
internal class GetTroopListReqV2Simplify(
|
||||
@JceId(0) @JvmField val uin: Long,
|
||||
@JceId(1) @JvmField val getMSFMsgFlag: Byte? = null,
|
||||
@JceId(2) @JvmField val vecCookies: ByteArray? = null,
|
||||
@JceId(3) @JvmField val vecGroupInfo: List<StTroopNumSimplify>? = null,
|
||||
@JceId(4) @JvmField val groupFlagExt: Byte? = null,
|
||||
@JceId(5) @JvmField val shVersion: Int? = null,
|
||||
@JceId(6) @JvmField val dwCompanyId: Long? = null,
|
||||
@JceId(7) @JvmField val versionNum: Long? = null,
|
||||
@JceId(8) @JvmField val getLongGroupName: Byte? = null
|
||||
@TarsId(0) @JvmField val uin: Long,
|
||||
@TarsId(1) @JvmField val getMSFMsgFlag: Byte? = null,
|
||||
@TarsId(2) @JvmField val vecCookies: ByteArray? = null,
|
||||
@TarsId(3) @JvmField val vecGroupInfo: List<StTroopNumSimplify>? = null,
|
||||
@TarsId(4) @JvmField val groupFlagExt: Byte? = null,
|
||||
@TarsId(5) @JvmField val shVersion: Int? = null,
|
||||
@TarsId(6) @JvmField val dwCompanyId: Long? = null,
|
||||
@TarsId(7) @JvmField val versionNum: Long? = null,
|
||||
@TarsId(8) @JvmField val getLongGroupName: Byte? = null
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class StTroopNumSimplify(
|
||||
@JceId(0) @JvmField val groupCode: Long,
|
||||
@JceId(1) @JvmField val dwGroupInfoSeq: Long? = null,
|
||||
@JceId(2) @JvmField val dwGroupFlagExt: Long? = null,
|
||||
@JceId(3) @JvmField val dwGroupRankSeq: Long? = null
|
||||
@TarsId(0) @JvmField val groupCode: Long,
|
||||
@TarsId(1) @JvmField val dwGroupInfoSeq: Long? = null,
|
||||
@TarsId(2) @JvmField val dwGroupFlagExt: Long? = null,
|
||||
@TarsId(3) @JvmField val dwGroupRankSeq: Long? = null
|
||||
) : JceStruct
|
||||
|
||||
|
||||
@Serializable
|
||||
internal class GetTroopListRespV2(
|
||||
@JceId(0) @JvmField val uin: Long,
|
||||
@JceId(1) @JvmField val troopCount: Short,
|
||||
@JceId(2) @JvmField val result: Int,
|
||||
@JceId(3) @JvmField val errorCode: Short? = null,
|
||||
@JceId(4) @JvmField val vecCookies: ByteArray? = null,
|
||||
@JceId(5) @JvmField val vecTroopList: List<StTroopNum>? = null,
|
||||
@JceId(6) @JvmField val vecTroopListDel: List<StTroopNum>? = null,
|
||||
@JceId(7) @JvmField val vecTroopRank: List<StGroupRankInfo>? = null,
|
||||
@JceId(8) @JvmField val vecFavGroup: List<StFavoriteGroup>? = null,
|
||||
@JceId(9) @JvmField val vecTroopListExt: List<StTroopNum>? = null
|
||||
@TarsId(0) @JvmField val uin: Long,
|
||||
@TarsId(1) @JvmField val troopCount: Short,
|
||||
@TarsId(2) @JvmField val result: Int,
|
||||
@TarsId(3) @JvmField val errorCode: Short? = null,
|
||||
@TarsId(4) @JvmField val vecCookies: ByteArray? = null,
|
||||
@TarsId(5) @JvmField val vecTroopList: List<StTroopNum>? = null,
|
||||
@TarsId(6) @JvmField val vecTroopListDel: List<StTroopNum>? = null,
|
||||
@TarsId(7) @JvmField val vecTroopRank: List<StGroupRankInfo>? = null,
|
||||
@TarsId(8) @JvmField val vecFavGroup: List<StFavoriteGroup>? = null,
|
||||
@TarsId(9) @JvmField val vecTroopListExt: List<StTroopNum>? = null
|
||||
) : JceStruct
|
||||
|
||||
|
||||
@Serializable
|
||||
internal class StTroopNum(
|
||||
@JceId(0) @JvmField val groupUin: Long,
|
||||
@JceId(1) @JvmField val groupCode: Long,
|
||||
@JceId(2) @JvmField val flag: Byte? = null,
|
||||
@JceId(3) @JvmField val dwGroupInfoSeq: Long? = null,
|
||||
@JceId(4) @JvmField val groupName: String = "",
|
||||
@JceId(5) @JvmField val groupMemo: String = "",
|
||||
@JceId(6) @JvmField val dwGroupFlagExt: Long? = null,
|
||||
@JceId(7) @JvmField val dwGroupRankSeq: Long? = null,
|
||||
@JceId(8) @JvmField val dwCertificationType: Long? = null,
|
||||
@JceId(9) @JvmField val dwShutUpTimestamp: Long? = null,
|
||||
@JceId(10) @JvmField val dwMyShutUpTimestamp: Long? = null,
|
||||
@JceId(11) @JvmField val dwCmdUinUinFlag: Long? = null,
|
||||
@JceId(12) @JvmField val dwAdditionalFlag: Long? = null,
|
||||
@JceId(13) @JvmField val dwGroupTypeFlag: Long? = null,
|
||||
@JceId(14) @JvmField val dwGroupSecType: Long? = null,
|
||||
@JceId(15) @JvmField val dwGroupSecTypeInfo: Long? = null,
|
||||
@JceId(16) @JvmField val dwGroupClassExt: Long? = null,
|
||||
@JceId(17) @JvmField val dwAppPrivilegeFlag: Long? = null,
|
||||
@JceId(18) @JvmField val dwSubscriptionUin: Long? = null,
|
||||
@JceId(19) @JvmField val dwMemberNum: Long? = null,
|
||||
@JceId(20) @JvmField val dwMemberNumSeq: Long? = null,
|
||||
@JceId(21) @JvmField val dwMemberCardSeq: Long? = null,
|
||||
@JceId(22) @JvmField val dwGroupFlagExt3: Long? = null,
|
||||
@JceId(23) @JvmField val dwGroupOwnerUin: Long,
|
||||
@JceId(24) @JvmField val isConfGroup: Byte? = null,
|
||||
@JceId(25) @JvmField val isModifyConfGroupFace: Byte? = null,
|
||||
@JceId(26) @JvmField val isModifyConfGroupName: Byte? = null,
|
||||
@JceId(27) @JvmField val dwCmduinJoinTime: Long? = null,
|
||||
@JceId(28) @JvmField val ulCompanyId: Long? = null,
|
||||
@JceId(29) @JvmField val dwMaxGroupMemberNum: Long? = null,
|
||||
@JceId(30) @JvmField val dwCmdUinGroupMask: Long? = null,
|
||||
@JceId(31) @JvmField val udwHLGuildAppid: Long? = null,
|
||||
@JceId(32) @JvmField val udwHLGuildSubType: Long? = null,
|
||||
@JceId(33) @JvmField val udwCmdUinRingtoneID: Long? = null,
|
||||
@JceId(34) @JvmField val udwCmdUinFlagEx2: Long? = null
|
||||
@TarsId(0) @JvmField val groupUin: Long,
|
||||
@TarsId(1) @JvmField val groupCode: Long,
|
||||
@TarsId(2) @JvmField val flag: Byte? = null,
|
||||
@TarsId(3) @JvmField val dwGroupInfoSeq: Long? = null,
|
||||
@TarsId(4) @JvmField val groupName: String = "",
|
||||
@TarsId(5) @JvmField val groupMemo: String = "",
|
||||
@TarsId(6) @JvmField val dwGroupFlagExt: Long? = null,
|
||||
@TarsId(7) @JvmField val dwGroupRankSeq: Long? = null,
|
||||
@TarsId(8) @JvmField val dwCertificationType: Long? = null,
|
||||
@TarsId(9) @JvmField val dwShutUpTimestamp: Long? = null,
|
||||
@TarsId(10) @JvmField val dwMyShutUpTimestamp: Long? = null,
|
||||
@TarsId(11) @JvmField val dwCmdUinUinFlag: Long? = null,
|
||||
@TarsId(12) @JvmField val dwAdditionalFlag: Long? = null,
|
||||
@TarsId(13) @JvmField val dwGroupTypeFlag: Long? = null,
|
||||
@TarsId(14) @JvmField val dwGroupSecType: Long? = null,
|
||||
@TarsId(15) @JvmField val dwGroupSecTypeInfo: Long? = null,
|
||||
@TarsId(16) @JvmField val dwGroupClassExt: Long? = null,
|
||||
@TarsId(17) @JvmField val dwAppPrivilegeFlag: Long? = null,
|
||||
@TarsId(18) @JvmField val dwSubscriptionUin: Long? = null,
|
||||
@TarsId(19) @JvmField val dwMemberNum: Long? = null,
|
||||
@TarsId(20) @JvmField val dwMemberNumSeq: Long? = null,
|
||||
@TarsId(21) @JvmField val dwMemberCardSeq: Long? = null,
|
||||
@TarsId(22) @JvmField val dwGroupFlagExt3: Long? = null,
|
||||
@TarsId(23) @JvmField val dwGroupOwnerUin: Long,
|
||||
@TarsId(24) @JvmField val isConfGroup: Byte? = null,
|
||||
@TarsId(25) @JvmField val isModifyConfGroupFace: Byte? = null,
|
||||
@TarsId(26) @JvmField val isModifyConfGroupName: Byte? = null,
|
||||
@TarsId(27) @JvmField val dwCmduinJoinTime: Long? = null,
|
||||
@TarsId(28) @JvmField val ulCompanyId: Long? = null,
|
||||
@TarsId(29) @JvmField val dwMaxGroupMemberNum: Long? = null,
|
||||
@TarsId(30) @JvmField val dwCmdUinGroupMask: Long? = null,
|
||||
@TarsId(31) @JvmField val udwHLGuildAppid: Long? = null,
|
||||
@TarsId(32) @JvmField val udwHLGuildSubType: Long? = null,
|
||||
@TarsId(33) @JvmField val udwCmdUinRingtoneID: Long? = null,
|
||||
@TarsId(34) @JvmField val udwCmdUinFlagEx2: Long? = null
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class StGroupRankInfo(
|
||||
@JceId(0) @JvmField val dwGroupCode: Long,
|
||||
@JceId(1) @JvmField val groupRankSysFlag: Byte? = null,
|
||||
@JceId(2) @JvmField val groupRankUserFlag: Byte? = null,
|
||||
@JceId(3) @JvmField val vecRankMap: List<StLevelRankPair>? = null,
|
||||
@JceId(4) @JvmField val dwGroupRankSeq: Long? = null,
|
||||
@JceId(5) @JvmField val ownerName: String? = "",
|
||||
@JceId(6) @JvmField val adminName: String? = "",
|
||||
@JceId(7) @JvmField val dwOfficeMode: Long? = null,
|
||||
@JceId(9) @JvmField val fuckIssue405: List<FuckIssue405?>? = null // fake
|
||||
@TarsId(0) @JvmField val dwGroupCode: Long,
|
||||
@TarsId(1) @JvmField val groupRankSysFlag: Byte? = null,
|
||||
@TarsId(2) @JvmField val groupRankUserFlag: Byte? = null,
|
||||
@TarsId(3) @JvmField val vecRankMap: List<StLevelRankPair>? = null,
|
||||
@TarsId(4) @JvmField val dwGroupRankSeq: Long? = null,
|
||||
@TarsId(5) @JvmField val ownerName: String? = "",
|
||||
@TarsId(6) @JvmField val adminName: String? = "",
|
||||
@TarsId(7) @JvmField val dwOfficeMode: Long? = null,
|
||||
@TarsId(9) @JvmField val fuckIssue405: List<FuckIssue405?>? = null // fake
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
@ -99,89 +99,89 @@ internal class FuckIssue405
|
||||
|
||||
@Serializable
|
||||
internal class StFavoriteGroup(
|
||||
@JceId(0) @JvmField val dwGroupCode: Long,
|
||||
@JceId(1) @JvmField val dwTimestamp: Long? = null,
|
||||
@JceId(2) @JvmField val dwSnsFlag: Long? = 1L,
|
||||
@JceId(3) @JvmField val dwOpenTimestamp: Long? = null
|
||||
@TarsId(0) @JvmField val dwGroupCode: Long,
|
||||
@TarsId(1) @JvmField val dwTimestamp: Long? = null,
|
||||
@TarsId(2) @JvmField val dwSnsFlag: Long? = 1L,
|
||||
@TarsId(3) @JvmField val dwOpenTimestamp: Long? = null
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class StLevelRankPair(
|
||||
@JceId(0) @JvmField val dwLevel: Long? = null,
|
||||
@JceId(1) @JvmField val rank: String? = ""
|
||||
@TarsId(0) @JvmField val dwLevel: Long? = null,
|
||||
@TarsId(1) @JvmField val rank: String? = ""
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class GetTroopMemberListReq(
|
||||
@JceId(0) @JvmField val uin: Long,
|
||||
@JceId(1) @JvmField val groupCode: Long,
|
||||
@JceId(2) @JvmField val nextUin: Long,
|
||||
@JceId(3) @JvmField val groupUin: Long,
|
||||
@JceId(4) @JvmField val version: Long? = null,
|
||||
@JceId(5) @JvmField val reqType: Long? = null,
|
||||
@JceId(6) @JvmField val getListAppointTime: Long? = null,
|
||||
@JceId(7) @JvmField val richCardNameVer: Byte? = null
|
||||
@TarsId(0) @JvmField val uin: Long,
|
||||
@TarsId(1) @JvmField val groupCode: Long,
|
||||
@TarsId(2) @JvmField val nextUin: Long,
|
||||
@TarsId(3) @JvmField val groupUin: Long,
|
||||
@TarsId(4) @JvmField val version: Long? = null,
|
||||
@TarsId(5) @JvmField val reqType: Long? = null,
|
||||
@TarsId(6) @JvmField val getListAppointTime: Long? = null,
|
||||
@TarsId(7) @JvmField val richCardNameVer: Byte? = null
|
||||
) : JceStruct
|
||||
|
||||
|
||||
@Serializable
|
||||
internal class GetTroopMemberListResp(
|
||||
@JceId(0) @JvmField val uin: Long,
|
||||
@JceId(1) @JvmField val groupCode: Long,
|
||||
@JceId(2) @JvmField val groupUin: Long,
|
||||
@JceId(3) @JvmField val vecTroopMember: List<StTroopMemberInfo>,
|
||||
@JceId(4) @JvmField val nextUin: Long,
|
||||
@JceId(5) @JvmField val result: Int,
|
||||
@JceId(6) @JvmField val errorCode: Short? = null,
|
||||
@JceId(7) @JvmField val officeMode: Long? = null,
|
||||
@JceId(8) @JvmField val nextGetTime: Long? = null
|
||||
@TarsId(0) @JvmField val uin: Long,
|
||||
@TarsId(1) @JvmField val groupCode: Long,
|
||||
@TarsId(2) @JvmField val groupUin: Long,
|
||||
@TarsId(3) @JvmField val vecTroopMember: List<StTroopMemberInfo>,
|
||||
@TarsId(4) @JvmField val nextUin: Long,
|
||||
@TarsId(5) @JvmField val result: Int,
|
||||
@TarsId(6) @JvmField val errorCode: Short? = null,
|
||||
@TarsId(7) @JvmField val officeMode: Long? = null,
|
||||
@TarsId(8) @JvmField val nextGetTime: Long? = null
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class StTroopMemberInfo(
|
||||
@JceId(0) @JvmField val memberUin: Long,
|
||||
@JceId(1) @JvmField val faceId: Short,
|
||||
@JceId(2) @JvmField val age: Byte,
|
||||
@JceId(3) @JvmField val gender: Byte,
|
||||
@JceId(4) @JvmField val nick: String = "",
|
||||
@JceId(5) @JvmField val status: Byte = 20,
|
||||
@JceId(6) @JvmField val sShowName: String? = null,
|
||||
@JceId(8) @JvmField val sName: String? = null,
|
||||
@JceId(9) @JvmField val cGender: Byte? = null,
|
||||
@JceId(10) @JvmField val sPhone: String? = "",
|
||||
@JceId(11) @JvmField val sEmail: String? = "",
|
||||
@JceId(12) @JvmField val sMemo: String? = "",
|
||||
@JceId(13) @JvmField val autoRemark: String? = "",
|
||||
@JceId(14) @JvmField val dwMemberLevel: Long? = null,
|
||||
@JceId(15) @JvmField val dwJoinTime: Long? = null,
|
||||
@JceId(16) @JvmField val dwLastSpeakTime: Long? = null,
|
||||
@JceId(17) @JvmField val dwCreditLevel: Long? = null,
|
||||
@JceId(18) @JvmField val dwFlag: Long? = null,
|
||||
@JceId(19) @JvmField val dwFlagExt: Long? = null,
|
||||
@JceId(20) @JvmField val dwPoint: Long? = null,
|
||||
@JceId(21) @JvmField val concerned: Byte? = null,
|
||||
@JceId(22) @JvmField val shielded: Byte? = null,
|
||||
@JceId(23) @JvmField val sSpecialTitle: String? = "",
|
||||
@JceId(24) @JvmField val dwSpecialTitleExpireTime: Long? = null,
|
||||
@JceId(25) @JvmField val job: String? = "",
|
||||
@JceId(26) @JvmField val apolloFlag: Byte? = null,
|
||||
@JceId(27) @JvmField val dwApolloTimestamp: Long? = null,
|
||||
@JceId(28) @JvmField val dwGlobalGroupLevel: Long? = null,
|
||||
@JceId(29) @JvmField val dwTitleId: Long? = null,
|
||||
@JceId(30) @JvmField val dwShutupTimestap: Long? = null,
|
||||
@JceId(31) @JvmField val dwGlobalGroupPoint: Long? = null,
|
||||
@JceId(32) @JvmField val qzusrinfo: QzoneUserInfo? = null,
|
||||
@JceId(33) @JvmField val richCardNameVer: Byte? = null,
|
||||
@JceId(34) @JvmField val dwVipType: Long? = null,
|
||||
@JceId(35) @JvmField val dwVipLevel: Long? = null,
|
||||
@JceId(36) @JvmField val dwBigClubLevel: Long? = null,
|
||||
@JceId(37) @JvmField val dwBigClubFlag: Long? = null,
|
||||
@JceId(38) @JvmField val dwNameplate: Long? = null,
|
||||
@JceId(39) @JvmField val vecGroupHonor: ByteArray? = null
|
||||
@TarsId(0) @JvmField val memberUin: Long,
|
||||
@TarsId(1) @JvmField val faceId: Short,
|
||||
@TarsId(2) @JvmField val age: Byte,
|
||||
@TarsId(3) @JvmField val gender: Byte,
|
||||
@TarsId(4) @JvmField val nick: String = "",
|
||||
@TarsId(5) @JvmField val status: Byte = 20,
|
||||
@TarsId(6) @JvmField val sShowName: String? = null,
|
||||
@TarsId(8) @JvmField val sName: String? = null,
|
||||
@TarsId(9) @JvmField val cGender: Byte? = null,
|
||||
@TarsId(10) @JvmField val sPhone: String? = "",
|
||||
@TarsId(11) @JvmField val sEmail: String? = "",
|
||||
@TarsId(12) @JvmField val sMemo: String? = "",
|
||||
@TarsId(13) @JvmField val autoRemark: String? = "",
|
||||
@TarsId(14) @JvmField val dwMemberLevel: Long? = null,
|
||||
@TarsId(15) @JvmField val dwJoinTime: Long? = null,
|
||||
@TarsId(16) @JvmField val dwLastSpeakTime: Long? = null,
|
||||
@TarsId(17) @JvmField val dwCreditLevel: Long? = null,
|
||||
@TarsId(18) @JvmField val dwFlag: Long? = null,
|
||||
@TarsId(19) @JvmField val dwFlagExt: Long? = null,
|
||||
@TarsId(20) @JvmField val dwPoint: Long? = null,
|
||||
@TarsId(21) @JvmField val concerned: Byte? = null,
|
||||
@TarsId(22) @JvmField val shielded: Byte? = null,
|
||||
@TarsId(23) @JvmField val sSpecialTitle: String? = "",
|
||||
@TarsId(24) @JvmField val dwSpecialTitleExpireTime: Long? = null,
|
||||
@TarsId(25) @JvmField val job: String? = "",
|
||||
@TarsId(26) @JvmField val apolloFlag: Byte? = null,
|
||||
@TarsId(27) @JvmField val dwApolloTimestamp: Long? = null,
|
||||
@TarsId(28) @JvmField val dwGlobalGroupLevel: Long? = null,
|
||||
@TarsId(29) @JvmField val dwTitleId: Long? = null,
|
||||
@TarsId(30) @JvmField val dwShutupTimestap: Long? = null,
|
||||
@TarsId(31) @JvmField val dwGlobalGroupPoint: Long? = null,
|
||||
@TarsId(32) @JvmField val qzusrinfo: QzoneUserInfo? = null,
|
||||
@TarsId(33) @JvmField val richCardNameVer: Byte? = null,
|
||||
@TarsId(34) @JvmField val dwVipType: Long? = null,
|
||||
@TarsId(35) @JvmField val dwVipLevel: Long? = null,
|
||||
@TarsId(36) @JvmField val dwBigClubLevel: Long? = null,
|
||||
@TarsId(37) @JvmField val dwBigClubFlag: Long? = null,
|
||||
@TarsId(38) @JvmField val dwNameplate: Long? = null,
|
||||
@TarsId(39) @JvmField val vecGroupHonor: ByteArray? = null
|
||||
) : JceStruct
|
||||
|
||||
@Serializable
|
||||
internal class QzoneUserInfo(
|
||||
@JceId(0) @JvmField val eStarState: Int? = null,
|
||||
@JceId(1) @JvmField val extendInfo: Map<String, String>? = null
|
||||
@TarsId(0) @JvmField val eStarState: Int? = null,
|
||||
@TarsId(1) @JvmField val extendInfo: Map<String, String>? = null
|
||||
) : JceStruct
|
@ -1,7 +1,7 @@
|
||||
package net.mamoe.mirai.qqandroid.network.protocol.data.proto
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.protobuf.ProtoId
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
import net.mamoe.mirai.qqandroid.network.protocol.packet.EMPTY_BYTE_ARRAY
|
||||
import net.mamoe.mirai.qqandroid.utils.io.ProtoBuf
|
||||
import kotlin.jvm.JvmField
|
||||
@ -10,118 +10,118 @@ import kotlin.jvm.JvmField
|
||||
internal class Cmd0x352 : ProtoBuf {
|
||||
@Serializable
|
||||
internal class DelImgReq(
|
||||
@ProtoId(1) @JvmField val srcUin: Long = 0L,
|
||||
@ProtoId(2) @JvmField val dstUin: Long = 0L,
|
||||
@ProtoId(3) @JvmField val reqTerm: Int = 0,
|
||||
@ProtoId(4) @JvmField val reqPlatformType: Int = 0,
|
||||
@ProtoId(5) @JvmField val buType: Int = 0,
|
||||
@ProtoId(6) @JvmField val buildVer: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(7) @JvmField val fileResid: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(8) @JvmField val picWidth: Int = 0,
|
||||
@ProtoId(9) @JvmField val picHeight: Int = 0
|
||||
@ProtoNumber(1) @JvmField val srcUin: Long = 0L,
|
||||
@ProtoNumber(2) @JvmField val dstUin: Long = 0L,
|
||||
@ProtoNumber(3) @JvmField val reqTerm: Int = 0,
|
||||
@ProtoNumber(4) @JvmField val reqPlatformType: Int = 0,
|
||||
@ProtoNumber(5) @JvmField val buType: Int = 0,
|
||||
@ProtoNumber(6) @JvmField val buildVer: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(7) @JvmField val fileResid: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(8) @JvmField val picWidth: Int = 0,
|
||||
@ProtoNumber(9) @JvmField val picHeight: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class DelImgRsp(
|
||||
@ProtoId(1) @JvmField val result: Int = 0,
|
||||
@ProtoId(2) @JvmField val failMsg: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(3) @JvmField val fileResid: ByteArray = EMPTY_BYTE_ARRAY
|
||||
@ProtoNumber(1) @JvmField val result: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val failMsg: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(3) @JvmField val fileResid: ByteArray = EMPTY_BYTE_ARRAY
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class GetImgUrlReq(
|
||||
@ProtoId(1) @JvmField val srcUin: Long = 0L,
|
||||
@ProtoId(2) @JvmField val dstUin: Long = 0L,
|
||||
@ProtoId(3) @JvmField val fileResid: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(4) @JvmField val urlFlag: Int = 0,
|
||||
@ProtoId(6) @JvmField val urlType: Int = 0,
|
||||
@ProtoId(7) @JvmField val reqTerm: Int = 0,
|
||||
@ProtoId(8) @JvmField val reqPlatformType: Int = 0,
|
||||
@ProtoId(9) @JvmField val srcFileType: Int = 0,
|
||||
@ProtoId(10) @JvmField val innerIp: Int = 0,
|
||||
@ProtoId(11) @JvmField val boolAddressBook: Boolean = false,
|
||||
@ProtoId(12) @JvmField val buType: Int = 0,
|
||||
@ProtoId(13) @JvmField val buildVer: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(14) @JvmField val picUpTimestamp: Int = 0,
|
||||
@ProtoId(15) @JvmField val reqTransferType: Int = 0
|
||||
@ProtoNumber(1) @JvmField val srcUin: Long = 0L,
|
||||
@ProtoNumber(2) @JvmField val dstUin: Long = 0L,
|
||||
@ProtoNumber(3) @JvmField val fileResid: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(4) @JvmField val urlFlag: Int = 0,
|
||||
@ProtoNumber(6) @JvmField val urlType: Int = 0,
|
||||
@ProtoNumber(7) @JvmField val reqTerm: Int = 0,
|
||||
@ProtoNumber(8) @JvmField val reqPlatformType: Int = 0,
|
||||
@ProtoNumber(9) @JvmField val srcFileType: Int = 0,
|
||||
@ProtoNumber(10) @JvmField val innerIp: Int = 0,
|
||||
@ProtoNumber(11) @JvmField val boolAddressBook: Boolean = false,
|
||||
@ProtoNumber(12) @JvmField val buType: Int = 0,
|
||||
@ProtoNumber(13) @JvmField val buildVer: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(14) @JvmField val picUpTimestamp: Int = 0,
|
||||
@ProtoNumber(15) @JvmField val reqTransferType: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class GetImgUrlRsp(
|
||||
@ProtoId(1) @JvmField val fileResid: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(2) @JvmField val clientIp: Int = 0,
|
||||
@ProtoId(3) @JvmField val result: Int = 0,
|
||||
@ProtoId(4) @JvmField val failMsg: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(5) @JvmField val bytesThumbDownUrl: List<ByteArray>? = null,
|
||||
@ProtoId(6) @JvmField val bytesOriginalDownUrl: List<ByteArray>? = null,
|
||||
@ProtoId(7) @JvmField val msgImgInfo: ImgInfo? = null,
|
||||
@ProtoId(8) @JvmField val uint32DownIp: List<Int>? = null,
|
||||
@ProtoId(9) @JvmField val uint32DownPort: List<Int>? = null,
|
||||
@ProtoId(10) @JvmField val thumbDownPara: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(11) @JvmField val originalDownPara: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(12) @JvmField val downDomain: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(13) @JvmField val bytesBigDownUrl: List<ByteArray>? = null,
|
||||
@ProtoId(14) @JvmField val bigDownPara: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(15) @JvmField val bigThumbDownPara: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(16) @JvmField val httpsUrlFlag: Int = 0,
|
||||
@ProtoId(26) @JvmField val msgDownIp6: List<IPv6Info>? = null,
|
||||
@ProtoId(27) @JvmField val clientIp6: ByteArray = EMPTY_BYTE_ARRAY
|
||||
@ProtoNumber(1) @JvmField val fileResid: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(2) @JvmField val clientIp: Int = 0,
|
||||
@ProtoNumber(3) @JvmField val result: Int = 0,
|
||||
@ProtoNumber(4) @JvmField val failMsg: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(5) @JvmField val bytesThumbDownUrl: List<ByteArray>? = null,
|
||||
@ProtoNumber(6) @JvmField val bytesOriginalDownUrl: List<ByteArray>? = null,
|
||||
@ProtoNumber(7) @JvmField val msgImgInfo: ImgInfo? = null,
|
||||
@ProtoNumber(8) @JvmField val uint32DownIp: List<Int>? = null,
|
||||
@ProtoNumber(9) @JvmField val uint32DownPort: List<Int>? = null,
|
||||
@ProtoNumber(10) @JvmField val thumbDownPara: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(11) @JvmField val originalDownPara: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(12) @JvmField val downDomain: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(13) @JvmField val bytesBigDownUrl: List<ByteArray>? = null,
|
||||
@ProtoNumber(14) @JvmField val bigDownPara: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(15) @JvmField val bigThumbDownPara: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(16) @JvmField val httpsUrlFlag: Int = 0,
|
||||
@ProtoNumber(26) @JvmField val msgDownIp6: List<IPv6Info>? = null,
|
||||
@ProtoNumber(27) @JvmField val clientIp6: ByteArray = EMPTY_BYTE_ARRAY
|
||||
) : ProtoBuf
|
||||
|
||||
@Suppress("ArrayInDataClass")
|
||||
@Serializable
|
||||
internal class ImgInfo(
|
||||
@ProtoId(1) @JvmField val fileMd5: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(2) @JvmField val fileType: Int = 0,
|
||||
@ProtoId(3) @JvmField val fileSize: Long = 0L,
|
||||
@ProtoId(4) @JvmField val fileWidth: Int = 0,
|
||||
@ProtoId(5) @JvmField val fileHeight: Int = 0,
|
||||
@ProtoId(6) @JvmField val fileFlag: Long = 0L,
|
||||
@ProtoId(7) @JvmField val fileCutPos: Int = 0
|
||||
@ProtoNumber(1) @JvmField val fileMd5: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(2) @JvmField val fileType: Int = 0,
|
||||
@ProtoNumber(3) @JvmField val fileSize: Long = 0L,
|
||||
@ProtoNumber(4) @JvmField val fileWidth: Int = 0,
|
||||
@ProtoNumber(5) @JvmField val fileHeight: Int = 0,
|
||||
@ProtoNumber(6) @JvmField val fileFlag: Long = 0L,
|
||||
@ProtoNumber(7) @JvmField val fileCutPos: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class IPv6Info(
|
||||
@ProtoId(1) @JvmField val ip6: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(2) @JvmField val port: Int = 0
|
||||
@ProtoNumber(1) @JvmField val ip6: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(2) @JvmField val port: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class ReqBody(
|
||||
@ProtoId(1) @JvmField val subcmd: Int = 0, //2是GetImgUrlReq 1是UploadImgReq
|
||||
@ProtoId(2) @JvmField val msgTryupImgReq: List<TryUpImgReq>? = null,// optional
|
||||
@ProtoId(3) @JvmField val msgGetimgUrlReq: List<GetImgUrlReq>? = null,// optional
|
||||
@ProtoId(4) @JvmField val msgDelImgReq: List<DelImgReq>? = null,
|
||||
@ProtoId(10) @JvmField val netType: Int = 3// 数据网络=5
|
||||
@ProtoNumber(1) @JvmField val subcmd: Int = 0, //2是GetImgUrlReq 1是UploadImgReq
|
||||
@ProtoNumber(2) @JvmField val msgTryupImgReq: List<TryUpImgReq>? = null,// optional
|
||||
@ProtoNumber(3) @JvmField val msgGetimgUrlReq: List<GetImgUrlReq>? = null,// optional
|
||||
@ProtoNumber(4) @JvmField val msgDelImgReq: List<DelImgReq>? = null,
|
||||
@ProtoNumber(10) @JvmField val netType: Int = 3// 数据网络=5
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class RspBody(
|
||||
@ProtoId(1) @JvmField val subcmd: Int = 0,
|
||||
@ProtoId(2) @JvmField val msgTryupImgRsp: List<TryUpImgRsp>? = null,
|
||||
@ProtoId(3) @JvmField val msgGetimgUrlRsp: List<GetImgUrlRsp>? = null,
|
||||
@ProtoId(4) @JvmField val boolNewBigchan: Boolean = false,
|
||||
@ProtoId(5) @JvmField val msgDelImgRsp: List<DelImgRsp>? = null,
|
||||
@ProtoId(10) @JvmField val failMsg: String? = ""
|
||||
@ProtoNumber(1) @JvmField val subcmd: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val msgTryupImgRsp: List<TryUpImgRsp>? = null,
|
||||
@ProtoNumber(3) @JvmField val msgGetimgUrlRsp: List<GetImgUrlRsp>? = null,
|
||||
@ProtoNumber(4) @JvmField val boolNewBigchan: Boolean = false,
|
||||
@ProtoNumber(5) @JvmField val msgDelImgRsp: List<DelImgRsp>? = null,
|
||||
@ProtoNumber(10) @JvmField val failMsg: String? = ""
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class TryUpImgReq(
|
||||
@ProtoId(1) @JvmField val srcUin: Int,
|
||||
@ProtoId(2) @JvmField val dstUin: Int,
|
||||
@ProtoId(3) @JvmField val fileId: Int = 0,//从0开始的自增数?貌似有一个连接就要自增1, 但是又会重置回0
|
||||
@ProtoId(4) @JvmField val fileMd5: ByteArray,
|
||||
@ProtoId(5) @JvmField val fileSize: Int,
|
||||
@ProtoId(6) @JvmField val fileName: String,//默认为md5+".jpg"
|
||||
@ProtoId(7) @JvmField val srcTerm: Int = 5,
|
||||
@ProtoId(8) @JvmField val platformType: Int = 9,
|
||||
@ProtoId(9) @JvmField val innerIP: Int = 0,
|
||||
@ProtoId(10) @JvmField val addressBook: Int = 0,//chatType == 1006为1 我觉得发0没问题
|
||||
@ProtoId(11) @JvmField val retry: Int = 0,//default
|
||||
@ProtoId(12) @JvmField val buType: Int = 1,//1或96 不确定
|
||||
@ProtoId(13) @JvmField val imgOriginal: Int,//是否为原图
|
||||
@ProtoId(14) @JvmField val imgWidth: Int = 0,
|
||||
@ProtoId(15) @JvmField val imgHeight: Int = 0,
|
||||
@ProtoNumber(1) @JvmField val srcUin: Int,
|
||||
@ProtoNumber(2) @JvmField val dstUin: Int,
|
||||
@ProtoNumber(3) @JvmField val fileId: Int = 0,//从0开始的自增数?貌似有一个连接就要自增1, 但是又会重置回0
|
||||
@ProtoNumber(4) @JvmField val fileMd5: ByteArray,
|
||||
@ProtoNumber(5) @JvmField val fileSize: Int,
|
||||
@ProtoNumber(6) @JvmField val fileName: String,//默认为md5+".jpg"
|
||||
@ProtoNumber(7) @JvmField val srcTerm: Int = 5,
|
||||
@ProtoNumber(8) @JvmField val platformType: Int = 9,
|
||||
@ProtoNumber(9) @JvmField val innerIP: Int = 0,
|
||||
@ProtoNumber(10) @JvmField val addressBook: Int = 0,//chatType == 1006为1 我觉得发0没问题
|
||||
@ProtoNumber(11) @JvmField val retry: Int = 0,//default
|
||||
@ProtoNumber(12) @JvmField val buType: Int = 1,//1或96 不确定
|
||||
@ProtoNumber(13) @JvmField val imgOriginal: Int,//是否为原图
|
||||
@ProtoNumber(14) @JvmField val imgWidth: Int = 0,
|
||||
@ProtoNumber(15) @JvmField val imgHeight: Int = 0,
|
||||
/**
|
||||
* ImgType:
|
||||
* JPG: 1000
|
||||
@ -132,50 +132,50 @@ internal class Cmd0x352 : ProtoBuf {
|
||||
* APNG: 2001
|
||||
* SHARPP: 1004
|
||||
*/
|
||||
@ProtoId(16) @JvmField val imgType: Int = 1000,
|
||||
@ProtoId(17) @JvmField val buildVer: String = "8.2.7.4410",//版本号
|
||||
@ProtoId(18) @JvmField val fileIndex: ByteArray = EMPTY_BYTE_ARRAY,//default
|
||||
@ProtoId(19) @JvmField val fileStoreDays: Int = 0,//default
|
||||
@ProtoId(20) @JvmField val stepFlag: Int = 0,//default
|
||||
@ProtoId(21) @JvmField val rejectTryFast: Int = 0,//bool
|
||||
@ProtoId(22) @JvmField val srvUpload: Int = 1,//typeHotPic[1/2/3]
|
||||
@ProtoId(23) @JvmField val transferUrl: ByteArray = EMPTY_BYTE_ARRAY//rawDownloadUrl, 如果没有就是EMPTY_BYTE_ARRAY
|
||||
@ProtoNumber(16) @JvmField val imgType: Int = 1000,
|
||||
@ProtoNumber(17) @JvmField val buildVer: String = "8.2.7.4410",//版本号
|
||||
@ProtoNumber(18) @JvmField val fileIndex: ByteArray = EMPTY_BYTE_ARRAY,//default
|
||||
@ProtoNumber(19) @JvmField val fileStoreDays: Int = 0,//default
|
||||
@ProtoNumber(20) @JvmField val stepFlag: Int = 0,//default
|
||||
@ProtoNumber(21) @JvmField val rejectTryFast: Int = 0,//bool
|
||||
@ProtoNumber(22) @JvmField val srvUpload: Int = 1,//typeHotPic[1/2/3]
|
||||
@ProtoNumber(23) @JvmField val transferUrl: ByteArray = EMPTY_BYTE_ARRAY//rawDownloadUrl, 如果没有就是EMPTY_BYTE_ARRAY
|
||||
) : ImgReq
|
||||
|
||||
@Serializable
|
||||
internal class TryUpImgRsp(
|
||||
@ProtoId(1) @JvmField val fileId: Long = 0L,
|
||||
@ProtoId(2) @JvmField val clientIp: Int = 0,
|
||||
@ProtoId(3) @JvmField val result: Int = 0,
|
||||
@ProtoId(4) @JvmField val failMsg: String? = "",
|
||||
@ProtoId(5) @JvmField val boolFileExit: Boolean = false,
|
||||
@ProtoId(6) @JvmField val msgImgInfo: ImgInfo? = null,
|
||||
@ProtoId(7) @JvmField val uint32UpIp: List<Int>? = null,
|
||||
@ProtoId(8) @JvmField val uint32UpPort: List<Int>? = null,
|
||||
@ProtoId(9) @JvmField val upUkey: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(10) @JvmField val upResid: String = "",
|
||||
@ProtoId(11) @JvmField val upUuid: String = "",
|
||||
@ProtoId(12) @JvmField val upOffset: Long = 0L,
|
||||
@ProtoId(13) @JvmField val blockSize: Long = 0L,
|
||||
@ProtoId(14) @JvmField val encryptDstip: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(15) @JvmField val roamdays: Int = 0,
|
||||
@ProtoId(26) @JvmField val msgUpIp6: List<IPv6Info>? = null,
|
||||
@ProtoId(27) @JvmField val clientIp6: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(60) @JvmField val thumbDownPara: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(61) @JvmField val originalDownPara: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(62) @JvmField val downDomain: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(64) @JvmField val bigDownPara: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(65) @JvmField val bigThumbDownPara: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(66) @JvmField val httpsUrlFlag: Int = 0,
|
||||
@ProtoId(1001) @JvmField val msgInfo4busi: TryUpInfo4Busi? = null
|
||||
@ProtoNumber(1) @JvmField val fileId: Long = 0L,
|
||||
@ProtoNumber(2) @JvmField val clientIp: Int = 0,
|
||||
@ProtoNumber(3) @JvmField val result: Int = 0,
|
||||
@ProtoNumber(4) @JvmField val failMsg: String? = "",
|
||||
@ProtoNumber(5) @JvmField val boolFileExit: Boolean = false,
|
||||
@ProtoNumber(6) @JvmField val msgImgInfo: ImgInfo? = null,
|
||||
@ProtoNumber(7) @JvmField val uint32UpIp: List<Int>? = null,
|
||||
@ProtoNumber(8) @JvmField val uint32UpPort: List<Int>? = null,
|
||||
@ProtoNumber(9) @JvmField val upUkey: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(10) @JvmField val upResid: String = "",
|
||||
@ProtoNumber(11) @JvmField val upUuid: String = "",
|
||||
@ProtoNumber(12) @JvmField val upOffset: Long = 0L,
|
||||
@ProtoNumber(13) @JvmField val blockSize: Long = 0L,
|
||||
@ProtoNumber(14) @JvmField val encryptDstip: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(15) @JvmField val roamdays: Int = 0,
|
||||
@ProtoNumber(26) @JvmField val msgUpIp6: List<IPv6Info>? = null,
|
||||
@ProtoNumber(27) @JvmField val clientIp6: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(60) @JvmField val thumbDownPara: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(61) @JvmField val originalDownPara: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(62) @JvmField val downDomain: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(64) @JvmField val bigDownPara: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(65) @JvmField val bigThumbDownPara: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(66) @JvmField val httpsUrlFlag: Int = 0,
|
||||
@ProtoNumber(1001) @JvmField val msgInfo4busi: TryUpInfo4Busi? = null
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class TryUpInfo4Busi(
|
||||
@ProtoId(1) @JvmField val fileResid: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(2) @JvmField val downDomain: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(3) @JvmField val thumbDownUrl: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(4) @JvmField val originalDownUrl: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(5) @JvmField val bigDownUrl: ByteArray = EMPTY_BYTE_ARRAY
|
||||
@ProtoNumber(1) @JvmField val fileResid: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(2) @JvmField val downDomain: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(3) @JvmField val thumbDownUrl: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(4) @JvmField val originalDownUrl: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(5) @JvmField val bigDownUrl: ByteArray = EMPTY_BYTE_ARRAY
|
||||
) : ProtoBuf
|
||||
}
|
@ -1,7 +1,7 @@
|
||||
package net.mamoe.mirai.qqandroid.network.protocol.data.proto
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.protobuf.ProtoId
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
import net.mamoe.mirai.qqandroid.network.protocol.packet.EMPTY_BYTE_ARRAY
|
||||
import net.mamoe.mirai.qqandroid.utils.io.ProtoBuf
|
||||
import kotlin.jvm.JvmField
|
||||
@ -10,141 +10,141 @@ import kotlin.jvm.JvmField
|
||||
internal class Cmd0x388 : ProtoBuf {
|
||||
@Serializable
|
||||
internal class DelImgReq(
|
||||
@ProtoId(1) @JvmField val srcUin: Long = 0L,
|
||||
@ProtoId(2) @JvmField val dstUin: Long = 0L,
|
||||
@ProtoId(3) @JvmField val reqTerm: Int = 0,
|
||||
@ProtoId(4) @JvmField val reqPlatformType: Int = 0,
|
||||
@ProtoId(5) @JvmField val buType: Int = 0,
|
||||
@ProtoId(6) @JvmField val buildVer: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(7) @JvmField val fileResid: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(8) @JvmField val picWidth: Int = 0,
|
||||
@ProtoId(9) @JvmField val picHeight: Int = 0
|
||||
@ProtoNumber(1) @JvmField val srcUin: Long = 0L,
|
||||
@ProtoNumber(2) @JvmField val dstUin: Long = 0L,
|
||||
@ProtoNumber(3) @JvmField val reqTerm: Int = 0,
|
||||
@ProtoNumber(4) @JvmField val reqPlatformType: Int = 0,
|
||||
@ProtoNumber(5) @JvmField val buType: Int = 0,
|
||||
@ProtoNumber(6) @JvmField val buildVer: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(7) @JvmField val fileResid: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(8) @JvmField val picWidth: Int = 0,
|
||||
@ProtoNumber(9) @JvmField val picHeight: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class DelImgRsp(
|
||||
@ProtoId(1) @JvmField val result: Int = 0,
|
||||
@ProtoId(2) @JvmField val failMsg: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(3) @JvmField val fileResid: ByteArray = EMPTY_BYTE_ARRAY
|
||||
@ProtoNumber(1) @JvmField val result: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val failMsg: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(3) @JvmField val fileResid: ByteArray = EMPTY_BYTE_ARRAY
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class ExpRoamExtendInfo(
|
||||
@ProtoId(1) @JvmField val resid: ByteArray = EMPTY_BYTE_ARRAY
|
||||
@ProtoNumber(1) @JvmField val resid: ByteArray = EMPTY_BYTE_ARRAY
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class ExpRoamPicInfo(
|
||||
@ProtoId(1) @JvmField val shopFlag: Int = 0,
|
||||
@ProtoId(2) @JvmField val pkgId: Int = 0,
|
||||
@ProtoId(3) @JvmField val picId: ByteArray = EMPTY_BYTE_ARRAY
|
||||
@ProtoNumber(1) @JvmField val shopFlag: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val pkgId: Int = 0,
|
||||
@ProtoNumber(3) @JvmField val picId: ByteArray = EMPTY_BYTE_ARRAY
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class ExtensionCommPicTryUp(
|
||||
@ProtoId(1) @JvmField val bytesExtinfo: List<ByteArray>? = null
|
||||
@ProtoNumber(1) @JvmField val bytesExtinfo: List<ByteArray>? = null
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class ExtensionExpRoamTryUp(
|
||||
@ProtoId(1) @JvmField val msgExproamPicInfo: List<ExpRoamPicInfo>? = null
|
||||
@ProtoNumber(1) @JvmField val msgExproamPicInfo: List<ExpRoamPicInfo>? = null
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class GetImgUrlReq(
|
||||
@ProtoId(1) @JvmField val groupCode: Long = 0L,
|
||||
@ProtoId(2) @JvmField val dstUin: Long = 0L,
|
||||
@ProtoId(3) @JvmField val fileid: Long = 0L,
|
||||
@ProtoId(4) @JvmField val fileMd5: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(5) @JvmField val urlFlag: Int = 0,
|
||||
@ProtoId(6) @JvmField val urlType: Int = 0,
|
||||
@ProtoId(7) @JvmField val reqTerm: Int = 0,
|
||||
@ProtoId(8) @JvmField val reqPlatformType: Int = 0,
|
||||
@ProtoId(9) @JvmField val innerIp: Int = 0,
|
||||
@ProtoId(10) @JvmField val buType: Int = 0,
|
||||
@ProtoId(11) @JvmField val buildVer: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(12) @JvmField val fileId: Long = 0L,
|
||||
@ProtoId(13) @JvmField val fileSize: Long = 0L,
|
||||
@ProtoId(14) @JvmField val originalPic: Int = 0,
|
||||
@ProtoId(15) @JvmField val retryReq: Int = 0,
|
||||
@ProtoId(16) @JvmField val fileHeight: Int = 0,
|
||||
@ProtoId(17) @JvmField val fileWidth: Int = 0,
|
||||
@ProtoId(18) @JvmField val picType: Int = 0,
|
||||
@ProtoId(19) @JvmField val picUpTimestamp: Int = 0,
|
||||
@ProtoId(20) @JvmField val reqTransferType: Int = 0
|
||||
@ProtoNumber(1) @JvmField val groupCode: Long = 0L,
|
||||
@ProtoNumber(2) @JvmField val dstUin: Long = 0L,
|
||||
@ProtoNumber(3) @JvmField val fileid: Long = 0L,
|
||||
@ProtoNumber(4) @JvmField val fileMd5: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(5) @JvmField val urlFlag: Int = 0,
|
||||
@ProtoNumber(6) @JvmField val urlType: Int = 0,
|
||||
@ProtoNumber(7) @JvmField val reqTerm: Int = 0,
|
||||
@ProtoNumber(8) @JvmField val reqPlatformType: Int = 0,
|
||||
@ProtoNumber(9) @JvmField val innerIp: Int = 0,
|
||||
@ProtoNumber(10) @JvmField val buType: Int = 0,
|
||||
@ProtoNumber(11) @JvmField val buildVer: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(12) @JvmField val fileId: Long = 0L,
|
||||
@ProtoNumber(13) @JvmField val fileSize: Long = 0L,
|
||||
@ProtoNumber(14) @JvmField val originalPic: Int = 0,
|
||||
@ProtoNumber(15) @JvmField val retryReq: Int = 0,
|
||||
@ProtoNumber(16) @JvmField val fileHeight: Int = 0,
|
||||
@ProtoNumber(17) @JvmField val fileWidth: Int = 0,
|
||||
@ProtoNumber(18) @JvmField val picType: Int = 0,
|
||||
@ProtoNumber(19) @JvmField val picUpTimestamp: Int = 0,
|
||||
@ProtoNumber(20) @JvmField val reqTransferType: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class GetImgUrlRsp(
|
||||
@ProtoId(1) @JvmField val fileid: Long = 0L,
|
||||
@ProtoId(2) @JvmField val fileMd5: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(3) @JvmField val result: Int = 0,
|
||||
@ProtoId(4) @JvmField val failMsg: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(5) @JvmField val msgImgInfo: ImgInfo? = null,
|
||||
@ProtoId(6) @JvmField val bytesThumbDownUrl: List<ByteArray>? = null,
|
||||
@ProtoId(7) @JvmField val bytesOriginalDownUrl: List<ByteArray>? = null,
|
||||
@ProtoId(8) @JvmField val bytesBigDownUrl: List<ByteArray>? = null,
|
||||
@ProtoId(9) @JvmField val uint32DownIp: List<Int>? = null,
|
||||
@ProtoId(10) @JvmField val uint32DownPort: List<Int>? = null,
|
||||
@ProtoId(11) @JvmField val downDomain: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(12) @JvmField val thumbDownPara: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(13) @JvmField val originalDownPara: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(14) @JvmField val bigDownPara: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(15) @JvmField val fileId: Long = 0L,
|
||||
@ProtoId(16) @JvmField val autoDownType: Int = 0,
|
||||
@ProtoId(17) @JvmField val uint32OrderDownType: List<Int>? = null,
|
||||
@ProtoId(19) @JvmField val bigThumbDownPara: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(20) @JvmField val httpsUrlFlag: Int = 0,
|
||||
@ProtoId(26) @JvmField val msgDownIp6: List<IPv6Info>? = null,
|
||||
@ProtoId(27) @JvmField val clientIp6: ByteArray = EMPTY_BYTE_ARRAY
|
||||
@ProtoNumber(1) @JvmField val fileid: Long = 0L,
|
||||
@ProtoNumber(2) @JvmField val fileMd5: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(3) @JvmField val result: Int = 0,
|
||||
@ProtoNumber(4) @JvmField val failMsg: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(5) @JvmField val msgImgInfo: ImgInfo? = null,
|
||||
@ProtoNumber(6) @JvmField val bytesThumbDownUrl: List<ByteArray>? = null,
|
||||
@ProtoNumber(7) @JvmField val bytesOriginalDownUrl: List<ByteArray>? = null,
|
||||
@ProtoNumber(8) @JvmField val bytesBigDownUrl: List<ByteArray>? = null,
|
||||
@ProtoNumber(9) @JvmField val uint32DownIp: List<Int>? = null,
|
||||
@ProtoNumber(10) @JvmField val uint32DownPort: List<Int>? = null,
|
||||
@ProtoNumber(11) @JvmField val downDomain: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(12) @JvmField val thumbDownPara: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(13) @JvmField val originalDownPara: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(14) @JvmField val bigDownPara: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(15) @JvmField val fileId: Long = 0L,
|
||||
@ProtoNumber(16) @JvmField val autoDownType: Int = 0,
|
||||
@ProtoNumber(17) @JvmField val uint32OrderDownType: List<Int>? = null,
|
||||
@ProtoNumber(19) @JvmField val bigThumbDownPara: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(20) @JvmField val httpsUrlFlag: Int = 0,
|
||||
@ProtoNumber(26) @JvmField val msgDownIp6: List<IPv6Info>? = null,
|
||||
@ProtoNumber(27) @JvmField val clientIp6: ByteArray = EMPTY_BYTE_ARRAY
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class GetPttUrlReq(
|
||||
@ProtoId(1) @JvmField val groupCode: Long = 0L,
|
||||
@ProtoId(2) @JvmField val dstUin: Long = 0L,
|
||||
@ProtoId(3) @JvmField val fileid: Long = 0L,
|
||||
@ProtoId(4) @JvmField val fileMd5: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(5) @JvmField val reqTerm: Int = 0,
|
||||
@ProtoId(6) @JvmField val reqPlatformType: Int = 0,
|
||||
@ProtoId(7) @JvmField val innerIp: Int = 0,
|
||||
@ProtoId(8) @JvmField val buType: Int = 0,
|
||||
@ProtoId(9) @JvmField val buildVer: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(10) @JvmField val fileId: Long = 0L,
|
||||
@ProtoId(11) @JvmField val fileKey: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(12) @JvmField val codec: Int = 0,
|
||||
@ProtoId(13) @JvmField val buId: Int = 0,
|
||||
@ProtoId(14) @JvmField val reqTransferType: Int = 0,
|
||||
@ProtoId(15) @JvmField val isAuto: Int = 0
|
||||
@ProtoNumber(1) @JvmField val groupCode: Long = 0L,
|
||||
@ProtoNumber(2) @JvmField val dstUin: Long = 0L,
|
||||
@ProtoNumber(3) @JvmField val fileid: Long = 0L,
|
||||
@ProtoNumber(4) @JvmField val fileMd5: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(5) @JvmField val reqTerm: Int = 0,
|
||||
@ProtoNumber(6) @JvmField val reqPlatformType: Int = 0,
|
||||
@ProtoNumber(7) @JvmField val innerIp: Int = 0,
|
||||
@ProtoNumber(8) @JvmField val buType: Int = 0,
|
||||
@ProtoNumber(9) @JvmField val buildVer: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(10) @JvmField val fileId: Long = 0L,
|
||||
@ProtoNumber(11) @JvmField val fileKey: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(12) @JvmField val codec: Int = 0,
|
||||
@ProtoNumber(13) @JvmField val buId: Int = 0,
|
||||
@ProtoNumber(14) @JvmField val reqTransferType: Int = 0,
|
||||
@ProtoNumber(15) @JvmField val isAuto: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class GetPttUrlRsp(
|
||||
@ProtoId(1) @JvmField val fileid: Long = 0L,
|
||||
@ProtoId(2) @JvmField val fileMd5: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(3) @JvmField val result: Int = 0,
|
||||
@ProtoId(4) @JvmField val failMsg: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(5) @JvmField val bytesDownUrl: List<ByteArray>? = null,
|
||||
@ProtoId(6) @JvmField val uint32DownIp: List<Int>? = null,
|
||||
@ProtoId(7) @JvmField val uint32DownPort: List<Int>? = null,
|
||||
@ProtoId(8) @JvmField val downDomain: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(9) @JvmField val downPara: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(10) @JvmField val fileId: Long = 0L,
|
||||
@ProtoId(11) @JvmField val transferType: Int = 0,
|
||||
@ProtoId(12) @JvmField val allowRetry: Int = 0,
|
||||
@ProtoId(26) @JvmField val msgDownIp6: List<IPv6Info>? = null,
|
||||
@ProtoId(27) @JvmField val clientIp6: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(28) @JvmField val strDomain: String = ""
|
||||
@ProtoNumber(1) @JvmField val fileid: Long = 0L,
|
||||
@ProtoNumber(2) @JvmField val fileMd5: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(3) @JvmField val result: Int = 0,
|
||||
@ProtoNumber(4) @JvmField val failMsg: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(5) @JvmField val bytesDownUrl: List<ByteArray>? = null,
|
||||
@ProtoNumber(6) @JvmField val uint32DownIp: List<Int>? = null,
|
||||
@ProtoNumber(7) @JvmField val uint32DownPort: List<Int>? = null,
|
||||
@ProtoNumber(8) @JvmField val downDomain: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(9) @JvmField val downPara: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(10) @JvmField val fileId: Long = 0L,
|
||||
@ProtoNumber(11) @JvmField val transferType: Int = 0,
|
||||
@ProtoNumber(12) @JvmField val allowRetry: Int = 0,
|
||||
@ProtoNumber(26) @JvmField val msgDownIp6: List<IPv6Info>? = null,
|
||||
@ProtoNumber(27) @JvmField val clientIp6: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(28) @JvmField val strDomain: String = ""
|
||||
) : ProtoBuf
|
||||
|
||||
@Suppress("ArrayInDataClass")
|
||||
@Serializable
|
||||
internal class ImgInfo(
|
||||
@ProtoId(1) @JvmField val fileMd5: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(2) @JvmField val fileType: Int = 0,
|
||||
@ProtoId(3) @JvmField val fileSize: Long = 0L,
|
||||
@ProtoId(4) @JvmField val fileWidth: Int = 0,
|
||||
@ProtoId(5) @JvmField val fileHeight: Int = 0
|
||||
@ProtoNumber(1) @JvmField val fileMd5: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(2) @JvmField val fileType: Int = 0,
|
||||
@ProtoNumber(3) @JvmField val fileSize: Long = 0L,
|
||||
@ProtoNumber(4) @JvmField val fileWidth: Int = 0,
|
||||
@ProtoNumber(5) @JvmField val fileHeight: Int = 0
|
||||
) : ProtoBuf {
|
||||
override fun toString(): String {
|
||||
return "ImgInfo(fileMd5=${fileMd5.contentToString()}, fileType=$fileType, fileSize=$fileSize, fileWidth=$fileWidth, fileHeight=$fileHeight)"
|
||||
@ -153,128 +153,128 @@ internal class ImgInfo(
|
||||
|
||||
@Serializable
|
||||
internal class IPv6Info(
|
||||
@ProtoId(1) @JvmField val ip6: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(2) @JvmField val port: Int = 0
|
||||
@ProtoNumber(1) @JvmField val ip6: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(2) @JvmField val port: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class PicSize(
|
||||
@ProtoId(1) @JvmField val original: Int = 0,
|
||||
@ProtoId(2) @JvmField val thumb: Int = 0,
|
||||
@ProtoId(3) @JvmField val high: Int = 0
|
||||
@ProtoNumber(1) @JvmField val original: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val thumb: Int = 0,
|
||||
@ProtoNumber(3) @JvmField val high: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class ReqBody(
|
||||
@ProtoId(1) @JvmField val netType: Int = 0,
|
||||
@ProtoId(2) @JvmField val subcmd: Int = 0,
|
||||
@ProtoId(3) @JvmField val msgTryupImgReq: List<TryUpImgReq>? = null,
|
||||
@ProtoId(4) @JvmField val msgGetimgUrlReq: List<GetImgUrlReq>? = null,
|
||||
@ProtoId(5) @JvmField val msgTryupPttReq: List<TryUpPttReq>? = null,
|
||||
@ProtoId(6) @JvmField val msgGetpttUrlReq: List<GetPttUrlReq>? = null,
|
||||
@ProtoId(7) @JvmField val commandId: Int = 0,
|
||||
@ProtoId(8) @JvmField val msgDelImgReq: List<DelImgReq>? = null,
|
||||
@ProtoId(1001) @JvmField val extension: ByteArray = EMPTY_BYTE_ARRAY
|
||||
@ProtoNumber(1) @JvmField val netType: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val subcmd: Int = 0,
|
||||
@ProtoNumber(3) @JvmField val msgTryupImgReq: List<TryUpImgReq>? = null,
|
||||
@ProtoNumber(4) @JvmField val msgGetimgUrlReq: List<GetImgUrlReq>? = null,
|
||||
@ProtoNumber(5) @JvmField val msgTryupPttReq: List<TryUpPttReq>? = null,
|
||||
@ProtoNumber(6) @JvmField val msgGetpttUrlReq: List<GetPttUrlReq>? = null,
|
||||
@ProtoNumber(7) @JvmField val commandId: Int = 0,
|
||||
@ProtoNumber(8) @JvmField val msgDelImgReq: List<DelImgReq>? = null,
|
||||
@ProtoNumber(1001) @JvmField val extension: ByteArray = EMPTY_BYTE_ARRAY
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class RspBody(
|
||||
@ProtoId(1) @JvmField val clientIp: Int = 0,
|
||||
@ProtoId(2) @JvmField val subcmd: Int = 0,
|
||||
@ProtoId(3) @JvmField val msgTryupImgRsp: List<TryUpImgRsp>? = null,
|
||||
@ProtoId(4) @JvmField val msgGetimgUrlRsp: List<GetImgUrlRsp>? = null,
|
||||
@ProtoId(5) @JvmField val msgTryupPttRsp: List<TryUpPttRsp>? = null,
|
||||
@ProtoId(6) @JvmField val msgGetpttUrlRsp: List<GetPttUrlRsp>? = null,
|
||||
@ProtoId(7) @JvmField val msgDelImgRsp: List<DelImgRsp>? = null
|
||||
@ProtoNumber(1) @JvmField val clientIp: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val subcmd: Int = 0,
|
||||
@ProtoNumber(3) @JvmField val msgTryupImgRsp: List<TryUpImgRsp>? = null,
|
||||
@ProtoNumber(4) @JvmField val msgGetimgUrlRsp: List<GetImgUrlRsp>? = null,
|
||||
@ProtoNumber(5) @JvmField val msgTryupPttRsp: List<TryUpPttRsp>? = null,
|
||||
@ProtoNumber(6) @JvmField val msgGetpttUrlRsp: List<GetPttUrlRsp>? = null,
|
||||
@ProtoNumber(7) @JvmField val msgDelImgRsp: List<DelImgRsp>? = null
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class TryUpImgReq(
|
||||
@ProtoId(1) @JvmField val groupCode: Long = 0L,
|
||||
@ProtoId(2) @JvmField val srcUin: Long = 0L,
|
||||
@ProtoId(3) @JvmField val fileId: Long = 0L,
|
||||
@ProtoId(4) @JvmField val fileMd5: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(5) @JvmField val fileSize: Long = 0L,
|
||||
@ProtoId(6) @JvmField val fileName: String = "",
|
||||
@ProtoId(7) @JvmField val srcTerm: Int = 0,
|
||||
@ProtoId(8) @JvmField val platformType: Int = 0,
|
||||
@ProtoId(9) @JvmField val buType: Int = 0,
|
||||
@ProtoId(10) @JvmField val picWidth: Int = 0,
|
||||
@ProtoId(11) @JvmField val picHeight: Int = 0,
|
||||
@ProtoId(12) @JvmField val picType: Int = 0,
|
||||
@ProtoId(13) @JvmField val buildVer: String = "",
|
||||
@ProtoId(14) @JvmField val innerIp: Int = 0,
|
||||
@ProtoId(15) @JvmField val appPicType: Int = 0,
|
||||
@ProtoId(16) @JvmField val originalPic: Int = 0,
|
||||
@ProtoId(17) @JvmField val fileIndex: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(18) @JvmField val dstUin: Long = 0L,
|
||||
@ProtoId(19) @JvmField val srvUpload: Int = 0,
|
||||
@ProtoId(20) @JvmField val transferUrl: ByteArray = EMPTY_BYTE_ARRAY
|
||||
@ProtoNumber(1) @JvmField val groupCode: Long = 0L,
|
||||
@ProtoNumber(2) @JvmField val srcUin: Long = 0L,
|
||||
@ProtoNumber(3) @JvmField val fileId: Long = 0L,
|
||||
@ProtoNumber(4) @JvmField val fileMd5: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(5) @JvmField val fileSize: Long = 0L,
|
||||
@ProtoNumber(6) @JvmField val fileName: String = "",
|
||||
@ProtoNumber(7) @JvmField val srcTerm: Int = 0,
|
||||
@ProtoNumber(8) @JvmField val platformType: Int = 0,
|
||||
@ProtoNumber(9) @JvmField val buType: Int = 0,
|
||||
@ProtoNumber(10) @JvmField val picWidth: Int = 0,
|
||||
@ProtoNumber(11) @JvmField val picHeight: Int = 0,
|
||||
@ProtoNumber(12) @JvmField val picType: Int = 0,
|
||||
@ProtoNumber(13) @JvmField val buildVer: String = "",
|
||||
@ProtoNumber(14) @JvmField val innerIp: Int = 0,
|
||||
@ProtoNumber(15) @JvmField val appPicType: Int = 0,
|
||||
@ProtoNumber(16) @JvmField val originalPic: Int = 0,
|
||||
@ProtoNumber(17) @JvmField val fileIndex: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(18) @JvmField val dstUin: Long = 0L,
|
||||
@ProtoNumber(19) @JvmField val srvUpload: Int = 0,
|
||||
@ProtoNumber(20) @JvmField val transferUrl: ByteArray = EMPTY_BYTE_ARRAY
|
||||
) : ImgReq
|
||||
|
||||
@Serializable
|
||||
internal class TryUpImgRsp(
|
||||
@ProtoId(1) @JvmField val fileId: Long = 0L,
|
||||
@ProtoId(2) @JvmField val result: Int = 0,
|
||||
@ProtoId(3) @JvmField val failMsg: String = "",
|
||||
@ProtoId(4) @JvmField val boolFileExit: Boolean = false,
|
||||
@ProtoId(5) @JvmField val msgImgInfo: ImgInfo? = null,
|
||||
@ProtoId(6) @JvmField val uint32UpIp: List<Int>? = null,
|
||||
@ProtoId(7) @JvmField val uint32UpPort: List<Int>? = null,
|
||||
@ProtoId(8) @JvmField val upUkey: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(9) @JvmField val fileid: Long = 0L,
|
||||
@ProtoId(10) @JvmField val upOffset: Long = 0L,
|
||||
@ProtoId(11) @JvmField val blockSize: Long = 0L,
|
||||
@ProtoId(12) @JvmField val boolNewBigChan: Boolean = false,
|
||||
@ProtoId(26) @JvmField val msgUpIp6: List<IPv6Info>? = null,
|
||||
@ProtoId(27) @JvmField val clientIp6: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(1001) @JvmField val msgInfo4busi: TryUpInfo4Busi? = null
|
||||
@ProtoNumber(1) @JvmField val fileId: Long = 0L,
|
||||
@ProtoNumber(2) @JvmField val result: Int = 0,
|
||||
@ProtoNumber(3) @JvmField val failMsg: String = "",
|
||||
@ProtoNumber(4) @JvmField val boolFileExit: Boolean = false,
|
||||
@ProtoNumber(5) @JvmField val msgImgInfo: ImgInfo? = null,
|
||||
@ProtoNumber(6) @JvmField val uint32UpIp: List<Int>? = null,
|
||||
@ProtoNumber(7) @JvmField val uint32UpPort: List<Int>? = null,
|
||||
@ProtoNumber(8) @JvmField val upUkey: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(9) @JvmField val fileid: Long = 0L,
|
||||
@ProtoNumber(10) @JvmField val upOffset: Long = 0L,
|
||||
@ProtoNumber(11) @JvmField val blockSize: Long = 0L,
|
||||
@ProtoNumber(12) @JvmField val boolNewBigChan: Boolean = false,
|
||||
@ProtoNumber(26) @JvmField val msgUpIp6: List<IPv6Info>? = null,
|
||||
@ProtoNumber(27) @JvmField val clientIp6: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(1001) @JvmField val msgInfo4busi: TryUpInfo4Busi? = null
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class TryUpInfo4Busi(
|
||||
@ProtoId(1) @JvmField val downDomain: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(2) @JvmField val thumbDownUrl: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(3) @JvmField val originalDownUrl: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(4) @JvmField val bigDownUrl: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(5) @JvmField val fileResid: ByteArray = EMPTY_BYTE_ARRAY
|
||||
@ProtoNumber(1) @JvmField val downDomain: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(2) @JvmField val thumbDownUrl: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(3) @JvmField val originalDownUrl: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(4) @JvmField val bigDownUrl: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(5) @JvmField val fileResid: ByteArray = EMPTY_BYTE_ARRAY
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class TryUpPttReq(
|
||||
@ProtoId(1) @JvmField val groupCode: Long = 0L,
|
||||
@ProtoId(2) @JvmField val srcUin: Long = 0L,
|
||||
@ProtoId(3) @JvmField val fileId: Long = 0L,
|
||||
@ProtoId(4) @JvmField val fileMd5: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(5) @JvmField val fileSize: Long = 0L,
|
||||
@ProtoId(6) @JvmField val fileName: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(7) @JvmField val srcTerm: Int = 0,
|
||||
@ProtoId(8) @JvmField val platformType: Int = 0,
|
||||
@ProtoId(9) @JvmField val buType: Int = 0,
|
||||
@ProtoId(10) @JvmField val buildVer: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(11) @JvmField val innerIp: Int = 0,
|
||||
@ProtoId(12) @JvmField val voiceLength: Int = 0,
|
||||
@ProtoId(13) @JvmField val boolNewUpChan: Boolean = false,
|
||||
@ProtoId(14) @JvmField val codec: Int = 0,
|
||||
@ProtoId(15) @JvmField val voiceType: Int = 0,
|
||||
@ProtoId(16) @JvmField val buId: Int = 0
|
||||
@ProtoNumber(1) @JvmField val groupCode: Long = 0L,
|
||||
@ProtoNumber(2) @JvmField val srcUin: Long = 0L,
|
||||
@ProtoNumber(3) @JvmField val fileId: Long = 0L,
|
||||
@ProtoNumber(4) @JvmField val fileMd5: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(5) @JvmField val fileSize: Long = 0L,
|
||||
@ProtoNumber(6) @JvmField val fileName: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(7) @JvmField val srcTerm: Int = 0,
|
||||
@ProtoNumber(8) @JvmField val platformType: Int = 0,
|
||||
@ProtoNumber(9) @JvmField val buType: Int = 0,
|
||||
@ProtoNumber(10) @JvmField val buildVer: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(11) @JvmField val innerIp: Int = 0,
|
||||
@ProtoNumber(12) @JvmField val voiceLength: Int = 0,
|
||||
@ProtoNumber(13) @JvmField val boolNewUpChan: Boolean = false,
|
||||
@ProtoNumber(14) @JvmField val codec: Int = 0,
|
||||
@ProtoNumber(15) @JvmField val voiceType: Int = 0,
|
||||
@ProtoNumber(16) @JvmField val buId: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class TryUpPttRsp(
|
||||
@ProtoId(1) @JvmField val fileId: Long = 0L,
|
||||
@ProtoId(2) @JvmField val result: Int = 0,
|
||||
@ProtoId(3) @JvmField val failMsg: ByteArray? = null,
|
||||
@ProtoId(4) @JvmField val boolFileExit: Boolean = false,
|
||||
@ProtoId(5) @JvmField val uint32UpIp: List<Int>? = null,
|
||||
@ProtoId(6) @JvmField val uint32UpPort: List<Int>? = null,
|
||||
@ProtoId(7) @JvmField val upUkey: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(8) @JvmField val fileid: Long = 0L,
|
||||
@ProtoId(9) @JvmField val upOffset: Long = 0L,
|
||||
@ProtoId(10) @JvmField val blockSize: Long = 0L,
|
||||
@ProtoId(11) @JvmField val fileKey: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(12) @JvmField val channelType: Int = 0,
|
||||
@ProtoId(26) @JvmField val msgUpIp6: List<IPv6Info>? = null,
|
||||
@ProtoId(27) @JvmField val clientIp6: ByteArray = EMPTY_BYTE_ARRAY
|
||||
@ProtoNumber(1) @JvmField val fileId: Long = 0L,
|
||||
@ProtoNumber(2) @JvmField val result: Int = 0,
|
||||
@ProtoNumber(3) @JvmField val failMsg: ByteArray? = null,
|
||||
@ProtoNumber(4) @JvmField val boolFileExit: Boolean = false,
|
||||
@ProtoNumber(5) @JvmField val uint32UpIp: List<Int>? = null,
|
||||
@ProtoNumber(6) @JvmField val uint32UpPort: List<Int>? = null,
|
||||
@ProtoNumber(7) @JvmField val upUkey: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(8) @JvmField val fileid: Long = 0L,
|
||||
@ProtoNumber(9) @JvmField val upOffset: Long = 0L,
|
||||
@ProtoNumber(10) @JvmField val blockSize: Long = 0L,
|
||||
@ProtoNumber(11) @JvmField val fileKey: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(12) @JvmField val channelType: Int = 0,
|
||||
@ProtoNumber(26) @JvmField val msgUpIp6: List<IPv6Info>? = null,
|
||||
@ProtoNumber(27) @JvmField val clientIp6: ByteArray = EMPTY_BYTE_ARRAY
|
||||
) : ProtoBuf
|
||||
}
|
@ -3,8 +3,8 @@
|
||||
package net.mamoe.mirai.qqandroid.network.protocol.data.proto
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.protobuf.ProtoId
|
||||
import kotlinx.serialization.protobuf.ProtoNumberType
|
||||
import kotlinx.serialization.protobuf.ProtoIntegerType
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
import kotlinx.serialization.protobuf.ProtoType
|
||||
import net.mamoe.mirai.qqandroid.network.protocol.packet.EMPTY_BYTE_ARRAY
|
||||
import net.mamoe.mirai.qqandroid.utils.io.ProtoBuf
|
||||
@ -13,50 +13,50 @@ import kotlin.jvm.JvmField
|
||||
internal class GroupOpenSysMsg : ProtoBuf {
|
||||
@Serializable
|
||||
internal class LightApp(
|
||||
@ProtoId(1) @JvmField val app: String = "",
|
||||
@ProtoId(2) @JvmField val view: String = "",
|
||||
@ProtoId(3) @JvmField val desc: String = "",
|
||||
@ProtoId(4) @JvmField val prompt: String = "",
|
||||
@ProtoId(5) @JvmField val ver: String = "",
|
||||
@ProtoId(6) @JvmField val meta: String = "",
|
||||
@ProtoId(7) @JvmField val config: String = "",
|
||||
@ProtoId(8) @JvmField val source: Source? = null
|
||||
@ProtoNumber(1) @JvmField val app: String = "",
|
||||
@ProtoNumber(2) @JvmField val view: String = "",
|
||||
@ProtoNumber(3) @JvmField val desc: String = "",
|
||||
@ProtoNumber(4) @JvmField val prompt: String = "",
|
||||
@ProtoNumber(5) @JvmField val ver: String = "",
|
||||
@ProtoNumber(6) @JvmField val meta: String = "",
|
||||
@ProtoNumber(7) @JvmField val config: String = "",
|
||||
@ProtoNumber(8) @JvmField val source: Source? = null
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class RichMsg(
|
||||
@ProtoId(1) @JvmField val title: String = "",
|
||||
@ProtoId(2) @JvmField val desc: String = "",
|
||||
@ProtoId(3) @JvmField val brief: String = "",
|
||||
@ProtoId(4) @JvmField val cover: String = "",
|
||||
@ProtoId(5) @JvmField val url: String = "",
|
||||
@ProtoId(6) @JvmField val source: Source? = null
|
||||
@ProtoNumber(1) @JvmField val title: String = "",
|
||||
@ProtoNumber(2) @JvmField val desc: String = "",
|
||||
@ProtoNumber(3) @JvmField val brief: String = "",
|
||||
@ProtoNumber(4) @JvmField val cover: String = "",
|
||||
@ProtoNumber(5) @JvmField val url: String = "",
|
||||
@ProtoNumber(6) @JvmField val source: Source? = null
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class Sender(
|
||||
@ProtoId(1) @JvmField val uin: Long = 0L,
|
||||
@ProtoId(2) @JvmField val nick: String = "",
|
||||
@ProtoId(3) @JvmField val avatar: String = "",
|
||||
@ProtoId(4) @JvmField val url: String = ""
|
||||
@ProtoNumber(1) @JvmField val uin: Long = 0L,
|
||||
@ProtoNumber(2) @JvmField val nick: String = "",
|
||||
@ProtoNumber(3) @JvmField val avatar: String = "",
|
||||
@ProtoNumber(4) @JvmField val url: String = ""
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class Source(
|
||||
@ProtoId(1) @JvmField val name: String = "",
|
||||
@ProtoId(2) @JvmField val icon: String = "",
|
||||
@ProtoId(3) @JvmField val url: String = ""
|
||||
@ProtoNumber(1) @JvmField val name: String = "",
|
||||
@ProtoNumber(2) @JvmField val icon: String = "",
|
||||
@ProtoNumber(3) @JvmField val url: String = ""
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class SysMsgBody(
|
||||
@ProtoId(1) @JvmField val groupId: Long = 0L,
|
||||
@ProtoId(2) @JvmField val appid: Long = 0L,
|
||||
@ProtoId(3) @JvmField val sender: Sender? = null,
|
||||
@ProtoId(4) @JvmField val msgType: Int = 0,
|
||||
@ProtoId(5) @JvmField val content: String = "",
|
||||
@ProtoId(6) @JvmField val richMsg: RichMsg? = null,
|
||||
@ProtoId(7) @JvmField val lightApp: LightApp? = null
|
||||
@ProtoNumber(1) @JvmField val groupId: Long = 0L,
|
||||
@ProtoNumber(2) @JvmField val appid: Long = 0L,
|
||||
@ProtoNumber(3) @JvmField val sender: Sender? = null,
|
||||
@ProtoNumber(4) @JvmField val msgType: Int = 0,
|
||||
@ProtoNumber(5) @JvmField val content: String = "",
|
||||
@ProtoNumber(6) @JvmField val richMsg: RichMsg? = null,
|
||||
@ProtoNumber(7) @JvmField val lightApp: LightApp? = null
|
||||
) : ProtoBuf
|
||||
}
|
||||
|
||||
@ -64,337 +64,337 @@ internal class GroupOpenSysMsg : ProtoBuf {
|
||||
internal class TroopTips0x857 : ProtoBuf {
|
||||
@Serializable
|
||||
internal class AIOGrayTipsInfo(
|
||||
@ProtoId(1) @JvmField val optUint32ShowLastest: Int = 0,
|
||||
@ProtoId(2) @JvmField val optBytesContent: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(3) @JvmField val optUint32Remind: Int = 0,
|
||||
@ProtoId(4) @JvmField val optBytesBrief: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(5) @JvmField val receiverUin: Long = 0L,
|
||||
@ProtoId(6) @JvmField val reliaoAdminOpt: Int = 0,
|
||||
@ProtoId(7) @JvmField val robotGroupOpt: Int = 0
|
||||
@ProtoNumber(1) @JvmField val optUint32ShowLastest: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val optBytesContent: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(3) @JvmField val optUint32Remind: Int = 0,
|
||||
@ProtoNumber(4) @JvmField val optBytesBrief: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(5) @JvmField val receiverUin: Long = 0L,
|
||||
@ProtoNumber(6) @JvmField val reliaoAdminOpt: Int = 0,
|
||||
@ProtoNumber(7) @JvmField val robotGroupOpt: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class AIOTopTipsInfo(
|
||||
@ProtoId(1) @JvmField val optBytesContent: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(2) @JvmField val optUint32Icon: Int = 0,
|
||||
@ProtoId(3) @JvmField val optEnumAction: Int /* enum */ = 1,
|
||||
@ProtoId(4) @JvmField val optBytesUrl: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(5) @JvmField val optBytesData: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(6) @JvmField val optBytesDataI: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(7) @JvmField val optBytesDataA: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(8) @JvmField val optBytesDataP: ByteArray = EMPTY_BYTE_ARRAY
|
||||
@ProtoNumber(1) @JvmField val optBytesContent: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(2) @JvmField val optUint32Icon: Int = 0,
|
||||
@ProtoNumber(3) @JvmField val optEnumAction: Int /* enum */ = 1,
|
||||
@ProtoNumber(4) @JvmField val optBytesUrl: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(5) @JvmField val optBytesData: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(6) @JvmField val optBytesDataI: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(7) @JvmField val optBytesDataA: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(8) @JvmField val optBytesDataP: ByteArray = EMPTY_BYTE_ARRAY
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class FloatedTipsInfo(
|
||||
@ProtoId(1) @JvmField val optBytesContent: ByteArray = EMPTY_BYTE_ARRAY
|
||||
@ProtoNumber(1) @JvmField val optBytesContent: ByteArray = EMPTY_BYTE_ARRAY
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class GeneralGrayTipInfo(
|
||||
@ProtoId(1) @JvmField val busiType: Long = 0L,
|
||||
@ProtoId(2) @JvmField val busiId: Long = 0L,
|
||||
@ProtoId(3) @JvmField val ctrlFlag: Int = 0,
|
||||
@ProtoId(4) @JvmField val c2cType: Int = 0,
|
||||
@ProtoId(5) @JvmField val serviceType: Int = 0,
|
||||
@ProtoId(6) @JvmField val templId: Long = 0L,
|
||||
@ProtoId(7) @JvmField val msgTemplParam: List<TemplParam>? = null,
|
||||
@ProtoId(8) @JvmField val content: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(10) @JvmField val tipsSeqId: Long = 0L,
|
||||
@ProtoId(100) @JvmField val pbReserv: ByteArray = EMPTY_BYTE_ARRAY
|
||||
@ProtoNumber(1) @JvmField val busiType: Long = 0L,
|
||||
@ProtoNumber(2) @JvmField val busiId: Long = 0L,
|
||||
@ProtoNumber(3) @JvmField val ctrlFlag: Int = 0,
|
||||
@ProtoNumber(4) @JvmField val c2cType: Int = 0,
|
||||
@ProtoNumber(5) @JvmField val serviceType: Int = 0,
|
||||
@ProtoNumber(6) @JvmField val templId: Long = 0L,
|
||||
@ProtoNumber(7) @JvmField val msgTemplParam: List<TemplParam>? = null,
|
||||
@ProtoNumber(8) @JvmField val content: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(10) @JvmField val tipsSeqId: Long = 0L,
|
||||
@ProtoNumber(100) @JvmField val pbReserv: ByteArray = EMPTY_BYTE_ARRAY
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class GoldMsgTipsElem(
|
||||
@ProtoId(1) @JvmField val type: Int = 0,
|
||||
@ProtoId(2) @JvmField val billno: String = "",
|
||||
@ProtoId(3) @JvmField val result: Int = 0,
|
||||
@ProtoId(4) @JvmField val amount: Int = 0,
|
||||
@ProtoId(5) @JvmField val total: Int = 0,
|
||||
@ProtoId(6) @JvmField val interval: Int = 0,
|
||||
@ProtoId(7) @JvmField val finish: Int = 0,
|
||||
@ProtoId(8) @JvmField val uin: List<Long>? = null,
|
||||
@ProtoId(9) @JvmField val action: Int = 0
|
||||
@ProtoNumber(1) @JvmField val type: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val billno: String = "",
|
||||
@ProtoNumber(3) @JvmField val result: Int = 0,
|
||||
@ProtoNumber(4) @JvmField val amount: Int = 0,
|
||||
@ProtoNumber(5) @JvmField val total: Int = 0,
|
||||
@ProtoNumber(6) @JvmField val interval: Int = 0,
|
||||
@ProtoNumber(7) @JvmField val finish: Int = 0,
|
||||
@ProtoNumber(8) @JvmField val uin: List<Long>? = null,
|
||||
@ProtoNumber(9) @JvmField val action: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class GroupInfoChange(
|
||||
@ProtoId(1) @JvmField val groupHonorSwitch: Int = 0
|
||||
@ProtoNumber(1) @JvmField val groupHonorSwitch: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class GroupNotifyInfo(
|
||||
@ProtoId(1) @JvmField val optUint32AutoPullFlag: Int = 0,
|
||||
@ProtoId(2) @JvmField val optBytesFeedsId: ByteArray = EMPTY_BYTE_ARRAY
|
||||
@ProtoNumber(1) @JvmField val optUint32AutoPullFlag: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val optBytesFeedsId: ByteArray = EMPTY_BYTE_ARRAY
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class InstCtrl(
|
||||
@ProtoId(1) @JvmField val msgSendToInst: List<InstInfo>? = null,
|
||||
@ProtoId(2) @JvmField val msgExcludeInst: List<InstInfo>? = null,
|
||||
@ProtoId(3) @JvmField val msgFromInst: InstInfo? = null
|
||||
@ProtoNumber(1) @JvmField val msgSendToInst: List<InstInfo>? = null,
|
||||
@ProtoNumber(2) @JvmField val msgExcludeInst: List<InstInfo>? = null,
|
||||
@ProtoNumber(3) @JvmField val msgFromInst: InstInfo? = null
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class InstInfo(
|
||||
@ProtoId(1) @JvmField val apppid: Int = 0,
|
||||
@ProtoId(2) @JvmField val instid: Int = 0,
|
||||
@ProtoId(3) @JvmField val platform: Int = 0,
|
||||
@ProtoId(4) @JvmField val openAppid: Int = 0,
|
||||
@ProtoId(5) @JvmField val productid: Int = 0,
|
||||
@ProtoId(6) @JvmField val ssoBid: Int = 0,
|
||||
@ProtoId(7) @JvmField val guid: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(8) @JvmField val verMin: Int = 0,
|
||||
@ProtoId(9) @JvmField val verMax: Int = 0
|
||||
@ProtoNumber(1) @JvmField val apppid: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val instid: Int = 0,
|
||||
@ProtoNumber(3) @JvmField val platform: Int = 0,
|
||||
@ProtoNumber(4) @JvmField val openAppid: Int = 0,
|
||||
@ProtoNumber(5) @JvmField val productid: Int = 0,
|
||||
@ProtoNumber(6) @JvmField val ssoBid: Int = 0,
|
||||
@ProtoNumber(7) @JvmField val guid: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(8) @JvmField val verMin: Int = 0,
|
||||
@ProtoNumber(9) @JvmField val verMax: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class LbsShareChangePushInfo(
|
||||
@ProtoId(1) @JvmField val msgType: Int = 0,
|
||||
@ProtoId(2) @JvmField val msgInfo: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(3) @JvmField val versionCtrl: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(4) @JvmField val groupId: Long = 0L,
|
||||
@ProtoId(5) @JvmField val operUin: Long = 0L,
|
||||
@ProtoId(6) @JvmField val grayTips: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(7) @JvmField val msgSeq: Long = 0L,
|
||||
@ProtoId(8) @JvmField val joinNums: Int = 0,
|
||||
@ProtoId(99) @JvmField val pushType: Int = 0,
|
||||
@ProtoId(100) @JvmField val extInfo: ByteArray = EMPTY_BYTE_ARRAY
|
||||
@ProtoNumber(1) @JvmField val msgType: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val msgInfo: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(3) @JvmField val versionCtrl: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(4) @JvmField val groupId: Long = 0L,
|
||||
@ProtoNumber(5) @JvmField val operUin: Long = 0L,
|
||||
@ProtoNumber(6) @JvmField val grayTips: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(7) @JvmField val msgSeq: Long = 0L,
|
||||
@ProtoNumber(8) @JvmField val joinNums: Int = 0,
|
||||
@ProtoNumber(99) @JvmField val pushType: Int = 0,
|
||||
@ProtoNumber(100) @JvmField val extInfo: ByteArray = EMPTY_BYTE_ARRAY
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class LuckyBagNotify(
|
||||
@ProtoId(1) @JvmField val msgTips: ByteArray = EMPTY_BYTE_ARRAY
|
||||
@ProtoNumber(1) @JvmField val msgTips: ByteArray = EMPTY_BYTE_ARRAY
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class MediaChangePushInfo(
|
||||
@ProtoId(1) @JvmField val msgType: Int = 0,
|
||||
@ProtoId(2) @JvmField val msgInfo: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(3) @JvmField val versionCtrl: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(4) @JvmField val groupId: Long = 0L,
|
||||
@ProtoId(5) @JvmField val operUin: Long = 0L,
|
||||
@ProtoId(6) @JvmField val grayTips: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(7) @JvmField val msgSeq: Long = 0L,
|
||||
@ProtoId(8) @JvmField val joinNums: Int = 0,
|
||||
@ProtoId(9) @JvmField val msgPerSetting: PersonalSetting? = null,
|
||||
@ProtoId(10) @JvmField val playMode: Int = 0,
|
||||
@ProtoId(99) @JvmField val mediaType: Int = 0,
|
||||
@ProtoId(100) @JvmField val extInfo: ByteArray = EMPTY_BYTE_ARRAY
|
||||
@ProtoNumber(1) @JvmField val msgType: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val msgInfo: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(3) @JvmField val versionCtrl: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(4) @JvmField val groupId: Long = 0L,
|
||||
@ProtoNumber(5) @JvmField val operUin: Long = 0L,
|
||||
@ProtoNumber(6) @JvmField val grayTips: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(7) @JvmField val msgSeq: Long = 0L,
|
||||
@ProtoNumber(8) @JvmField val joinNums: Int = 0,
|
||||
@ProtoNumber(9) @JvmField val msgPerSetting: PersonalSetting? = null,
|
||||
@ProtoNumber(10) @JvmField val playMode: Int = 0,
|
||||
@ProtoNumber(99) @JvmField val mediaType: Int = 0,
|
||||
@ProtoNumber(100) @JvmField val extInfo: ByteArray = EMPTY_BYTE_ARRAY
|
||||
) : ProtoBuf {
|
||||
@Serializable
|
||||
internal class PersonalSetting(
|
||||
@ProtoId(1) @JvmField val themeId: Int = 0,
|
||||
@ProtoId(2) @JvmField val playerId: Int = 0,
|
||||
@ProtoId(3) @JvmField val fontId: Int = 0
|
||||
@ProtoNumber(1) @JvmField val themeId: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val playerId: Int = 0,
|
||||
@ProtoNumber(3) @JvmField val fontId: Int = 0
|
||||
) : ProtoBuf
|
||||
}
|
||||
|
||||
@Serializable
|
||||
internal class MessageBoxInfo(
|
||||
@ProtoId(1) @JvmField val optBytesContent: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(2) @JvmField val optBytesTitle: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(3) @JvmField val optBytesButton: ByteArray = EMPTY_BYTE_ARRAY
|
||||
@ProtoNumber(1) @JvmField val optBytesContent: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(2) @JvmField val optBytesTitle: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(3) @JvmField val optBytesButton: ByteArray = EMPTY_BYTE_ARRAY
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class MessageRecallReminder(
|
||||
@ProtoId(1) @JvmField val uin: Long = 0L,
|
||||
@ProtoId(2) @JvmField val nickname: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(3) @JvmField val recalledMsgList: List<MessageMeta> = listOf(),
|
||||
@ProtoId(4) @JvmField val reminderContent: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(5) @JvmField val userdef: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(6) @JvmField val groupType: Int = 0,
|
||||
@ProtoId(7) @JvmField val opType: Int = 0
|
||||
@ProtoNumber(1) @JvmField val uin: Long = 0L,
|
||||
@ProtoNumber(2) @JvmField val nickname: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(3) @JvmField val recalledMsgList: List<MessageMeta> = listOf(),
|
||||
@ProtoNumber(4) @JvmField val reminderContent: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(5) @JvmField val userdef: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(6) @JvmField val groupType: Int = 0,
|
||||
@ProtoNumber(7) @JvmField val opType: Int = 0
|
||||
) : ProtoBuf {
|
||||
@Serializable
|
||||
internal class MessageMeta(
|
||||
@ProtoId(1) @JvmField val seq: Int = 0,
|
||||
@ProtoId(2) @JvmField val time: Int = 0,
|
||||
@ProtoId(3) @JvmField val msgRandom: Int = 0,
|
||||
@ProtoId(4) @JvmField val msgType: Int = 0,
|
||||
@ProtoId(5) @JvmField val msgFlag: Int = 0,
|
||||
@ProtoId(6) @JvmField val authorUin: Long = 0L
|
||||
@ProtoNumber(1) @JvmField val seq: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val time: Int = 0,
|
||||
@ProtoNumber(3) @JvmField val msgRandom: Int = 0,
|
||||
@ProtoNumber(4) @JvmField val msgType: Int = 0,
|
||||
@ProtoNumber(5) @JvmField val msgFlag: Int = 0,
|
||||
@ProtoNumber(6) @JvmField val authorUin: Long = 0L
|
||||
) : ProtoBuf
|
||||
}
|
||||
|
||||
@Serializable
|
||||
internal class MiniAppNotify(
|
||||
@ProtoId(1) @JvmField val msg: ByteArray = EMPTY_BYTE_ARRAY
|
||||
@ProtoNumber(1) @JvmField val msg: ByteArray = EMPTY_BYTE_ARRAY
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class NotifyMsgBody(
|
||||
@ProtoId(1) @JvmField val optEnumType: Int /* enum */ = 1,
|
||||
@ProtoId(2) @JvmField val optUint64MsgTime: Long = 0L,
|
||||
@ProtoId(3) @JvmField val optUint64MsgExpires: Long = 0L,
|
||||
@ProtoId(4) @JvmField val optUint64GroupCode: Long = 0L,
|
||||
@ProtoId(5) @JvmField val optMsgGraytips: AIOGrayTipsInfo? = null,
|
||||
@ProtoId(6) @JvmField val optMsgMessagebox: MessageBoxInfo? = null,
|
||||
@ProtoId(7) @JvmField val optMsgFloatedtips: FloatedTipsInfo? = null,
|
||||
@ProtoId(8) @JvmField val optMsgToptips: AIOTopTipsInfo? = null,
|
||||
@ProtoId(9) @JvmField val optMsgRedtips: RedGrayTipsInfo? = null,
|
||||
@ProtoId(10) @JvmField val optMsgGroupNotify: GroupNotifyInfo? = null,
|
||||
@ProtoId(11) @JvmField val optMsgRecall: MessageRecallReminder? = null,
|
||||
@ProtoId(12) @JvmField val optMsgThemeNotify: ThemeStateNotify? = null,
|
||||
@ProtoId(13) @JvmField val serviceType: Int = 0,
|
||||
@ProtoId(14) @JvmField val optMsgObjmsgUpdate: NotifyObjmsgUpdate? = null,
|
||||
@ProtoId(15) @JvmField val optMsgWerewolfPush: WereWolfPush? = null,
|
||||
@ProtoNumber(1) @JvmField val optEnumType: Int /* enum */ = 1,
|
||||
@ProtoNumber(2) @JvmField val optUint64MsgTime: Long = 0L,
|
||||
@ProtoNumber(3) @JvmField val optUint64MsgExpires: Long = 0L,
|
||||
@ProtoNumber(4) @JvmField val optUint64GroupCode: Long = 0L,
|
||||
@ProtoNumber(5) @JvmField val optMsgGraytips: AIOGrayTipsInfo? = null,
|
||||
@ProtoNumber(6) @JvmField val optMsgMessagebox: MessageBoxInfo? = null,
|
||||
@ProtoNumber(7) @JvmField val optMsgFloatedtips: FloatedTipsInfo? = null,
|
||||
@ProtoNumber(8) @JvmField val optMsgToptips: AIOTopTipsInfo? = null,
|
||||
@ProtoNumber(9) @JvmField val optMsgRedtips: RedGrayTipsInfo? = null,
|
||||
@ProtoNumber(10) @JvmField val optMsgGroupNotify: GroupNotifyInfo? = null,
|
||||
@ProtoNumber(11) @JvmField val optMsgRecall: MessageRecallReminder? = null,
|
||||
@ProtoNumber(12) @JvmField val optMsgThemeNotify: ThemeStateNotify? = null,
|
||||
@ProtoNumber(13) @JvmField val serviceType: Int = 0,
|
||||
@ProtoNumber(14) @JvmField val optMsgObjmsgUpdate: NotifyObjmsgUpdate? = null,
|
||||
@ProtoNumber(15) @JvmField val optMsgWerewolfPush: WereWolfPush? = null,
|
||||
// @SerialId(16) @JvmField val optStcmGameState: ApolloGameStatus.STCMGameMessage? = null,
|
||||
// @SerialId(17) @JvmField val aplloMsgPush: ApolloPushMsgInfo.STPushMsgElem? = null,
|
||||
@ProtoId(18) @JvmField val optMsgGoldtips: GoldMsgTipsElem? = null,
|
||||
@ProtoId(20) @JvmField val optMsgMiniappNotify: MiniAppNotify? = null,
|
||||
@ProtoId(21) @JvmField val optUint64SenderUin: Long = 0L,
|
||||
@ProtoId(22) @JvmField val optMsgLuckybagNotify: LuckyBagNotify? = null,
|
||||
@ProtoId(23) @JvmField val optMsgTroopformtipsPush: TroopFormGrayTipsInfo? = null,
|
||||
@ProtoId(24) @JvmField val optMsgMediaPush: MediaChangePushInfo? = null,
|
||||
@ProtoId(26) @JvmField val optGeneralGrayTip: GeneralGrayTipInfo? = null,
|
||||
@ProtoId(27) @JvmField val optMsgVideoPush: VideoChangePushInfo? = null,
|
||||
@ProtoId(28) @JvmField val optLbsShareChangePlusInfo: LbsShareChangePushInfo? = null,
|
||||
@ProtoId(29) @JvmField val optMsgSingPush: SingChangePushInfo? = null,
|
||||
@ProtoId(30) @JvmField val optMsgGroupInfoChange: GroupInfoChange? = null
|
||||
@ProtoNumber(18) @JvmField val optMsgGoldtips: GoldMsgTipsElem? = null,
|
||||
@ProtoNumber(20) @JvmField val optMsgMiniappNotify: MiniAppNotify? = null,
|
||||
@ProtoNumber(21) @JvmField val optUint64SenderUin: Long = 0L,
|
||||
@ProtoNumber(22) @JvmField val optMsgLuckybagNotify: LuckyBagNotify? = null,
|
||||
@ProtoNumber(23) @JvmField val optMsgTroopformtipsPush: TroopFormGrayTipsInfo? = null,
|
||||
@ProtoNumber(24) @JvmField val optMsgMediaPush: MediaChangePushInfo? = null,
|
||||
@ProtoNumber(26) @JvmField val optGeneralGrayTip: GeneralGrayTipInfo? = null,
|
||||
@ProtoNumber(27) @JvmField val optMsgVideoPush: VideoChangePushInfo? = null,
|
||||
@ProtoNumber(28) @JvmField val optLbsShareChangePlusInfo: LbsShareChangePushInfo? = null,
|
||||
@ProtoNumber(29) @JvmField val optMsgSingPush: SingChangePushInfo? = null,
|
||||
@ProtoNumber(30) @JvmField val optMsgGroupInfoChange: GroupInfoChange? = null
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class NotifyObjmsgUpdate(
|
||||
@ProtoId(1) @JvmField val objmsgId: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(2) @JvmField val updateType: Int = 0,
|
||||
@ProtoId(3) @JvmField val extMsg: ByteArray = EMPTY_BYTE_ARRAY
|
||||
@ProtoNumber(1) @JvmField val objmsgId: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(2) @JvmField val updateType: Int = 0,
|
||||
@ProtoNumber(3) @JvmField val extMsg: ByteArray = EMPTY_BYTE_ARRAY
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class RedGrayTipsInfo(
|
||||
@ProtoId(1) @JvmField val optUint32ShowLastest: Int = 0,
|
||||
@ProtoId(2) @JvmField val senderUin: Long = 0L,
|
||||
@ProtoId(3) @JvmField val receiverUin: Long = 0L,
|
||||
@ProtoId(4) @JvmField val senderRichContent: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(5) @JvmField val receiverRichContent: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(6) @JvmField val authkey: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoType(ProtoNumberType.SIGNED) @ProtoId(7) @JvmField val sint32Msgtype: Int = 0,
|
||||
@ProtoId(8) @JvmField val luckyFlag: Int = 0,
|
||||
@ProtoId(9) @JvmField val hideFlag: Int = 0,
|
||||
@ProtoId(10) @JvmField val pcBody: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(11) @JvmField val icon: Int = 0,
|
||||
@ProtoId(12) @JvmField val luckyUin: Long = 0L,
|
||||
@ProtoId(13) @JvmField val time: Int = 0,
|
||||
@ProtoId(14) @JvmField val random: Int = 0,
|
||||
@ProtoId(15) @JvmField val broadcastRichContent: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(16) @JvmField val idiom: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(17) @JvmField val idiomSeq: Int = 0,
|
||||
@ProtoId(18) @JvmField val idiomAlpha: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(19) @JvmField val jumpurl: ByteArray = EMPTY_BYTE_ARRAY
|
||||
@ProtoNumber(1) @JvmField val optUint32ShowLastest: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val senderUin: Long = 0L,
|
||||
@ProtoNumber(3) @JvmField val receiverUin: Long = 0L,
|
||||
@ProtoNumber(4) @JvmField val senderRichContent: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(5) @JvmField val receiverRichContent: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(6) @JvmField val authkey: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoType(ProtoIntegerType.SIGNED) @ProtoNumber(7) @JvmField val sint32Msgtype: Int = 0,
|
||||
@ProtoNumber(8) @JvmField val luckyFlag: Int = 0,
|
||||
@ProtoNumber(9) @JvmField val hideFlag: Int = 0,
|
||||
@ProtoNumber(10) @JvmField val pcBody: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(11) @JvmField val icon: Int = 0,
|
||||
@ProtoNumber(12) @JvmField val luckyUin: Long = 0L,
|
||||
@ProtoNumber(13) @JvmField val time: Int = 0,
|
||||
@ProtoNumber(14) @JvmField val random: Int = 0,
|
||||
@ProtoNumber(15) @JvmField val broadcastRichContent: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(16) @JvmField val idiom: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(17) @JvmField val idiomSeq: Int = 0,
|
||||
@ProtoNumber(18) @JvmField val idiomAlpha: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(19) @JvmField val jumpurl: ByteArray = EMPTY_BYTE_ARRAY
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class ReqBody(
|
||||
@ProtoId(1) @JvmField val optUint64GroupCode: Long = 0L,
|
||||
@ProtoId(2) @JvmField val uint64Memberuins: List<Long>? = null,
|
||||
@ProtoId(3) @JvmField val optUint32Offline: Int = 0,
|
||||
@ProtoId(4) @JvmField val msgInstCtrl: InstCtrl? = null,
|
||||
@ProtoId(5) @JvmField val optBytesMsg: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(6) @JvmField val optUint32BusiType: Int = 0
|
||||
@ProtoNumber(1) @JvmField val optUint64GroupCode: Long = 0L,
|
||||
@ProtoNumber(2) @JvmField val uint64Memberuins: List<Long>? = null,
|
||||
@ProtoNumber(3) @JvmField val optUint32Offline: Int = 0,
|
||||
@ProtoNumber(4) @JvmField val msgInstCtrl: InstCtrl? = null,
|
||||
@ProtoNumber(5) @JvmField val optBytesMsg: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(6) @JvmField val optUint32BusiType: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class RspBody(
|
||||
@ProtoId(1) @JvmField val optUint64GroupCode: Long = 0L
|
||||
@ProtoNumber(1) @JvmField val optUint64GroupCode: Long = 0L
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class SingChangePushInfo(
|
||||
@ProtoId(1) @JvmField val seq: Long = 0L,
|
||||
@ProtoId(2) @JvmField val actionType: Int = 0,
|
||||
@ProtoId(3) @JvmField val groupId: Long = 0L,
|
||||
@ProtoId(4) @JvmField val operUin: Long = 0L,
|
||||
@ProtoId(5) @JvmField val grayTips: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(6) @JvmField val joinNums: Int = 0
|
||||
@ProtoNumber(1) @JvmField val seq: Long = 0L,
|
||||
@ProtoNumber(2) @JvmField val actionType: Int = 0,
|
||||
@ProtoNumber(3) @JvmField val groupId: Long = 0L,
|
||||
@ProtoNumber(4) @JvmField val operUin: Long = 0L,
|
||||
@ProtoNumber(5) @JvmField val grayTips: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(6) @JvmField val joinNums: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class TemplParam(
|
||||
@ProtoId(1) @JvmField val name: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(2) @JvmField val value: ByteArray = EMPTY_BYTE_ARRAY
|
||||
@ProtoNumber(1) @JvmField val name: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(2) @JvmField val value: ByteArray = EMPTY_BYTE_ARRAY
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class ThemeStateNotify(
|
||||
@ProtoId(1) @JvmField val state: Int = 0,
|
||||
@ProtoId(2) @JvmField val feedsId: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(3) @JvmField val themeName: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(4) @JvmField val actionUin: Long = 0L,
|
||||
@ProtoId(5) @JvmField val createUin: Long = 0L
|
||||
@ProtoNumber(1) @JvmField val state: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val feedsId: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(3) @JvmField val themeName: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(4) @JvmField val actionUin: Long = 0L,
|
||||
@ProtoNumber(5) @JvmField val createUin: Long = 0L
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class TroopFormGrayTipsInfo(
|
||||
@ProtoId(1) @JvmField val writerUin: Long = 0L,
|
||||
@ProtoId(2) @JvmField val creatorUin: Long = 0L,
|
||||
@ProtoId(3) @JvmField val richContent: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(4) @JvmField val optBytesUrl: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(5) @JvmField val creatorNick: ByteArray = EMPTY_BYTE_ARRAY
|
||||
@ProtoNumber(1) @JvmField val writerUin: Long = 0L,
|
||||
@ProtoNumber(2) @JvmField val creatorUin: Long = 0L,
|
||||
@ProtoNumber(3) @JvmField val richContent: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(4) @JvmField val optBytesUrl: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(5) @JvmField val creatorNick: ByteArray = EMPTY_BYTE_ARRAY
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class VideoChangePushInfo(
|
||||
@ProtoId(1) @JvmField val seq: Long = 0L,
|
||||
@ProtoId(2) @JvmField val actionType: Int = 0,
|
||||
@ProtoId(3) @JvmField val groupId: Long = 0L,
|
||||
@ProtoId(4) @JvmField val operUin: Long = 0L,
|
||||
@ProtoId(5) @JvmField val grayTips: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(6) @JvmField val joinNums: Int = 0,
|
||||
@ProtoId(100) @JvmField val extInfo: ByteArray = EMPTY_BYTE_ARRAY
|
||||
@ProtoNumber(1) @JvmField val seq: Long = 0L,
|
||||
@ProtoNumber(2) @JvmField val actionType: Int = 0,
|
||||
@ProtoNumber(3) @JvmField val groupId: Long = 0L,
|
||||
@ProtoNumber(4) @JvmField val operUin: Long = 0L,
|
||||
@ProtoNumber(5) @JvmField val grayTips: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(6) @JvmField val joinNums: Int = 0,
|
||||
@ProtoNumber(100) @JvmField val extInfo: ByteArray = EMPTY_BYTE_ARRAY
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class WereWolfPush(
|
||||
@ProtoId(1) @JvmField val pushType: Int = 0,
|
||||
@ProtoId(2) @JvmField val gameRoom: Long = 0L,
|
||||
@ProtoId(3) @JvmField val enumGameState: Int = 0,
|
||||
@ProtoId(4) @JvmField val gameRound: Int = 0,
|
||||
@ProtoId(5) @JvmField val roles: List<Role>? = null,
|
||||
@ProtoId(6) @JvmField val speaker: Long = 0L,
|
||||
@ProtoId(7) @JvmField val judgeUin: Long = 0L,
|
||||
@ProtoId(8) @JvmField val judgeWords: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(9) @JvmField val enumOperation: Int = 0,
|
||||
@ProtoId(10) @JvmField val srcUser: Long = 0L,
|
||||
@ProtoId(11) @JvmField val dstUser: Long = 0L,
|
||||
@ProtoId(12) @JvmField val deadUsers: List<Long>? = null,
|
||||
@ProtoId(13) @JvmField val gameResult: Int = 0,
|
||||
@ProtoId(14) @JvmField val timeoutSec: Int = 0,
|
||||
@ProtoId(15) @JvmField val killConfirmed: Int = 0,
|
||||
@ProtoId(16) @JvmField val judgeNickname: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(17) @JvmField val votedTieUsers: List<Long>? = null
|
||||
@ProtoNumber(1) @JvmField val pushType: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val gameRoom: Long = 0L,
|
||||
@ProtoNumber(3) @JvmField val enumGameState: Int = 0,
|
||||
@ProtoNumber(4) @JvmField val gameRound: Int = 0,
|
||||
@ProtoNumber(5) @JvmField val roles: List<Role>? = null,
|
||||
@ProtoNumber(6) @JvmField val speaker: Long = 0L,
|
||||
@ProtoNumber(7) @JvmField val judgeUin: Long = 0L,
|
||||
@ProtoNumber(8) @JvmField val judgeWords: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(9) @JvmField val enumOperation: Int = 0,
|
||||
@ProtoNumber(10) @JvmField val srcUser: Long = 0L,
|
||||
@ProtoNumber(11) @JvmField val dstUser: Long = 0L,
|
||||
@ProtoNumber(12) @JvmField val deadUsers: List<Long>? = null,
|
||||
@ProtoNumber(13) @JvmField val gameResult: Int = 0,
|
||||
@ProtoNumber(14) @JvmField val timeoutSec: Int = 0,
|
||||
@ProtoNumber(15) @JvmField val killConfirmed: Int = 0,
|
||||
@ProtoNumber(16) @JvmField val judgeNickname: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(17) @JvmField val votedTieUsers: List<Long>? = null
|
||||
) : ProtoBuf {
|
||||
@Serializable
|
||||
internal class GameRecord(
|
||||
@ProtoId(1) @JvmField val total: Int = 0,
|
||||
@ProtoId(2) @JvmField val win: Int = 0,
|
||||
@ProtoId(3) @JvmField val lose: Int = 0,
|
||||
@ProtoId(4) @JvmField val draw: Int = 0
|
||||
@ProtoNumber(1) @JvmField val total: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val win: Int = 0,
|
||||
@ProtoNumber(3) @JvmField val lose: Int = 0,
|
||||
@ProtoNumber(4) @JvmField val draw: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class Role(
|
||||
@ProtoId(1) @JvmField val uin: Long = 0L,
|
||||
@ProtoId(2) @JvmField val enumType: Int = 0,
|
||||
@ProtoId(3) @JvmField val enumState: Int = 0,
|
||||
@ProtoId(4) @JvmField val canSpeak: Int = 0,
|
||||
@ProtoId(5) @JvmField val canListen: Int = 0,
|
||||
@ProtoId(6) @JvmField val position: Int = 0,
|
||||
@ProtoId(7) @JvmField val canVote: Int = 0,
|
||||
@ProtoId(8) @JvmField val canVoted: Int = 0,
|
||||
@ProtoId(9) @JvmField val alreadyChecked: Int = 0,
|
||||
@ProtoId(10) @JvmField val alreadySaved: Int = 0,
|
||||
@ProtoId(11) @JvmField val alreadyPoisoned: Int = 0,
|
||||
@ProtoId(12) @JvmField val playerState: Int = 0,
|
||||
@ProtoId(13) @JvmField val enumDeadOp: Int = 0,
|
||||
@ProtoId(14) @JvmField val enumOperation: Int = 0,
|
||||
@ProtoId(15) @JvmField val dstUser: Long = 0L,
|
||||
@ProtoId(16) @JvmField val operationRound: Int = 0,
|
||||
@ProtoId(17) @JvmField val msgGameRecord: GameRecord? = null,
|
||||
@ProtoId(18) @JvmField val isWerewolf: Int = 0,
|
||||
@ProtoId(19) @JvmField val defendedUser: Long = 0L,
|
||||
@ProtoId(20) @JvmField val isSheriff: Int = 0
|
||||
@ProtoNumber(1) @JvmField val uin: Long = 0L,
|
||||
@ProtoNumber(2) @JvmField val enumType: Int = 0,
|
||||
@ProtoNumber(3) @JvmField val enumState: Int = 0,
|
||||
@ProtoNumber(4) @JvmField val canSpeak: Int = 0,
|
||||
@ProtoNumber(5) @JvmField val canListen: Int = 0,
|
||||
@ProtoNumber(6) @JvmField val position: Int = 0,
|
||||
@ProtoNumber(7) @JvmField val canVote: Int = 0,
|
||||
@ProtoNumber(8) @JvmField val canVoted: Int = 0,
|
||||
@ProtoNumber(9) @JvmField val alreadyChecked: Int = 0,
|
||||
@ProtoNumber(10) @JvmField val alreadySaved: Int = 0,
|
||||
@ProtoNumber(11) @JvmField val alreadyPoisoned: Int = 0,
|
||||
@ProtoNumber(12) @JvmField val playerState: Int = 0,
|
||||
@ProtoNumber(13) @JvmField val enumDeadOp: Int = 0,
|
||||
@ProtoNumber(14) @JvmField val enumOperation: Int = 0,
|
||||
@ProtoNumber(15) @JvmField val dstUser: Long = 0L,
|
||||
@ProtoNumber(16) @JvmField val operationRound: Int = 0,
|
||||
@ProtoNumber(17) @JvmField val msgGameRecord: GameRecord? = null,
|
||||
@ProtoNumber(18) @JvmField val isWerewolf: Int = 0,
|
||||
@ProtoNumber(19) @JvmField val defendedUser: Long = 0L,
|
||||
@ProtoNumber(20) @JvmField val isSheriff: Int = 0
|
||||
) : ProtoBuf
|
||||
}
|
||||
}
|
@ -3,8 +3,8 @@
|
||||
package net.mamoe.mirai.qqandroid.network.protocol.data.proto
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.protobuf.ProtoId
|
||||
import kotlinx.serialization.protobuf.ProtoNumberType
|
||||
import kotlinx.serialization.protobuf.ProtoIntegerType
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
import kotlinx.serialization.protobuf.ProtoType
|
||||
import net.mamoe.mirai.qqandroid.network.protocol.packet.EMPTY_BYTE_ARRAY
|
||||
import net.mamoe.mirai.qqandroid.utils.io.ProtoBuf
|
||||
@ -14,74 +14,74 @@ import kotlin.jvm.JvmField
|
||||
internal class Oidb0x858 : ProtoBuf {
|
||||
@Serializable
|
||||
internal class GoldMsgTipsElem(
|
||||
@ProtoId(1) @JvmField val type: Int = 0,
|
||||
@ProtoId(2) @JvmField val billno: String = "",
|
||||
@ProtoId(3) @JvmField val result: Int = 0,
|
||||
@ProtoId(4) @JvmField val amount: Int = 0,
|
||||
@ProtoId(5) @JvmField val total: Int = 0,
|
||||
@ProtoId(6) @JvmField val interval: Int = 0,
|
||||
@ProtoId(7) @JvmField val finish: Int = 0,
|
||||
@ProtoId(8) @JvmField val uin: List<Long>? = null,
|
||||
@ProtoId(9) @JvmField val action: Int = 0
|
||||
@ProtoNumber(1) @JvmField val type: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val billno: String = "",
|
||||
@ProtoNumber(3) @JvmField val result: Int = 0,
|
||||
@ProtoNumber(4) @JvmField val amount: Int = 0,
|
||||
@ProtoNumber(5) @JvmField val total: Int = 0,
|
||||
@ProtoNumber(6) @JvmField val interval: Int = 0,
|
||||
@ProtoNumber(7) @JvmField val finish: Int = 0,
|
||||
@ProtoNumber(8) @JvmField val uin: List<Long>? = null,
|
||||
@ProtoNumber(9) @JvmField val action: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class MessageRecallReminder(
|
||||
@ProtoId(1) @JvmField val uin: Long = 0L,
|
||||
@ProtoId(2) @JvmField val nickname: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(3) @JvmField val recalledMsgList: List<MessageMeta> = listOf(),
|
||||
@ProtoId(4) @JvmField val reminderContent: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(5) @JvmField val userdef: ByteArray = EMPTY_BYTE_ARRAY
|
||||
@ProtoNumber(1) @JvmField val uin: Long = 0L,
|
||||
@ProtoNumber(2) @JvmField val nickname: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(3) @JvmField val recalledMsgList: List<MessageMeta> = listOf(),
|
||||
@ProtoNumber(4) @JvmField val reminderContent: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(5) @JvmField val userdef: ByteArray = EMPTY_BYTE_ARRAY
|
||||
) : ProtoBuf {
|
||||
@Serializable
|
||||
internal class MessageMeta(
|
||||
@ProtoId(1) @JvmField val seq: Int = 0,
|
||||
@ProtoId(2) @JvmField val time: Int = 0,
|
||||
@ProtoId(3) @JvmField val msgRandom: Int = 0
|
||||
@ProtoNumber(1) @JvmField val seq: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val time: Int = 0,
|
||||
@ProtoNumber(3) @JvmField val msgRandom: Int = 0
|
||||
) : ProtoBuf
|
||||
}
|
||||
|
||||
@Serializable
|
||||
internal class NotifyMsgBody(
|
||||
@ProtoId(1) @JvmField val optEnumType: Int /* enum */ = 5,
|
||||
@ProtoId(2) @JvmField val optUint64MsgTime: Long = 0L,
|
||||
@ProtoId(3) @JvmField val optUint64MsgExpires: Long = 0L,
|
||||
@ProtoId(4) @JvmField val optUint64ConfUin: Long = 0L,
|
||||
@ProtoId(5) @JvmField val optMsgRedtips: RedGrayTipsInfo? = null,
|
||||
@ProtoId(6) @JvmField val optMsgRecallReminder: MessageRecallReminder? = null,
|
||||
@ProtoId(7) @JvmField val optMsgObjUpdate: NotifyObjmsgUpdate? = null,
|
||||
@ProtoNumber(1) @JvmField val optEnumType: Int /* enum */ = 5,
|
||||
@ProtoNumber(2) @JvmField val optUint64MsgTime: Long = 0L,
|
||||
@ProtoNumber(3) @JvmField val optUint64MsgExpires: Long = 0L,
|
||||
@ProtoNumber(4) @JvmField val optUint64ConfUin: Long = 0L,
|
||||
@ProtoNumber(5) @JvmField val optMsgRedtips: RedGrayTipsInfo? = null,
|
||||
@ProtoNumber(6) @JvmField val optMsgRecallReminder: MessageRecallReminder? = null,
|
||||
@ProtoNumber(7) @JvmField val optMsgObjUpdate: NotifyObjmsgUpdate? = null,
|
||||
// @SerialId(8) @JvmField val optStcmGameState: ApolloGameStatus.STCMGameMessage? = null,
|
||||
// @SerialId(9) @JvmField val aplloMsgPush: ApolloPushMsgInfo.STPushMsgElem? = null,
|
||||
@ProtoId(10) @JvmField val optMsgGoldtips: GoldMsgTipsElem? = null
|
||||
@ProtoNumber(10) @JvmField val optMsgGoldtips: GoldMsgTipsElem? = null
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class NotifyObjmsgUpdate(
|
||||
@ProtoId(1) @JvmField val objmsgId: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(2) @JvmField val updateType: Int = 0,
|
||||
@ProtoId(3) @JvmField val extMsg: ByteArray = EMPTY_BYTE_ARRAY
|
||||
@ProtoNumber(1) @JvmField val objmsgId: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(2) @JvmField val updateType: Int = 0,
|
||||
@ProtoNumber(3) @JvmField val extMsg: ByteArray = EMPTY_BYTE_ARRAY
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class RedGrayTipsInfo(
|
||||
@ProtoId(1) @JvmField val optUint32ShowLastest: Int = 0,
|
||||
@ProtoId(2) @JvmField val senderUin: Long = 0L,
|
||||
@ProtoId(3) @JvmField val receiverUin: Long = 0L,
|
||||
@ProtoId(4) @JvmField val senderRichContent: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(5) @JvmField val receiverRichContent: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(6) @JvmField val authkey: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoType(ProtoNumberType.SIGNED) @ProtoId(7) @JvmField val sint32Msgtype: Int = 0,
|
||||
@ProtoId(8) @JvmField val luckyFlag: Int = 0,
|
||||
@ProtoId(9) @JvmField val hideFlag: Int = 0,
|
||||
@ProtoId(10) @JvmField val pcBody: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(11) @JvmField val icon: Int = 0,
|
||||
@ProtoId(12) @JvmField val luckyUin: Long = 0L,
|
||||
@ProtoId(13) @JvmField val time: Int = 0,
|
||||
@ProtoId(14) @JvmField val random: Int = 0,
|
||||
@ProtoId(15) @JvmField val broadcastRichContent: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(16) @JvmField val idiom: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(17) @JvmField val idiomSeq: Int = 0,
|
||||
@ProtoId(18) @JvmField val idiomAlpha: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(19) @JvmField val jumpurl: ByteArray = EMPTY_BYTE_ARRAY
|
||||
@ProtoNumber(1) @JvmField val optUint32ShowLastest: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val senderUin: Long = 0L,
|
||||
@ProtoNumber(3) @JvmField val receiverUin: Long = 0L,
|
||||
@ProtoNumber(4) @JvmField val senderRichContent: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(5) @JvmField val receiverRichContent: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(6) @JvmField val authkey: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoType(ProtoIntegerType.SIGNED) @ProtoNumber(7) @JvmField val sint32Msgtype: Int = 0,
|
||||
@ProtoNumber(8) @JvmField val luckyFlag: Int = 0,
|
||||
@ProtoNumber(9) @JvmField val hideFlag: Int = 0,
|
||||
@ProtoNumber(10) @JvmField val pcBody: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(11) @JvmField val icon: Int = 0,
|
||||
@ProtoNumber(12) @JvmField val luckyUin: Long = 0L,
|
||||
@ProtoNumber(13) @JvmField val time: Int = 0,
|
||||
@ProtoNumber(14) @JvmField val random: Int = 0,
|
||||
@ProtoNumber(15) @JvmField val broadcastRichContent: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(16) @JvmField val idiom: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(17) @JvmField val idiomSeq: Int = 0,
|
||||
@ProtoNumber(18) @JvmField val idiomAlpha: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(19) @JvmField val jumpurl: ByteArray = EMPTY_BYTE_ARRAY
|
||||
) : ProtoBuf
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
package net.mamoe.mirai.qqandroid.network.protocol.data.proto
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.protobuf.ProtoId
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
import net.mamoe.mirai.qqandroid.network.protocol.packet.EMPTY_BYTE_ARRAY
|
||||
import net.mamoe.mirai.qqandroid.utils.io.ProtoBuf
|
||||
import kotlin.jvm.JvmField
|
||||
@ -9,56 +9,56 @@ import kotlin.jvm.JvmField
|
||||
internal class Common : ProtoBuf {
|
||||
@Serializable
|
||||
internal class BindInfo(
|
||||
@ProtoId(1) @JvmField val friUin: Long = 0L,
|
||||
@ProtoId(2) @JvmField val friNick: String = "",
|
||||
@ProtoId(3) @JvmField val time: Long = 0L,
|
||||
@ProtoId(4) @JvmField val bindStatus: Int = 0
|
||||
@ProtoNumber(1) @JvmField val friUin: Long = 0L,
|
||||
@ProtoNumber(2) @JvmField val friNick: String = "",
|
||||
@ProtoNumber(3) @JvmField val time: Long = 0L,
|
||||
@ProtoNumber(4) @JvmField val bindStatus: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class MedalInfo(
|
||||
@ProtoId(1) @JvmField val id: Int = 0,
|
||||
@ProtoId(2) @JvmField val type: Int = 0,
|
||||
@ProtoId(4) @JvmField val seq: Long = 0,
|
||||
@ProtoId(5) @JvmField val name: String = "",
|
||||
@ProtoId(6) @JvmField val newflag: Int = 0,
|
||||
@ProtoId(7) @JvmField val time: Long = 0L,
|
||||
@ProtoId(8) @JvmField val msgBindFri: BindInfo? = null,
|
||||
@ProtoId(11) @JvmField val desc: String = "",
|
||||
@ProtoId(31) @JvmField val level: Int = 0,
|
||||
@ProtoId(36) @JvmField val taskinfos: List<MedalTaskInfo>? = null,
|
||||
@ProtoId(40) @JvmField val point: Int = 0,
|
||||
@ProtoId(41) @JvmField val pointLevel2: Int = 0,
|
||||
@ProtoId(42) @JvmField val pointLevel3: Int = 0,
|
||||
@ProtoId(43) @JvmField val seqLevel2: Long = 0,
|
||||
@ProtoId(44) @JvmField val seqLevel3: Long = 0,
|
||||
@ProtoId(45) @JvmField val timeLevel2: Long = 0L,
|
||||
@ProtoId(46) @JvmField val timeLevel3: Long = 0L,
|
||||
@ProtoId(47) @JvmField val descLevel2: String = "",
|
||||
@ProtoId(48) @JvmField val descLevel3: String = "",
|
||||
@ProtoId(49) @JvmField val endtime: Int = 0,
|
||||
@ProtoId(50) @JvmField val detailUrl: String = "",
|
||||
@ProtoId(51) @JvmField val detailUrl2: String = "",
|
||||
@ProtoId(52) @JvmField val detailUrl3: String = "",
|
||||
@ProtoId(53) @JvmField val taskDesc: String = "",
|
||||
@ProtoId(54) @JvmField val taskDesc2: String = "",
|
||||
@ProtoId(55) @JvmField val taskDesc3: String = "",
|
||||
@ProtoId(56) @JvmField val levelCount: Int = 0,
|
||||
@ProtoId(57) @JvmField val noProgress: Int = 0,
|
||||
@ProtoId(58) @JvmField val resource: String = "",
|
||||
@ProtoId(59) @JvmField val fromuinLevel: Int = 0,
|
||||
@ProtoId(60) @JvmField val unread: Int = 0,
|
||||
@ProtoId(61) @JvmField val unread2: Int = 0,
|
||||
@ProtoId(62) @JvmField val unread3: Int = 0
|
||||
@ProtoNumber(1) @JvmField val id: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val type: Int = 0,
|
||||
@ProtoNumber(4) @JvmField val seq: Long = 0,
|
||||
@ProtoNumber(5) @JvmField val name: String = "",
|
||||
@ProtoNumber(6) @JvmField val newflag: Int = 0,
|
||||
@ProtoNumber(7) @JvmField val time: Long = 0L,
|
||||
@ProtoNumber(8) @JvmField val msgBindFri: BindInfo? = null,
|
||||
@ProtoNumber(11) @JvmField val desc: String = "",
|
||||
@ProtoNumber(31) @JvmField val level: Int = 0,
|
||||
@ProtoNumber(36) @JvmField val taskinfos: List<MedalTaskInfo>? = null,
|
||||
@ProtoNumber(40) @JvmField val point: Int = 0,
|
||||
@ProtoNumber(41) @JvmField val pointLevel2: Int = 0,
|
||||
@ProtoNumber(42) @JvmField val pointLevel3: Int = 0,
|
||||
@ProtoNumber(43) @JvmField val seqLevel2: Long = 0,
|
||||
@ProtoNumber(44) @JvmField val seqLevel3: Long = 0,
|
||||
@ProtoNumber(45) @JvmField val timeLevel2: Long = 0L,
|
||||
@ProtoNumber(46) @JvmField val timeLevel3: Long = 0L,
|
||||
@ProtoNumber(47) @JvmField val descLevel2: String = "",
|
||||
@ProtoNumber(48) @JvmField val descLevel3: String = "",
|
||||
@ProtoNumber(49) @JvmField val endtime: Int = 0,
|
||||
@ProtoNumber(50) @JvmField val detailUrl: String = "",
|
||||
@ProtoNumber(51) @JvmField val detailUrl2: String = "",
|
||||
@ProtoNumber(52) @JvmField val detailUrl3: String = "",
|
||||
@ProtoNumber(53) @JvmField val taskDesc: String = "",
|
||||
@ProtoNumber(54) @JvmField val taskDesc2: String = "",
|
||||
@ProtoNumber(55) @JvmField val taskDesc3: String = "",
|
||||
@ProtoNumber(56) @JvmField val levelCount: Int = 0,
|
||||
@ProtoNumber(57) @JvmField val noProgress: Int = 0,
|
||||
@ProtoNumber(58) @JvmField val resource: String = "",
|
||||
@ProtoNumber(59) @JvmField val fromuinLevel: Int = 0,
|
||||
@ProtoNumber(60) @JvmField val unread: Int = 0,
|
||||
@ProtoNumber(61) @JvmField val unread2: Int = 0,
|
||||
@ProtoNumber(62) @JvmField val unread3: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class MedalTaskInfo(
|
||||
@ProtoId(1) @JvmField val taskid: Int = 0,
|
||||
@ProtoId(32) @JvmField val int32TaskValue: Int = 0,
|
||||
@ProtoId(33) @JvmField val tarValue: Int = 0,
|
||||
@ProtoId(34) @JvmField val tarValueLevel2: Int = 0,
|
||||
@ProtoId(35) @JvmField val tarValueLevel3: Int = 0
|
||||
@ProtoNumber(1) @JvmField val taskid: Int = 0,
|
||||
@ProtoNumber(32) @JvmField val int32TaskValue: Int = 0,
|
||||
@ProtoNumber(33) @JvmField val tarValue: Int = 0,
|
||||
@ProtoNumber(34) @JvmField val tarValueLevel2: Int = 0,
|
||||
@ProtoNumber(35) @JvmField val tarValueLevel3: Int = 0
|
||||
) : ProtoBuf
|
||||
}
|
||||
|
||||
@ -66,475 +66,475 @@ internal class Common : ProtoBuf {
|
||||
internal class AppointDefine : ProtoBuf {
|
||||
@Serializable
|
||||
internal class ADFeedContent(
|
||||
@ProtoId(1) @JvmField val msgUserInfo: UserInfo? = null,
|
||||
@ProtoId(2) @JvmField val strPicUrl: List<String> = listOf(),
|
||||
@ProtoId(3) @JvmField val msgText: RichText? = null,
|
||||
@ProtoId(4) @JvmField val attendInfo: String = "",
|
||||
@ProtoId(5) @JvmField val actionUrl: String = "",
|
||||
@ProtoId(6) @JvmField val publishTime: Int = 0,
|
||||
@ProtoId(7) @JvmField val msgHotTopicList: HotTopicList? = null,
|
||||
@ProtoId(8) @JvmField val moreUrl: String = "",
|
||||
@ProtoId(9) @JvmField val recordDuration: String = ""
|
||||
@ProtoNumber(1) @JvmField val msgUserInfo: UserInfo? = null,
|
||||
@ProtoNumber(2) @JvmField val strPicUrl: List<String> = listOf(),
|
||||
@ProtoNumber(3) @JvmField val msgText: RichText? = null,
|
||||
@ProtoNumber(4) @JvmField val attendInfo: String = "",
|
||||
@ProtoNumber(5) @JvmField val actionUrl: String = "",
|
||||
@ProtoNumber(6) @JvmField val publishTime: Int = 0,
|
||||
@ProtoNumber(7) @JvmField val msgHotTopicList: HotTopicList? = null,
|
||||
@ProtoNumber(8) @JvmField val moreUrl: String = "",
|
||||
@ProtoNumber(9) @JvmField val recordDuration: String = ""
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class RichText(
|
||||
@ProtoId(1) @JvmField val msgElems: List<Elem>? = null
|
||||
@ProtoNumber(1) @JvmField val msgElems: List<Elem>? = null
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class RankEvent(
|
||||
@ProtoId(1) @JvmField val listtype: Int = 0,
|
||||
@ProtoId(2) @JvmField val notifytype: Int = 0,
|
||||
@ProtoId(3) @JvmField val eventtime: Int = 0,
|
||||
@ProtoId(4) @JvmField val seq: Int = 0,
|
||||
@ProtoId(5) @JvmField val notifyTips: String = ""
|
||||
@ProtoNumber(1) @JvmField val listtype: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val notifytype: Int = 0,
|
||||
@ProtoNumber(3) @JvmField val eventtime: Int = 0,
|
||||
@ProtoNumber(4) @JvmField val seq: Int = 0,
|
||||
@ProtoNumber(5) @JvmField val notifyTips: String = ""
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class Wifi(
|
||||
@ProtoId(1) @JvmField val mac: Long = 0L,
|
||||
@ProtoId(2) @JvmField val int32Rssi: Int = 0
|
||||
@ProtoNumber(1) @JvmField val mac: Long = 0L,
|
||||
@ProtoNumber(2) @JvmField val int32Rssi: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class InterestItem(
|
||||
@ProtoId(1) @JvmField val tagId: Long = 0L,
|
||||
@ProtoId(2) @JvmField val tagName: String = "",
|
||||
@ProtoId(3) @JvmField val tagIconUrl: String = "",
|
||||
@ProtoId(4) @JvmField val tagHref: String = "",
|
||||
@ProtoId(5) @JvmField val tagBackColor: String = "",
|
||||
@ProtoId(6) @JvmField val tagFontColor: String = "",
|
||||
@ProtoId(7) @JvmField val tagVid: String = "",
|
||||
@ProtoId(8) @JvmField val tagType: Int = 0,
|
||||
@ProtoId(9) @JvmField val addTime: Int = 0,
|
||||
@ProtoId(10) @JvmField val tagCategory: String = "",
|
||||
@ProtoId(11) @JvmField val tagOtherUrl: String = "",
|
||||
@ProtoId(12) @JvmField val bid: Int = 0
|
||||
@ProtoNumber(1) @JvmField val tagId: Long = 0L,
|
||||
@ProtoNumber(2) @JvmField val tagName: String = "",
|
||||
@ProtoNumber(3) @JvmField val tagIconUrl: String = "",
|
||||
@ProtoNumber(4) @JvmField val tagHref: String = "",
|
||||
@ProtoNumber(5) @JvmField val tagBackColor: String = "",
|
||||
@ProtoNumber(6) @JvmField val tagFontColor: String = "",
|
||||
@ProtoNumber(7) @JvmField val tagVid: String = "",
|
||||
@ProtoNumber(8) @JvmField val tagType: Int = 0,
|
||||
@ProtoNumber(9) @JvmField val addTime: Int = 0,
|
||||
@ProtoNumber(10) @JvmField val tagCategory: String = "",
|
||||
@ProtoNumber(11) @JvmField val tagOtherUrl: String = "",
|
||||
@ProtoNumber(12) @JvmField val bid: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class ShopID(
|
||||
@ProtoId(1) @JvmField val shopid: String = "",
|
||||
@ProtoId(2) @JvmField val sp: Int = 0
|
||||
@ProtoNumber(1) @JvmField val shopid: String = "",
|
||||
@ProtoNumber(2) @JvmField val sp: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class FeedComment(
|
||||
@ProtoId(1) @JvmField val commentId: String = "",
|
||||
@ProtoId(2) @JvmField val feedId: String = "",
|
||||
@ProtoId(3) @JvmField val msgPublisherInfo: StrangerInfo? = null,
|
||||
@ProtoId(4) @JvmField val time: Int = 0,
|
||||
@ProtoId(6) @JvmField val msgReplyInfo: ReplyInfo? = null,
|
||||
@ProtoId(7) @JvmField val flag: Int = 0,
|
||||
@ProtoId(8) @JvmField val msgContent: RichText? = null,
|
||||
@ProtoId(9) @JvmField val hot: Int = 0
|
||||
@ProtoNumber(1) @JvmField val commentId: String = "",
|
||||
@ProtoNumber(2) @JvmField val feedId: String = "",
|
||||
@ProtoNumber(3) @JvmField val msgPublisherInfo: StrangerInfo? = null,
|
||||
@ProtoNumber(4) @JvmField val time: Int = 0,
|
||||
@ProtoNumber(6) @JvmField val msgReplyInfo: ReplyInfo? = null,
|
||||
@ProtoNumber(7) @JvmField val flag: Int = 0,
|
||||
@ProtoNumber(8) @JvmField val msgContent: RichText? = null,
|
||||
@ProtoNumber(9) @JvmField val hot: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class ADFeed(
|
||||
@ProtoId(1) @JvmField val taskId: Int = 0,
|
||||
@ProtoId(2) @JvmField val style: Int = 0,
|
||||
@ProtoId(3) @JvmField val content: ByteArray = EMPTY_BYTE_ARRAY
|
||||
@ProtoNumber(1) @JvmField val taskId: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val style: Int = 0,
|
||||
@ProtoNumber(3) @JvmField val content: ByteArray = EMPTY_BYTE_ARRAY
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class Cell(
|
||||
@ProtoId(1) @JvmField val int32Mcc: Int = -1,
|
||||
@ProtoId(2) @JvmField val int32Mnc: Int = -1,
|
||||
@ProtoId(3) @JvmField val int32Lac: Int = -1,
|
||||
@ProtoId(4) @JvmField val int32Cellid: Int = -1,
|
||||
@ProtoId(5) @JvmField val int32Rssi: Int = 0
|
||||
@ProtoNumber(1) @JvmField val int32Mcc: Int = -1,
|
||||
@ProtoNumber(2) @JvmField val int32Mnc: Int = -1,
|
||||
@ProtoNumber(3) @JvmField val int32Lac: Int = -1,
|
||||
@ProtoNumber(4) @JvmField val int32Cellid: Int = -1,
|
||||
@ProtoNumber(5) @JvmField val int32Rssi: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class RecentVistorEvent(
|
||||
@ProtoId(1) @JvmField val eventtype: Int = 0,
|
||||
@ProtoId(2) @JvmField val eventTinyid: Long = 0L,
|
||||
@ProtoId(3) @JvmField val unreadCount: Int = 0
|
||||
@ProtoNumber(1) @JvmField val eventtype: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val eventTinyid: Long = 0L,
|
||||
@ProtoNumber(3) @JvmField val unreadCount: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class OrganizerInfo(
|
||||
@ProtoId(1) @JvmField val hostName: String = "",
|
||||
@ProtoId(2) @JvmField val hostUrl: String = "",
|
||||
@ProtoId(3) @JvmField val hostCover: String = ""
|
||||
@ProtoNumber(1) @JvmField val hostName: String = "",
|
||||
@ProtoNumber(2) @JvmField val hostUrl: String = "",
|
||||
@ProtoNumber(3) @JvmField val hostCover: String = ""
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class InterestTag(
|
||||
@ProtoId(1) @JvmField val tagType: Int = 0,
|
||||
@ProtoId(2) @JvmField val msgTagList: List<InterestItem>? = null
|
||||
@ProtoNumber(1) @JvmField val tagType: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val msgTagList: List<InterestItem>? = null
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class AppointInfoEx(
|
||||
@ProtoId(1) @JvmField val feedsPicUrl: String = "",
|
||||
@ProtoId(2) @JvmField val feedsUrl: String = "",
|
||||
@ProtoId(3) @JvmField val detailTitle: String = "",
|
||||
@ProtoId(4) @JvmField val detailDescribe: String = "",
|
||||
@ProtoId(5) @JvmField val showPublisher: Int = 0,
|
||||
@ProtoId(6) @JvmField val detailPicUrl: String = "",
|
||||
@ProtoId(7) @JvmField val detailUrl: String = "",
|
||||
@ProtoId(8) @JvmField val showAttend: Int = 0
|
||||
@ProtoNumber(1) @JvmField val feedsPicUrl: String = "",
|
||||
@ProtoNumber(2) @JvmField val feedsUrl: String = "",
|
||||
@ProtoNumber(3) @JvmField val detailTitle: String = "",
|
||||
@ProtoNumber(4) @JvmField val detailDescribe: String = "",
|
||||
@ProtoNumber(5) @JvmField val showPublisher: Int = 0,
|
||||
@ProtoNumber(6) @JvmField val detailPicUrl: String = "",
|
||||
@ProtoNumber(7) @JvmField val detailUrl: String = "",
|
||||
@ProtoNumber(8) @JvmField val showAttend: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class DateComment(
|
||||
@ProtoId(1) @JvmField val commentId: String = "",
|
||||
@ProtoId(2) @JvmField val msgAppointId: AppointID? = null,
|
||||
@ProtoId(3) @JvmField val msgPublisherInfo: StrangerInfo? = null,
|
||||
@ProtoId(4) @JvmField val time: Int = 0,
|
||||
@ProtoId(6) @JvmField val msgReplyInfo: ReplyInfo? = null,
|
||||
@ProtoId(7) @JvmField val flag: Int = 0,
|
||||
@ProtoId(8) @JvmField val msgContent: RichText? = null
|
||||
@ProtoNumber(1) @JvmField val commentId: String = "",
|
||||
@ProtoNumber(2) @JvmField val msgAppointId: AppointID? = null,
|
||||
@ProtoNumber(3) @JvmField val msgPublisherInfo: StrangerInfo? = null,
|
||||
@ProtoNumber(4) @JvmField val time: Int = 0,
|
||||
@ProtoNumber(6) @JvmField val msgReplyInfo: ReplyInfo? = null,
|
||||
@ProtoNumber(7) @JvmField val flag: Int = 0,
|
||||
@ProtoNumber(8) @JvmField val msgContent: RichText? = null
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class AppointContent(
|
||||
@ProtoId(1) @JvmField val appointSubject: Int = 0,
|
||||
@ProtoId(2) @JvmField val payType: Int = 0,
|
||||
@ProtoId(3) @JvmField val appointDate: Int = 0,
|
||||
@ProtoId(4) @JvmField val appointGender: Int = 0,
|
||||
@ProtoId(5) @JvmField val appointIntroduce: String = "",
|
||||
@ProtoId(6) @JvmField val msgAppointAddress: AddressInfo? = null,
|
||||
@ProtoId(7) @JvmField val msgTravelInfo: TravelInfo? = null
|
||||
@ProtoNumber(1) @JvmField val appointSubject: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val payType: Int = 0,
|
||||
@ProtoNumber(3) @JvmField val appointDate: Int = 0,
|
||||
@ProtoNumber(4) @JvmField val appointGender: Int = 0,
|
||||
@ProtoNumber(5) @JvmField val appointIntroduce: String = "",
|
||||
@ProtoNumber(6) @JvmField val msgAppointAddress: AddressInfo? = null,
|
||||
@ProtoNumber(7) @JvmField val msgTravelInfo: TravelInfo? = null
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class FeedInfo(
|
||||
@ProtoId(1) @JvmField val feedType: Long = 0L,
|
||||
@ProtoId(2) @JvmField val feedId: String = "",
|
||||
@ProtoId(3) @JvmField val msgFeedContent: FeedContent? = null,
|
||||
@ProtoId(4) @JvmField val msgTopicInfo: NearbyTopic? = null,
|
||||
@ProtoId(5) @JvmField val publishTime: Long = 0,
|
||||
@ProtoId(6) @JvmField val praiseCount: Int = 0,
|
||||
@ProtoId(7) @JvmField val praiseFlag: Int = 0,
|
||||
@ProtoId(8) @JvmField val msgPraiseUser: List<StrangerInfo>? = null,
|
||||
@ProtoId(9) @JvmField val commentCount: Int = 0,
|
||||
@ProtoId(10) @JvmField val msgCommentList: List<FeedComment>? = null,
|
||||
@ProtoId(11) @JvmField val commentRetAll: Int = 0,
|
||||
@ProtoId(12) @JvmField val hotFlag: Int = 0,
|
||||
@ProtoId(13) @JvmField val svrReserved: Long = 0L,
|
||||
@ProtoId(14) @JvmField val msgHotEntry: HotEntry? = null
|
||||
@ProtoNumber(1) @JvmField val feedType: Long = 0L,
|
||||
@ProtoNumber(2) @JvmField val feedId: String = "",
|
||||
@ProtoNumber(3) @JvmField val msgFeedContent: FeedContent? = null,
|
||||
@ProtoNumber(4) @JvmField val msgTopicInfo: NearbyTopic? = null,
|
||||
@ProtoNumber(5) @JvmField val publishTime: Long = 0,
|
||||
@ProtoNumber(6) @JvmField val praiseCount: Int = 0,
|
||||
@ProtoNumber(7) @JvmField val praiseFlag: Int = 0,
|
||||
@ProtoNumber(8) @JvmField val msgPraiseUser: List<StrangerInfo>? = null,
|
||||
@ProtoNumber(9) @JvmField val commentCount: Int = 0,
|
||||
@ProtoNumber(10) @JvmField val msgCommentList: List<FeedComment>? = null,
|
||||
@ProtoNumber(11) @JvmField val commentRetAll: Int = 0,
|
||||
@ProtoNumber(12) @JvmField val hotFlag: Int = 0,
|
||||
@ProtoNumber(13) @JvmField val svrReserved: Long = 0L,
|
||||
@ProtoNumber(14) @JvmField val msgHotEntry: HotEntry? = null
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class HotTopicList(
|
||||
@ProtoId(1) @JvmField val topicList: List<HotTopic>? = null
|
||||
@ProtoNumber(1) @JvmField val topicList: List<HotTopic>? = null
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class FeedContent(
|
||||
@ProtoId(1) @JvmField val strPicUrl: List<String> = listOf(),
|
||||
@ProtoId(2) @JvmField val msgText: RichText? = null,
|
||||
@ProtoId(3) @JvmField val hrefUrl: String = "",
|
||||
@ProtoId(5) @JvmField val groupName: String = "",
|
||||
@ProtoId(6) @JvmField val groupBulletin: String = "",
|
||||
@ProtoId(7) @JvmField val feedType: Int = 0,
|
||||
@ProtoId(8) @JvmField val poiId: String = "",
|
||||
@ProtoId(9) @JvmField val poiTitle: String = "",
|
||||
@ProtoId(20) @JvmField val effectiveTime: Int = 0,
|
||||
@ProtoId(21) @JvmField val expiationTime: Int = 0,
|
||||
@ProtoId(22) @JvmField val msgLocale: LocaleInfo? = null,
|
||||
@ProtoId(23) @JvmField val feedsIndex: Int = 0,
|
||||
@ProtoId(24) @JvmField val msgAd: ADFeed? = null,
|
||||
@ProtoId(25) @JvmField val privateData: ByteArray = EMPTY_BYTE_ARRAY
|
||||
@ProtoNumber(1) @JvmField val strPicUrl: List<String> = listOf(),
|
||||
@ProtoNumber(2) @JvmField val msgText: RichText? = null,
|
||||
@ProtoNumber(3) @JvmField val hrefUrl: String = "",
|
||||
@ProtoNumber(5) @JvmField val groupName: String = "",
|
||||
@ProtoNumber(6) @JvmField val groupBulletin: String = "",
|
||||
@ProtoNumber(7) @JvmField val feedType: Int = 0,
|
||||
@ProtoNumber(8) @JvmField val poiId: String = "",
|
||||
@ProtoNumber(9) @JvmField val poiTitle: String = "",
|
||||
@ProtoNumber(20) @JvmField val effectiveTime: Int = 0,
|
||||
@ProtoNumber(21) @JvmField val expiationTime: Int = 0,
|
||||
@ProtoNumber(22) @JvmField val msgLocale: LocaleInfo? = null,
|
||||
@ProtoNumber(23) @JvmField val feedsIndex: Int = 0,
|
||||
@ProtoNumber(24) @JvmField val msgAd: ADFeed? = null,
|
||||
@ProtoNumber(25) @JvmField val privateData: ByteArray = EMPTY_BYTE_ARRAY
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class TravelInfo(
|
||||
@ProtoId(1) @JvmField val msgDepartLocale: LocaleInfo? = null,
|
||||
@ProtoId(2) @JvmField val msgDestination: LocaleInfo? = null,
|
||||
@ProtoId(3) @JvmField val vehicle: Int = 0,
|
||||
@ProtoId(4) @JvmField val partnerCount: Int = 0,
|
||||
@ProtoId(5) @JvmField val placePicUrl: String = "",
|
||||
@ProtoId(6) @JvmField val placeUrl: String = ""
|
||||
@ProtoNumber(1) @JvmField val msgDepartLocale: LocaleInfo? = null,
|
||||
@ProtoNumber(2) @JvmField val msgDestination: LocaleInfo? = null,
|
||||
@ProtoNumber(3) @JvmField val vehicle: Int = 0,
|
||||
@ProtoNumber(4) @JvmField val partnerCount: Int = 0,
|
||||
@ProtoNumber(5) @JvmField val placePicUrl: String = "",
|
||||
@ProtoNumber(6) @JvmField val placeUrl: String = ""
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class RecentFreshFeed(
|
||||
@ProtoId(1) @JvmField val freshFeedInfo: List<FreshFeedInfo>? = null,
|
||||
@ProtoId(2) @JvmField val uid: Long = 0L
|
||||
@ProtoNumber(1) @JvmField val freshFeedInfo: List<FreshFeedInfo>? = null,
|
||||
@ProtoNumber(2) @JvmField val uid: Long = 0L
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class GPS(
|
||||
@ProtoId(1) @JvmField val int32Lat: Int = 900000000,
|
||||
@ProtoId(2) @JvmField val int32Lon: Int = 900000000,
|
||||
@ProtoId(3) @JvmField val int32Alt: Int = -10000000,
|
||||
@ProtoId(4) @JvmField val int32Type: Int = 0
|
||||
@ProtoNumber(1) @JvmField val int32Lat: Int = 900000000,
|
||||
@ProtoNumber(2) @JvmField val int32Lon: Int = 900000000,
|
||||
@ProtoNumber(3) @JvmField val int32Alt: Int = -10000000,
|
||||
@ProtoNumber(4) @JvmField val int32Type: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class AppointID(
|
||||
@ProtoId(1) @JvmField val requestId: String = ""
|
||||
@ProtoNumber(1) @JvmField val requestId: String = ""
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class LocaleInfo(
|
||||
@ProtoId(1) @JvmField val name: String = "",
|
||||
@ProtoId(2) @JvmField val country: String = "",
|
||||
@ProtoId(3) @JvmField val province: String = "",
|
||||
@ProtoId(4) @JvmField val city: String = "",
|
||||
@ProtoId(5) @JvmField val region: String = "",
|
||||
@ProtoId(6) @JvmField val poi: String = "",
|
||||
@ProtoId(7) @JvmField val msgGps: GPS? = null,
|
||||
@ProtoId(8) @JvmField val address: String = ""
|
||||
@ProtoNumber(1) @JvmField val name: String = "",
|
||||
@ProtoNumber(2) @JvmField val country: String = "",
|
||||
@ProtoNumber(3) @JvmField val province: String = "",
|
||||
@ProtoNumber(4) @JvmField val city: String = "",
|
||||
@ProtoNumber(5) @JvmField val region: String = "",
|
||||
@ProtoNumber(6) @JvmField val poi: String = "",
|
||||
@ProtoNumber(7) @JvmField val msgGps: GPS? = null,
|
||||
@ProtoNumber(8) @JvmField val address: String = ""
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class LBSInfo(
|
||||
@ProtoId(1) @JvmField val msgGps: GPS? = null,
|
||||
@ProtoId(2) @JvmField val msgWifis: List<Wifi>? = null,
|
||||
@ProtoId(3) @JvmField val msgCells: List<Cell>? = null
|
||||
@ProtoNumber(1) @JvmField val msgGps: GPS? = null,
|
||||
@ProtoNumber(2) @JvmField val msgWifis: List<Wifi>? = null,
|
||||
@ProtoNumber(3) @JvmField val msgCells: List<Cell>? = null
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class FeedEvent(
|
||||
@ProtoId(1) @JvmField val eventId: Long = 0L,
|
||||
@ProtoId(2) @JvmField val time: Int = 0,
|
||||
@ProtoId(3) @JvmField val eventtype: Int = 0,
|
||||
@ProtoId(4) @JvmField val msgUserInfo: StrangerInfo? = null,
|
||||
@ProtoId(5) @JvmField val msgFeedInfo: FeedInfo? = null,
|
||||
@ProtoId(6) @JvmField val eventTips: String = "",
|
||||
@ProtoId(7) @JvmField val msgComment: FeedComment? = null,
|
||||
@ProtoId(8) @JvmField val cancelEventId: Long = 0L
|
||||
@ProtoNumber(1) @JvmField val eventId: Long = 0L,
|
||||
@ProtoNumber(2) @JvmField val time: Int = 0,
|
||||
@ProtoNumber(3) @JvmField val eventtype: Int = 0,
|
||||
@ProtoNumber(4) @JvmField val msgUserInfo: StrangerInfo? = null,
|
||||
@ProtoNumber(5) @JvmField val msgFeedInfo: FeedInfo? = null,
|
||||
@ProtoNumber(6) @JvmField val eventTips: String = "",
|
||||
@ProtoNumber(7) @JvmField val msgComment: FeedComment? = null,
|
||||
@ProtoNumber(8) @JvmField val cancelEventId: Long = 0L
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class FeedsCookie(
|
||||
@ProtoId(1) @JvmField val strList: List<String> = listOf(),
|
||||
@ProtoId(2) @JvmField val pose: Int = 0,
|
||||
@ProtoId(3) @JvmField val cookie: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(4) @JvmField val uint64Topics: List<Long>? = null
|
||||
@ProtoNumber(1) @JvmField val strList: List<String> = listOf(),
|
||||
@ProtoNumber(2) @JvmField val pose: Int = 0,
|
||||
@ProtoNumber(3) @JvmField val cookie: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(4) @JvmField val uint64Topics: List<Long>? = null
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class NearbyTopic(
|
||||
@ProtoId(1) @JvmField val topicId: Long = 0L,
|
||||
@ProtoId(2) @JvmField val topic: String = "",
|
||||
@ProtoId(3) @JvmField val foreword: String = "",
|
||||
@ProtoId(4) @JvmField val createTime: Int = 0,
|
||||
@ProtoId(5) @JvmField val updateTime: Int = 0,
|
||||
@ProtoId(6) @JvmField val hotFlag: Int = 0,
|
||||
@ProtoId(7) @JvmField val buttonStyle: Int = 0,
|
||||
@ProtoId(8) @JvmField val buttonSrc: String = "",
|
||||
@ProtoId(9) @JvmField val backgroundSrc: String = "",
|
||||
@ProtoId(10) @JvmField val attendeeInfo: String = "",
|
||||
@ProtoId(11) @JvmField val index: Int = 0,
|
||||
@ProtoId(12) @JvmField val publishScope: Int = 0,
|
||||
@ProtoId(13) @JvmField val effectiveTime: Int = 0,
|
||||
@ProtoId(14) @JvmField val expiationTime: Int = 0,
|
||||
@ProtoId(15) @JvmField val pushedUsrCount: Int = 0,
|
||||
@ProtoId(16) @JvmField val timerangeLeft: Int = 0,
|
||||
@ProtoId(17) @JvmField val timerangeRight: Int = 0,
|
||||
@ProtoId(18) @JvmField val area: String = ""
|
||||
@ProtoNumber(1) @JvmField val topicId: Long = 0L,
|
||||
@ProtoNumber(2) @JvmField val topic: String = "",
|
||||
@ProtoNumber(3) @JvmField val foreword: String = "",
|
||||
@ProtoNumber(4) @JvmField val createTime: Int = 0,
|
||||
@ProtoNumber(5) @JvmField val updateTime: Int = 0,
|
||||
@ProtoNumber(6) @JvmField val hotFlag: Int = 0,
|
||||
@ProtoNumber(7) @JvmField val buttonStyle: Int = 0,
|
||||
@ProtoNumber(8) @JvmField val buttonSrc: String = "",
|
||||
@ProtoNumber(9) @JvmField val backgroundSrc: String = "",
|
||||
@ProtoNumber(10) @JvmField val attendeeInfo: String = "",
|
||||
@ProtoNumber(11) @JvmField val index: Int = 0,
|
||||
@ProtoNumber(12) @JvmField val publishScope: Int = 0,
|
||||
@ProtoNumber(13) @JvmField val effectiveTime: Int = 0,
|
||||
@ProtoNumber(14) @JvmField val expiationTime: Int = 0,
|
||||
@ProtoNumber(15) @JvmField val pushedUsrCount: Int = 0,
|
||||
@ProtoNumber(16) @JvmField val timerangeLeft: Int = 0,
|
||||
@ProtoNumber(17) @JvmField val timerangeRight: Int = 0,
|
||||
@ProtoNumber(18) @JvmField val area: String = ""
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class NearbyEvent(
|
||||
@ProtoId(1) @JvmField val eventtype: Int = 0,
|
||||
@ProtoId(2) @JvmField val msgRankevent: RankEvent? = null,
|
||||
@ProtoId(3) @JvmField val eventUin: Long = 0L,
|
||||
@ProtoId(4) @JvmField val eventTinyid: Long = 0L
|
||||
@ProtoNumber(1) @JvmField val eventtype: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val msgRankevent: RankEvent? = null,
|
||||
@ProtoNumber(3) @JvmField val eventUin: Long = 0L,
|
||||
@ProtoNumber(4) @JvmField val eventTinyid: Long = 0L
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class Feed(
|
||||
@ProtoId(1) @JvmField val msgUserInfo: PublisherInfo? = null,
|
||||
@ProtoId(2) @JvmField val msgFeedInfo: FeedInfo? = null,
|
||||
@ProtoId(3) @JvmField val ownerFlag: Int = 0
|
||||
@ProtoNumber(1) @JvmField val msgUserInfo: PublisherInfo? = null,
|
||||
@ProtoNumber(2) @JvmField val msgFeedInfo: FeedInfo? = null,
|
||||
@ProtoNumber(3) @JvmField val ownerFlag: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class ActivityInfo(
|
||||
@ProtoId(2) @JvmField val name: String = "",
|
||||
@ProtoId(3) @JvmField val cover: String = "",
|
||||
@ProtoId(4) @JvmField val url: String = "",
|
||||
@ProtoId(5) @JvmField val startTime: Int = 0,
|
||||
@ProtoId(6) @JvmField val endTime: Int = 0,
|
||||
@ProtoId(7) @JvmField val locName: String = "",
|
||||
@ProtoId(8) @JvmField val enroll: Long = 0L,
|
||||
@ProtoId(9) @JvmField val createUin: Long = 0L,
|
||||
@ProtoId(10) @JvmField val createTime: Int = 0,
|
||||
@ProtoId(11) @JvmField val organizerInfo: OrganizerInfo = OrganizerInfo(),
|
||||
@ProtoId(12) @JvmField val flag: Long? = null
|
||||
@ProtoNumber(2) @JvmField val name: String = "",
|
||||
@ProtoNumber(3) @JvmField val cover: String = "",
|
||||
@ProtoNumber(4) @JvmField val url: String = "",
|
||||
@ProtoNumber(5) @JvmField val startTime: Int = 0,
|
||||
@ProtoNumber(6) @JvmField val endTime: Int = 0,
|
||||
@ProtoNumber(7) @JvmField val locName: String = "",
|
||||
@ProtoNumber(8) @JvmField val enroll: Long = 0L,
|
||||
@ProtoNumber(9) @JvmField val createUin: Long = 0L,
|
||||
@ProtoNumber(10) @JvmField val createTime: Int = 0,
|
||||
@ProtoNumber(11) @JvmField val organizerInfo: OrganizerInfo = OrganizerInfo(),
|
||||
@ProtoNumber(12) @JvmField val flag: Long? = null
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class HotEntry(
|
||||
@ProtoId(1) @JvmField val openFlag: Int = 0,
|
||||
@ProtoId(2) @JvmField val restTime: Int = 0,
|
||||
@ProtoId(3) @JvmField val foreword: String = "",
|
||||
@ProtoId(4) @JvmField val backgroundSrc: String = ""
|
||||
@ProtoNumber(1) @JvmField val openFlag: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val restTime: Int = 0,
|
||||
@ProtoNumber(3) @JvmField val foreword: String = "",
|
||||
@ProtoNumber(4) @JvmField val backgroundSrc: String = ""
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class UserFeed(
|
||||
@ProtoId(1) @JvmField val msgUserInfo: PublisherInfo? = null,
|
||||
@ProtoId(2) @JvmField val msgFeedInfo: FeedInfo? = null,
|
||||
@ProtoId(3) @JvmField val ownerFlag: Int = 0,
|
||||
@ProtoId(4) @JvmField val msgActivityInfo: ActivityInfo? = null
|
||||
@ProtoNumber(1) @JvmField val msgUserInfo: PublisherInfo? = null,
|
||||
@ProtoNumber(2) @JvmField val msgFeedInfo: FeedInfo? = null,
|
||||
@ProtoNumber(3) @JvmField val ownerFlag: Int = 0,
|
||||
@ProtoNumber(4) @JvmField val msgActivityInfo: ActivityInfo? = null
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class Elem(
|
||||
@ProtoId(1) @JvmField val content: String = "",
|
||||
@ProtoId(2) @JvmField val msgFaceInfo: Face? = null
|
||||
@ProtoNumber(1) @JvmField val content: String = "",
|
||||
@ProtoNumber(2) @JvmField val msgFaceInfo: Face? = null
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class HotFreshFeedList(
|
||||
@ProtoId(1) @JvmField val msgFeeds: List<HotUserFeed>? = null,
|
||||
@ProtoId(2) @JvmField val updateTime: Int = 0
|
||||
@ProtoNumber(1) @JvmField val msgFeeds: List<HotUserFeed>? = null,
|
||||
@ProtoNumber(2) @JvmField val updateTime: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class RptInterestTag(
|
||||
@ProtoId(1) @JvmField val interestTags: List<InterestTag>? = null
|
||||
@ProtoNumber(1) @JvmField val interestTags: List<InterestTag>? = null
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class AddressInfo(
|
||||
@ProtoId(1) @JvmField val companyZone: String = "",
|
||||
@ProtoId(2) @JvmField val companyName: String = "",
|
||||
@ProtoId(3) @JvmField val companyAddr: String = "",
|
||||
@ProtoId(4) @JvmField val companyPicUrl: String = "",
|
||||
@ProtoId(5) @JvmField val companyUrl: String = "",
|
||||
@ProtoId(6) @JvmField val msgCompanyId: ShopID? = null
|
||||
@ProtoNumber(1) @JvmField val companyZone: String = "",
|
||||
@ProtoNumber(2) @JvmField val companyName: String = "",
|
||||
@ProtoNumber(3) @JvmField val companyAddr: String = "",
|
||||
@ProtoNumber(4) @JvmField val companyPicUrl: String = "",
|
||||
@ProtoNumber(5) @JvmField val companyUrl: String = "",
|
||||
@ProtoNumber(6) @JvmField val msgCompanyId: ShopID? = null
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class PublisherInfo(
|
||||
@ProtoId(1) @JvmField val tinyid: Long = 0L,
|
||||
@ProtoId(2) @JvmField val nickname: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(3) @JvmField val age: Int = 0,
|
||||
@ProtoId(4) @JvmField val gender: Int = 0,
|
||||
@ProtoId(5) @JvmField val constellation: String = "",
|
||||
@ProtoId(6) @JvmField val profession: Int = 0,
|
||||
@ProtoId(7) @JvmField val distance: String = "",
|
||||
@ProtoId(8) @JvmField val marriage: Int = 0,
|
||||
@ProtoId(9) @JvmField val vipinfo: String = "",
|
||||
@ProtoId(10) @JvmField val recommend: Int = 0,
|
||||
@ProtoId(11) @JvmField val godflag: Int = 0,
|
||||
@ProtoId(12) @JvmField val chatflag: Int = 0,
|
||||
@ProtoId(13) @JvmField val chatupCount: Int = 0,
|
||||
@ProtoId(14) @JvmField val charm: Int = 0,
|
||||
@ProtoId(15) @JvmField val charmLevel: Int = 0,
|
||||
@ProtoId(16) @JvmField val pubNumber: Int = 0,
|
||||
@ProtoId(17) @JvmField val msgCommonLabel: CommonLabel? = null,
|
||||
@ProtoId(18) @JvmField val recentVistorTime: Int = 0,
|
||||
@ProtoId(19) @JvmField val strangerDeclare: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(20) @JvmField val friendUin: Long = 0L,
|
||||
@ProtoId(21) @JvmField val historyFlag: Int = 0,
|
||||
@ProtoId(22) @JvmField val followflag: Long = 0L
|
||||
@ProtoNumber(1) @JvmField val tinyid: Long = 0L,
|
||||
@ProtoNumber(2) @JvmField val nickname: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(3) @JvmField val age: Int = 0,
|
||||
@ProtoNumber(4) @JvmField val gender: Int = 0,
|
||||
@ProtoNumber(5) @JvmField val constellation: String = "",
|
||||
@ProtoNumber(6) @JvmField val profession: Int = 0,
|
||||
@ProtoNumber(7) @JvmField val distance: String = "",
|
||||
@ProtoNumber(8) @JvmField val marriage: Int = 0,
|
||||
@ProtoNumber(9) @JvmField val vipinfo: String = "",
|
||||
@ProtoNumber(10) @JvmField val recommend: Int = 0,
|
||||
@ProtoNumber(11) @JvmField val godflag: Int = 0,
|
||||
@ProtoNumber(12) @JvmField val chatflag: Int = 0,
|
||||
@ProtoNumber(13) @JvmField val chatupCount: Int = 0,
|
||||
@ProtoNumber(14) @JvmField val charm: Int = 0,
|
||||
@ProtoNumber(15) @JvmField val charmLevel: Int = 0,
|
||||
@ProtoNumber(16) @JvmField val pubNumber: Int = 0,
|
||||
@ProtoNumber(17) @JvmField val msgCommonLabel: CommonLabel? = null,
|
||||
@ProtoNumber(18) @JvmField val recentVistorTime: Int = 0,
|
||||
@ProtoNumber(19) @JvmField val strangerDeclare: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(20) @JvmField val friendUin: Long = 0L,
|
||||
@ProtoNumber(21) @JvmField val historyFlag: Int = 0,
|
||||
@ProtoNumber(22) @JvmField val followflag: Long = 0L
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class HotUserFeed(
|
||||
@ProtoId(1) @JvmField val feedId: String = "",
|
||||
@ProtoId(2) @JvmField val praiseCount: Int = 0,
|
||||
@ProtoId(3) @JvmField val publishUid: Long = 0L,
|
||||
@ProtoId(4) @JvmField val publishTime: Int = 0
|
||||
@ProtoNumber(1) @JvmField val feedId: String = "",
|
||||
@ProtoNumber(2) @JvmField val praiseCount: Int = 0,
|
||||
@ProtoNumber(3) @JvmField val publishUid: Long = 0L,
|
||||
@ProtoNumber(4) @JvmField val publishTime: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class FreshFeedInfo(
|
||||
@ProtoId(1) @JvmField val uin: Long = 0L,
|
||||
@ProtoId(2) @JvmField val time: Int = 0,
|
||||
@ProtoId(3) @JvmField val feedId: String = "",
|
||||
@ProtoId(4) @JvmField val feedType: Long = 0L
|
||||
@ProtoNumber(1) @JvmField val uin: Long = 0L,
|
||||
@ProtoNumber(2) @JvmField val time: Int = 0,
|
||||
@ProtoNumber(3) @JvmField val feedId: String = "",
|
||||
@ProtoNumber(4) @JvmField val feedType: Long = 0L
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class CommonLabel(
|
||||
@ProtoId(1) @JvmField val lableId: Int = 0,
|
||||
@ProtoId(2) @JvmField val lableMsgPre: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(3) @JvmField val lableMsgLast: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(4) @JvmField val interstName: List<ByteArray>? = null,
|
||||
@ProtoId(5) @JvmField val interstType: List<Int>? = null
|
||||
@ProtoNumber(1) @JvmField val lableId: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val lableMsgPre: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(3) @JvmField val lableMsgLast: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(4) @JvmField val interstName: List<ByteArray>? = null,
|
||||
@ProtoNumber(5) @JvmField val interstType: List<Int>? = null
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class Face(
|
||||
@ProtoId(1) @JvmField val index: Int = 0
|
||||
@ProtoNumber(1) @JvmField val index: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class StrangerInfo(
|
||||
@ProtoId(1) @JvmField val tinyid: Long = 0L,
|
||||
@ProtoId(2) @JvmField val nickname: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(3) @JvmField val age: Int = 0,
|
||||
@ProtoId(4) @JvmField val gender: Int = 0,
|
||||
@ProtoId(5) @JvmField val dating: Int = 0,
|
||||
@ProtoId(6) @JvmField val listIdx: Int = 0,
|
||||
@ProtoId(7) @JvmField val constellation: String = "",
|
||||
@ProtoId(8) @JvmField val profession: Int = 0,
|
||||
@ProtoId(9) @JvmField val marriage: Int = 0,
|
||||
@ProtoId(10) @JvmField val vipinfo: String = "",
|
||||
@ProtoId(11) @JvmField val recommend: Int = 0,
|
||||
@ProtoId(12) @JvmField val godflag: Int = 0,
|
||||
@ProtoId(13) @JvmField val charm: Int = 0,
|
||||
@ProtoId(14) @JvmField val charmLevel: Int = 0,
|
||||
@ProtoId(15) @JvmField val uin: Long = 0L
|
||||
@ProtoNumber(1) @JvmField val tinyid: Long = 0L,
|
||||
@ProtoNumber(2) @JvmField val nickname: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(3) @JvmField val age: Int = 0,
|
||||
@ProtoNumber(4) @JvmField val gender: Int = 0,
|
||||
@ProtoNumber(5) @JvmField val dating: Int = 0,
|
||||
@ProtoNumber(6) @JvmField val listIdx: Int = 0,
|
||||
@ProtoNumber(7) @JvmField val constellation: String = "",
|
||||
@ProtoNumber(8) @JvmField val profession: Int = 0,
|
||||
@ProtoNumber(9) @JvmField val marriage: Int = 0,
|
||||
@ProtoNumber(10) @JvmField val vipinfo: String = "",
|
||||
@ProtoNumber(11) @JvmField val recommend: Int = 0,
|
||||
@ProtoNumber(12) @JvmField val godflag: Int = 0,
|
||||
@ProtoNumber(13) @JvmField val charm: Int = 0,
|
||||
@ProtoNumber(14) @JvmField val charmLevel: Int = 0,
|
||||
@ProtoNumber(15) @JvmField val uin: Long = 0L
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class HotTopic(
|
||||
@ProtoId(1) @JvmField val id: Long = 0L,
|
||||
@ProtoId(2) @JvmField val title: String = "",
|
||||
@ProtoId(3) @JvmField val topicType: Long = 0L,
|
||||
@ProtoId(4) @JvmField val total: Long = 0L,
|
||||
@ProtoId(5) @JvmField val times: Long = 0L,
|
||||
@ProtoId(6) @JvmField val historyTimes: Long = 0L,
|
||||
@ProtoId(7) @JvmField val bgUrl: String = "",
|
||||
@ProtoId(8) @JvmField val url: String = "",
|
||||
@ProtoId(9) @JvmField val extraInfo: String = ""
|
||||
@ProtoNumber(1) @JvmField val id: Long = 0L,
|
||||
@ProtoNumber(2) @JvmField val title: String = "",
|
||||
@ProtoNumber(3) @JvmField val topicType: Long = 0L,
|
||||
@ProtoNumber(4) @JvmField val total: Long = 0L,
|
||||
@ProtoNumber(5) @JvmField val times: Long = 0L,
|
||||
@ProtoNumber(6) @JvmField val historyTimes: Long = 0L,
|
||||
@ProtoNumber(7) @JvmField val bgUrl: String = "",
|
||||
@ProtoNumber(8) @JvmField val url: String = "",
|
||||
@ProtoNumber(9) @JvmField val extraInfo: String = ""
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class DateEvent(
|
||||
@ProtoId(1) @JvmField val eventId: Long = 0L,
|
||||
@ProtoId(2) @JvmField val time: Int = 0,
|
||||
@ProtoId(3) @JvmField val type: Int = 0,
|
||||
@ProtoId(4) @JvmField val msgUserInfo: StrangerInfo? = null,
|
||||
@ProtoId(5) @JvmField val msgDateInfo: AppointInfo? = null,
|
||||
@ProtoId(6) @JvmField val attendIdx: Int = 0,
|
||||
@ProtoId(7) @JvmField val eventTips: String = "",
|
||||
@ProtoId(8) @JvmField val msgComment: DateComment? = null,
|
||||
@ProtoId(9) @JvmField val cancelEventId: Long = 0L
|
||||
@ProtoNumber(1) @JvmField val eventId: Long = 0L,
|
||||
@ProtoNumber(2) @JvmField val time: Int = 0,
|
||||
@ProtoNumber(3) @JvmField val type: Int = 0,
|
||||
@ProtoNumber(4) @JvmField val msgUserInfo: StrangerInfo? = null,
|
||||
@ProtoNumber(5) @JvmField val msgDateInfo: AppointInfo? = null,
|
||||
@ProtoNumber(6) @JvmField val attendIdx: Int = 0,
|
||||
@ProtoNumber(7) @JvmField val eventTips: String = "",
|
||||
@ProtoNumber(8) @JvmField val msgComment: DateComment? = null,
|
||||
@ProtoNumber(9) @JvmField val cancelEventId: Long = 0L
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class AppointInfo(
|
||||
@ProtoId(1) @JvmField val msgAppointId: AppointID? = null,
|
||||
@ProtoId(2) @JvmField val msgAppointment: AppointContent? = null,
|
||||
@ProtoId(3) @JvmField val appointStatus: Int = 0,
|
||||
@ProtoId(4) @JvmField val joinWording: String = "",
|
||||
@ProtoId(5) @JvmField val viewWording: String = "",
|
||||
@ProtoId(6) @JvmField val unreadCount: Int = 0,
|
||||
@ProtoId(7) @JvmField val owner: Int = 0,
|
||||
@ProtoId(8) @JvmField val join: Int = 0,
|
||||
@ProtoId(9) @JvmField val view: Int = 0,
|
||||
@ProtoId(10) @JvmField val commentWording: String = "",
|
||||
@ProtoId(11) @JvmField val commentNum: Int = 0,
|
||||
@ProtoId(12) @JvmField val attendStatus: Int = 0,
|
||||
@ProtoId(13) @JvmField val msgAppointmentEx: AppointInfoEx? = null
|
||||
@ProtoNumber(1) @JvmField val msgAppointId: AppointID? = null,
|
||||
@ProtoNumber(2) @JvmField val msgAppointment: AppointContent? = null,
|
||||
@ProtoNumber(3) @JvmField val appointStatus: Int = 0,
|
||||
@ProtoNumber(4) @JvmField val joinWording: String = "",
|
||||
@ProtoNumber(5) @JvmField val viewWording: String = "",
|
||||
@ProtoNumber(6) @JvmField val unreadCount: Int = 0,
|
||||
@ProtoNumber(7) @JvmField val owner: Int = 0,
|
||||
@ProtoNumber(8) @JvmField val join: Int = 0,
|
||||
@ProtoNumber(9) @JvmField val view: Int = 0,
|
||||
@ProtoNumber(10) @JvmField val commentWording: String = "",
|
||||
@ProtoNumber(11) @JvmField val commentNum: Int = 0,
|
||||
@ProtoNumber(12) @JvmField val attendStatus: Int = 0,
|
||||
@ProtoNumber(13) @JvmField val msgAppointmentEx: AppointInfoEx? = null
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class UserInfo(
|
||||
@ProtoId(1) @JvmField val uin: Long = 0L,
|
||||
@ProtoId(2) @JvmField val nickname: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(3) @JvmField val age: Int = 0,
|
||||
@ProtoId(4) @JvmField val gender: Int = 0,
|
||||
@ProtoId(5) @JvmField val avatar: ByteArray = EMPTY_BYTE_ARRAY
|
||||
@ProtoNumber(1) @JvmField val uin: Long = 0L,
|
||||
@ProtoNumber(2) @JvmField val nickname: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(3) @JvmField val age: Int = 0,
|
||||
@ProtoNumber(4) @JvmField val gender: Int = 0,
|
||||
@ProtoNumber(5) @JvmField val avatar: ByteArray = EMPTY_BYTE_ARRAY
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class ReplyInfo(
|
||||
@ProtoId(1) @JvmField val commentId: String = "",
|
||||
@ProtoId(2) @JvmField val msgStrangerInfo: StrangerInfo? = null
|
||||
@ProtoNumber(1) @JvmField val commentId: String = "",
|
||||
@ProtoNumber(2) @JvmField val msgStrangerInfo: StrangerInfo? = null
|
||||
) : ProtoBuf
|
||||
}
|
@ -3,7 +3,7 @@
|
||||
package net.mamoe.mirai.qqandroid.network.protocol.data.proto
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.protobuf.ProtoId
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
import net.mamoe.mirai.qqandroid.network.protocol.packet.EMPTY_BYTE_ARRAY
|
||||
import net.mamoe.mirai.qqandroid.utils.io.ProtoBuf
|
||||
import kotlin.jvm.JvmField
|
||||
@ -12,40 +12,40 @@ import kotlin.jvm.JvmField
|
||||
internal class Vec0xd50 : ProtoBuf {
|
||||
@Serializable
|
||||
internal class ExtSnsFrdData(
|
||||
@ProtoId(1) @JvmField val frdUin: Long = 0L,
|
||||
@ProtoId(91001) @JvmField val musicSwitch: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(101001) @JvmField val mutualmarkAlienation: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(141001) @JvmField val mutualmarkScore: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(151001) @JvmField val ksingSwitch: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(181001) @JvmField val lbsShare: ByteArray = EMPTY_BYTE_ARRAY
|
||||
@ProtoNumber(1) @JvmField val frdUin: Long = 0L,
|
||||
@ProtoNumber(91001) @JvmField val musicSwitch: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(101001) @JvmField val mutualmarkAlienation: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(141001) @JvmField val mutualmarkScore: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(151001) @JvmField val ksingSwitch: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(181001) @JvmField val lbsShare: ByteArray = EMPTY_BYTE_ARRAY
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class RspBody(
|
||||
@ProtoId(1) @JvmField val msgUpdateData: List<ExtSnsFrdData>? = null,
|
||||
@ProtoId(11) @JvmField val over: Int = 0,
|
||||
@ProtoId(12) @JvmField val nextStart: Int = 0,
|
||||
@ProtoId(13) @JvmField val uint64UnfinishedUins: List<Long>? = null
|
||||
@ProtoNumber(1) @JvmField val msgUpdateData: List<ExtSnsFrdData>? = null,
|
||||
@ProtoNumber(11) @JvmField val over: Int = 0,
|
||||
@ProtoNumber(12) @JvmField val nextStart: Int = 0,
|
||||
@ProtoNumber(13) @JvmField val uint64UnfinishedUins: List<Long>? = null
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class ReqBody(
|
||||
@ProtoId(1) @JvmField val appid: Long = 0L,
|
||||
@ProtoId(2) @JvmField val maxPkgSize: Int = 0,
|
||||
@ProtoId(3) @JvmField val startTime: Int = 0,
|
||||
@ProtoId(4) @JvmField val startIndex: Int = 0,
|
||||
@ProtoId(5) @JvmField val reqNum: Int = 0,
|
||||
@ProtoId(6) @JvmField val uinList: List<Long>? = null,
|
||||
@ProtoId(91001) @JvmField val reqMusicSwitch: Int = 0,
|
||||
@ProtoId(101001) @JvmField val reqMutualmarkAlienation: Int = 0,
|
||||
@ProtoId(141001) @JvmField val reqMutualmarkScore: Int = 0,
|
||||
@ProtoId(151001) @JvmField val reqKsingSwitch: Int = 0,
|
||||
@ProtoId(181001) @JvmField val reqMutualmarkLbsshare: Int = 0
|
||||
@ProtoNumber(1) @JvmField val appid: Long = 0L,
|
||||
@ProtoNumber(2) @JvmField val maxPkgSize: Int = 0,
|
||||
@ProtoNumber(3) @JvmField val startTime: Int = 0,
|
||||
@ProtoNumber(4) @JvmField val startIndex: Int = 0,
|
||||
@ProtoNumber(5) @JvmField val reqNum: Int = 0,
|
||||
@ProtoNumber(6) @JvmField val uinList: List<Long>? = null,
|
||||
@ProtoNumber(91001) @JvmField val reqMusicSwitch: Int = 0,
|
||||
@ProtoNumber(101001) @JvmField val reqMutualmarkAlienation: Int = 0,
|
||||
@ProtoNumber(141001) @JvmField val reqMutualmarkScore: Int = 0,
|
||||
@ProtoNumber(151001) @JvmField val reqKsingSwitch: Int = 0,
|
||||
@ProtoNumber(181001) @JvmField val reqMutualmarkLbsshare: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class KSingRelationInfo(
|
||||
@ProtoId(1) @JvmField val flag: Int = 0
|
||||
@ProtoNumber(1) @JvmField val flag: Int = 0
|
||||
) : ProtoBuf
|
||||
}
|
||||
|
||||
@ -53,21 +53,21 @@ internal class Vec0xd50 : ProtoBuf {
|
||||
internal class Vec0xd6b : ProtoBuf {
|
||||
@Serializable
|
||||
internal class ReqBody(
|
||||
@ProtoId(1) @JvmField val maxPkgSize: Int = 0,
|
||||
@ProtoId(2) @JvmField val startTime: Int = 0,
|
||||
@ProtoId(11) @JvmField val uinList: List<Long>? = null
|
||||
@ProtoNumber(1) @JvmField val maxPkgSize: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val startTime: Int = 0,
|
||||
@ProtoNumber(11) @JvmField val uinList: List<Long>? = null
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class RspBody(
|
||||
@ProtoId(11) @JvmField val msgMutualmarkData: List<MutualMarkData>? = null,
|
||||
@ProtoId(12) @JvmField val uint64UnfinishedUins: List<Long>? = null
|
||||
@ProtoNumber(11) @JvmField val msgMutualmarkData: List<MutualMarkData>? = null,
|
||||
@ProtoNumber(12) @JvmField val uint64UnfinishedUins: List<Long>? = null
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class MutualMarkData(
|
||||
@ProtoId(1) @JvmField val frdUin: Long = 0L,
|
||||
@ProtoId(2) @JvmField val result: Int = 0
|
||||
@ProtoNumber(1) @JvmField val frdUin: Long = 0L,
|
||||
@ProtoNumber(2) @JvmField val result: Int = 0
|
||||
// @SerialId(11) @JvmField val mutualmarkInfo: List<net.mamoe.mirai.qqandroid.network.protocol.data.proto.Mutualmark.MutualMark>? = null
|
||||
) : ProtoBuf
|
||||
}
|
@ -1,7 +1,7 @@
|
||||
package net.mamoe.mirai.qqandroid.network.protocol.data.proto
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.protobuf.ProtoId
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
import net.mamoe.mirai.qqandroid.network.protocol.packet.EMPTY_BYTE_ARRAY
|
||||
import net.mamoe.mirai.qqandroid.utils.io.ProtoBuf
|
||||
import kotlin.jvm.JvmField
|
||||
@ -10,51 +10,51 @@ import kotlin.jvm.JvmField
|
||||
internal class GroupLabel : ProtoBuf {
|
||||
@Serializable
|
||||
internal class Label(
|
||||
@ProtoId(1) @JvmField val name: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(2) @JvmField val enumType: Int /* enum */ = 1,
|
||||
@ProtoId(3) @JvmField val textColor: Color? = null,
|
||||
@ProtoId(4) @JvmField val edgingColor: Color? = null,
|
||||
@ProtoId(5) @JvmField val labelAttr: Int = 0,
|
||||
@ProtoId(6) @JvmField val labelType: Int = 0
|
||||
@ProtoNumber(1) @JvmField val name: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(2) @JvmField val enumType: Int /* enum */ = 1,
|
||||
@ProtoNumber(3) @JvmField val textColor: Color? = null,
|
||||
@ProtoNumber(4) @JvmField val edgingColor: Color? = null,
|
||||
@ProtoNumber(5) @JvmField val labelAttr: Int = 0,
|
||||
@ProtoNumber(6) @JvmField val labelType: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class RspBody(
|
||||
@ProtoId(1) @JvmField val error: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(2) @JvmField val groupInfo: List<GroupInfo>? = null
|
||||
@ProtoNumber(1) @JvmField val error: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(2) @JvmField val groupInfo: List<GroupInfo>? = null
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class SourceId(
|
||||
@ProtoId(1) @JvmField val sourceId: Int = 0
|
||||
@ProtoNumber(1) @JvmField val sourceId: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class GroupInfo(
|
||||
@ProtoId(1) @JvmField val int32Result: Int = 0,
|
||||
@ProtoId(2) @JvmField val groupCode: Long = 0L,
|
||||
@ProtoId(3) @JvmField val groupLabel: List<Label>? = null
|
||||
@ProtoNumber(1) @JvmField val int32Result: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val groupCode: Long = 0L,
|
||||
@ProtoNumber(3) @JvmField val groupLabel: List<Label>? = null
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class Color(
|
||||
@ProtoId(1) @JvmField val r: Int = 0,
|
||||
@ProtoId(2) @JvmField val g: Int = 0,
|
||||
@ProtoId(3) @JvmField val b: Int = 0
|
||||
@ProtoNumber(1) @JvmField val r: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val g: Int = 0,
|
||||
@ProtoNumber(3) @JvmField val b: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class ReqBody(
|
||||
@ProtoId(1) @JvmField val sourceId: SourceId? = null,
|
||||
@ProtoId(2) @JvmField val uinInfo: UinInfo? = null,
|
||||
@ProtoId(3) @JvmField val numberLabel: Int = 5,
|
||||
@ProtoId(4) @JvmField val groupCode: List<Long>? = null,
|
||||
@ProtoId(5) @JvmField val labelStyle: Int = 0
|
||||
@ProtoNumber(1) @JvmField val sourceId: SourceId? = null,
|
||||
@ProtoNumber(2) @JvmField val uinInfo: UinInfo? = null,
|
||||
@ProtoNumber(3) @JvmField val numberLabel: Int = 5,
|
||||
@ProtoNumber(4) @JvmField val groupCode: List<Long>? = null,
|
||||
@ProtoNumber(5) @JvmField val labelStyle: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class UinInfo(
|
||||
@ProtoId(1) @JvmField val int64Longitude: Long = 0L,
|
||||
@ProtoId(2) @JvmField val int64Latitude: Long = 0L
|
||||
@ProtoNumber(1) @JvmField val int64Longitude: Long = 0L,
|
||||
@ProtoNumber(2) @JvmField val int64Latitude: Long = 0L
|
||||
) : ProtoBuf
|
||||
}
|
@ -1,8 +1,8 @@
|
||||
package net.mamoe.mirai.qqandroid.network.protocol.data.proto
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.protobuf.ProtoId
|
||||
import kotlinx.serialization.protobuf.ProtoNumberType
|
||||
import kotlinx.serialization.protobuf.ProtoIntegerType
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
import kotlinx.serialization.protobuf.ProtoType
|
||||
import net.mamoe.mirai.qqandroid.network.protocol.packet.EMPTY_BYTE_ARRAY
|
||||
import net.mamoe.mirai.qqandroid.utils.io.ProtoBuf
|
||||
@ -12,90 +12,90 @@ import kotlin.jvm.JvmField
|
||||
internal class BdhExtinfo : ProtoBuf {
|
||||
@Serializable
|
||||
internal class CommFileExtReq(
|
||||
@ProtoId(1) @JvmField val actionType: Int = 0,
|
||||
@ProtoId(2) @JvmField val uuid: ByteArray = EMPTY_BYTE_ARRAY
|
||||
@ProtoNumber(1) @JvmField val actionType: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val uuid: ByteArray = EMPTY_BYTE_ARRAY
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class CommFileExtRsp(
|
||||
@ProtoId(1) @JvmField val int32Retcode: Int = 0,
|
||||
@ProtoId(2) @JvmField val downloadUrl: ByteArray = EMPTY_BYTE_ARRAY
|
||||
@ProtoNumber(1) @JvmField val int32Retcode: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val downloadUrl: ByteArray = EMPTY_BYTE_ARRAY
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class PicInfo(
|
||||
@ProtoId(1) @JvmField val idx: Int = 0,
|
||||
@ProtoId(2) @JvmField val size: Int = 0,
|
||||
@ProtoId(3) @JvmField val binMd5: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(4) @JvmField val type: Int = 0
|
||||
@ProtoNumber(1) @JvmField val idx: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val size: Int = 0,
|
||||
@ProtoNumber(3) @JvmField val binMd5: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(4) @JvmField val type: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class QQVoiceExtReq(
|
||||
@ProtoId(1) @JvmField val qid: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(2) @JvmField val fmt: Int = 0,
|
||||
@ProtoId(3) @JvmField val rate: Int = 0,
|
||||
@ProtoId(4) @JvmField val bits: Int = 0,
|
||||
@ProtoId(5) @JvmField val channel: Int = 0,
|
||||
@ProtoId(6) @JvmField val pinyin: Int = 0
|
||||
@ProtoNumber(1) @JvmField val qid: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(2) @JvmField val fmt: Int = 0,
|
||||
@ProtoNumber(3) @JvmField val rate: Int = 0,
|
||||
@ProtoNumber(4) @JvmField val bits: Int = 0,
|
||||
@ProtoNumber(5) @JvmField val channel: Int = 0,
|
||||
@ProtoNumber(6) @JvmField val pinyin: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class QQVoiceExtRsp(
|
||||
@ProtoId(1) @JvmField val qid: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(2) @JvmField val int32Retcode: Int = 0,
|
||||
@ProtoId(3) @JvmField val msgResult: List<QQVoiceResult>? = null
|
||||
@ProtoNumber(1) @JvmField val qid: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(2) @JvmField val int32Retcode: Int = 0,
|
||||
@ProtoNumber(3) @JvmField val msgResult: List<QQVoiceResult>? = null
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class QQVoiceResult(
|
||||
@ProtoId(1) @JvmField val text: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(2) @JvmField val pinyin: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(3) @JvmField val source: Int = 0
|
||||
@ProtoNumber(1) @JvmField val text: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(2) @JvmField val pinyin: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(3) @JvmField val source: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class ShortVideoReqExtInfo(
|
||||
@ProtoId(1) @JvmField val cmd: Int = 0,
|
||||
@ProtoId(2) @JvmField val sessionId: Long = 0L,
|
||||
@ProtoId(3) @JvmField val msgThumbinfo: PicInfo? = null,
|
||||
@ProtoId(4) @JvmField val msgVideoinfo: VideoInfo? = null,
|
||||
@ProtoId(5) @JvmField val msgShortvideoSureReq: ShortVideoSureReqInfo? = null,
|
||||
@ProtoId(6) @JvmField val boolIsMergeCmdBeforeData: Boolean = false
|
||||
@ProtoNumber(1) @JvmField val cmd: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val sessionId: Long = 0L,
|
||||
@ProtoNumber(3) @JvmField val msgThumbinfo: PicInfo? = null,
|
||||
@ProtoNumber(4) @JvmField val msgVideoinfo: VideoInfo? = null,
|
||||
@ProtoNumber(5) @JvmField val msgShortvideoSureReq: ShortVideoSureReqInfo? = null,
|
||||
@ProtoNumber(6) @JvmField val boolIsMergeCmdBeforeData: Boolean = false
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class ShortVideoRspExtInfo(
|
||||
@ProtoId(1) @JvmField val cmd: Int = 0,
|
||||
@ProtoId(2) @JvmField val sessionId: Long = 0L,
|
||||
@ProtoId(3) @JvmField val int32Retcode: Int = 0,
|
||||
@ProtoId(4) @JvmField val errinfo: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(5) @JvmField val msgThumbinfo: PicInfo? = null,
|
||||
@ProtoId(6) @JvmField val msgVideoinfo: VideoInfo? = null,
|
||||
@ProtoId(7) @JvmField val msgShortvideoSureRsp: ShortVideoSureRspInfo? = null,
|
||||
@ProtoId(8) @JvmField val retryFlag: Int = 0
|
||||
@ProtoNumber(1) @JvmField val cmd: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val sessionId: Long = 0L,
|
||||
@ProtoNumber(3) @JvmField val int32Retcode: Int = 0,
|
||||
@ProtoNumber(4) @JvmField val errinfo: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(5) @JvmField val msgThumbinfo: PicInfo? = null,
|
||||
@ProtoNumber(6) @JvmField val msgVideoinfo: VideoInfo? = null,
|
||||
@ProtoNumber(7) @JvmField val msgShortvideoSureRsp: ShortVideoSureRspInfo? = null,
|
||||
@ProtoNumber(8) @JvmField val retryFlag: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class ShortVideoSureReqInfo(
|
||||
@ProtoId(1) @JvmField val fromuin: Long = 0L,
|
||||
@ProtoId(2) @JvmField val chatType: Int = 0,
|
||||
@ProtoId(3) @JvmField val touin: Long = 0L,
|
||||
@ProtoId(4) @JvmField val groupCode: Long = 0L,
|
||||
@ProtoId(5) @JvmField val clientType: Int = 0,
|
||||
@ProtoId(6) @JvmField val msgThumbinfo: PicInfo? = null,
|
||||
@ProtoId(7) @JvmField val msgMergeVideoinfo: List<VideoInfo>? = null,
|
||||
@ProtoId(8) @JvmField val msgDropVideoinfo: List<VideoInfo>? = null,
|
||||
@ProtoId(9) @JvmField val businessType: Int = 0,
|
||||
@ProtoId(10) @JvmField val subBusinessType: Int = 0
|
||||
@ProtoNumber(1) @JvmField val fromuin: Long = 0L,
|
||||
@ProtoNumber(2) @JvmField val chatType: Int = 0,
|
||||
@ProtoNumber(3) @JvmField val touin: Long = 0L,
|
||||
@ProtoNumber(4) @JvmField val groupCode: Long = 0L,
|
||||
@ProtoNumber(5) @JvmField val clientType: Int = 0,
|
||||
@ProtoNumber(6) @JvmField val msgThumbinfo: PicInfo? = null,
|
||||
@ProtoNumber(7) @JvmField val msgMergeVideoinfo: List<VideoInfo>? = null,
|
||||
@ProtoNumber(8) @JvmField val msgDropVideoinfo: List<VideoInfo>? = null,
|
||||
@ProtoNumber(9) @JvmField val businessType: Int = 0,
|
||||
@ProtoNumber(10) @JvmField val subBusinessType: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class ShortVideoSureRspInfo(
|
||||
@ProtoId(1) @JvmField val fileid: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(2) @JvmField val ukey: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(3) @JvmField val msgVideoinfo: VideoInfo? = null,
|
||||
@ProtoId(4) @JvmField val mergeCost: Int = 0
|
||||
@ProtoNumber(1) @JvmField val fileid: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(2) @JvmField val ukey: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(3) @JvmField val msgVideoinfo: VideoInfo? = null,
|
||||
@ProtoNumber(4) @JvmField val mergeCost: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
@ -103,31 +103,31 @@ internal class BdhExtinfo : ProtoBuf {
|
||||
|
||||
@Serializable
|
||||
internal class StoryVideoExtRsp(
|
||||
@ProtoId(1) @JvmField val int32Retcode: Int = 0,
|
||||
@ProtoId(2) @JvmField val msg: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(3) @JvmField val cdnUrl: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(4) @JvmField val fileKey: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(5) @JvmField val fileId: ByteArray = EMPTY_BYTE_ARRAY
|
||||
@ProtoNumber(1) @JvmField val int32Retcode: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val msg: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(3) @JvmField val cdnUrl: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(4) @JvmField val fileKey: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(5) @JvmField val fileId: ByteArray = EMPTY_BYTE_ARRAY
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class UploadPicExtInfo(
|
||||
@ProtoId(1) @JvmField val fileResid: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(2) @JvmField val downloadUrl: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(3) @JvmField val thumbDownloadUrl: ByteArray = EMPTY_BYTE_ARRAY
|
||||
@ProtoNumber(1) @JvmField val fileResid: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(2) @JvmField val downloadUrl: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(3) @JvmField val thumbDownloadUrl: ByteArray = EMPTY_BYTE_ARRAY
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class VideoInfo(
|
||||
@ProtoId(1) @JvmField val idx: Int = 0,
|
||||
@ProtoId(2) @JvmField val size: Int = 0,
|
||||
@ProtoId(3) @JvmField val binMd5: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(4) @JvmField val format: Int = 0,
|
||||
@ProtoId(5) @JvmField val resLen: Int = 0,
|
||||
@ProtoId(6) @JvmField val resWidth: Int = 0,
|
||||
@ProtoId(7) @JvmField val time: Int = 0,
|
||||
@ProtoId(8) @JvmField val starttime: Long = 0L,
|
||||
@ProtoId(9) @JvmField val isAudio: Int = 0
|
||||
@ProtoNumber(1) @JvmField val idx: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val size: Int = 0,
|
||||
@ProtoNumber(3) @JvmField val binMd5: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(4) @JvmField val format: Int = 0,
|
||||
@ProtoNumber(5) @JvmField val resLen: Int = 0,
|
||||
@ProtoNumber(6) @JvmField val resWidth: Int = 0,
|
||||
@ProtoNumber(7) @JvmField val time: Int = 0,
|
||||
@ProtoNumber(8) @JvmField val starttime: Long = 0L,
|
||||
@ProtoNumber(9) @JvmField val isAudio: Int = 0
|
||||
) : ProtoBuf
|
||||
}
|
||||
|
||||
@ -135,142 +135,142 @@ internal class BdhExtinfo : ProtoBuf {
|
||||
internal class CSDataHighwayHead : ProtoBuf {
|
||||
@Serializable
|
||||
internal class C2CCommonExtendinfo(
|
||||
@ProtoId(1) @JvmField val infoId: Int = 0,
|
||||
@ProtoId(2) @JvmField val msgFilterExtendinfo: FilterExtendinfo? = null
|
||||
@ProtoNumber(1) @JvmField val infoId: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val msgFilterExtendinfo: FilterExtendinfo? = null
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class DataHighwayHead(
|
||||
@ProtoId(1) @JvmField val version: Int = 0,
|
||||
@ProtoId(2) @JvmField val uin: String = "", // yes
|
||||
@ProtoId(3) @JvmField val command: String = "",
|
||||
@ProtoId(4) @JvmField val seq: Int = 0,
|
||||
@ProtoId(5) @JvmField val retryTimes: Int = 0,
|
||||
@ProtoId(6) @JvmField val appid: Int = 0,
|
||||
@ProtoId(7) @JvmField val dataflag: Int = 0,
|
||||
@ProtoId(8) @JvmField val commandId: Int = 0,
|
||||
@ProtoId(9) @JvmField val buildVer: String = "",
|
||||
@ProtoId(10) @JvmField val localeId: Int = 0
|
||||
@ProtoNumber(1) @JvmField val version: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val uin: String = "", // yes
|
||||
@ProtoNumber(3) @JvmField val command: String = "",
|
||||
@ProtoNumber(4) @JvmField val seq: Int = 0,
|
||||
@ProtoNumber(5) @JvmField val retryTimes: Int = 0,
|
||||
@ProtoNumber(6) @JvmField val appid: Int = 0,
|
||||
@ProtoNumber(7) @JvmField val dataflag: Int = 0,
|
||||
@ProtoNumber(8) @JvmField val commandId: Int = 0,
|
||||
@ProtoNumber(9) @JvmField val buildVer: String = "",
|
||||
@ProtoNumber(10) @JvmField val localeId: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class DataHole(
|
||||
@ProtoId(1) @JvmField val begin: Long = 0L,
|
||||
@ProtoId(2) @JvmField val end: Long = 0L
|
||||
@ProtoNumber(1) @JvmField val begin: Long = 0L,
|
||||
@ProtoNumber(2) @JvmField val end: Long = 0L
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class FilterExtendinfo(
|
||||
@ProtoId(1) @JvmField val filterFlag: Int = 0,
|
||||
@ProtoId(2) @JvmField val msgImageFilterRequest: ImageFilterRequest? = null
|
||||
@ProtoNumber(1) @JvmField val filterFlag: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val msgImageFilterRequest: ImageFilterRequest? = null
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class FilterStyle(
|
||||
@ProtoId(1) @JvmField val styleId: Int = 0,
|
||||
@ProtoId(2) @JvmField val styleName: ByteArray = EMPTY_BYTE_ARRAY
|
||||
@ProtoNumber(1) @JvmField val styleId: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val styleName: ByteArray = EMPTY_BYTE_ARRAY
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class ImageFilterRequest(
|
||||
@ProtoId(1) @JvmField val sessionId: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(2) @JvmField val clientIp: Int = 0,
|
||||
@ProtoId(3) @JvmField val uin: Long = 0L,
|
||||
@ProtoId(4) @JvmField val style: FilterStyle? = null,
|
||||
@ProtoId(5) @JvmField val width: Int = 0,
|
||||
@ProtoId(6) @JvmField val height: Int = 0,
|
||||
@ProtoId(7) @JvmField val imageData: ByteArray = EMPTY_BYTE_ARRAY
|
||||
@ProtoNumber(1) @JvmField val sessionId: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(2) @JvmField val clientIp: Int = 0,
|
||||
@ProtoNumber(3) @JvmField val uin: Long = 0L,
|
||||
@ProtoNumber(4) @JvmField val style: FilterStyle? = null,
|
||||
@ProtoNumber(5) @JvmField val width: Int = 0,
|
||||
@ProtoNumber(6) @JvmField val height: Int = 0,
|
||||
@ProtoNumber(7) @JvmField val imageData: ByteArray = EMPTY_BYTE_ARRAY
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class ImageFilterResponse(
|
||||
@ProtoId(1) @JvmField val retCode: Int = 0,
|
||||
@ProtoId(2) @JvmField val imageData: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(3) @JvmField val costTime: Int = 0
|
||||
@ProtoNumber(1) @JvmField val retCode: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val imageData: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(3) @JvmField val costTime: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class LoginSigHead(
|
||||
@ProtoId(1) @JvmField val loginsigType: Int = 0,
|
||||
@ProtoId(2) @JvmField val loginsig: ByteArray = EMPTY_BYTE_ARRAY
|
||||
@ProtoNumber(1) @JvmField val loginsigType: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val loginsig: ByteArray = EMPTY_BYTE_ARRAY
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class NewServiceTicket(
|
||||
@ProtoId(1) @JvmField val signature: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(2) @JvmField val ukey: ByteArray = EMPTY_BYTE_ARRAY
|
||||
@ProtoNumber(1) @JvmField val signature: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(2) @JvmField val ukey: ByteArray = EMPTY_BYTE_ARRAY
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class PicInfoExt(
|
||||
@ProtoId(1) @JvmField val picWidth: Int = 0,
|
||||
@ProtoId(2) @JvmField val picHeight: Int = 0,
|
||||
@ProtoId(3) @JvmField val picFlag: Int = 0,
|
||||
@ProtoId(4) @JvmField val busiType: Int = 0,
|
||||
@ProtoId(5) @JvmField val srcTerm: Int = 0,
|
||||
@ProtoId(6) @JvmField val platType: Int = 0,
|
||||
@ProtoId(7) @JvmField val netType: Int = 0,
|
||||
@ProtoId(8) @JvmField val imgType: Int = 0,
|
||||
@ProtoId(9) @JvmField val appPicType: Int = 0
|
||||
@ProtoNumber(1) @JvmField val picWidth: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val picHeight: Int = 0,
|
||||
@ProtoNumber(3) @JvmField val picFlag: Int = 0,
|
||||
@ProtoNumber(4) @JvmField val busiType: Int = 0,
|
||||
@ProtoNumber(5) @JvmField val srcTerm: Int = 0,
|
||||
@ProtoNumber(6) @JvmField val platType: Int = 0,
|
||||
@ProtoNumber(7) @JvmField val netType: Int = 0,
|
||||
@ProtoNumber(8) @JvmField val imgType: Int = 0,
|
||||
@ProtoNumber(9) @JvmField val appPicType: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class PicRspExtInfo(
|
||||
@ProtoId(1) @JvmField val skey: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(2) @JvmField val clientIp: Int = 0,
|
||||
@ProtoId(3) @JvmField val upOffset: Long = 0L,
|
||||
@ProtoId(4) @JvmField val blockSize: Long = 0L
|
||||
@ProtoNumber(1) @JvmField val skey: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(2) @JvmField val clientIp: Int = 0,
|
||||
@ProtoNumber(3) @JvmField val upOffset: Long = 0L,
|
||||
@ProtoNumber(4) @JvmField val blockSize: Long = 0L
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class QueryHoleRsp(
|
||||
@ProtoId(1) @JvmField val result: Int = 0,
|
||||
@ProtoId(2) @JvmField val dataHole: List<DataHole>? = null,
|
||||
@ProtoId(3) @JvmField val boolCompFlag: Boolean = false
|
||||
@ProtoNumber(1) @JvmField val result: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val dataHole: List<DataHole>? = null,
|
||||
@ProtoNumber(3) @JvmField val boolCompFlag: Boolean = false
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class ReqDataHighwayHead(
|
||||
@ProtoId(1) @JvmField val msgBasehead: DataHighwayHead? = null,
|
||||
@ProtoId(2) @JvmField val msgSeghead: SegHead? = null,
|
||||
@ProtoId(3) @JvmField val reqExtendinfo: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(4) @JvmField val timestamp: Long = 0L,
|
||||
@ProtoId(5) @JvmField val msgLoginSigHead: LoginSigHead? = null
|
||||
@ProtoNumber(1) @JvmField val msgBasehead: DataHighwayHead? = null,
|
||||
@ProtoNumber(2) @JvmField val msgSeghead: SegHead? = null,
|
||||
@ProtoNumber(3) @JvmField val reqExtendinfo: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(4) @JvmField val timestamp: Long = 0L,
|
||||
@ProtoNumber(5) @JvmField val msgLoginSigHead: LoginSigHead? = null
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class RspBody(
|
||||
@ProtoId(1) @JvmField val msgQueryHoleRsp: QueryHoleRsp? = null
|
||||
@ProtoNumber(1) @JvmField val msgQueryHoleRsp: QueryHoleRsp? = null
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class RspDataHighwayHead(
|
||||
@ProtoId(1) @JvmField val msgBasehead: DataHighwayHead? = null,
|
||||
@ProtoId(2) @JvmField val msgSeghead: SegHead? = null,
|
||||
@ProtoId(3) @JvmField val errorCode: Int = 0,
|
||||
@ProtoId(4) @JvmField val allowRetry: Int = 0,
|
||||
@ProtoId(5) @JvmField val cachecost: Int = 0,
|
||||
@ProtoId(6) @JvmField val htcost: Int = 0,
|
||||
@ProtoId(7) @JvmField val rspExtendinfo: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(8) @JvmField val timestamp: Long = 0L,
|
||||
@ProtoId(9) @JvmField val range: Long = 0L,
|
||||
@ProtoId(10) @JvmField val isReset: Int = 0
|
||||
@ProtoNumber(1) @JvmField val msgBasehead: DataHighwayHead? = null,
|
||||
@ProtoNumber(2) @JvmField val msgSeghead: SegHead? = null,
|
||||
@ProtoNumber(3) @JvmField val errorCode: Int = 0,
|
||||
@ProtoNumber(4) @JvmField val allowRetry: Int = 0,
|
||||
@ProtoNumber(5) @JvmField val cachecost: Int = 0,
|
||||
@ProtoNumber(6) @JvmField val htcost: Int = 0,
|
||||
@ProtoNumber(7) @JvmField val rspExtendinfo: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(8) @JvmField val timestamp: Long = 0L,
|
||||
@ProtoNumber(9) @JvmField val range: Long = 0L,
|
||||
@ProtoNumber(10) @JvmField val isReset: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class SegHead(
|
||||
@ProtoId(1) @JvmField val serviceid: Int = 0,
|
||||
@ProtoId(2) @JvmField val filesize: Long = 0L,
|
||||
@ProtoId(3) @JvmField val dataoffset: Long = 0L,
|
||||
@ProtoId(4) @JvmField val datalength: Int = 0,
|
||||
@ProtoId(5) @JvmField val rtcode: Int = 0,
|
||||
@ProtoId(6) @JvmField val serviceticket: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(7) @JvmField val flag: Int = 0,
|
||||
@ProtoId(8) @JvmField val md5: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(9) @JvmField val fileMd5: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(10) @JvmField val cacheAddr: Int = 0,
|
||||
@ProtoId(11) @JvmField val queryTimes: Int = 0,
|
||||
@ProtoId(12) @JvmField val updateCacheip: Int = 0
|
||||
@ProtoNumber(1) @JvmField val serviceid: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val filesize: Long = 0L,
|
||||
@ProtoNumber(3) @JvmField val dataoffset: Long = 0L,
|
||||
@ProtoNumber(4) @JvmField val datalength: Int = 0,
|
||||
@ProtoNumber(5) @JvmField val rtcode: Int = 0,
|
||||
@ProtoNumber(6) @JvmField val serviceticket: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(7) @JvmField val flag: Int = 0,
|
||||
@ProtoNumber(8) @JvmField val md5: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(9) @JvmField val fileMd5: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(10) @JvmField val cacheAddr: Int = 0,
|
||||
@ProtoNumber(11) @JvmField val queryTimes: Int = 0,
|
||||
@ProtoNumber(12) @JvmField val updateCacheip: Int = 0
|
||||
) : ProtoBuf
|
||||
}
|
||||
|
||||
@ -278,31 +278,31 @@ internal class CSDataHighwayHead : ProtoBuf {
|
||||
internal class HwConfigPersistentPB : ProtoBuf {
|
||||
@Serializable
|
||||
internal class HwConfigItemPB(
|
||||
@ProtoId(1) @JvmField val ingKey: String = "",
|
||||
@ProtoId(2) @JvmField val endPointList: List<HwEndPointPB>? = null
|
||||
@ProtoNumber(1) @JvmField val ingKey: String = "",
|
||||
@ProtoNumber(2) @JvmField val endPointList: List<HwEndPointPB>? = null
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class HwConfigPB(
|
||||
@ProtoId(1) @JvmField val configItemList: List<HwConfigItemPB>? = null,
|
||||
@ProtoId(2) @JvmField val netSegConfList: List<HwNetSegConfPB>? = null,
|
||||
@ProtoId(3) @JvmField val shortVideoNetConf: List<HwNetSegConfPB>? = null,
|
||||
@ProtoId(4) @JvmField val configItemListIp6: List<HwConfigItemPB>? = null
|
||||
@ProtoNumber(1) @JvmField val configItemList: List<HwConfigItemPB>? = null,
|
||||
@ProtoNumber(2) @JvmField val netSegConfList: List<HwNetSegConfPB>? = null,
|
||||
@ProtoNumber(3) @JvmField val shortVideoNetConf: List<HwNetSegConfPB>? = null,
|
||||
@ProtoNumber(4) @JvmField val configItemListIp6: List<HwConfigItemPB>? = null
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class HwEndPointPB(
|
||||
@ProtoId(1) @JvmField val ingHost: String = "",
|
||||
@ProtoId(2) @JvmField val int32Port: Int = 0,
|
||||
@ProtoId(3) @JvmField val int64Timestampe: Long = 0L
|
||||
@ProtoNumber(1) @JvmField val ingHost: String = "",
|
||||
@ProtoNumber(2) @JvmField val int32Port: Int = 0,
|
||||
@ProtoNumber(3) @JvmField val int64Timestampe: Long = 0L
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class HwNetSegConfPB(
|
||||
@ProtoId(1) @JvmField val int64NetType: Long = 0L,
|
||||
@ProtoId(2) @JvmField val int64SegSize: Long = 0L,
|
||||
@ProtoId(3) @JvmField val int64SegNum: Long = 0L,
|
||||
@ProtoId(4) @JvmField val int64CurConnNum: Long = 0L
|
||||
@ProtoNumber(1) @JvmField val int64NetType: Long = 0L,
|
||||
@ProtoNumber(2) @JvmField val int64SegSize: Long = 0L,
|
||||
@ProtoNumber(3) @JvmField val int64SegNum: Long = 0L,
|
||||
@ProtoNumber(4) @JvmField val int64CurConnNum: Long = 0L
|
||||
) : ProtoBuf
|
||||
}
|
||||
|
||||
@ -310,8 +310,8 @@ internal class HwConfigPersistentPB : ProtoBuf {
|
||||
internal class HwSessionInfoPersistentPB : ProtoBuf {
|
||||
@Serializable
|
||||
internal class HwSessionInfoPB(
|
||||
@ProtoId(1) @JvmField val httpconnSigSession: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(2) @JvmField val sessionKey: ByteArray = EMPTY_BYTE_ARRAY
|
||||
@ProtoNumber(1) @JvmField val httpconnSigSession: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(2) @JvmField val sessionKey: ByteArray = EMPTY_BYTE_ARRAY
|
||||
) : ProtoBuf
|
||||
}
|
||||
|
||||
@ -319,137 +319,137 @@ internal class HwSessionInfoPersistentPB : ProtoBuf {
|
||||
internal class Subcmd0x501 : ProtoBuf {
|
||||
@Serializable
|
||||
internal class ReqBody(
|
||||
@ProtoId(1281) @JvmField val msgSubcmd0x501ReqBody: SubCmd0x501ReqBody? = null
|
||||
@ProtoNumber(1281) @JvmField val msgSubcmd0x501ReqBody: SubCmd0x501ReqBody? = null
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class RspBody(
|
||||
@ProtoId(1281) @JvmField val msgSubcmd0x501RspBody: SubCmd0x501Rspbody? = null
|
||||
@ProtoNumber(1281) @JvmField val msgSubcmd0x501RspBody: SubCmd0x501Rspbody? = null
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class SubCmd0x501ReqBody(
|
||||
@ProtoId(1) @JvmField val uin: Long = 0L,
|
||||
@ProtoId(2) @JvmField val idcId: Int = 0,
|
||||
@ProtoId(3) @JvmField val appid: Int = 0,
|
||||
@ProtoId(4) @JvmField val loginSigType: Int = 0,
|
||||
@ProtoId(5) @JvmField val loginSigTicket: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(6) @JvmField val requestFlag: Int = 0,
|
||||
@ProtoId(7) @JvmField val uint32ServiceTypes: List<Int>? = null,
|
||||
@ProtoId(8) @JvmField val bid: Int = 0,
|
||||
@ProtoId(9) @JvmField val term: Int = 0,
|
||||
@ProtoId(10) @JvmField val plat: Int = 0,
|
||||
@ProtoId(11) @JvmField val net: Int = 0,
|
||||
@ProtoId(12) @JvmField val caller: Int = 0
|
||||
@ProtoNumber(1) @JvmField val uin: Long = 0L,
|
||||
@ProtoNumber(2) @JvmField val idcId: Int = 0,
|
||||
@ProtoNumber(3) @JvmField val appid: Int = 0,
|
||||
@ProtoNumber(4) @JvmField val loginSigType: Int = 0,
|
||||
@ProtoNumber(5) @JvmField val loginSigTicket: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(6) @JvmField val requestFlag: Int = 0,
|
||||
@ProtoNumber(7) @JvmField val uint32ServiceTypes: List<Int>? = null,
|
||||
@ProtoNumber(8) @JvmField val bid: Int = 0,
|
||||
@ProtoNumber(9) @JvmField val term: Int = 0,
|
||||
@ProtoNumber(10) @JvmField val plat: Int = 0,
|
||||
@ProtoNumber(11) @JvmField val net: Int = 0,
|
||||
@ProtoNumber(12) @JvmField val caller: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class SubCmd0x501Rspbody(
|
||||
@ProtoId(1) @JvmField val httpconnSigSession: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(2) @JvmField val sessionKey: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(3) @JvmField val msgHttpconnAddrs: List<SrvAddrs>? = null,
|
||||
@ProtoId(4) @JvmField val preConnection: Int = 0,
|
||||
@ProtoId(5) @JvmField val csConn: Int = 0,
|
||||
@ProtoId(6) @JvmField val msgIpLearnConf: IpLearnConf? = null,
|
||||
@ProtoId(7) @JvmField val msgDynTimeoutConf: DynTimeOutConf? = null,
|
||||
@ProtoId(8) @JvmField val msgOpenUpConf: OpenUpConf? = null,
|
||||
@ProtoId(9) @JvmField val msgDownloadEncryptConf: DownloadEncryptConf? = null,
|
||||
@ProtoId(10) @JvmField val msgShortVideoConf: ShortVideoConf? = null,
|
||||
@ProtoId(11) @JvmField val msgPtvConf: PTVConf? = null
|
||||
@ProtoNumber(1) @JvmField val httpconnSigSession: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(2) @JvmField val sessionKey: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(3) @JvmField val msgHttpconnAddrs: List<SrvAddrs>? = null,
|
||||
@ProtoNumber(4) @JvmField val preConnection: Int = 0,
|
||||
@ProtoNumber(5) @JvmField val csConn: Int = 0,
|
||||
@ProtoNumber(6) @JvmField val msgIpLearnConf: IpLearnConf? = null,
|
||||
@ProtoNumber(7) @JvmField val msgDynTimeoutConf: DynTimeOutConf? = null,
|
||||
@ProtoNumber(8) @JvmField val msgOpenUpConf: OpenUpConf? = null,
|
||||
@ProtoNumber(9) @JvmField val msgDownloadEncryptConf: DownloadEncryptConf? = null,
|
||||
@ProtoNumber(10) @JvmField val msgShortVideoConf: ShortVideoConf? = null,
|
||||
@ProtoNumber(11) @JvmField val msgPtvConf: PTVConf? = null
|
||||
) : ProtoBuf {
|
||||
@Serializable
|
||||
internal class DownloadEncryptConf(
|
||||
@ProtoId(1) @JvmField val boolEnableEncryptRequest: Boolean = false,
|
||||
@ProtoId(2) @JvmField val boolEnableEncryptedPic: Boolean = false,
|
||||
@ProtoId(3) @JvmField val ctrlFlag: Int = 0
|
||||
@ProtoNumber(1) @JvmField val boolEnableEncryptRequest: Boolean = false,
|
||||
@ProtoNumber(2) @JvmField val boolEnableEncryptedPic: Boolean = false,
|
||||
@ProtoNumber(3) @JvmField val ctrlFlag: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class DynTimeOutConf(
|
||||
@ProtoId(1) @JvmField val tbase2g: Int = 0,
|
||||
@ProtoId(2) @JvmField val tbase3g: Int = 0,
|
||||
@ProtoId(3) @JvmField val tbase4g: Int = 0,
|
||||
@ProtoId(4) @JvmField val tbaseWifi: Int = 0,
|
||||
@ProtoId(5) @JvmField val torg2g: Int = 0,
|
||||
@ProtoId(6) @JvmField val torg3g: Int = 0,
|
||||
@ProtoId(7) @JvmField val torg4g: Int = 0,
|
||||
@ProtoId(8) @JvmField val torgWifi: Int = 0,
|
||||
@ProtoId(9) @JvmField val maxTimeout: Int = 0,
|
||||
@ProtoId(10) @JvmField val enableDynTimeout: Int = 0,
|
||||
@ProtoId(11) @JvmField val maxTimeout2g: Int = 0,
|
||||
@ProtoId(12) @JvmField val maxTimeout3g: Int = 0,
|
||||
@ProtoId(13) @JvmField val maxTimeout4g: Int = 0,
|
||||
@ProtoId(14) @JvmField val maxTimeoutWifi: Int = 0,
|
||||
@ProtoId(15) @JvmField val hbTimeout2g: Int = 0,
|
||||
@ProtoId(16) @JvmField val hbTimeout3g: Int = 0,
|
||||
@ProtoId(17) @JvmField val hbTimeout4g: Int = 0,
|
||||
@ProtoId(18) @JvmField val hbTimeoutWifi: Int = 0,
|
||||
@ProtoId(19) @JvmField val hbTimeoutDefault: Int = 0
|
||||
@ProtoNumber(1) @JvmField val tbase2g: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val tbase3g: Int = 0,
|
||||
@ProtoNumber(3) @JvmField val tbase4g: Int = 0,
|
||||
@ProtoNumber(4) @JvmField val tbaseWifi: Int = 0,
|
||||
@ProtoNumber(5) @JvmField val torg2g: Int = 0,
|
||||
@ProtoNumber(6) @JvmField val torg3g: Int = 0,
|
||||
@ProtoNumber(7) @JvmField val torg4g: Int = 0,
|
||||
@ProtoNumber(8) @JvmField val torgWifi: Int = 0,
|
||||
@ProtoNumber(9) @JvmField val maxTimeout: Int = 0,
|
||||
@ProtoNumber(10) @JvmField val enableDynTimeout: Int = 0,
|
||||
@ProtoNumber(11) @JvmField val maxTimeout2g: Int = 0,
|
||||
@ProtoNumber(12) @JvmField val maxTimeout3g: Int = 0,
|
||||
@ProtoNumber(13) @JvmField val maxTimeout4g: Int = 0,
|
||||
@ProtoNumber(14) @JvmField val maxTimeoutWifi: Int = 0,
|
||||
@ProtoNumber(15) @JvmField val hbTimeout2g: Int = 0,
|
||||
@ProtoNumber(16) @JvmField val hbTimeout3g: Int = 0,
|
||||
@ProtoNumber(17) @JvmField val hbTimeout4g: Int = 0,
|
||||
@ProtoNumber(18) @JvmField val hbTimeoutWifi: Int = 0,
|
||||
@ProtoNumber(19) @JvmField val hbTimeoutDefault: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class Ip6Addr(
|
||||
@ProtoId(1) @JvmField val type: Int = 0,
|
||||
@ProtoId(2) @JvmField val ip6: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(3) @JvmField val port: Int = 0,
|
||||
@ProtoId(4) @JvmField val area: Int = 0,
|
||||
@ProtoId(5) @JvmField val sameIsp: Int = 0
|
||||
@ProtoNumber(1) @JvmField val type: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val ip6: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(3) @JvmField val port: Int = 0,
|
||||
@ProtoNumber(4) @JvmField val area: Int = 0,
|
||||
@ProtoNumber(5) @JvmField val sameIsp: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class IpAddr(
|
||||
@ProtoId(1) @JvmField val type: Int = 0,
|
||||
@ProtoType(ProtoNumberType.FIXED) @ProtoId(2) @JvmField val ip: Int = 0,
|
||||
@ProtoId(3) @JvmField val port: Int = 0,
|
||||
@ProtoId(4) @JvmField val area: Int = 0,
|
||||
@ProtoId(5) @JvmField val sameIsp: Int = 0
|
||||
@ProtoNumber(1) @JvmField val type: Int = 0,
|
||||
@ProtoType(ProtoIntegerType.FIXED) @ProtoNumber(2) @JvmField val ip: Int = 0,
|
||||
@ProtoNumber(3) @JvmField val port: Int = 0,
|
||||
@ProtoNumber(4) @JvmField val area: Int = 0,
|
||||
@ProtoNumber(5) @JvmField val sameIsp: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class IpLearnConf(
|
||||
@ProtoId(1) @JvmField val refreshCachedIp: Int = 0,
|
||||
@ProtoId(2) @JvmField val enableIpLearn: Int = 0
|
||||
@ProtoNumber(1) @JvmField val refreshCachedIp: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val enableIpLearn: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class NetSegConf(
|
||||
@ProtoId(1) @JvmField val netType: Int = 0,
|
||||
@ProtoId(2) @JvmField val segsize: Int = 0,
|
||||
@ProtoId(3) @JvmField val segnum: Int = 0,
|
||||
@ProtoId(4) @JvmField val curconnnum: Int = 0
|
||||
@ProtoNumber(1) @JvmField val netType: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val segsize: Int = 0,
|
||||
@ProtoNumber(3) @JvmField val segnum: Int = 0,
|
||||
@ProtoNumber(4) @JvmField val curconnnum: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class OpenUpConf(
|
||||
@ProtoId(1) @JvmField val boolEnableOpenup: Boolean = false,
|
||||
@ProtoId(2) @JvmField val preSendSegnum: Int = 0,
|
||||
@ProtoId(3) @JvmField val preSendSegnum3g: Int = 0,
|
||||
@ProtoId(4) @JvmField val preSendSegnum4g: Int = 0,
|
||||
@ProtoId(5) @JvmField val preSendSegnumWifi: Int = 0
|
||||
@ProtoNumber(1) @JvmField val boolEnableOpenup: Boolean = false,
|
||||
@ProtoNumber(2) @JvmField val preSendSegnum: Int = 0,
|
||||
@ProtoNumber(3) @JvmField val preSendSegnum3g: Int = 0,
|
||||
@ProtoNumber(4) @JvmField val preSendSegnum4g: Int = 0,
|
||||
@ProtoNumber(5) @JvmField val preSendSegnumWifi: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class PTVConf(
|
||||
@ProtoId(1) @JvmField val channelType: Int = 0,
|
||||
@ProtoId(2) @JvmField val msgNetsegconf: List<NetSegConf>? = null,
|
||||
@ProtoId(3) @JvmField val boolOpenHardwareCodec: Boolean = false
|
||||
@ProtoNumber(1) @JvmField val channelType: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val msgNetsegconf: List<NetSegConf>? = null,
|
||||
@ProtoNumber(3) @JvmField val boolOpenHardwareCodec: Boolean = false
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class ShortVideoConf(
|
||||
@ProtoId(1) @JvmField val channelType: Int = 0,
|
||||
@ProtoId(2) @JvmField val msgNetsegconf: List<NetSegConf>? = null,
|
||||
@ProtoId(3) @JvmField val boolOpenHardwareCodec: Boolean = false,
|
||||
@ProtoId(4) @JvmField val boolSendAheadSignal: Boolean = false
|
||||
@ProtoNumber(1) @JvmField val channelType: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val msgNetsegconf: List<NetSegConf>? = null,
|
||||
@ProtoNumber(3) @JvmField val boolOpenHardwareCodec: Boolean = false,
|
||||
@ProtoNumber(4) @JvmField val boolSendAheadSignal: Boolean = false
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class SrvAddrs(
|
||||
@ProtoId(1) @JvmField val serviceType: Int = 0,
|
||||
@ProtoId(2) @JvmField val msgAddrs: List<IpAddr>? = null,
|
||||
@ProtoId(3) @JvmField val fragmentSize: Int = 0,
|
||||
@ProtoId(4) @JvmField val msgNetsegconf: List<NetSegConf>? = null,
|
||||
@ProtoId(5) @JvmField val msgAddrsV6: List<Ip6Addr>? = null
|
||||
@ProtoNumber(1) @JvmField val serviceType: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val msgAddrs: List<IpAddr>? = null,
|
||||
@ProtoNumber(3) @JvmField val fragmentSize: Int = 0,
|
||||
@ProtoNumber(4) @JvmField val msgNetsegconf: List<NetSegConf>? = null,
|
||||
@ProtoNumber(5) @JvmField val msgAddrsV6: List<Ip6Addr>? = null
|
||||
) : ProtoBuf
|
||||
}
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
package net.mamoe.mirai.qqandroid.network.protocol.data.proto
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.protobuf.ProtoId
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
import net.mamoe.mirai.qqandroid.network.protocol.packet.EMPTY_BYTE_ARRAY
|
||||
import net.mamoe.mirai.qqandroid.utils.io.ProtoBuf
|
||||
import kotlin.jvm.JvmField
|
||||
@ -9,256 +9,256 @@ import kotlin.jvm.JvmField
|
||||
internal class HummerCommelem : ProtoBuf {
|
||||
@Serializable
|
||||
internal class MsgElemInfoServtype1(
|
||||
@ProtoId(1) @JvmField val rewardId: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(2) @JvmField val senderUin: Long = 0L,
|
||||
@ProtoId(3) @JvmField val picType: Int = 0,
|
||||
@ProtoId(4) @JvmField val rewardMoney: Int = 0,
|
||||
@ProtoId(5) @JvmField val url: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(6) @JvmField val content: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(7) @JvmField val createTimestamp: Int = 0,
|
||||
@ProtoId(8) @JvmField val status: Int = 0,
|
||||
@ProtoId(9) @JvmField val size: Int = 0,
|
||||
@ProtoId(10) @JvmField val videoDuration: Int = 0,
|
||||
@ProtoId(11) @JvmField val seq: Long = 0L,
|
||||
@ProtoId(12) @JvmField val rewardTypeExt: Int = 0
|
||||
@ProtoNumber(1) @JvmField val rewardId: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(2) @JvmField val senderUin: Long = 0L,
|
||||
@ProtoNumber(3) @JvmField val picType: Int = 0,
|
||||
@ProtoNumber(4) @JvmField val rewardMoney: Int = 0,
|
||||
@ProtoNumber(5) @JvmField val url: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(6) @JvmField val content: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(7) @JvmField val createTimestamp: Int = 0,
|
||||
@ProtoNumber(8) @JvmField val status: Int = 0,
|
||||
@ProtoNumber(9) @JvmField val size: Int = 0,
|
||||
@ProtoNumber(10) @JvmField val videoDuration: Int = 0,
|
||||
@ProtoNumber(11) @JvmField val seq: Long = 0L,
|
||||
@ProtoNumber(12) @JvmField val rewardTypeExt: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class MsgElemInfoServtype11(
|
||||
@ProtoId(1) @JvmField val resID: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(2) @JvmField val resMD5: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(3) @JvmField val reserveInfo1: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(4) @JvmField val reserveInfo2: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(5) @JvmField val doodleDataOffset: Int = 0,
|
||||
@ProtoId(6) @JvmField val doodleGifId: Int = 0,
|
||||
@ProtoId(7) @JvmField val doodleUrl: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(8) @JvmField val doodleMd5: ByteArray = EMPTY_BYTE_ARRAY
|
||||
@ProtoNumber(1) @JvmField val resID: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(2) @JvmField val resMD5: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(3) @JvmField val reserveInfo1: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(4) @JvmField val reserveInfo2: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(5) @JvmField val doodleDataOffset: Int = 0,
|
||||
@ProtoNumber(6) @JvmField val doodleGifId: Int = 0,
|
||||
@ProtoNumber(7) @JvmField val doodleUrl: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(8) @JvmField val doodleMd5: ByteArray = EMPTY_BYTE_ARRAY
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class MsgElemInfoServtype13(
|
||||
@ProtoId(1) @JvmField val sysHeadId: Int = 0,
|
||||
@ProtoId(2) @JvmField val headFlag: Int = 0
|
||||
@ProtoNumber(1) @JvmField val sysHeadId: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val headFlag: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class MsgElemInfoServtype14(
|
||||
@ProtoId(1) @JvmField val id: Int = 0,
|
||||
@ProtoId(2) @JvmField val reserveInfo: ByteArray = EMPTY_BYTE_ARRAY
|
||||
@ProtoNumber(1) @JvmField val id: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val reserveInfo: ByteArray = EMPTY_BYTE_ARRAY
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class MsgElemInfoServtype15(
|
||||
@ProtoId(1) @JvmField val vid: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(2) @JvmField val cover: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(3) @JvmField val title: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(4) @JvmField val summary: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(5) @JvmField val createTime: Long = 0L,
|
||||
@ProtoId(6) @JvmField val commentContent: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(7) @JvmField val author: Long = 0L,
|
||||
@ProtoId(8) @JvmField val ctrVersion: Int = 0
|
||||
@ProtoNumber(1) @JvmField val vid: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(2) @JvmField val cover: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(3) @JvmField val title: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(4) @JvmField val summary: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(5) @JvmField val createTime: Long = 0L,
|
||||
@ProtoNumber(6) @JvmField val commentContent: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(7) @JvmField val author: Long = 0L,
|
||||
@ProtoNumber(8) @JvmField val ctrVersion: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class MsgElemInfoServtype16(
|
||||
@ProtoId(1) @JvmField val uid: Long = 0L,
|
||||
@ProtoId(2) @JvmField val unionID: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(3) @JvmField val storyID: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(4) @JvmField val md5: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(5) @JvmField val thumbUrl: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(6) @JvmField val doodleUrl: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(7) @JvmField val videoWidth: Int = 0,
|
||||
@ProtoId(8) @JvmField val videoHeight: Int = 0,
|
||||
@ProtoId(9) @JvmField val sourceName: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(10) @JvmField val sourceActionType: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(11) @JvmField val sourceActionData: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(12) @JvmField val ctrVersion: Int = 0
|
||||
@ProtoNumber(1) @JvmField val uid: Long = 0L,
|
||||
@ProtoNumber(2) @JvmField val unionID: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(3) @JvmField val storyID: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(4) @JvmField val md5: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(5) @JvmField val thumbUrl: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(6) @JvmField val doodleUrl: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(7) @JvmField val videoWidth: Int = 0,
|
||||
@ProtoNumber(8) @JvmField val videoHeight: Int = 0,
|
||||
@ProtoNumber(9) @JvmField val sourceName: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(10) @JvmField val sourceActionType: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(11) @JvmField val sourceActionData: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(12) @JvmField val ctrVersion: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class MsgElemInfoServtype18(
|
||||
@ProtoId(1) @JvmField val currentAmount: Long = 0L,
|
||||
@ProtoId(2) @JvmField val totalAmount: Long = 0L,
|
||||
@ProtoId(3) @JvmField val listid: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(4) @JvmField val authKey: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(5) @JvmField val number: Int = 0
|
||||
@ProtoNumber(1) @JvmField val currentAmount: Long = 0L,
|
||||
@ProtoNumber(2) @JvmField val totalAmount: Long = 0L,
|
||||
@ProtoNumber(3) @JvmField val listid: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(4) @JvmField val authKey: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(5) @JvmField val number: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class MsgElemInfoServtype19(
|
||||
@ProtoId(1) @JvmField val data: ByteArray = EMPTY_BYTE_ARRAY
|
||||
@ProtoNumber(1) @JvmField val data: ByteArray = EMPTY_BYTE_ARRAY
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class MsgElemInfoServtype2(
|
||||
@ProtoId(1) @JvmField val pokeType: Int = 0,
|
||||
@ProtoId(2) @JvmField val pokeSummary: String = "",
|
||||
@ProtoId(3) @JvmField val doubleHit: Int = 0,
|
||||
@ProtoId(4) @JvmField val vaspokeId: Int = 0,
|
||||
@ProtoId(5) @JvmField val vaspokeName: String = "",
|
||||
@ProtoId(6) @JvmField val vaspokeMinver: String = "",
|
||||
@ProtoId(7) @JvmField val pokeStrength: Int = 0,
|
||||
@ProtoId(8) @JvmField val msgType: Int = 0,
|
||||
@ProtoId(9) @JvmField val faceBubbleCount: Int = 0,
|
||||
@ProtoId(10) @JvmField val pokeFlag: Int = 0
|
||||
@ProtoNumber(1) @JvmField val pokeType: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val pokeSummary: String = "",
|
||||
@ProtoNumber(3) @JvmField val doubleHit: Int = 0,
|
||||
@ProtoNumber(4) @JvmField val vaspokeId: Int = 0,
|
||||
@ProtoNumber(5) @JvmField val vaspokeName: String = "",
|
||||
@ProtoNumber(6) @JvmField val vaspokeMinver: String = "",
|
||||
@ProtoNumber(7) @JvmField val pokeStrength: Int = 0,
|
||||
@ProtoNumber(8) @JvmField val msgType: Int = 0,
|
||||
@ProtoNumber(9) @JvmField val faceBubbleCount: Int = 0,
|
||||
@ProtoNumber(10) @JvmField val pokeFlag: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class MsgElemInfoServtype20(
|
||||
@ProtoId(1) @JvmField val data: ByteArray = EMPTY_BYTE_ARRAY
|
||||
@ProtoNumber(1) @JvmField val data: ByteArray = EMPTY_BYTE_ARRAY
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class MsgElemInfoServtype21(
|
||||
@ProtoId(1) @JvmField val topicId: Int = 0,
|
||||
@ProtoId(2) @JvmField val confessorUin: Long = 0L,
|
||||
@ProtoId(3) @JvmField val confessorNick: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(4) @JvmField val confessorSex: Int = 0,
|
||||
@ProtoId(5) @JvmField val sysmsgFlag: Int = 0,
|
||||
@ProtoId(6) @JvmField val c2cConfessCtx: C2CConfessContext? = null,
|
||||
@ProtoId(7) @JvmField val topic: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(8) @JvmField val confessTime: Long = 0L,
|
||||
@ProtoId(9) @JvmField val groupConfessMsg: GroupConfessMsg? = null,
|
||||
@ProtoId(10) @JvmField val groupConfessCtx: GroupConfessContext? = null
|
||||
@ProtoNumber(1) @JvmField val topicId: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val confessorUin: Long = 0L,
|
||||
@ProtoNumber(3) @JvmField val confessorNick: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(4) @JvmField val confessorSex: Int = 0,
|
||||
@ProtoNumber(5) @JvmField val sysmsgFlag: Int = 0,
|
||||
@ProtoNumber(6) @JvmField val c2cConfessCtx: C2CConfessContext? = null,
|
||||
@ProtoNumber(7) @JvmField val topic: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(8) @JvmField val confessTime: Long = 0L,
|
||||
@ProtoNumber(9) @JvmField val groupConfessMsg: GroupConfessMsg? = null,
|
||||
@ProtoNumber(10) @JvmField val groupConfessCtx: GroupConfessContext? = null
|
||||
) : ProtoBuf {
|
||||
@Serializable
|
||||
internal class C2CConfessContext(
|
||||
@ProtoId(1) @JvmField val confessorUin: Long = 0L,
|
||||
@ProtoId(2) @JvmField val confessToUin: Long = 0L,
|
||||
@ProtoId(3) @JvmField val sendUin: Long = 0L,
|
||||
@ProtoId(4) @JvmField val confessorNick: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(5) @JvmField val confess: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(6) @JvmField val bgType: Int = 0,
|
||||
@ProtoId(7) @JvmField val topicId: Int = 0,
|
||||
@ProtoId(8) @JvmField val confessTime: Long = 0L,
|
||||
@ProtoId(9) @JvmField val confessorSex: Int = 0,
|
||||
@ProtoId(10) @JvmField val bizType: Int = 0,
|
||||
@ProtoId(11) @JvmField val confessNum: Int = 0,
|
||||
@ProtoId(12) @JvmField val confessToSex: Int = 0
|
||||
@ProtoNumber(1) @JvmField val confessorUin: Long = 0L,
|
||||
@ProtoNumber(2) @JvmField val confessToUin: Long = 0L,
|
||||
@ProtoNumber(3) @JvmField val sendUin: Long = 0L,
|
||||
@ProtoNumber(4) @JvmField val confessorNick: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(5) @JvmField val confess: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(6) @JvmField val bgType: Int = 0,
|
||||
@ProtoNumber(7) @JvmField val topicId: Int = 0,
|
||||
@ProtoNumber(8) @JvmField val confessTime: Long = 0L,
|
||||
@ProtoNumber(9) @JvmField val confessorSex: Int = 0,
|
||||
@ProtoNumber(10) @JvmField val bizType: Int = 0,
|
||||
@ProtoNumber(11) @JvmField val confessNum: Int = 0,
|
||||
@ProtoNumber(12) @JvmField val confessToSex: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class GroupConfessContext(
|
||||
@ProtoId(1) @JvmField val confessorUin: Long = 0L,
|
||||
@ProtoId(2) @JvmField val confessToUin: Long = 0L,
|
||||
@ProtoId(3) @JvmField val sendUin: Long = 0L,
|
||||
@ProtoId(4) @JvmField val confessorSex: Int = 0,
|
||||
@ProtoId(5) @JvmField val confessToNick: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(6) @JvmField val topic: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(7) @JvmField val topicId: Int = 0,
|
||||
@ProtoId(8) @JvmField val confessTime: Long = 0L,
|
||||
@ProtoId(9) @JvmField val confessToNickType: Int = 0,
|
||||
@ProtoId(10) @JvmField val confessorNick: ByteArray = EMPTY_BYTE_ARRAY
|
||||
@ProtoNumber(1) @JvmField val confessorUin: Long = 0L,
|
||||
@ProtoNumber(2) @JvmField val confessToUin: Long = 0L,
|
||||
@ProtoNumber(3) @JvmField val sendUin: Long = 0L,
|
||||
@ProtoNumber(4) @JvmField val confessorSex: Int = 0,
|
||||
@ProtoNumber(5) @JvmField val confessToNick: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(6) @JvmField val topic: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(7) @JvmField val topicId: Int = 0,
|
||||
@ProtoNumber(8) @JvmField val confessTime: Long = 0L,
|
||||
@ProtoNumber(9) @JvmField val confessToNickType: Int = 0,
|
||||
@ProtoNumber(10) @JvmField val confessorNick: ByteArray = EMPTY_BYTE_ARRAY
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class GroupConfessItem(
|
||||
@ProtoId(1) @JvmField val topicId: Int = 0,
|
||||
@ProtoId(2) @JvmField val confessToUin: Long = 0L,
|
||||
@ProtoId(3) @JvmField val confessToNick: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(4) @JvmField val topic: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(5) @JvmField val confessToNickType: Int = 0
|
||||
@ProtoNumber(1) @JvmField val topicId: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val confessToUin: Long = 0L,
|
||||
@ProtoNumber(3) @JvmField val confessToNick: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(4) @JvmField val topic: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(5) @JvmField val confessToNickType: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class GroupConfessMsg(
|
||||
@ProtoId(1) @JvmField val confessTime: Long = 0L,
|
||||
@ProtoId(2) @JvmField val confessorUin: Long = 0L,
|
||||
@ProtoId(3) @JvmField val confessorSex: Int = 0,
|
||||
@ProtoId(4) @JvmField val sysmsgFlag: Int = 0,
|
||||
@ProtoId(5) @JvmField val confessItems: List<GroupConfessItem>? = null,
|
||||
@ProtoId(6) @JvmField val totalTopicCount: Int = 0
|
||||
@ProtoNumber(1) @JvmField val confessTime: Long = 0L,
|
||||
@ProtoNumber(2) @JvmField val confessorUin: Long = 0L,
|
||||
@ProtoNumber(3) @JvmField val confessorSex: Int = 0,
|
||||
@ProtoNumber(4) @JvmField val sysmsgFlag: Int = 0,
|
||||
@ProtoNumber(5) @JvmField val confessItems: List<GroupConfessItem>? = null,
|
||||
@ProtoNumber(6) @JvmField val totalTopicCount: Int = 0
|
||||
) : ProtoBuf
|
||||
}
|
||||
|
||||
@Serializable
|
||||
internal class MsgElemInfoServtype23(
|
||||
@ProtoId(1) @JvmField val faceType: Int = 0,
|
||||
@ProtoId(2) @JvmField val faceBubbleCount: Int = 0,
|
||||
@ProtoId(3) @JvmField val faceSummary: String = "",
|
||||
@ProtoId(4) @JvmField val flag: Int = 0,
|
||||
@ProtoId(5) @JvmField val others: ByteArray = EMPTY_BYTE_ARRAY
|
||||
@ProtoNumber(1) @JvmField val faceType: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val faceBubbleCount: Int = 0,
|
||||
@ProtoNumber(3) @JvmField val faceSummary: String = "",
|
||||
@ProtoNumber(4) @JvmField val flag: Int = 0,
|
||||
@ProtoNumber(5) @JvmField val others: ByteArray = EMPTY_BYTE_ARRAY
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class MsgElemInfoServtype24(
|
||||
@ProtoId(1) @JvmField val limitChatEnter: LimitChatEnter? = null,
|
||||
@ProtoId(2) @JvmField val limitChatExit: LimitChatExit? = null
|
||||
@ProtoNumber(1) @JvmField val limitChatEnter: LimitChatEnter? = null,
|
||||
@ProtoNumber(2) @JvmField val limitChatExit: LimitChatExit? = null
|
||||
) : ProtoBuf {
|
||||
@Serializable
|
||||
internal class LimitChatEnter(
|
||||
@ProtoId(1) @JvmField val tipsWording: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(2) @JvmField val leftChatTime: Int = 0,
|
||||
@ProtoId(3) @JvmField val matchTs: Long = 0L,
|
||||
@ProtoId(4) @JvmField val matchExpiredTime: Int = 0,
|
||||
@ProtoId(5) @JvmField val c2cExpiredTime: Int = 0,
|
||||
@ProtoId(6) @JvmField val readyTs: Long = 0L,
|
||||
@ProtoId(7) @JvmField val matchNick: ByteArray = EMPTY_BYTE_ARRAY
|
||||
@ProtoNumber(1) @JvmField val tipsWording: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(2) @JvmField val leftChatTime: Int = 0,
|
||||
@ProtoNumber(3) @JvmField val matchTs: Long = 0L,
|
||||
@ProtoNumber(4) @JvmField val matchExpiredTime: Int = 0,
|
||||
@ProtoNumber(5) @JvmField val c2cExpiredTime: Int = 0,
|
||||
@ProtoNumber(6) @JvmField val readyTs: Long = 0L,
|
||||
@ProtoNumber(7) @JvmField val matchNick: ByteArray = EMPTY_BYTE_ARRAY
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class LimitChatExit(
|
||||
@ProtoId(1) @JvmField val exitMethod: Int = 0,
|
||||
@ProtoId(2) @JvmField val matchTs: Long = 0L
|
||||
@ProtoNumber(1) @JvmField val exitMethod: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val matchTs: Long = 0L
|
||||
) : ProtoBuf
|
||||
}
|
||||
|
||||
@Serializable
|
||||
internal class MsgElemInfoServtype27(
|
||||
@ProtoId(1) @JvmField val videoFile: ImMsgBody.VideoFile? = null
|
||||
@ProtoNumber(1) @JvmField val videoFile: ImMsgBody.VideoFile? = null
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class MsgElemInfoServtype29(
|
||||
@ProtoId(1) @JvmField val luckybagMsg: ByteArray = EMPTY_BYTE_ARRAY
|
||||
@ProtoNumber(1) @JvmField val luckybagMsg: ByteArray = EMPTY_BYTE_ARRAY
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class MsgElemInfoServtype3(
|
||||
@ProtoId(1) @JvmField val flashTroopPic: ImMsgBody.CustomFace? = null,
|
||||
@ProtoId(2) @JvmField val flashC2cPic: ImMsgBody.NotOnlineImage? = null
|
||||
@ProtoNumber(1) @JvmField val flashTroopPic: ImMsgBody.CustomFace? = null,
|
||||
@ProtoNumber(2) @JvmField val flashC2cPic: ImMsgBody.NotOnlineImage? = null
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class MsgElemInfoServtype31(
|
||||
@ProtoId(1) @JvmField val text: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(2) @JvmField val ext: ByteArray = EMPTY_BYTE_ARRAY
|
||||
@ProtoNumber(1) @JvmField val text: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(2) @JvmField val ext: ByteArray = EMPTY_BYTE_ARRAY
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class MsgElemInfoServtype4(
|
||||
@ProtoId(1) @JvmField val imsgType: Int = 0,
|
||||
@ProtoId(4) @JvmField val stStoryAioObjMsg: StoryAioObjMsg? = null
|
||||
@ProtoNumber(1) @JvmField val imsgType: Int = 0,
|
||||
@ProtoNumber(4) @JvmField val stStoryAioObjMsg: StoryAioObjMsg? = null
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class MsgElemInfoServtype5(
|
||||
@ProtoId(1) @JvmField val vid: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(2) @JvmField val cover: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(3) @JvmField val title: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(4) @JvmField val summary: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(5) @JvmField val createTime: Long = 0L,
|
||||
@ProtoId(6) @JvmField val commentContent: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(7) @JvmField val author: Long = 0L
|
||||
@ProtoNumber(1) @JvmField val vid: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(2) @JvmField val cover: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(3) @JvmField val title: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(4) @JvmField val summary: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(5) @JvmField val createTime: Long = 0L,
|
||||
@ProtoNumber(6) @JvmField val commentContent: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(7) @JvmField val author: Long = 0L
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class MsgElemInfoServtype8(
|
||||
@ProtoId(1) @JvmField val wifiDeliverGiftMsg: ImMsgBody.DeliverGiftMsg? = null
|
||||
@ProtoNumber(1) @JvmField val wifiDeliverGiftMsg: ImMsgBody.DeliverGiftMsg? = null
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class MsgElemInfoServtype9(
|
||||
@ProtoId(1) @JvmField val anchorStatus: Int = 0,
|
||||
@ProtoId(2) @JvmField val jumpSchema: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(3) @JvmField val anchorNickname: String = "",
|
||||
@ProtoId(4) @JvmField val anchorHeadUrl: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(5) @JvmField val liveTitle: String = ""
|
||||
@ProtoNumber(1) @JvmField val anchorStatus: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val jumpSchema: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(3) @JvmField val anchorNickname: String = "",
|
||||
@ProtoNumber(4) @JvmField val anchorHeadUrl: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(5) @JvmField val liveTitle: String = ""
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class StoryAioObjMsg(
|
||||
@ProtoId(1) @JvmField val uiUrl: String = "",
|
||||
@ProtoId(2) @JvmField val jmpUrl: String = ""
|
||||
@ProtoNumber(1) @JvmField val uiUrl: String = "",
|
||||
@ProtoNumber(2) @JvmField val jmpUrl: String = ""
|
||||
) : ProtoBuf
|
||||
}
|
@ -1,7 +1,7 @@
|
||||
package net.mamoe.mirai.qqandroid.network.protocol.data.proto
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.protobuf.ProtoId
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
import net.mamoe.mirai.qqandroid.utils.io.ProtoBuf
|
||||
import net.mamoe.mirai.utils.currentTimeSeconds
|
||||
import kotlin.jvm.JvmField
|
||||
@ -12,22 +12,22 @@ internal interface ImgReq : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class GetImgUrlReq(
|
||||
@ProtoId(1) @JvmField val srcUni: Int,
|
||||
@ProtoId(2) @JvmField val dstUni: Int,
|
||||
@ProtoId(3) @JvmField val fileResID: String,//UUID
|
||||
@ProtoNumber(1) @JvmField val srcUni: Int,
|
||||
@ProtoNumber(2) @JvmField val dstUni: Int,
|
||||
@ProtoNumber(3) @JvmField val fileResID: String,//UUID
|
||||
/**
|
||||
* UUID例子: 没有找到
|
||||
*/
|
||||
@ProtoId(4) @JvmField val urlFlag: Int = 1,
|
||||
@ProtoNumber(4) @JvmField val urlFlag: Int = 1,
|
||||
//5 unknown, 好像没用
|
||||
@ProtoId(6) @JvmField val urlType: Int = 4,
|
||||
@ProtoId(7) @JvmField val requestTerm: Int = 5,//确定
|
||||
@ProtoId(8) @JvmField val requestPlatformType: Int = 9,//确定
|
||||
@ProtoId(9) @JvmField val srcFileType: Int = 1,//2=ftn,1=picplatform,255
|
||||
@ProtoId(10) @JvmField val innerIP: Int = 0,//确定
|
||||
@ProtoId(11) @JvmField val addressBook: Int = 0,//[ChatType.internalID]== 1006为1[为CONTACT时] 我觉得发0没问题
|
||||
@ProtoId(12) @JvmField val buType: Int = 1,//确定
|
||||
@ProtoId(13) @JvmField val buildVer: String = "8.2.7.4410",//版本号
|
||||
@ProtoId(14) @JvmField val timestamp: Int = currentTimeSeconds.toInt(),//(pic_up_timestamp)
|
||||
@ProtoId(15) @JvmField val requestTransferType: Int = 1
|
||||
@ProtoNumber(6) @JvmField val urlType: Int = 4,
|
||||
@ProtoNumber(7) @JvmField val requestTerm: Int = 5,//确定
|
||||
@ProtoNumber(8) @JvmField val requestPlatformType: Int = 9,//确定
|
||||
@ProtoNumber(9) @JvmField val srcFileType: Int = 1,//2=ftn,1=picplatform,255
|
||||
@ProtoNumber(10) @JvmField val innerIP: Int = 0,//确定
|
||||
@ProtoNumber(11) @JvmField val addressBook: Int = 0,//[ChatType.internalID]== 1006为1[为CONTACT时] 我觉得发0没问题
|
||||
@ProtoNumber(12) @JvmField val buType: Int = 1,//确定
|
||||
@ProtoNumber(13) @JvmField val buildVer: String = "8.2.7.4410",//版本号
|
||||
@ProtoNumber(14) @JvmField val timestamp: Int = currentTimeSeconds.toInt(),//(pic_up_timestamp)
|
||||
@ProtoNumber(15) @JvmField val requestTransferType: Int = 1
|
||||
) : ImgReq
|
@ -1,7 +1,7 @@
|
||||
package net.mamoe.mirai.qqandroid.network.protocol.data.proto
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.protobuf.ProtoId
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
import net.mamoe.mirai.qqandroid.network.protocol.packet.EMPTY_BYTE_ARRAY
|
||||
import net.mamoe.mirai.qqandroid.utils.io.ProtoBuf
|
||||
import kotlin.jvm.JvmField
|
||||
@ -9,65 +9,65 @@ import kotlin.jvm.JvmField
|
||||
internal class LongMsg : ProtoBuf {
|
||||
@Serializable
|
||||
internal class MsgDeleteReq(
|
||||
@ProtoId(1) @JvmField val msgResid: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(2) @JvmField val msgType: Int = 0
|
||||
@ProtoNumber(1) @JvmField val msgResid: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(2) @JvmField val msgType: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class MsgDeleteRsp(
|
||||
@ProtoId(1) @JvmField val result: Int = 0,
|
||||
@ProtoId(2) @JvmField val msgResid: ByteArray = EMPTY_BYTE_ARRAY
|
||||
@ProtoNumber(1) @JvmField val result: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val msgResid: ByteArray = EMPTY_BYTE_ARRAY
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class MsgDownReq(
|
||||
@ProtoId(1) @JvmField val srcUin: Int = 0,
|
||||
@ProtoId(2) @JvmField val msgResid: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(3) @JvmField val msgType: Int = 0,
|
||||
@ProtoId(4) @JvmField val needCache: Int = 0
|
||||
@ProtoNumber(1) @JvmField val srcUin: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val msgResid: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(3) @JvmField val msgType: Int = 0,
|
||||
@ProtoNumber(4) @JvmField val needCache: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class MsgDownRsp(
|
||||
@ProtoId(1) @JvmField val result: Int = 0,
|
||||
@ProtoId(2) @JvmField val msgResid: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(3) @JvmField val msgContent: ByteArray = EMPTY_BYTE_ARRAY
|
||||
@ProtoNumber(1) @JvmField val result: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val msgResid: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(3) @JvmField val msgContent: ByteArray = EMPTY_BYTE_ARRAY
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class MsgUpReq(
|
||||
@ProtoId(1) @JvmField val msgType: Int = 0,
|
||||
@ProtoId(2) @JvmField val dstUin: Long = 0L,
|
||||
@ProtoId(3) @JvmField val msgId: Int = 0,
|
||||
@ProtoId(4) @JvmField val msgContent: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(5) @JvmField val storeType: Int = 0,
|
||||
@ProtoId(6) @JvmField val msgUkey: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(7) @JvmField val needCache: Int = 0
|
||||
@ProtoNumber(1) @JvmField val msgType: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val dstUin: Long = 0L,
|
||||
@ProtoNumber(3) @JvmField val msgId: Int = 0,
|
||||
@ProtoNumber(4) @JvmField val msgContent: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(5) @JvmField val storeType: Int = 0,
|
||||
@ProtoNumber(6) @JvmField val msgUkey: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(7) @JvmField val needCache: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class MsgUpRsp(
|
||||
@ProtoId(1) @JvmField val result: Int = 0,
|
||||
@ProtoId(2) @JvmField val msgId: Int = 0,
|
||||
@ProtoId(3) @JvmField val msgResid: ByteArray = EMPTY_BYTE_ARRAY
|
||||
@ProtoNumber(1) @JvmField val result: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val msgId: Int = 0,
|
||||
@ProtoNumber(3) @JvmField val msgResid: ByteArray = EMPTY_BYTE_ARRAY
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class ReqBody(
|
||||
@ProtoId(1) @JvmField val subcmd: Int = 0,
|
||||
@ProtoId(2) @JvmField val termType: Int = 0,
|
||||
@ProtoId(3) @JvmField val platformType: Int = 0,
|
||||
@ProtoId(4) @JvmField val msgUpReq: List<LongMsg.MsgUpReq>? = null,
|
||||
@ProtoId(5) @JvmField val msgDownReq: List<LongMsg.MsgDownReq>? = null,
|
||||
@ProtoId(6) @JvmField val msgDelReq: List<LongMsg.MsgDeleteReq>? = null,
|
||||
@ProtoId(10) @JvmField val agentType: Int = 0
|
||||
@ProtoNumber(1) @JvmField val subcmd: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val termType: Int = 0,
|
||||
@ProtoNumber(3) @JvmField val platformType: Int = 0,
|
||||
@ProtoNumber(4) @JvmField val msgUpReq: List<LongMsg.MsgUpReq>? = null,
|
||||
@ProtoNumber(5) @JvmField val msgDownReq: List<LongMsg.MsgDownReq>? = null,
|
||||
@ProtoNumber(6) @JvmField val msgDelReq: List<LongMsg.MsgDeleteReq>? = null,
|
||||
@ProtoNumber(10) @JvmField val agentType: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class RspBody(
|
||||
@ProtoId(1) @JvmField val subcmd: Int = 0,
|
||||
@ProtoId(2) @JvmField val msgUpRsp: List<LongMsg.MsgUpRsp>? = null,
|
||||
@ProtoId(3) @JvmField val msgDownRsp: List<LongMsg.MsgDownRsp>? = null,
|
||||
@ProtoId(4) @JvmField val msgDelRsp: List<LongMsg.MsgDeleteRsp>? = null
|
||||
@ProtoNumber(1) @JvmField val subcmd: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val msgUpRsp: List<LongMsg.MsgUpRsp>? = null,
|
||||
@ProtoNumber(3) @JvmField val msgDownRsp: List<LongMsg.MsgDownRsp>? = null,
|
||||
@ProtoNumber(4) @JvmField val msgDelRsp: List<LongMsg.MsgDeleteRsp>? = null
|
||||
) : ProtoBuf
|
||||
}
|
File diff suppressed because it is too large
Load Diff
@ -1,7 +1,7 @@
|
||||
package net.mamoe.mirai.qqandroid.network.protocol.data.proto
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.protobuf.ProtoId
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
import net.mamoe.mirai.qqandroid.network.protocol.packet.EMPTY_BYTE_ARRAY
|
||||
import net.mamoe.mirai.qqandroid.utils.io.ProtoBuf
|
||||
import kotlin.jvm.JvmField
|
||||
@ -13,143 +13,143 @@ import kotlin.jvm.JvmField
|
||||
internal class MsgComm : ProtoBuf {
|
||||
@Serializable
|
||||
internal class AppShareInfo(
|
||||
@ProtoId(1) @JvmField val appshareId: Int = 0,
|
||||
@ProtoId(2) @JvmField val appshareCookie: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(3) @JvmField val appshareResource: PluginInfo? = null
|
||||
@ProtoNumber(1) @JvmField val appshareId: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val appshareCookie: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(3) @JvmField val appshareResource: PluginInfo? = null
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class C2CTmpMsgHead(
|
||||
@ProtoId(1) @JvmField val c2cType: Int = 0,
|
||||
@ProtoId(2) @JvmField val serviceType: Int = 0,
|
||||
@ProtoId(3) @JvmField val groupUin: Long = 0L,
|
||||
@ProtoId(4) @JvmField val groupCode: Long = 0L,
|
||||
@ProtoId(5) @JvmField val sig: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(6) @JvmField val sigType: Int = 0,
|
||||
@ProtoId(7) @JvmField val fromPhone: String = "",
|
||||
@ProtoId(8) @JvmField val toPhone: String = "",
|
||||
@ProtoId(9) @JvmField val lockDisplay: Int = 0,
|
||||
@ProtoId(10) @JvmField val directionFlag: Int = 0,
|
||||
@ProtoId(11) @JvmField val reserved: ByteArray = EMPTY_BYTE_ARRAY
|
||||
@ProtoNumber(1) @JvmField val c2cType: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val serviceType: Int = 0,
|
||||
@ProtoNumber(3) @JvmField val groupUin: Long = 0L,
|
||||
@ProtoNumber(4) @JvmField val groupCode: Long = 0L,
|
||||
@ProtoNumber(5) @JvmField val sig: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(6) @JvmField val sigType: Int = 0,
|
||||
@ProtoNumber(7) @JvmField val fromPhone: String = "",
|
||||
@ProtoNumber(8) @JvmField val toPhone: String = "",
|
||||
@ProtoNumber(9) @JvmField val lockDisplay: Int = 0,
|
||||
@ProtoNumber(10) @JvmField val directionFlag: Int = 0,
|
||||
@ProtoNumber(11) @JvmField val reserved: ByteArray = EMPTY_BYTE_ARRAY
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class ContentHead(
|
||||
@ProtoId(1) @JvmField val pkgNum: Int = 0,
|
||||
@ProtoId(2) @JvmField val pkgIndex: Int = 0,
|
||||
@ProtoId(3) @JvmField val divSeq: Int = 0,
|
||||
@ProtoId(4) @JvmField val autoReply: Int = 0
|
||||
@ProtoNumber(1) @JvmField val pkgNum: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val pkgIndex: Int = 0,
|
||||
@ProtoNumber(3) @JvmField val divSeq: Int = 0,
|
||||
@ProtoNumber(4) @JvmField val autoReply: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class DiscussInfo(
|
||||
@ProtoId(1) @JvmField val discussUin: Long = 0L,
|
||||
@ProtoId(2) @JvmField val discussType: Int = 0,
|
||||
@ProtoId(3) @JvmField val discussInfoSeq: Long = 0L,
|
||||
@ProtoId(4) @JvmField val discussRemark: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(5) @JvmField val discussName: ByteArray = EMPTY_BYTE_ARRAY
|
||||
@ProtoNumber(1) @JvmField val discussUin: Long = 0L,
|
||||
@ProtoNumber(2) @JvmField val discussType: Int = 0,
|
||||
@ProtoNumber(3) @JvmField val discussInfoSeq: Long = 0L,
|
||||
@ProtoNumber(4) @JvmField val discussRemark: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(5) @JvmField val discussName: ByteArray = EMPTY_BYTE_ARRAY
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class ExtGroupKeyInfo(
|
||||
@ProtoId(1) @JvmField val curMaxSeq: Int = 0,
|
||||
@ProtoId(2) @JvmField val curTime: Long = 0L
|
||||
@ProtoNumber(1) @JvmField val curMaxSeq: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val curTime: Long = 0L
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class GroupInfo(
|
||||
@ProtoId(1) @JvmField val groupCode: Long = 0L,
|
||||
@ProtoId(2) @JvmField val groupType: Int = 0,
|
||||
@ProtoId(3) @JvmField val groupInfoSeq: Long = 0L,
|
||||
@ProtoId(4) @JvmField val groupCard: String = "",
|
||||
@ProtoId(5) @JvmField val groupRank: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(6) @JvmField val groupLevel: Int = 0,
|
||||
@ProtoId(7) @JvmField val groupCardType: Int = 0,
|
||||
@ProtoId(8) @JvmField val groupName: ByteArray = EMPTY_BYTE_ARRAY
|
||||
@ProtoNumber(1) @JvmField val groupCode: Long = 0L,
|
||||
@ProtoNumber(2) @JvmField val groupType: Int = 0,
|
||||
@ProtoNumber(3) @JvmField val groupInfoSeq: Long = 0L,
|
||||
@ProtoNumber(4) @JvmField val groupCard: String = "",
|
||||
@ProtoNumber(5) @JvmField val groupRank: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(6) @JvmField val groupLevel: Int = 0,
|
||||
@ProtoNumber(7) @JvmField val groupCardType: Int = 0,
|
||||
@ProtoNumber(8) @JvmField val groupName: ByteArray = EMPTY_BYTE_ARRAY
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class Msg(
|
||||
@ProtoId(1) @JvmField val msgHead: MsgHead,
|
||||
@ProtoId(2) @JvmField val contentHead: ContentHead? = null,
|
||||
@ProtoId(3) @JvmField val msgBody: ImMsgBody.MsgBody,
|
||||
@ProtoId(4) @JvmField val appshareInfo: AppShareInfo? = null
|
||||
@ProtoNumber(1) @JvmField val msgHead: MsgHead,
|
||||
@ProtoNumber(2) @JvmField val contentHead: ContentHead? = null,
|
||||
@ProtoNumber(3) @JvmField val msgBody: ImMsgBody.MsgBody,
|
||||
@ProtoNumber(4) @JvmField val appshareInfo: AppShareInfo? = null
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class MsgHead(
|
||||
@ProtoId(1) @JvmField val fromUin: Long = 0L,
|
||||
@ProtoId(2) @JvmField val toUin: Long = 0L,
|
||||
@ProtoId(3) @JvmField val msgType: Int = 0,
|
||||
@ProtoId(4) @JvmField val c2cCmd: Int = 0,
|
||||
@ProtoId(5) @JvmField val msgSeq: Int = 0,
|
||||
@ProtoId(6) @JvmField val msgTime: Int = 0,
|
||||
@ProtoId(7) var msgUid: Long = 0L,
|
||||
@ProtoId(8) @JvmField val c2cTmpMsgHead: C2CTmpMsgHead? = null,
|
||||
@ProtoId(9) @JvmField val groupInfo: GroupInfo? = null,
|
||||
@ProtoId(10) @JvmField val fromAppid: Int = 0,
|
||||
@ProtoId(11) @JvmField val fromInstid: Int = 0,
|
||||
@ProtoId(12) @JvmField val userActive: Int = 0,
|
||||
@ProtoId(13) @JvmField val discussInfo: DiscussInfo? = null,
|
||||
@ProtoId(14) @JvmField val fromNick: String = "",
|
||||
@ProtoId(15) @JvmField val authUin: Long = 0L,
|
||||
@ProtoId(16) @JvmField val authNick: String = "",
|
||||
@ProtoId(17) @JvmField val msgFlag: Int = 0,
|
||||
@ProtoId(18) @JvmField val authRemark: String = "",
|
||||
@ProtoId(19) @JvmField val groupName: String = "",
|
||||
@ProtoId(20) @JvmField val mutiltransHead: MutilTransHead? = null,
|
||||
@ProtoId(21) @JvmField val msgInstCtrl: ImMsgHead.InstCtrl? = null,
|
||||
@ProtoId(22) @JvmField val publicAccountGroupSendFlag: Int = 0,
|
||||
@ProtoId(23) @JvmField val wseqInC2cMsghead: Int = 0,
|
||||
@ProtoId(24) @JvmField val cpid: Long = 0L,
|
||||
@ProtoId(25) @JvmField val extGroupKeyInfo: ExtGroupKeyInfo? = null,
|
||||
@ProtoId(26) @JvmField val multiCompatibleText: String = "",
|
||||
@ProtoId(27) @JvmField val authSex: Int = 0,
|
||||
@ProtoId(28) @JvmField val isSrcMsg: Boolean = false
|
||||
@ProtoNumber(1) @JvmField val fromUin: Long = 0L,
|
||||
@ProtoNumber(2) @JvmField val toUin: Long = 0L,
|
||||
@ProtoNumber(3) @JvmField val msgType: Int = 0,
|
||||
@ProtoNumber(4) @JvmField val c2cCmd: Int = 0,
|
||||
@ProtoNumber(5) @JvmField val msgSeq: Int = 0,
|
||||
@ProtoNumber(6) @JvmField val msgTime: Int = 0,
|
||||
@ProtoNumber(7) var msgUid: Long = 0L,
|
||||
@ProtoNumber(8) @JvmField val c2cTmpMsgHead: C2CTmpMsgHead? = null,
|
||||
@ProtoNumber(9) @JvmField val groupInfo: GroupInfo? = null,
|
||||
@ProtoNumber(10) @JvmField val fromAppid: Int = 0,
|
||||
@ProtoNumber(11) @JvmField val fromInstid: Int = 0,
|
||||
@ProtoNumber(12) @JvmField val userActive: Int = 0,
|
||||
@ProtoNumber(13) @JvmField val discussInfo: DiscussInfo? = null,
|
||||
@ProtoNumber(14) @JvmField val fromNick: String = "",
|
||||
@ProtoNumber(15) @JvmField val authUin: Long = 0L,
|
||||
@ProtoNumber(16) @JvmField val authNick: String = "",
|
||||
@ProtoNumber(17) @JvmField val msgFlag: Int = 0,
|
||||
@ProtoNumber(18) @JvmField val authRemark: String = "",
|
||||
@ProtoNumber(19) @JvmField val groupName: String = "",
|
||||
@ProtoNumber(20) @JvmField val mutiltransHead: MutilTransHead? = null,
|
||||
@ProtoNumber(21) @JvmField val msgInstCtrl: ImMsgHead.InstCtrl? = null,
|
||||
@ProtoNumber(22) @JvmField val publicAccountGroupSendFlag: Int = 0,
|
||||
@ProtoNumber(23) @JvmField val wseqInC2cMsghead: Int = 0,
|
||||
@ProtoNumber(24) @JvmField val cpid: Long = 0L,
|
||||
@ProtoNumber(25) @JvmField val extGroupKeyInfo: ExtGroupKeyInfo? = null,
|
||||
@ProtoNumber(26) @JvmField val multiCompatibleText: String = "",
|
||||
@ProtoNumber(27) @JvmField val authSex: Int = 0,
|
||||
@ProtoNumber(28) @JvmField val isSrcMsg: Boolean = false
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class MsgType0x210(
|
||||
@ProtoId(1) @JvmField val subMsgType: Int = 0,
|
||||
@ProtoId(2) @JvmField val msgContent: ByteArray = EMPTY_BYTE_ARRAY
|
||||
@ProtoNumber(1) @JvmField val subMsgType: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val msgContent: ByteArray = EMPTY_BYTE_ARRAY
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class MutilTransHead(
|
||||
@ProtoId(1) @JvmField val status: Int = 0,
|
||||
@ProtoId(2) @JvmField val msgId: Int = 0
|
||||
@ProtoNumber(1) @JvmField val status: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val msgId: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class PluginInfo(
|
||||
@ProtoId(1) @JvmField val resId: Int = 0,
|
||||
@ProtoId(2) @JvmField val pkgName: String = "",
|
||||
@ProtoId(3) @JvmField val newVer: Int = 0,
|
||||
@ProtoId(4) @JvmField val resType: Int = 0,
|
||||
@ProtoId(5) @JvmField val lanType: Int = 0,
|
||||
@ProtoId(6) @JvmField val priority: Int = 0,
|
||||
@ProtoId(7) @JvmField val resName: String = "",
|
||||
@ProtoId(8) @JvmField val resDesc: String = "",
|
||||
@ProtoId(9) @JvmField val resUrlBig: String = "",
|
||||
@ProtoId(10) @JvmField val resUrlSmall: String = "",
|
||||
@ProtoId(11) @JvmField val resConf: String = ""
|
||||
@ProtoNumber(1) @JvmField val resId: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val pkgName: String = "",
|
||||
@ProtoNumber(3) @JvmField val newVer: Int = 0,
|
||||
@ProtoNumber(4) @JvmField val resType: Int = 0,
|
||||
@ProtoNumber(5) @JvmField val lanType: Int = 0,
|
||||
@ProtoNumber(6) @JvmField val priority: Int = 0,
|
||||
@ProtoNumber(7) @JvmField val resName: String = "",
|
||||
@ProtoNumber(8) @JvmField val resDesc: String = "",
|
||||
@ProtoNumber(9) @JvmField val resUrlBig: String = "",
|
||||
@ProtoNumber(10) @JvmField val resUrlSmall: String = "",
|
||||
@ProtoNumber(11) @JvmField val resConf: String = ""
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class Uin2Nick(
|
||||
@ProtoId(1) @JvmField val uin: Long = 0L,
|
||||
@ProtoId(2) @JvmField val nick: String = ""
|
||||
@ProtoNumber(1) @JvmField val uin: Long = 0L,
|
||||
@ProtoNumber(2) @JvmField val nick: String = ""
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class UinPairMsg(
|
||||
@ProtoId(1) @JvmField val lastReadTime: Int = 0,
|
||||
@ProtoId(2) @JvmField val peerUin: Long = 0L,
|
||||
@ProtoId(3) @JvmField val msgCompleted: Int = 0,
|
||||
@ProtoId(4) @JvmField val msg: List<Msg>? = null,
|
||||
@ProtoId(5) @JvmField val unreadMsgNum: Int = 0,
|
||||
@ProtoId(8) @JvmField val c2cType: Int = 0,
|
||||
@ProtoId(9) @JvmField val serviceType: Int = 0,
|
||||
@ProtoId(10) @JvmField val pbReserve: ByteArray = EMPTY_BYTE_ARRAY
|
||||
@ProtoNumber(1) @JvmField val lastReadTime: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val peerUin: Long = 0L,
|
||||
@ProtoNumber(3) @JvmField val msgCompleted: Int = 0,
|
||||
@ProtoNumber(4) @JvmField val msg: List<Msg>? = null,
|
||||
@ProtoNumber(5) @JvmField val unreadMsgNum: Int = 0,
|
||||
@ProtoNumber(8) @JvmField val c2cType: Int = 0,
|
||||
@ProtoNumber(9) @JvmField val serviceType: Int = 0,
|
||||
@ProtoNumber(10) @JvmField val pbReserve: ByteArray = EMPTY_BYTE_ARRAY
|
||||
) : ProtoBuf
|
||||
}
|
@ -1,30 +1,30 @@
|
||||
package net.mamoe.mirai.qqandroid.network.protocol.data.proto
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.protobuf.ProtoId
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
import net.mamoe.mirai.qqandroid.utils.io.ProtoBuf
|
||||
import kotlin.jvm.JvmField
|
||||
|
||||
internal class MsgRevokeUserDef : ProtoBuf {
|
||||
@Serializable
|
||||
internal class MsgInfoUserDef(
|
||||
@ProtoId(1) @JvmField val longMessageFlag: Int = 0,
|
||||
@ProtoId(2) @JvmField val longMsgInfo: List<MsgInfoDef>? = null,
|
||||
@ProtoId(3) @JvmField val fileUuid: List<String> = listOf()
|
||||
@ProtoNumber(1) @JvmField val longMessageFlag: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val longMsgInfo: List<MsgInfoDef>? = null,
|
||||
@ProtoNumber(3) @JvmField val fileUuid: List<String> = listOf()
|
||||
) : ProtoBuf {
|
||||
@Serializable
|
||||
internal class MsgInfoDef(
|
||||
@ProtoId(1) @JvmField val msgSeq: Int = 0,
|
||||
@ProtoId(2) @JvmField val longMsgId: Int = 0,
|
||||
@ProtoId(3) @JvmField val longMsgNum: Int = 0,
|
||||
@ProtoId(4) @JvmField val longMsgIndex: Int = 0
|
||||
@ProtoNumber(1) @JvmField val msgSeq: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val longMsgId: Int = 0,
|
||||
@ProtoNumber(3) @JvmField val longMsgNum: Int = 0,
|
||||
@ProtoNumber(4) @JvmField val longMsgIndex: Int = 0
|
||||
) : ProtoBuf
|
||||
}
|
||||
|
||||
@Serializable
|
||||
internal class UinTypeUserDef(
|
||||
@ProtoId(1) @JvmField val fromUinType: Int = 0,
|
||||
@ProtoId(2) @JvmField val fromGroupCode: Long = 0L,
|
||||
@ProtoId(3) @JvmField val fileUuid: List<String> = listOf()
|
||||
@ProtoNumber(1) @JvmField val fromUinType: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val fromGroupCode: Long = 0L,
|
||||
@ProtoNumber(3) @JvmField val fileUuid: List<String> = listOf()
|
||||
) : ProtoBuf
|
||||
}
|
File diff suppressed because it is too large
Load Diff
@ -1,7 +1,7 @@
|
||||
package net.mamoe.mirai.qqandroid.network.protocol.data.proto
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.protobuf.ProtoId
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
import net.mamoe.mirai.qqandroid.network.protocol.packet.EMPTY_BYTE_ARRAY
|
||||
import net.mamoe.mirai.qqandroid.utils.io.ProtoBuf
|
||||
import kotlin.jvm.JvmField
|
||||
@ -9,18 +9,18 @@ import kotlin.jvm.JvmField
|
||||
internal class MsgTransmit : ProtoBuf {
|
||||
@Serializable
|
||||
internal class PbMultiMsgItem(
|
||||
@ProtoId(1) @JvmField val fileName: String = "",
|
||||
@ProtoId(2) @JvmField val buffer: ByteArray = EMPTY_BYTE_ARRAY
|
||||
@ProtoNumber(1) @JvmField val fileName: String = "",
|
||||
@ProtoNumber(2) @JvmField val buffer: ByteArray = EMPTY_BYTE_ARRAY
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class PbMultiMsgNew(
|
||||
@ProtoId(1) @JvmField val msg: List<MsgComm.Msg>? = null
|
||||
@ProtoNumber(1) @JvmField val msg: List<MsgComm.Msg>? = null
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class PbMultiMsgTransmit(
|
||||
@ProtoId(1) @JvmField val msg: List<MsgComm.Msg>? = null,
|
||||
@ProtoId(2) @JvmField val pbItemList: List<MsgTransmit.PbMultiMsgItem>? = null
|
||||
@ProtoNumber(1) @JvmField val msg: List<MsgComm.Msg>? = null,
|
||||
@ProtoNumber(2) @JvmField val pbItemList: List<MsgTransmit.PbMultiMsgItem>? = null
|
||||
) : ProtoBuf
|
||||
}
|
@ -1,7 +1,7 @@
|
||||
package net.mamoe.mirai.qqandroid.network.protocol.data.proto
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.protobuf.ProtoId
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
import net.mamoe.mirai.qqandroid.network.protocol.packet.EMPTY_BYTE_ARRAY
|
||||
import net.mamoe.mirai.qqandroid.utils.io.ProtoBuf
|
||||
import kotlin.jvm.JvmField
|
||||
@ -10,72 +10,72 @@ import kotlin.jvm.JvmField
|
||||
internal class MultiMsg : ProtoBuf {
|
||||
@Serializable
|
||||
internal class ExternMsg(
|
||||
@ProtoId(1) @JvmField val channelType: Int = 0
|
||||
@ProtoNumber(1) @JvmField val channelType: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class MultiMsgApplyDownReq(
|
||||
@ProtoId(1) @JvmField val msgResid: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(2) @JvmField val msgType: Int = 0,
|
||||
@ProtoId(3) @JvmField val srcUin: Long = 0L
|
||||
@ProtoNumber(1) @JvmField val msgResid: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(2) @JvmField val msgType: Int = 0,
|
||||
@ProtoNumber(3) @JvmField val srcUin: Long = 0L
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class MultiMsgApplyDownRsp(
|
||||
@ProtoId(1) @JvmField val result: Int = 0,
|
||||
@ProtoId(2) @JvmField val thumbDownPara: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(3) @JvmField val msgKey: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(4) @JvmField val uint32DownIp: List<Int>? = null,
|
||||
@ProtoId(5) @JvmField val uint32DownPort: List<Int>? = null,
|
||||
@ProtoId(6) @JvmField val msgResid: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(7) @JvmField val msgExternInfo: ExternMsg? = null,
|
||||
@ProtoId(8) @JvmField val bytesDownIpV6: List<ByteArray>? = null,
|
||||
@ProtoId(9) @JvmField val uint32DownV6Port: List<Int>? = null
|
||||
@ProtoNumber(1) @JvmField val result: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val thumbDownPara: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(3) @JvmField val msgKey: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(4) @JvmField val uint32DownIp: List<Int>? = null,
|
||||
@ProtoNumber(5) @JvmField val uint32DownPort: List<Int>? = null,
|
||||
@ProtoNumber(6) @JvmField val msgResid: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(7) @JvmField val msgExternInfo: ExternMsg? = null,
|
||||
@ProtoNumber(8) @JvmField val bytesDownIpV6: List<ByteArray>? = null,
|
||||
@ProtoNumber(9) @JvmField val uint32DownV6Port: List<Int>? = null
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class MultiMsgApplyUpReq(
|
||||
@ProtoId(1) @JvmField val dstUin: Long = 0L,
|
||||
@ProtoId(2) @JvmField val msgSize: Long = 0L,
|
||||
@ProtoId(3) @JvmField val msgMd5: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(4) @JvmField val msgType: Int = 0,
|
||||
@ProtoId(5) @JvmField val applyId: Int = 0
|
||||
@ProtoNumber(1) @JvmField val dstUin: Long = 0L,
|
||||
@ProtoNumber(2) @JvmField val msgSize: Long = 0L,
|
||||
@ProtoNumber(3) @JvmField val msgMd5: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(4) @JvmField val msgType: Int = 0,
|
||||
@ProtoNumber(5) @JvmField val applyId: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class MultiMsgApplyUpRsp(
|
||||
@ProtoId(1) @JvmField val result: Int = 0,
|
||||
@ProtoId(2) @JvmField val msgResid: String = "",
|
||||
@ProtoId(3) @JvmField val msgUkey: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(4) @JvmField val uint32UpIp: List<Int> = listOf(),
|
||||
@ProtoId(5) @JvmField val uint32UpPort: List<Int> = listOf(),
|
||||
@ProtoId(6) @JvmField val blockSize: Long = 0L,
|
||||
@ProtoId(7) @JvmField val upOffset: Long = 0L,
|
||||
@ProtoId(8) @JvmField val applyId: Int = 0,
|
||||
@ProtoId(9) @JvmField val msgKey: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(10) @JvmField val msgSig: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(11) @JvmField val msgExternInfo: ExternMsg? = null,
|
||||
@ProtoId(12) @JvmField val bytesUpIpV6: List<ByteArray>? = null,
|
||||
@ProtoId(13) @JvmField val uint32UpV6Port: List<Int>? = null
|
||||
@ProtoNumber(1) @JvmField val result: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val msgResid: String = "",
|
||||
@ProtoNumber(3) @JvmField val msgUkey: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(4) @JvmField val uint32UpIp: List<Int> = listOf(),
|
||||
@ProtoNumber(5) @JvmField val uint32UpPort: List<Int> = listOf(),
|
||||
@ProtoNumber(6) @JvmField val blockSize: Long = 0L,
|
||||
@ProtoNumber(7) @JvmField val upOffset: Long = 0L,
|
||||
@ProtoNumber(8) @JvmField val applyId: Int = 0,
|
||||
@ProtoNumber(9) @JvmField val msgKey: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(10) @JvmField val msgSig: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(11) @JvmField val msgExternInfo: ExternMsg? = null,
|
||||
@ProtoNumber(12) @JvmField val bytesUpIpV6: List<ByteArray>? = null,
|
||||
@ProtoNumber(13) @JvmField val uint32UpV6Port: List<Int>? = null
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class ReqBody(
|
||||
@ProtoId(1) @JvmField val subcmd: Int = 0,
|
||||
@ProtoId(2) @JvmField val termType: Int = 0,
|
||||
@ProtoId(3) @JvmField val platformType: Int = 0,
|
||||
@ProtoId(4) @JvmField val netType: Int = 0,
|
||||
@ProtoId(5) @JvmField val buildVer: String = "",
|
||||
@ProtoId(6) @JvmField val multimsgApplyupReq: List<MultiMsg.MultiMsgApplyUpReq>? = null,
|
||||
@ProtoId(7) @JvmField val multimsgApplydownReq: List<MultiMsg.MultiMsgApplyDownReq>? = null,
|
||||
@ProtoId(8) @JvmField val buType: Int = 0,
|
||||
@ProtoId(9) @JvmField val reqChannelType: Int = 0
|
||||
@ProtoNumber(1) @JvmField val subcmd: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val termType: Int = 0,
|
||||
@ProtoNumber(3) @JvmField val platformType: Int = 0,
|
||||
@ProtoNumber(4) @JvmField val netType: Int = 0,
|
||||
@ProtoNumber(5) @JvmField val buildVer: String = "",
|
||||
@ProtoNumber(6) @JvmField val multimsgApplyupReq: List<MultiMsg.MultiMsgApplyUpReq>? = null,
|
||||
@ProtoNumber(7) @JvmField val multimsgApplydownReq: List<MultiMsg.MultiMsgApplyDownReq>? = null,
|
||||
@ProtoNumber(8) @JvmField val buType: Int = 0,
|
||||
@ProtoNumber(9) @JvmField val reqChannelType: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class RspBody(
|
||||
@ProtoId(1) @JvmField val subcmd: Int = 0,
|
||||
@ProtoId(2) @JvmField val multimsgApplyupRsp: List<MultiMsg.MultiMsgApplyUpRsp>? = null,
|
||||
@ProtoId(3) @JvmField val multimsgApplydownRsp: List<MultiMsg.MultiMsgApplyDownRsp>? = null
|
||||
@ProtoNumber(1) @JvmField val subcmd: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val multimsgApplyupRsp: List<MultiMsg.MultiMsgApplyUpRsp>? = null,
|
||||
@ProtoNumber(3) @JvmField val multimsgApplydownRsp: List<MultiMsg.MultiMsgApplyDownRsp>? = null
|
||||
) : ProtoBuf
|
||||
}
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,14 +1,14 @@
|
||||
package net.mamoe.mirai.qqandroid.network.protocol.data.proto
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.protobuf.ProtoId
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
import net.mamoe.mirai.qqandroid.utils.io.ProtoBuf
|
||||
import kotlin.jvm.JvmField
|
||||
|
||||
internal class Oidb0x769 {
|
||||
@Serializable
|
||||
internal class RequestBody(
|
||||
@ProtoId(1) @JvmField val rpt_config_list: List<ConfigSeq>
|
||||
@ProtoNumber(1) @JvmField val rpt_config_list: List<ConfigSeq>
|
||||
// @SerialId(2) @JvmField val msg_device_info: DeviceInfo,
|
||||
// @SerialId(3) @JvmField val str_info: String = "",
|
||||
// @SerialId(4) @JvmField val province: String,
|
||||
@ -19,20 +19,20 @@ internal class Oidb0x769 {
|
||||
|
||||
@Serializable
|
||||
internal class QueryUinPackageUsageReq(
|
||||
@ProtoId(1) @JvmField val type: Int,
|
||||
@ProtoId(2) @JvmField val uinFileSize: Long = 0
|
||||
@ProtoNumber(1) @JvmField val type: Int,
|
||||
@ProtoNumber(2) @JvmField val uinFileSize: Long = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class ConfigSeq(
|
||||
@ProtoId(1) @JvmField val type: Int, // uint
|
||||
@ProtoId(2) @JvmField val version: Int // uint
|
||||
@ProtoNumber(1) @JvmField val type: Int, // uint
|
||||
@ProtoNumber(2) @JvmField val version: Int // uint
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class DeviceInfo(
|
||||
@ProtoId(1) @JvmField val brand: String,
|
||||
@ProtoId(2) @JvmField val model: String
|
||||
@ProtoNumber(1) @JvmField val brand: String,
|
||||
@ProtoNumber(2) @JvmField val model: String
|
||||
//@SerialId(3) @JvmField val os: OS,
|
||||
//@SerialId(4) @JvmField val cpu: CPU,
|
||||
//@SerialId(5) @JvmField val memory: Memory,
|
||||
@ -43,45 +43,45 @@ internal class Oidb0x769 {
|
||||
|
||||
@Serializable
|
||||
internal class OS(
|
||||
@ProtoId(1) @JvmField val type: Int = 1,
|
||||
@ProtoId(2) @JvmField val version: String,
|
||||
@ProtoId(3) @JvmField val sdk: String,
|
||||
@ProtoId(4) @JvmField val kernel: String,
|
||||
@ProtoId(5) @JvmField val rom: String
|
||||
@ProtoNumber(1) @JvmField val type: Int = 1,
|
||||
@ProtoNumber(2) @JvmField val version: String,
|
||||
@ProtoNumber(3) @JvmField val sdk: String,
|
||||
@ProtoNumber(4) @JvmField val kernel: String,
|
||||
@ProtoNumber(5) @JvmField val rom: String
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class Camera(
|
||||
@ProtoId(1) @JvmField val primary: Long,
|
||||
@ProtoId(2) @JvmField val secondary: Long,
|
||||
@ProtoId(3) @JvmField val flag: Boolean
|
||||
@ProtoNumber(1) @JvmField val primary: Long,
|
||||
@ProtoNumber(2) @JvmField val secondary: Long,
|
||||
@ProtoNumber(3) @JvmField val flag: Boolean
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class CPU(
|
||||
@ProtoId(1) @JvmField val model: String,
|
||||
@ProtoId(2) @JvmField val frequency: Int,
|
||||
@ProtoId(3) @JvmField val cores: Int
|
||||
@ProtoNumber(1) @JvmField val model: String,
|
||||
@ProtoNumber(2) @JvmField val frequency: Int,
|
||||
@ProtoNumber(3) @JvmField val cores: Int
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class Memory(
|
||||
@ProtoId(1) @JvmField val total: Int,
|
||||
@ProtoId(2) @JvmField val process: Int
|
||||
@ProtoNumber(1) @JvmField val total: Int,
|
||||
@ProtoNumber(2) @JvmField val process: Int
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class Screen(
|
||||
@ProtoId(1) @JvmField val model: String,
|
||||
@ProtoId(2) @JvmField val width: Int,
|
||||
@ProtoId(3) @JvmField val height: Int,
|
||||
@ProtoId(4) @JvmField val dpi: Int,
|
||||
@ProtoId(5) @JvmField val multiTouch: Boolean
|
||||
@ProtoNumber(1) @JvmField val model: String,
|
||||
@ProtoNumber(2) @JvmField val width: Int,
|
||||
@ProtoNumber(3) @JvmField val height: Int,
|
||||
@ProtoNumber(4) @JvmField val dpi: Int,
|
||||
@ProtoNumber(5) @JvmField val multiTouch: Boolean
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class Storage(
|
||||
@ProtoId(1) @JvmField val builtin: Int,
|
||||
@ProtoId(2) @JvmField val external: Int
|
||||
@ProtoNumber(1) @JvmField val builtin: Int,
|
||||
@ProtoNumber(2) @JvmField val external: Int
|
||||
) : ProtoBuf
|
||||
}
|
@ -1,7 +1,7 @@
|
||||
package net.mamoe.mirai.qqandroid.network.protocol.data.proto
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.protobuf.ProtoId
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
import net.mamoe.mirai.qqandroid.network.protocol.packet.EMPTY_BYTE_ARRAY
|
||||
import net.mamoe.mirai.qqandroid.utils.io.ProtoBuf
|
||||
import kotlin.jvm.JvmField
|
||||
@ -10,11 +10,11 @@ import kotlin.jvm.JvmField
|
||||
internal class MsgOnlinePush {
|
||||
@Serializable
|
||||
internal class PbPushMsg(
|
||||
@ProtoId(1) @JvmField val msg: MsgComm.Msg,
|
||||
@ProtoId(2) @JvmField val svrip: Int = 0,
|
||||
@ProtoId(3) @JvmField val pushToken: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(4) @JvmField val pingFlag: Int = 0,
|
||||
@ProtoId(9) @JvmField val generalFlag: Int = 0
|
||||
@ProtoNumber(1) @JvmField val msg: MsgComm.Msg,
|
||||
@ProtoNumber(2) @JvmField val svrip: Int = 0,
|
||||
@ProtoNumber(3) @JvmField val pushToken: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(4) @JvmField val pingFlag: Int = 0,
|
||||
@ProtoNumber(9) @JvmField val generalFlag: Int = 0
|
||||
) : ProtoBuf
|
||||
}
|
||||
|
||||
@ -22,24 +22,24 @@ internal class MsgOnlinePush {
|
||||
internal class OnlinePushTrans : ProtoBuf {
|
||||
@Serializable
|
||||
internal class ExtGroupKeyInfo(
|
||||
@ProtoId(1) @JvmField val curMaxSeq: Int = 0,
|
||||
@ProtoId(2) @JvmField val curTime: Long = 0L
|
||||
@ProtoNumber(1) @JvmField val curMaxSeq: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val curTime: Long = 0L
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class PbMsgInfo(
|
||||
@ProtoId(1) @JvmField val fromUin: Long = 0L,
|
||||
@ProtoId(2) @JvmField val toUin: Long = 0L,
|
||||
@ProtoId(3) @JvmField val msgType: Int = 0,
|
||||
@ProtoId(4) @JvmField val msgSubtype: Int = 0,
|
||||
@ProtoId(5) @JvmField val msgSeq: Int = 0,
|
||||
@ProtoId(6) @JvmField val msgUid: Long = 0L,
|
||||
@ProtoId(7) @JvmField val msgTime: Int = 0,
|
||||
@ProtoId(8) @JvmField val realMsgTime: Int = 0,
|
||||
@ProtoId(9) @JvmField val nickName: String = "",
|
||||
@ProtoId(10) @JvmField val msgData: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(11) @JvmField val svrIp: Int = 0,
|
||||
@ProtoId(12) @JvmField val extGroupKeyInfo: ExtGroupKeyInfo? = null,
|
||||
@ProtoId(17) @JvmField val generalFlag: Int = 0
|
||||
@ProtoNumber(1) @JvmField val fromUin: Long = 0L,
|
||||
@ProtoNumber(2) @JvmField val toUin: Long = 0L,
|
||||
@ProtoNumber(3) @JvmField val msgType: Int = 0,
|
||||
@ProtoNumber(4) @JvmField val msgSubtype: Int = 0,
|
||||
@ProtoNumber(5) @JvmField val msgSeq: Int = 0,
|
||||
@ProtoNumber(6) @JvmField val msgUid: Long = 0L,
|
||||
@ProtoNumber(7) @JvmField val msgTime: Int = 0,
|
||||
@ProtoNumber(8) @JvmField val realMsgTime: Int = 0,
|
||||
@ProtoNumber(9) @JvmField val nickName: String = "",
|
||||
@ProtoNumber(10) @JvmField val msgData: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(11) @JvmField val svrIp: Int = 0,
|
||||
@ProtoNumber(12) @JvmField val extGroupKeyInfo: ExtGroupKeyInfo? = null,
|
||||
@ProtoNumber(17) @JvmField val generalFlag: Int = 0
|
||||
) : ProtoBuf
|
||||
}
|
@ -1,7 +1,7 @@
|
||||
package net.mamoe.mirai.qqandroid.network.protocol.data.proto
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.protobuf.ProtoId
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
import net.mamoe.mirai.qqandroid.network.protocol.packet.EMPTY_BYTE_ARRAY
|
||||
import net.mamoe.mirai.qqandroid.utils.io.ProtoBuf
|
||||
import kotlin.jvm.JvmField
|
||||
@ -9,68 +9,68 @@ import kotlin.jvm.JvmField
|
||||
internal class Generalflags : ProtoBuf {
|
||||
@Serializable
|
||||
internal class ResvAttr(
|
||||
@ProtoId(1) @JvmField val globalGroupLevel: Int = 0,
|
||||
@ProtoId(2) @JvmField val nearbyCharmLevel: Int = 0,
|
||||
@ProtoId(3) @JvmField val redbagMsgSenderUin: Long = 0L,
|
||||
@ProtoId(4) @JvmField val titleId: Int = 0,
|
||||
@ProtoId(5) @JvmField val robotMsgFlag: Int = 0,
|
||||
@ProtoId(6) @JvmField val wantGiftSenderUin: Long = 0L,
|
||||
@ProtoId(7) @JvmField val stickerX: Float = 0.0f,
|
||||
@ProtoId(8) @JvmField val stickerY: Float = 0.0f,
|
||||
@ProtoId(9) @JvmField val stickerWidth: Float = 0.0f,
|
||||
@ProtoId(10) @JvmField val stickerHeight: Float = 0.0f,
|
||||
@ProtoId(11) @JvmField val stickerRotate: Int = 0,
|
||||
@ProtoId(12) @JvmField val stickerHostMsgseq: Long = 0L,
|
||||
@ProtoId(13) @JvmField val stickerHostMsguid: Long = 0L,
|
||||
@ProtoId(14) @JvmField val stickerHostTime: Long = 0L,
|
||||
@ProtoId(15) @JvmField val mobileCustomFont: Int = 0,
|
||||
@ProtoId(16) @JvmField val tailKey: Int = 0,
|
||||
@ProtoId(17) @JvmField val showTailFlag: Int = 0,
|
||||
@ProtoId(18) @JvmField val doutuMsgType: Int = 0,
|
||||
@ProtoId(19) @JvmField val doutuCombo: Int = 0,
|
||||
@ProtoId(20) @JvmField val customFeatureid: Int = 0,
|
||||
@ProtoId(21) @JvmField val goldenMsgType: Int = 0,
|
||||
@ProtoId(22) @JvmField val goldenMsgInfo: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(23) @JvmField val botMessageClassId: Int = 0,
|
||||
@ProtoId(24) @JvmField val subscriptionUrl: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(25) @JvmField val pendantDiyId: Int = 0,
|
||||
@ProtoId(26) @JvmField val timedMessage: Int = 0,
|
||||
@ProtoId(27) @JvmField val holidayFlag: Int = 0,
|
||||
@ProtoId(29) @JvmField val kplInfo: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(30) @JvmField val faceId: Int = 0,
|
||||
@ProtoId(31) @JvmField val diyFontTimestamp: Int = 0,
|
||||
@ProtoId(32) @JvmField val redEnvelopeType: Int = 0,
|
||||
@ProtoId(33) @JvmField val shortVideoId: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(34) @JvmField val reqFontEffectId: Int = 0,
|
||||
@ProtoId(35) @JvmField val loveLanguageFlag: Int = 0,
|
||||
@ProtoId(36) @JvmField val aioSyncToStoryFlag: Int = 0,
|
||||
@ProtoId(37) @JvmField val uploadImageToQzoneFlag: Int = 0,
|
||||
@ProtoId(39) @JvmField val uploadImageToQzoneParam: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(40) @JvmField val groupConfessSig: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(41) @JvmField val subfontId: Long = 0L,
|
||||
@ProtoId(42) @JvmField val msgFlagType: Int = 0,
|
||||
@ProtoId(43) @JvmField val uint32CustomFeatureid: List<Int>? = null,
|
||||
@ProtoId(44) @JvmField val richCardNameVer: Int = 0,
|
||||
@ProtoId(47) @JvmField val msgInfoFlag: Int = 0,
|
||||
@ProtoId(48) @JvmField val serviceMsgType: Int = 0,
|
||||
@ProtoId(49) @JvmField val serviceMsgRemindType: Int = 0,
|
||||
@ProtoId(50) @JvmField val serviceMsgName: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(51) @JvmField val vipType: Int = 0,
|
||||
@ProtoId(52) @JvmField val vipLevel: Int = 0,
|
||||
@ProtoId(53) @JvmField val pbPttWaveform: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(54) @JvmField val userBigclubLevel: Int = 0,
|
||||
@ProtoId(55) @JvmField val userBigclubFlag: Int = 0,
|
||||
@ProtoId(56) @JvmField val nameplate: Int = 0,
|
||||
@ProtoId(57) @JvmField val autoReply: Int = 0,
|
||||
@ProtoId(58) @JvmField val reqIsBigclubHidden: Int = 0,
|
||||
@ProtoId(59) @JvmField val showInMsgList: Int = 0,
|
||||
@ProtoId(60) @JvmField val oacMsgExtend: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(61) @JvmField val groupMemberFlagEx2: Int = 0,
|
||||
@ProtoId(62) @JvmField val groupRingtoneId: Int = 0,
|
||||
@ProtoId(63) @JvmField val robotGeneralTrans: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(64) @JvmField val troopPobingTemplate: Int = 0,
|
||||
@ProtoId(65) @JvmField val hudongMark: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(66) @JvmField val groupInfoFlagEx3: Int = 0
|
||||
@ProtoNumber(1) @JvmField val globalGroupLevel: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val nearbyCharmLevel: Int = 0,
|
||||
@ProtoNumber(3) @JvmField val redbagMsgSenderUin: Long = 0L,
|
||||
@ProtoNumber(4) @JvmField val titleId: Int = 0,
|
||||
@ProtoNumber(5) @JvmField val robotMsgFlag: Int = 0,
|
||||
@ProtoNumber(6) @JvmField val wantGiftSenderUin: Long = 0L,
|
||||
@ProtoNumber(7) @JvmField val stickerX: Float = 0.0f,
|
||||
@ProtoNumber(8) @JvmField val stickerY: Float = 0.0f,
|
||||
@ProtoNumber(9) @JvmField val stickerWidth: Float = 0.0f,
|
||||
@ProtoNumber(10) @JvmField val stickerHeight: Float = 0.0f,
|
||||
@ProtoNumber(11) @JvmField val stickerRotate: Int = 0,
|
||||
@ProtoNumber(12) @JvmField val stickerHostMsgseq: Long = 0L,
|
||||
@ProtoNumber(13) @JvmField val stickerHostMsguid: Long = 0L,
|
||||
@ProtoNumber(14) @JvmField val stickerHostTime: Long = 0L,
|
||||
@ProtoNumber(15) @JvmField val mobileCustomFont: Int = 0,
|
||||
@ProtoNumber(16) @JvmField val tailKey: Int = 0,
|
||||
@ProtoNumber(17) @JvmField val showTailFlag: Int = 0,
|
||||
@ProtoNumber(18) @JvmField val doutuMsgType: Int = 0,
|
||||
@ProtoNumber(19) @JvmField val doutuCombo: Int = 0,
|
||||
@ProtoNumber(20) @JvmField val customFeatureid: Int = 0,
|
||||
@ProtoNumber(21) @JvmField val goldenMsgType: Int = 0,
|
||||
@ProtoNumber(22) @JvmField val goldenMsgInfo: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(23) @JvmField val botMessageClassId: Int = 0,
|
||||
@ProtoNumber(24) @JvmField val subscriptionUrl: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(25) @JvmField val pendantDiyId: Int = 0,
|
||||
@ProtoNumber(26) @JvmField val timedMessage: Int = 0,
|
||||
@ProtoNumber(27) @JvmField val holidayFlag: Int = 0,
|
||||
@ProtoNumber(29) @JvmField val kplInfo: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(30) @JvmField val faceId: Int = 0,
|
||||
@ProtoNumber(31) @JvmField val diyFontTimestamp: Int = 0,
|
||||
@ProtoNumber(32) @JvmField val redEnvelopeType: Int = 0,
|
||||
@ProtoNumber(33) @JvmField val shortVideoId: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(34) @JvmField val reqFontEffectId: Int = 0,
|
||||
@ProtoNumber(35) @JvmField val loveLanguageFlag: Int = 0,
|
||||
@ProtoNumber(36) @JvmField val aioSyncToStoryFlag: Int = 0,
|
||||
@ProtoNumber(37) @JvmField val uploadImageToQzoneFlag: Int = 0,
|
||||
@ProtoNumber(39) @JvmField val uploadImageToQzoneParam: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(40) @JvmField val groupConfessSig: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(41) @JvmField val subfontId: Long = 0L,
|
||||
@ProtoNumber(42) @JvmField val msgFlagType: Int = 0,
|
||||
@ProtoNumber(43) @JvmField val uint32CustomFeatureid: List<Int>? = null,
|
||||
@ProtoNumber(44) @JvmField val richCardNameVer: Int = 0,
|
||||
@ProtoNumber(47) @JvmField val msgInfoFlag: Int = 0,
|
||||
@ProtoNumber(48) @JvmField val serviceMsgType: Int = 0,
|
||||
@ProtoNumber(49) @JvmField val serviceMsgRemindType: Int = 0,
|
||||
@ProtoNumber(50) @JvmField val serviceMsgName: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(51) @JvmField val vipType: Int = 0,
|
||||
@ProtoNumber(52) @JvmField val vipLevel: Int = 0,
|
||||
@ProtoNumber(53) @JvmField val pbPttWaveform: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(54) @JvmField val userBigclubLevel: Int = 0,
|
||||
@ProtoNumber(55) @JvmField val userBigclubFlag: Int = 0,
|
||||
@ProtoNumber(56) @JvmField val nameplate: Int = 0,
|
||||
@ProtoNumber(57) @JvmField val autoReply: Int = 0,
|
||||
@ProtoNumber(58) @JvmField val reqIsBigclubHidden: Int = 0,
|
||||
@ProtoNumber(59) @JvmField val showInMsgList: Int = 0,
|
||||
@ProtoNumber(60) @JvmField val oacMsgExtend: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(61) @JvmField val groupMemberFlagEx2: Int = 0,
|
||||
@ProtoNumber(62) @JvmField val groupRingtoneId: Int = 0,
|
||||
@ProtoNumber(63) @JvmField val robotGeneralTrans: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(64) @JvmField val troopPobingTemplate: Int = 0,
|
||||
@ProtoNumber(65) @JvmField val hudongMark: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(66) @JvmField val groupInfoFlagEx3: Int = 0
|
||||
) : ProtoBuf
|
||||
}
|
||||
|
||||
@ -78,27 +78,27 @@ internal class ResvAttr(
|
||||
internal class ResvAttrForGiftMsg : ProtoBuf {
|
||||
@Serializable
|
||||
internal class ActivityGiftInfo(
|
||||
@ProtoId(1) @JvmField val isActivityGift: Int = 0,
|
||||
@ProtoId(2) @JvmField val textColor: String = "",
|
||||
@ProtoId(3) @JvmField val text: String = "",
|
||||
@ProtoId(4) @JvmField val url: String = ""
|
||||
@ProtoNumber(1) @JvmField val isActivityGift: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val textColor: String = "",
|
||||
@ProtoNumber(3) @JvmField val text: String = "",
|
||||
@ProtoNumber(4) @JvmField val url: String = ""
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class InteractGift(
|
||||
@ProtoId(1) @JvmField val interactId: ByteArray = EMPTY_BYTE_ARRAY
|
||||
@ProtoNumber(1) @JvmField val interactId: ByteArray = EMPTY_BYTE_ARRAY
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class ResvAttr(
|
||||
@ProtoId(1) @JvmField val int32SendScore: Int = 0,
|
||||
@ProtoId(2) @JvmField val int32RecvScore: Int = 0,
|
||||
@ProtoId(3) @JvmField val charmHeroism: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(4) @JvmField val buttonFlag: Int = 0,
|
||||
@ProtoId(5) @JvmField val objColor: Int = 0,
|
||||
@ProtoId(6) @JvmField val animationType: Int = 0,
|
||||
@ProtoId(7) @JvmField val msgInteractGift: InteractGift? = null,
|
||||
@ProtoId(8) @JvmField val activityGiftInfo: ActivityGiftInfo? = null
|
||||
@ProtoNumber(1) @JvmField val int32SendScore: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val int32RecvScore: Int = 0,
|
||||
@ProtoNumber(3) @JvmField val charmHeroism: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(4) @JvmField val buttonFlag: Int = 0,
|
||||
@ProtoNumber(5) @JvmField val objColor: Int = 0,
|
||||
@ProtoNumber(6) @JvmField val animationType: Int = 0,
|
||||
@ProtoNumber(7) @JvmField val msgInteractGift: InteractGift? = null,
|
||||
@ProtoNumber(8) @JvmField val activityGiftInfo: ActivityGiftInfo? = null
|
||||
) : ProtoBuf
|
||||
}
|
||||
|
||||
@ -106,9 +106,9 @@ internal class ResvAttr(
|
||||
internal class SourceMsg : ProtoBuf {
|
||||
@Serializable
|
||||
internal class ResvAttr(
|
||||
@ProtoId(1) @JvmField val richMsg2: ByteArray? = null,
|
||||
@ProtoId(2) @JvmField val oriMsgtype: Int? = null,
|
||||
@ProtoId(3) @JvmField val origUids: Long? = null // 原来是 list
|
||||
@ProtoNumber(1) @JvmField val richMsg2: ByteArray? = null,
|
||||
@ProtoNumber(2) @JvmField val oriMsgtype: Int? = null,
|
||||
@ProtoNumber(3) @JvmField val origUids: Long? = null // 原来是 list
|
||||
) : ProtoBuf
|
||||
}
|
||||
|
||||
@ -116,17 +116,17 @@ internal class ResvAttr(
|
||||
internal class VideoFile : ProtoBuf {
|
||||
@Serializable
|
||||
internal class ResvAttr(
|
||||
@ProtoId(1) @JvmField val hotvideoIcon: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(2) @JvmField val hotvideoTitle: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(3) @JvmField val hotvideoUrl: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(4) @JvmField val hotvideoIconSub: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(5) @JvmField val specialVideoType: Int = 0,
|
||||
@ProtoId(6) @JvmField val dynamicText: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(7) @JvmField val msgTailType: Int = 0,
|
||||
@ProtoId(8) @JvmField val redEnvelopeType: Int = 0,
|
||||
@ProtoId(9) @JvmField val shortVideoId: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(10) @JvmField val animojiModelId: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(11) @JvmField val longVideoKandianType: Int = 0,
|
||||
@ProtoId(12) @JvmField val source: Int = 0
|
||||
@ProtoNumber(1) @JvmField val hotvideoIcon: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(2) @JvmField val hotvideoTitle: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(3) @JvmField val hotvideoUrl: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(4) @JvmField val hotvideoIconSub: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(5) @JvmField val specialVideoType: Int = 0,
|
||||
@ProtoNumber(6) @JvmField val dynamicText: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(7) @JvmField val msgTailType: Int = 0,
|
||||
@ProtoNumber(8) @JvmField val redEnvelopeType: Int = 0,
|
||||
@ProtoNumber(9) @JvmField val shortVideoId: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(10) @JvmField val animojiModelId: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(11) @JvmField val longVideoKandianType: Int = 0,
|
||||
@ProtoNumber(12) @JvmField val source: Int = 0
|
||||
) : ProtoBuf
|
||||
}
|
||||
|
@ -1,30 +1,30 @@
|
||||
package net.mamoe.mirai.qqandroid.network.protocol.data.proto
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.protobuf.ProtoId
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
import net.mamoe.mirai.qqandroid.utils.io.ProtoBuf
|
||||
import kotlin.jvm.JvmField
|
||||
|
||||
internal class StatSvcGetOnline {
|
||||
@Serializable
|
||||
internal class Instance(
|
||||
@ProtoId(1) @JvmField val instanceId: Int = 0,
|
||||
@ProtoId(2) @JvmField val clientType: Int = 0
|
||||
@ProtoNumber(1) @JvmField val instanceId: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val clientType: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class ReqBody(
|
||||
@ProtoId(1) @JvmField val uin: Long = 0L,
|
||||
@ProtoId(2) @JvmField val appid: Int = 0
|
||||
@ProtoNumber(1) @JvmField val uin: Long = 0L,
|
||||
@ProtoNumber(2) @JvmField val appid: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class RspBody(
|
||||
@ProtoId(1) @JvmField val errorCode: Int = 0,
|
||||
@ProtoId(2) @JvmField val errorMsg: String = "",
|
||||
@ProtoId(3) @JvmField val uin: Long = 0L,
|
||||
@ProtoId(4) @JvmField val appid: Int = 0,
|
||||
@ProtoId(5) @JvmField val timeInterval: Int = 0,
|
||||
@ProtoId(6) @JvmField val msgInstances: List<StatSvcGetOnline.Instance>? = null
|
||||
@ProtoNumber(1) @JvmField val errorCode: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val errorMsg: String = "",
|
||||
@ProtoNumber(3) @JvmField val uin: Long = 0L,
|
||||
@ProtoNumber(4) @JvmField val appid: Int = 0,
|
||||
@ProtoNumber(5) @JvmField val timeInterval: Int = 0,
|
||||
@ProtoNumber(6) @JvmField val msgInstances: List<StatSvcGetOnline.Instance>? = null
|
||||
) : ProtoBuf
|
||||
}
|
@ -1,7 +1,7 @@
|
||||
package net.mamoe.mirai.qqandroid.network.protocol.data.proto
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.protobuf.ProtoId
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
import net.mamoe.mirai.qqandroid.network.protocol.packet.EMPTY_BYTE_ARRAY
|
||||
import net.mamoe.mirai.qqandroid.utils.io.ProtoBuf
|
||||
import kotlin.jvm.JvmField
|
||||
@ -9,289 +9,289 @@ import kotlin.jvm.JvmField
|
||||
internal class QPayReminderMsg : ProtoBuf {
|
||||
@Serializable
|
||||
internal class GetInfoReq(
|
||||
@ProtoId(1) @JvmField val scene: String = "",
|
||||
@ProtoId(2) @JvmField val subCmd: String = "",
|
||||
@ProtoId(3) @JvmField val infoDate: String = ""
|
||||
@ProtoNumber(1) @JvmField val scene: String = "",
|
||||
@ProtoNumber(2) @JvmField val subCmd: String = "",
|
||||
@ProtoNumber(3) @JvmField val infoDate: String = ""
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class GetInfoRsp(
|
||||
@ProtoId(1) @JvmField val resultCode: Int = 0,
|
||||
@ProtoId(2) @JvmField val resultInfo: String = "",
|
||||
@ProtoId(3) @JvmField val urgency: Int = 0,
|
||||
@ProtoId(4) @JvmField val templateNo: Int = 0,
|
||||
@ProtoId(5) @JvmField val content: String = "",
|
||||
@ProtoId(6) @JvmField val infoDate: String = ""
|
||||
@ProtoNumber(1) @JvmField val resultCode: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val resultInfo: String = "",
|
||||
@ProtoNumber(3) @JvmField val urgency: Int = 0,
|
||||
@ProtoNumber(4) @JvmField val templateNo: Int = 0,
|
||||
@ProtoNumber(5) @JvmField val content: String = "",
|
||||
@ProtoNumber(6) @JvmField val infoDate: String = ""
|
||||
) : ProtoBuf
|
||||
}
|
||||
|
||||
internal class Structmsg : ProtoBuf {
|
||||
@Serializable
|
||||
internal class AddFrdSNInfo(
|
||||
@ProtoId(1) @JvmField val notSeeDynamic: Int = 0,
|
||||
@ProtoId(2) @JvmField val setSn: Int = 0
|
||||
@ProtoNumber(1) @JvmField val notSeeDynamic: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val setSn: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class FlagInfo(
|
||||
@ProtoId(1) @JvmField val grpMsgKickAdmin: Int = 0,
|
||||
@ProtoId(2) @JvmField val grpMsgHiddenGrp: Int = 0,
|
||||
@ProtoId(3) @JvmField val grpMsgWordingDown: Int = 0,
|
||||
@ProtoId(4) @JvmField val frdMsgGetBusiCard: Int = 0,
|
||||
@ProtoId(5) @JvmField val grpMsgGetOfficialAccount: Int = 0,
|
||||
@ProtoId(6) @JvmField val grpMsgGetPayInGroup: Int = 0,
|
||||
@ProtoId(7) @JvmField val frdMsgDiscuss2ManyChat: Int = 0,
|
||||
@ProtoId(8) @JvmField val grpMsgNotAllowJoinGrpInviteNotFrd: Int = 0,
|
||||
@ProtoId(9) @JvmField val frdMsgNeedWaitingMsg: Int = 0,
|
||||
@ProtoId(10) @JvmField val frdMsgUint32NeedAllUnreadMsg: Int = 0,
|
||||
@ProtoId(11) @JvmField val grpMsgNeedAutoAdminWording: Int = 0,
|
||||
@ProtoId(12) @JvmField val grpMsgGetTransferGroupMsgFlag: Int = 0,
|
||||
@ProtoId(13) @JvmField val grpMsgGetQuitPayGroupMsgFlag: Int = 0,
|
||||
@ProtoId(14) @JvmField val grpMsgSupportInviteAutoJoin: Int = 0,
|
||||
@ProtoId(15) @JvmField val grpMsgMaskInviteAutoJoin: Int = 0,
|
||||
@ProtoId(16) @JvmField val grpMsgGetDisbandedByAdmin: Int = 0,
|
||||
@ProtoId(17) @JvmField val grpMsgGetC2cInviteJoinGroup: Int = 0
|
||||
@ProtoNumber(1) @JvmField val grpMsgKickAdmin: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val grpMsgHiddenGrp: Int = 0,
|
||||
@ProtoNumber(3) @JvmField val grpMsgWordingDown: Int = 0,
|
||||
@ProtoNumber(4) @JvmField val frdMsgGetBusiCard: Int = 0,
|
||||
@ProtoNumber(5) @JvmField val grpMsgGetOfficialAccount: Int = 0,
|
||||
@ProtoNumber(6) @JvmField val grpMsgGetPayInGroup: Int = 0,
|
||||
@ProtoNumber(7) @JvmField val frdMsgDiscuss2ManyChat: Int = 0,
|
||||
@ProtoNumber(8) @JvmField val grpMsgNotAllowJoinGrpInviteNotFrd: Int = 0,
|
||||
@ProtoNumber(9) @JvmField val frdMsgNeedWaitingMsg: Int = 0,
|
||||
@ProtoNumber(10) @JvmField val frdMsgUint32NeedAllUnreadMsg: Int = 0,
|
||||
@ProtoNumber(11) @JvmField val grpMsgNeedAutoAdminWording: Int = 0,
|
||||
@ProtoNumber(12) @JvmField val grpMsgGetTransferGroupMsgFlag: Int = 0,
|
||||
@ProtoNumber(13) @JvmField val grpMsgGetQuitPayGroupMsgFlag: Int = 0,
|
||||
@ProtoNumber(14) @JvmField val grpMsgSupportInviteAutoJoin: Int = 0,
|
||||
@ProtoNumber(15) @JvmField val grpMsgMaskInviteAutoJoin: Int = 0,
|
||||
@ProtoNumber(16) @JvmField val grpMsgGetDisbandedByAdmin: Int = 0,
|
||||
@ProtoNumber(17) @JvmField val grpMsgGetC2cInviteJoinGroup: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class FriendInfo(
|
||||
@ProtoId(1) @JvmField val msgJointFriend: String = "",
|
||||
@ProtoId(2) @JvmField val msgBlacklist: String = ""
|
||||
@ProtoNumber(1) @JvmField val msgJointFriend: String = "",
|
||||
@ProtoNumber(2) @JvmField val msgBlacklist: String = ""
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class GroupInfo(
|
||||
@ProtoId(1) @JvmField val groupAuthType: Int = 0,
|
||||
@ProtoId(2) @JvmField val displayAction: Int = 0,
|
||||
@ProtoId(3) @JvmField val msgAlert: String = "",
|
||||
@ProtoId(4) @JvmField val msgDetailAlert: String = "",
|
||||
@ProtoId(5) @JvmField val msgOtherAdminDone: String = "",
|
||||
@ProtoId(6) @JvmField val appPrivilegeFlag: Int = 0
|
||||
@ProtoNumber(1) @JvmField val groupAuthType: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val displayAction: Int = 0,
|
||||
@ProtoNumber(3) @JvmField val msgAlert: String = "",
|
||||
@ProtoNumber(4) @JvmField val msgDetailAlert: String = "",
|
||||
@ProtoNumber(5) @JvmField val msgOtherAdminDone: String = "",
|
||||
@ProtoNumber(6) @JvmField val appPrivilegeFlag: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class MsgInviteExt(
|
||||
@ProtoId(1) @JvmField val srcType: Int = 0,
|
||||
@ProtoId(2) @JvmField val srcCode: Long = 0L,
|
||||
@ProtoId(3) @JvmField val waitState: Int = 0
|
||||
@ProtoNumber(1) @JvmField val srcType: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val srcCode: Long = 0L,
|
||||
@ProtoNumber(3) @JvmField val waitState: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class MsgPayGroupExt(
|
||||
@ProtoId(1) @JvmField val joinGrpTime: Long = 0L,
|
||||
@ProtoId(2) @JvmField val quitGrpTime: Long = 0L
|
||||
@ProtoNumber(1) @JvmField val joinGrpTime: Long = 0L,
|
||||
@ProtoNumber(2) @JvmField val quitGrpTime: Long = 0L
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class ReqNextSystemMsg(
|
||||
@ProtoId(1) @JvmField val msgNum: Int = 0,
|
||||
@ProtoId(2) @JvmField val followingFriendSeq: Long = 0L,
|
||||
@ProtoId(3) @JvmField val followingGroupSeq: Long = 0L,
|
||||
@ProtoId(4) @JvmField val checktype: Int /* enum */ = 1,
|
||||
@ProtoId(5) @JvmField val flag: FlagInfo? = null,
|
||||
@ProtoId(6) @JvmField val language: Int = 0,
|
||||
@ProtoId(7) @JvmField val version: Int = 0,
|
||||
@ProtoId(8) @JvmField val friendMsgTypeFlag: Long = 0L
|
||||
@ProtoNumber(1) @JvmField val msgNum: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val followingFriendSeq: Long = 0L,
|
||||
@ProtoNumber(3) @JvmField val followingGroupSeq: Long = 0L,
|
||||
@ProtoNumber(4) @JvmField val checktype: Int /* enum */ = 1,
|
||||
@ProtoNumber(5) @JvmField val flag: FlagInfo? = null,
|
||||
@ProtoNumber(6) @JvmField val language: Int = 0,
|
||||
@ProtoNumber(7) @JvmField val version: Int = 0,
|
||||
@ProtoNumber(8) @JvmField val friendMsgTypeFlag: Long = 0L
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class ReqSystemMsg(
|
||||
@ProtoId(1) @JvmField val msgNum: Int = 0,
|
||||
@ProtoId(2) @JvmField val latestFriendSeq: Long = 0L,
|
||||
@ProtoId(3) @JvmField val latestGroupSeq: Long = 0L,
|
||||
@ProtoId(4) @JvmField val version: Int = 0,
|
||||
@ProtoId(5) @JvmField val language: Int = 0
|
||||
@ProtoNumber(1) @JvmField val msgNum: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val latestFriendSeq: Long = 0L,
|
||||
@ProtoNumber(3) @JvmField val latestGroupSeq: Long = 0L,
|
||||
@ProtoNumber(4) @JvmField val version: Int = 0,
|
||||
@ProtoNumber(5) @JvmField val language: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class ReqSystemMsgAction(
|
||||
@ProtoId(1) @JvmField val msgType: Int /* enum */ = 1,
|
||||
@ProtoId(2) @JvmField val msgSeq: Long = 0L,
|
||||
@ProtoId(3) @JvmField val reqUin: Long = 0L,
|
||||
@ProtoId(4) @JvmField val subType: Int = 0,
|
||||
@ProtoId(5) @JvmField val srcId: Int = 0,
|
||||
@ProtoId(6) @JvmField val subSrcId: Int = 0,
|
||||
@ProtoId(7) @JvmField val groupMsgType: Int = 0,
|
||||
@ProtoId(8) @JvmField val actionInfo: SystemMsgActionInfo? = null,
|
||||
@ProtoId(9) @JvmField val language: Int = 0
|
||||
@ProtoNumber(1) @JvmField val msgType: Int /* enum */ = 1,
|
||||
@ProtoNumber(2) @JvmField val msgSeq: Long = 0L,
|
||||
@ProtoNumber(3) @JvmField val reqUin: Long = 0L,
|
||||
@ProtoNumber(4) @JvmField val subType: Int = 0,
|
||||
@ProtoNumber(5) @JvmField val srcId: Int = 0,
|
||||
@ProtoNumber(6) @JvmField val subSrcId: Int = 0,
|
||||
@ProtoNumber(7) @JvmField val groupMsgType: Int = 0,
|
||||
@ProtoNumber(8) @JvmField val actionInfo: SystemMsgActionInfo? = null,
|
||||
@ProtoNumber(9) @JvmField val language: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class ReqSystemMsgNew(
|
||||
@ProtoId(1) @JvmField val msgNum: Int = 0,
|
||||
@ProtoId(2) @JvmField val latestFriendSeq: Long = 0L,
|
||||
@ProtoId(3) @JvmField val latestGroupSeq: Long = 0L,
|
||||
@ProtoId(4) @JvmField val version: Int = 0,
|
||||
@ProtoId(5) @JvmField val checktype: Int /* enum */ = 1,
|
||||
@ProtoId(6) @JvmField val flag: FlagInfo? = null,
|
||||
@ProtoId(7) @JvmField val language: Int = 0,
|
||||
@ProtoId(8) @JvmField val isGetFrdRibbon: Boolean = true,
|
||||
@ProtoId(9) @JvmField val isGetGrpRibbon: Boolean = true,
|
||||
@ProtoId(10) @JvmField val friendMsgTypeFlag: Long = 0L
|
||||
@ProtoNumber(1) @JvmField val msgNum: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val latestFriendSeq: Long = 0L,
|
||||
@ProtoNumber(3) @JvmField val latestGroupSeq: Long = 0L,
|
||||
@ProtoNumber(4) @JvmField val version: Int = 0,
|
||||
@ProtoNumber(5) @JvmField val checktype: Int /* enum */ = 1,
|
||||
@ProtoNumber(6) @JvmField val flag: FlagInfo? = null,
|
||||
@ProtoNumber(7) @JvmField val language: Int = 0,
|
||||
@ProtoNumber(8) @JvmField val isGetFrdRibbon: Boolean = true,
|
||||
@ProtoNumber(9) @JvmField val isGetGrpRibbon: Boolean = true,
|
||||
@ProtoNumber(10) @JvmField val friendMsgTypeFlag: Long = 0L
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class ReqSystemMsgRead(
|
||||
@ProtoId(1) @JvmField val latestFriendSeq: Long = 0L,
|
||||
@ProtoId(2) @JvmField val latestGroupSeq: Long = 0L,
|
||||
@ProtoId(3) @JvmField val type: Int = 0,
|
||||
@ProtoId(4) @JvmField val checktype: Int /* enum */ = 1
|
||||
@ProtoNumber(1) @JvmField val latestFriendSeq: Long = 0L,
|
||||
@ProtoNumber(2) @JvmField val latestGroupSeq: Long = 0L,
|
||||
@ProtoNumber(3) @JvmField val type: Int = 0,
|
||||
@ProtoNumber(4) @JvmField val checktype: Int /* enum */ = 1
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class RspHead(
|
||||
@ProtoId(1) @JvmField val result: Int = 0,
|
||||
@ProtoId(2) @JvmField val msgFail: String = ""
|
||||
@ProtoNumber(1) @JvmField val result: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val msgFail: String = ""
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class RspNextSystemMsg(
|
||||
@ProtoId(1) @JvmField val head: RspHead? = null,
|
||||
@ProtoId(2) @JvmField val msgs: List<StructMsg>? = null,
|
||||
@ProtoId(3) @JvmField val followingFriendSeq: Long = 0L,
|
||||
@ProtoId(4) @JvmField val followingGroupSeq: Long = 0L,
|
||||
@ProtoId(5) @JvmField val checktype: Int /* enum */ = 1,
|
||||
@ProtoId(100) @JvmField val gameNick: String = "",
|
||||
@ProtoId(101) @JvmField val undecidForQim: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(102) @JvmField val unReadCount3: Int = 0
|
||||
@ProtoNumber(1) @JvmField val head: RspHead? = null,
|
||||
@ProtoNumber(2) @JvmField val msgs: List<StructMsg>? = null,
|
||||
@ProtoNumber(3) @JvmField val followingFriendSeq: Long = 0L,
|
||||
@ProtoNumber(4) @JvmField val followingGroupSeq: Long = 0L,
|
||||
@ProtoNumber(5) @JvmField val checktype: Int /* enum */ = 1,
|
||||
@ProtoNumber(100) @JvmField val gameNick: String = "",
|
||||
@ProtoNumber(101) @JvmField val undecidForQim: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(102) @JvmField val unReadCount3: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class RspSystemMsg(
|
||||
@ProtoId(1) @JvmField val head: RspHead? = null,
|
||||
@ProtoId(2) @JvmField val msgs: List<StructMsg>? = null,
|
||||
@ProtoId(3) @JvmField val unreadCount: Int = 0,
|
||||
@ProtoId(4) @JvmField val latestFriendSeq: Long = 0L,
|
||||
@ProtoId(5) @JvmField val latestGroupSeq: Long = 0L,
|
||||
@ProtoId(6) @JvmField val followingFriendSeq: Long = 0L,
|
||||
@ProtoId(7) @JvmField val followingGroupSeq: Long = 0L,
|
||||
@ProtoId(8) @JvmField val msgDisplay: String = ""
|
||||
@ProtoNumber(1) @JvmField val head: RspHead? = null,
|
||||
@ProtoNumber(2) @JvmField val msgs: List<StructMsg>? = null,
|
||||
@ProtoNumber(3) @JvmField val unreadCount: Int = 0,
|
||||
@ProtoNumber(4) @JvmField val latestFriendSeq: Long = 0L,
|
||||
@ProtoNumber(5) @JvmField val latestGroupSeq: Long = 0L,
|
||||
@ProtoNumber(6) @JvmField val followingFriendSeq: Long = 0L,
|
||||
@ProtoNumber(7) @JvmField val followingGroupSeq: Long = 0L,
|
||||
@ProtoNumber(8) @JvmField val msgDisplay: String = ""
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class RspSystemMsgAction(
|
||||
@ProtoId(1) @JvmField val head: RspHead? = null,
|
||||
@ProtoId(2) @JvmField val msgDetail: String = "",
|
||||
@ProtoId(3) @JvmField val type: Int = 0,
|
||||
@ProtoId(5) @JvmField val msgInvalidDecided: String = "",
|
||||
@ProtoId(6) @JvmField val remarkResult: Int = 0
|
||||
@ProtoNumber(1) @JvmField val head: RspHead? = null,
|
||||
@ProtoNumber(2) @JvmField val msgDetail: String = "",
|
||||
@ProtoNumber(3) @JvmField val type: Int = 0,
|
||||
@ProtoNumber(5) @JvmField val msgInvalidDecided: String = "",
|
||||
@ProtoNumber(6) @JvmField val remarkResult: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class RspSystemMsgNew(
|
||||
@ProtoId(1) @JvmField val head: RspHead? = null,
|
||||
@ProtoId(2) @JvmField val unreadFriendCount: Int = 0,
|
||||
@ProtoId(3) @JvmField val unreadGroupCount: Int = 0,
|
||||
@ProtoId(4) @JvmField val latestFriendSeq: Long = 0L,
|
||||
@ProtoId(5) @JvmField val latestGroupSeq: Long = 0L,
|
||||
@ProtoId(6) @JvmField val followingFriendSeq: Long = 0L,
|
||||
@ProtoId(7) @JvmField val followingGroupSeq: Long = 0L,
|
||||
@ProtoId(9) @JvmField val friendmsgs: List<StructMsg>? = null,
|
||||
@ProtoId(10) @JvmField val groupmsgs: List<StructMsg>? = null,
|
||||
@ProtoId(11) @JvmField val msgRibbonFriend: StructMsg? = null,
|
||||
@ProtoId(12) @JvmField val msgRibbonGroup: StructMsg? = null,
|
||||
@ProtoId(13) @JvmField val msgDisplay: String = "",
|
||||
@ProtoId(14) @JvmField val grpMsgDisplay: String = "",
|
||||
@ProtoId(15) @JvmField val over: Int = 0,
|
||||
@ProtoId(20) @JvmField val checktype: Int /* enum */ = 1,
|
||||
@ProtoId(100) @JvmField val gameNick: String = "",
|
||||
@ProtoId(101) @JvmField val undecidForQim: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(102) @JvmField val unReadCount3: Int = 0
|
||||
@ProtoNumber(1) @JvmField val head: RspHead? = null,
|
||||
@ProtoNumber(2) @JvmField val unreadFriendCount: Int = 0,
|
||||
@ProtoNumber(3) @JvmField val unreadGroupCount: Int = 0,
|
||||
@ProtoNumber(4) @JvmField val latestFriendSeq: Long = 0L,
|
||||
@ProtoNumber(5) @JvmField val latestGroupSeq: Long = 0L,
|
||||
@ProtoNumber(6) @JvmField val followingFriendSeq: Long = 0L,
|
||||
@ProtoNumber(7) @JvmField val followingGroupSeq: Long = 0L,
|
||||
@ProtoNumber(9) @JvmField val friendmsgs: List<StructMsg>? = null,
|
||||
@ProtoNumber(10) @JvmField val groupmsgs: List<StructMsg>? = null,
|
||||
@ProtoNumber(11) @JvmField val msgRibbonFriend: StructMsg? = null,
|
||||
@ProtoNumber(12) @JvmField val msgRibbonGroup: StructMsg? = null,
|
||||
@ProtoNumber(13) @JvmField val msgDisplay: String = "",
|
||||
@ProtoNumber(14) @JvmField val grpMsgDisplay: String = "",
|
||||
@ProtoNumber(15) @JvmField val over: Int = 0,
|
||||
@ProtoNumber(20) @JvmField val checktype: Int /* enum */ = 1,
|
||||
@ProtoNumber(100) @JvmField val gameNick: String = "",
|
||||
@ProtoNumber(101) @JvmField val undecidForQim: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(102) @JvmField val unReadCount3: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class RspSystemMsgRead(
|
||||
@ProtoId(1) @JvmField val head: RspHead? = null,
|
||||
@ProtoId(2) @JvmField val type: Int = 0,
|
||||
@ProtoId(3) @JvmField val checktype: Int /* enum */ = 1
|
||||
@ProtoNumber(1) @JvmField val head: RspHead? = null,
|
||||
@ProtoNumber(2) @JvmField val type: Int = 0,
|
||||
@ProtoNumber(3) @JvmField val checktype: Int /* enum */ = 1
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class StructMsg(
|
||||
@ProtoId(1) @JvmField val version: Int = 0,
|
||||
@ProtoId(2) @JvmField val msgType: Int /* enum */ = 1,
|
||||
@ProtoId(3) @JvmField val msgSeq: Long = 0L,
|
||||
@ProtoId(4) @JvmField val msgTime: Long = 0L,
|
||||
@ProtoId(5) @JvmField val reqUin: Long = 0L,
|
||||
@ProtoId(6) @JvmField val unreadFlag: Int = 0,
|
||||
@ProtoId(50) @JvmField val msg: SystemMsg? = null
|
||||
@ProtoNumber(1) @JvmField val version: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val msgType: Int /* enum */ = 1,
|
||||
@ProtoNumber(3) @JvmField val msgSeq: Long = 0L,
|
||||
@ProtoNumber(4) @JvmField val msgTime: Long = 0L,
|
||||
@ProtoNumber(5) @JvmField val reqUin: Long = 0L,
|
||||
@ProtoNumber(6) @JvmField val unreadFlag: Int = 0,
|
||||
@ProtoNumber(50) @JvmField val msg: SystemMsg? = null
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class SystemMsg(
|
||||
@ProtoId(1) @JvmField val subType: Int = 0,
|
||||
@ProtoId(2) @JvmField val msgTitle: String = "",
|
||||
@ProtoId(3) @JvmField val msgDescribe: String = "",
|
||||
@ProtoId(4) @JvmField val msgAdditional: String = "",
|
||||
@ProtoId(5) @JvmField val msgSource: String = "",
|
||||
@ProtoId(6) @JvmField val msgDecided: String = "",
|
||||
@ProtoId(7) @JvmField val srcId: Int = 0,
|
||||
@ProtoId(8) @JvmField val subSrcId: Int = 0,
|
||||
@ProtoId(9) @JvmField val actions: List<SystemMsgAction>? = null,
|
||||
@ProtoId(10) @JvmField val groupCode: Long = 0L,
|
||||
@ProtoId(11) @JvmField val actionUin: Long = 0L,
|
||||
@ProtoId(12) @JvmField val groupMsgType: Int = 0,
|
||||
@ProtoId(13) @JvmField val groupInviterRole: Int = 0,
|
||||
@ProtoId(14) @JvmField val friendInfo: FriendInfo? = null,
|
||||
@ProtoId(15) @JvmField val groupInfo: GroupInfo? = null,
|
||||
@ProtoId(16) @JvmField val actorUin: Long = 0L,
|
||||
@ProtoId(17) @JvmField val msgActorDescribe: String = "",
|
||||
@ProtoId(18) @JvmField val msgAdditionalList: String = "",
|
||||
@ProtoId(19) @JvmField val relation: Int = 0,
|
||||
@ProtoId(20) @JvmField val reqsubtype: Int = 0,
|
||||
@ProtoId(21) @JvmField val cloneUin: Long = 0L,
|
||||
@ProtoId(22) @JvmField val discussUin: Long = 0L,
|
||||
@ProtoId(23) @JvmField val eimGroupId: Long = 0L,
|
||||
@ProtoId(24) @JvmField val msgInviteExtinfo: MsgInviteExt? = null,
|
||||
@ProtoId(25) @JvmField val msgPayGroupExtinfo: MsgPayGroupExt? = null,
|
||||
@ProtoId(26) @JvmField val sourceFlag: Int = 0,
|
||||
@ProtoId(27) @JvmField val gameNick: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(28) @JvmField val gameMsg: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(29) @JvmField val groupFlagext3: Int = 0,
|
||||
@ProtoId(30) @JvmField val groupOwnerUin: Long = 0L,
|
||||
@ProtoId(31) @JvmField val doubtFlag: Int = 0,
|
||||
@ProtoId(32) @JvmField val warningTips: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(33) @JvmField val nameMore: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(50) @JvmField val reqUinFaceid: Int = 0,
|
||||
@ProtoId(51) @JvmField val reqUinNick: String = "",
|
||||
@ProtoId(52) @JvmField val groupName: String = "",
|
||||
@ProtoId(53) @JvmField val actionUinNick: String = "",
|
||||
@ProtoId(54) @JvmField val msgQna: String = "",
|
||||
@ProtoId(55) @JvmField val msgDetail: String = "",
|
||||
@ProtoId(57) @JvmField val groupExtFlag: Int = 0,
|
||||
@ProtoId(58) @JvmField val actorUinNick: String = "",
|
||||
@ProtoId(59) @JvmField val picUrl: String = "",
|
||||
@ProtoId(60) @JvmField val cloneUinNick: String = "",
|
||||
@ProtoId(61) @JvmField val reqUinBusinessCard: String = "",
|
||||
@ProtoId(63) @JvmField val eimGroupIdName: String = "",
|
||||
@ProtoId(64) @JvmField val reqUinPreRemark: String = "",
|
||||
@ProtoId(65) @JvmField val actionUinQqNick: String = "",
|
||||
@ProtoId(66) @JvmField val actionUinRemark: String = "",
|
||||
@ProtoId(67) @JvmField val reqUinGender: Int = 0,
|
||||
@ProtoId(68) @JvmField val reqUinAge: Int = 0,
|
||||
@ProtoId(69) @JvmField val c2cInviteJoinGroupFlag: Int = 0,
|
||||
@ProtoId(101) @JvmField val cardSwitch: Int = 0
|
||||
@ProtoNumber(1) @JvmField val subType: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val msgTitle: String = "",
|
||||
@ProtoNumber(3) @JvmField val msgDescribe: String = "",
|
||||
@ProtoNumber(4) @JvmField val msgAdditional: String = "",
|
||||
@ProtoNumber(5) @JvmField val msgSource: String = "",
|
||||
@ProtoNumber(6) @JvmField val msgDecided: String = "",
|
||||
@ProtoNumber(7) @JvmField val srcId: Int = 0,
|
||||
@ProtoNumber(8) @JvmField val subSrcId: Int = 0,
|
||||
@ProtoNumber(9) @JvmField val actions: List<SystemMsgAction>? = null,
|
||||
@ProtoNumber(10) @JvmField val groupCode: Long = 0L,
|
||||
@ProtoNumber(11) @JvmField val actionUin: Long = 0L,
|
||||
@ProtoNumber(12) @JvmField val groupMsgType: Int = 0,
|
||||
@ProtoNumber(13) @JvmField val groupInviterRole: Int = 0,
|
||||
@ProtoNumber(14) @JvmField val friendInfo: FriendInfo? = null,
|
||||
@ProtoNumber(15) @JvmField val groupInfo: GroupInfo? = null,
|
||||
@ProtoNumber(16) @JvmField val actorUin: Long = 0L,
|
||||
@ProtoNumber(17) @JvmField val msgActorDescribe: String = "",
|
||||
@ProtoNumber(18) @JvmField val msgAdditionalList: String = "",
|
||||
@ProtoNumber(19) @JvmField val relation: Int = 0,
|
||||
@ProtoNumber(20) @JvmField val reqsubtype: Int = 0,
|
||||
@ProtoNumber(21) @JvmField val cloneUin: Long = 0L,
|
||||
@ProtoNumber(22) @JvmField val discussUin: Long = 0L,
|
||||
@ProtoNumber(23) @JvmField val eimGroupId: Long = 0L,
|
||||
@ProtoNumber(24) @JvmField val msgInviteExtinfo: MsgInviteExt? = null,
|
||||
@ProtoNumber(25) @JvmField val msgPayGroupExtinfo: MsgPayGroupExt? = null,
|
||||
@ProtoNumber(26) @JvmField val sourceFlag: Int = 0,
|
||||
@ProtoNumber(27) @JvmField val gameNick: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(28) @JvmField val gameMsg: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(29) @JvmField val groupFlagext3: Int = 0,
|
||||
@ProtoNumber(30) @JvmField val groupOwnerUin: Long = 0L,
|
||||
@ProtoNumber(31) @JvmField val doubtFlag: Int = 0,
|
||||
@ProtoNumber(32) @JvmField val warningTips: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(33) @JvmField val nameMore: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(50) @JvmField val reqUinFaceid: Int = 0,
|
||||
@ProtoNumber(51) @JvmField val reqUinNick: String = "",
|
||||
@ProtoNumber(52) @JvmField val groupName: String = "",
|
||||
@ProtoNumber(53) @JvmField val actionUinNick: String = "",
|
||||
@ProtoNumber(54) @JvmField val msgQna: String = "",
|
||||
@ProtoNumber(55) @JvmField val msgDetail: String = "",
|
||||
@ProtoNumber(57) @JvmField val groupExtFlag: Int = 0,
|
||||
@ProtoNumber(58) @JvmField val actorUinNick: String = "",
|
||||
@ProtoNumber(59) @JvmField val picUrl: String = "",
|
||||
@ProtoNumber(60) @JvmField val cloneUinNick: String = "",
|
||||
@ProtoNumber(61) @JvmField val reqUinBusinessCard: String = "",
|
||||
@ProtoNumber(63) @JvmField val eimGroupIdName: String = "",
|
||||
@ProtoNumber(64) @JvmField val reqUinPreRemark: String = "",
|
||||
@ProtoNumber(65) @JvmField val actionUinQqNick: String = "",
|
||||
@ProtoNumber(66) @JvmField val actionUinRemark: String = "",
|
||||
@ProtoNumber(67) @JvmField val reqUinGender: Int = 0,
|
||||
@ProtoNumber(68) @JvmField val reqUinAge: Int = 0,
|
||||
@ProtoNumber(69) @JvmField val c2cInviteJoinGroupFlag: Int = 0,
|
||||
@ProtoNumber(101) @JvmField val cardSwitch: Int = 0
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class SystemMsgAction(
|
||||
@ProtoId(1) @JvmField val name: String = "",
|
||||
@ProtoId(2) @JvmField val result: String = "",
|
||||
@ProtoId(3) @JvmField val action: Int = 0,
|
||||
@ProtoId(4) @JvmField val actionInfo: SystemMsgActionInfo? = null,
|
||||
@ProtoId(5) @JvmField val detailName: String = ""
|
||||
@ProtoNumber(1) @JvmField val name: String = "",
|
||||
@ProtoNumber(2) @JvmField val result: String = "",
|
||||
@ProtoNumber(3) @JvmField val action: Int = 0,
|
||||
@ProtoNumber(4) @JvmField val actionInfo: SystemMsgActionInfo? = null,
|
||||
@ProtoNumber(5) @JvmField val detailName: String = ""
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
internal class SystemMsgActionInfo(
|
||||
@ProtoId(1) @JvmField val type: Int /* enum */ = 1,
|
||||
@ProtoId(2) @JvmField val groupCode: Long = 0L,
|
||||
@ProtoId(3) @JvmField val sig: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(50) @JvmField val msg: String = "",
|
||||
@ProtoId(51) @JvmField val groupId: Int = 0,
|
||||
@ProtoId(52) @JvmField val remark: String = "",
|
||||
@ProtoId(53) @JvmField val blacklist: Boolean = false,
|
||||
@ProtoId(54) @JvmField val addFrdSNInfo: AddFrdSNInfo? = null
|
||||
@ProtoNumber(1) @JvmField val type: Int /* enum */ = 1,
|
||||
@ProtoNumber(2) @JvmField val groupCode: Long = 0L,
|
||||
@ProtoNumber(3) @JvmField val sig: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(50) @JvmField val msg: String = "",
|
||||
@ProtoNumber(51) @JvmField val groupId: Int = 0,
|
||||
@ProtoNumber(52) @JvmField val remark: String = "",
|
||||
@ProtoNumber(53) @JvmField val blacklist: Boolean = false,
|
||||
@ProtoNumber(54) @JvmField val addFrdSNInfo: AddFrdSNInfo? = null
|
||||
) : ProtoBuf
|
||||
}
|
||||
|
||||
@ -299,15 +299,15 @@ internal class Structmsg : ProtoBuf {
|
||||
internal class Youtu : ProtoBuf {
|
||||
@Serializable
|
||||
internal class NameCardOcrRsp(
|
||||
@ProtoId(1) @JvmField val errorcode: Int = 0,
|
||||
@ProtoId(2) @JvmField val errormsg: String = "",
|
||||
@ProtoId(3) @JvmField val uin: String = "",
|
||||
@ProtoId(4) @JvmField val uinConfidence: Float = 0.0F,
|
||||
@ProtoId(5) @JvmField val phone: String = "",
|
||||
@ProtoId(6) @JvmField val phoneConfidence: Float = 0.0F,
|
||||
@ProtoId(7) @JvmField val name: String = "",
|
||||
@ProtoId(8) @JvmField val nameConfidence: Float = 0.0F,
|
||||
@ProtoId(9) @JvmField val image: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoId(10) @JvmField val sessionId: String = ""
|
||||
@ProtoNumber(1) @JvmField val errorcode: Int = 0,
|
||||
@ProtoNumber(2) @JvmField val errormsg: String = "",
|
||||
@ProtoNumber(3) @JvmField val uin: String = "",
|
||||
@ProtoNumber(4) @JvmField val uinConfidence: Float = 0.0F,
|
||||
@ProtoNumber(5) @JvmField val phone: String = "",
|
||||
@ProtoNumber(6) @JvmField val phoneConfidence: Float = 0.0F,
|
||||
@ProtoNumber(7) @JvmField val name: String = "",
|
||||
@ProtoNumber(8) @JvmField val nameConfidence: Float = 0.0F,
|
||||
@ProtoNumber(9) @JvmField val image: ByteArray = EMPTY_BYTE_ARRAY,
|
||||
@ProtoNumber(10) @JvmField val sessionId: String = ""
|
||||
) : ProtoBuf
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
package net.mamoe.mirai.qqandroid.network.protocol.data.proto
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.protobuf.ProtoId
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
import net.mamoe.mirai.qqandroid.utils.io.ProtoBuf
|
||||
import kotlin.jvm.JvmField
|
||||
import kotlin.math.absoluteValue
|
||||
@ -12,15 +12,15 @@ import kotlin.random.Random
|
||||
|
||||
@Serializable
|
||||
internal class SyncCookie(
|
||||
@ProtoId(1) @JvmField val time1: Long? = null, // 1580277992
|
||||
@ProtoId(2) @JvmField val time: Long, // 1580277992
|
||||
@ProtoId(3) @JvmField val unknown1: Long = Random.nextLong().absoluteValue,// 678328038
|
||||
@ProtoId(4) @JvmField val unknown2: Long = Random.nextLong().absoluteValue, // 1687142153
|
||||
@ProtoId(5) @JvmField val const1: Long = const1_, // 1458467940
|
||||
@ProtoId(11) @JvmField val const2: Long = const2_, // 2683038258
|
||||
@ProtoId(12) @JvmField val unknown3: Long = 0x1d,
|
||||
@ProtoId(13) @JvmField val lastSyncTime: Long? = null,
|
||||
@ProtoId(14) @JvmField val unknown4: Long = 0
|
||||
@ProtoNumber(1) @JvmField val time1: Long? = null, // 1580277992
|
||||
@ProtoNumber(2) @JvmField val time: Long, // 1580277992
|
||||
@ProtoNumber(3) @JvmField val unknown1: Long = Random.nextLong().absoluteValue,// 678328038
|
||||
@ProtoNumber(4) @JvmField val unknown2: Long = Random.nextLong().absoluteValue, // 1687142153
|
||||
@ProtoNumber(5) @JvmField val const1: Long = const1_, // 1458467940
|
||||
@ProtoNumber(11) @JvmField val const2: Long = const2_, // 2683038258
|
||||
@ProtoNumber(12) @JvmField val unknown3: Long = 0x1d,
|
||||
@ProtoNumber(13) @JvmField val lastSyncTime: Long? = null,
|
||||
@ProtoNumber(14) @JvmField val unknown4: Long = 0
|
||||
) : ProtoBuf
|
||||
|
||||
private val const1_: Long = Random.nextLong().absoluteValue
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -21,7 +21,7 @@ import kotlinx.io.core.discardExact
|
||||
import kotlinx.io.core.readBytes
|
||||
import kotlinx.io.core.readUInt
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.protobuf.ProtoId
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
import net.mamoe.mirai.JavaFriendlyAPI
|
||||
import net.mamoe.mirai.data.FriendInfo
|
||||
import net.mamoe.mirai.event.events.*
|
||||
@ -357,25 +357,25 @@ internal object Transformers528 : Map<Long, Lambda528> by mapOf(
|
||||
0x8AL to lambda528 { bot ->
|
||||
@Serializable
|
||||
data class Sub8AInner(
|
||||
@ProtoId(1) val fromUin: Long,
|
||||
@ProtoId(2) val botUin: Long,
|
||||
@ProtoId(3) val srcId: Int,
|
||||
@ProtoId(4) val srcInternalId: Int,
|
||||
@ProtoId(5) val time: Int,
|
||||
@ProtoId(6) val random: Int, // 同srcInternalId
|
||||
@ProtoId(7) val flag1: Boolean, // true
|
||||
@ProtoId(8) val flag2: Boolean, // false
|
||||
@ProtoId(9) val flag3: Boolean, // false
|
||||
@ProtoId(12) val flag4: Boolean // true
|
||||
@ProtoNumber(1) val fromUin: Long,
|
||||
@ProtoNumber(2) val botUin: Long,
|
||||
@ProtoNumber(3) val srcId: Int,
|
||||
@ProtoNumber(4) val srcInternalId: Int,
|
||||
@ProtoNumber(5) val time: Int,
|
||||
@ProtoNumber(6) val random: Int, // 同srcInternalId
|
||||
@ProtoNumber(7) val flag1: Boolean, // true
|
||||
@ProtoNumber(8) val flag2: Boolean, // false
|
||||
@ProtoNumber(9) val flag3: Boolean, // false
|
||||
@ProtoNumber(12) val flag4: Boolean // true
|
||||
) : ProtoBuf
|
||||
|
||||
@Serializable
|
||||
data class Sub8A(
|
||||
@ProtoId(1) val inner: Sub8AInner,
|
||||
@ProtoId(2) val v2: Boolean, // true
|
||||
@ProtoId(3) val v3: Boolean, // true
|
||||
@ProtoId(4) val v4: Boolean, // false
|
||||
@ProtoId(5) val v5: ByteArray? = null // struct{ boolean(1), boolean(2) }
|
||||
@ProtoNumber(1) val inner: Sub8AInner,
|
||||
@ProtoNumber(2) val v2: Boolean, // true
|
||||
@ProtoNumber(3) val v3: Boolean, // true
|
||||
@ProtoNumber(4) val v4: Boolean, // false
|
||||
@ProtoNumber(5) val v5: ByteArray? = null // struct{ boolean(1), boolean(2) }
|
||||
) : ProtoBuf
|
||||
|
||||
val sub8A = vProtobuf.loadAs(Sub8A.serializer()).inner
|
||||
|
@ -12,7 +12,7 @@ package net.mamoe.mirai.qqandroid.network.protocol.packet.login
|
||||
import kotlinx.io.core.ByteReadPacket
|
||||
import kotlinx.io.core.use
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.protobuf.ProtoId
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
import net.mamoe.mirai.event.AbstractEvent
|
||||
import net.mamoe.mirai.event.Event
|
||||
import net.mamoe.mirai.qqandroid.QQAndroidBot
|
||||
@ -51,15 +51,15 @@ internal class ConfigPushSvc {
|
||||
|
||||
@Serializable
|
||||
data class ChangeServer(
|
||||
@ProtoId(1) val unknown: Int, // =08
|
||||
@ProtoId(2) val serverList: List<ServerInfo>
|
||||
@ProtoNumber(1) val unknown: Int, // =08
|
||||
@ProtoNumber(2) val serverList: List<ServerInfo>
|
||||
) : ProtoBuf, PushReqResponse() {
|
||||
|
||||
@Serializable
|
||||
data class ServerInfo(
|
||||
@ProtoId(1) val host: String,
|
||||
@ProtoId(2) val port: Int,
|
||||
@ProtoId(3) val unknown: Int
|
||||
@ProtoNumber(1) val host: String,
|
||||
@ProtoNumber(2) val port: Int,
|
||||
@ProtoNumber(3) val unknown: Int
|
||||
) : ProtoBuf {
|
||||
override fun toString(): String {
|
||||
return "$host:$port"
|
||||
|
@ -22,22 +22,22 @@ import kotlinx.serialization.internal.TaggedEncoder
|
||||
import kotlinx.serialization.modules.EmptySerializersModule
|
||||
import kotlinx.serialization.modules.SerializersModule
|
||||
import kotlinx.serialization.protobuf.ProtoBuf
|
||||
import kotlinx.serialization.protobuf.ProtoNumberType
|
||||
import kotlinx.serialization.protobuf.ProtoIntegerType
|
||||
import kotlinx.serialization.protobuf.ProtoType
|
||||
import moe.him188.jcekt.JceId
|
||||
import net.mamoe.mirai.qqandroid.utils.io.serialization.ProtoBufWithNullableSupport.Varint.encodeVarint
|
||||
import net.mamoe.mirai.qqandroid.utils.io.serialization.tars.TarsId
|
||||
import java.io.ByteArrayOutputStream
|
||||
import java.nio.ByteBuffer
|
||||
import java.nio.ByteOrder
|
||||
|
||||
internal typealias ProtoDesc = Pair<Int, ProtoNumberType>
|
||||
internal typealias ProtoDesc = Pair<Int, ProtoIntegerType>
|
||||
|
||||
internal fun getSerialId(desc: SerialDescriptor, index: Int): Int? = desc.findAnnotation<JceId>(index)?.id
|
||||
internal fun getSerialId(desc: SerialDescriptor, index: Int): Int? = desc.findAnnotation<TarsId>(index)?.id
|
||||
|
||||
internal fun extractParameters(desc: SerialDescriptor, index: Int, zeroBasedDefault: Boolean = false): ProtoDesc {
|
||||
val idx = getSerialId(desc, index) ?: (if (zeroBasedDefault) index else index + 1)
|
||||
val format = desc.findAnnotation<ProtoType>(index)?.type
|
||||
?: ProtoNumberType.DEFAULT
|
||||
?: ProtoIntegerType.DEFAULT
|
||||
return idx to format
|
||||
}
|
||||
|
||||
@ -56,6 +56,7 @@ internal class ProtoBufWithNullableSupport(override val serializersModule: Seria
|
||||
override val serializersModule
|
||||
get() = this@ProtoBufWithNullableSupport.serializersModule
|
||||
|
||||
@Suppress("OverridingDeprecatedMember")
|
||||
override fun beginStructure(
|
||||
descriptor: SerialDescriptor,
|
||||
vararg typeSerializers: KSerializer<*>
|
||||
@ -72,17 +73,17 @@ internal class ProtoBufWithNullableSupport(override val serializersModule: Seria
|
||||
override fun encodeTaggedLong(tag: ProtoDesc, value: Long) = encoder.writeLong(value, tag.first, tag.second)
|
||||
override fun encodeTaggedFloat(tag: ProtoDesc, value: Float) = encoder.writeFloat(value, tag.first)
|
||||
override fun encodeTaggedDouble(tag: ProtoDesc, value: Double) = encoder.writeDouble(value, tag.first)
|
||||
override fun encodeTaggedBoolean(tag: ProtoDesc, value: Boolean) = encoder.writeInt(if (value) 1 else 0, tag.first, ProtoNumberType.DEFAULT)
|
||||
override fun encodeTaggedBoolean(tag: ProtoDesc, value: Boolean) = encoder.writeInt(if (value) 1 else 0, tag.first, ProtoIntegerType.DEFAULT)
|
||||
override fun encodeTaggedChar(tag: ProtoDesc, value: Char) = encoder.writeInt(value.toInt(), tag.first, tag.second)
|
||||
override fun encodeTaggedString(tag: ProtoDesc, value: String) = encoder.writeString(value, tag.first)
|
||||
override fun encodeTaggedEnum(
|
||||
tag: ProtoDesc,
|
||||
enumDescription: SerialDescriptor,
|
||||
enumDescriptor: SerialDescriptor,
|
||||
ordinal: Int
|
||||
) = encoder.writeInt(
|
||||
extractParameters(enumDescription, ordinal, zeroBasedDefault = true).first,
|
||||
extractParameters(enumDescriptor, ordinal, zeroBasedDefault = true).first,
|
||||
tag.first,
|
||||
ProtoNumberType.DEFAULT
|
||||
ProtoIntegerType.DEFAULT
|
||||
)
|
||||
|
||||
override fun SerialDescriptor.getTag(index: Int) = this.getProtoDesc(index)
|
||||
@ -134,8 +135,8 @@ internal class ProtoBufWithNullableSupport(override val serializersModule: Seria
|
||||
|
||||
internal inner class MapRepeatedWriter(parentTag: ProtoDesc?, parentEncoder: ProtobufEncoder) : ObjectWriter(parentTag, parentEncoder) {
|
||||
override fun SerialDescriptor.getTag(index: Int): ProtoDesc =
|
||||
if (index % 2 == 0) 1 to (parentTag?.second ?: ProtoNumberType.DEFAULT)
|
||||
else 2 to (parentTag?.second ?: ProtoNumberType.DEFAULT)
|
||||
if (index % 2 == 0) 1 to (parentTag?.second ?: ProtoIntegerType.DEFAULT)
|
||||
else 2 to (parentTag?.second ?: ProtoIntegerType.DEFAULT)
|
||||
}
|
||||
|
||||
internal inner class RepeatedWriter(encoder: ProtobufEncoder, private val curTag: ProtoDesc) :
|
||||
@ -153,16 +154,16 @@ internal class ProtoBufWithNullableSupport(override val serializersModule: Seria
|
||||
out.write(bytes)
|
||||
}
|
||||
|
||||
fun writeInt(value: Int, tag: Int, format: ProtoNumberType) {
|
||||
val wireType = if (format == ProtoNumberType.FIXED) i32 else VARINT
|
||||
fun writeInt(value: Int, tag: Int, format: ProtoIntegerType) {
|
||||
val wireType = if (format == ProtoIntegerType.FIXED) i32 else VARINT
|
||||
val header = encode32((tag shl 3) or wireType)
|
||||
val content = encode32(value, format)
|
||||
out.write(header)
|
||||
out.write(content)
|
||||
}
|
||||
|
||||
fun writeLong(value: Long, tag: Int, format: ProtoNumberType) {
|
||||
val wireType = if (format == ProtoNumberType.FIXED) i64 else VARINT
|
||||
fun writeLong(value: Long, tag: Int, format: ProtoIntegerType) {
|
||||
val wireType = if (format == ProtoIntegerType.FIXED) i64 else VARINT
|
||||
val header = encode32((tag shl 3) or wireType)
|
||||
val content = encode64(value, format)
|
||||
out.write(header)
|
||||
@ -189,19 +190,19 @@ internal class ProtoBufWithNullableSupport(override val serializersModule: Seria
|
||||
out.write(content)
|
||||
}
|
||||
|
||||
private fun encode32(number: Int, format: ProtoNumberType = ProtoNumberType.DEFAULT): ByteArray =
|
||||
private fun encode32(number: Int, format: ProtoIntegerType = ProtoIntegerType.DEFAULT): ByteArray =
|
||||
when (format) {
|
||||
ProtoNumberType.FIXED -> ByteBuffer.allocate(4).order(ByteOrder.LITTLE_ENDIAN).putInt(number).array()
|
||||
ProtoNumberType.DEFAULT -> encodeVarint(number.toLong())
|
||||
ProtoNumberType.SIGNED -> encodeVarint(((number shl 1) xor (number shr 31)))
|
||||
ProtoIntegerType.FIXED -> ByteBuffer.allocate(4).order(ByteOrder.LITTLE_ENDIAN).putInt(number).array()
|
||||
ProtoIntegerType.DEFAULT -> encodeVarint(number.toLong())
|
||||
ProtoIntegerType.SIGNED -> encodeVarint(((number shl 1) xor (number shr 31)))
|
||||
}
|
||||
|
||||
|
||||
private fun encode64(number: Long, format: ProtoNumberType = ProtoNumberType.DEFAULT): ByteArray =
|
||||
private fun encode64(number: Long, format: ProtoIntegerType = ProtoIntegerType.DEFAULT): ByteArray =
|
||||
when (format) {
|
||||
ProtoNumberType.FIXED -> ByteBuffer.allocate(8).order(ByteOrder.LITTLE_ENDIAN).putLong(number).array()
|
||||
ProtoNumberType.DEFAULT -> encodeVarint(number)
|
||||
ProtoNumberType.SIGNED -> encodeVarint((number shl 1) xor (number shr 63))
|
||||
ProtoIntegerType.FIXED -> ByteBuffer.allocate(8).order(ByteOrder.LITTLE_ENDIAN).putLong(number).array()
|
||||
ProtoIntegerType.DEFAULT -> encodeVarint(number)
|
||||
ProtoIntegerType.SIGNED -> encodeVarint((number shl 1) xor (number shr 63))
|
||||
}
|
||||
}
|
||||
|
||||
@ -209,6 +210,7 @@ internal class ProtoBufWithNullableSupport(override val serializersModule: Seria
|
||||
* Source for all varint operations:
|
||||
* https://github.com/addthis/stream-lib/blob/master/src/main/java/com/clearspring/analytics/util/Varint.java
|
||||
*/
|
||||
@Suppress("unused")
|
||||
internal object Varint {
|
||||
internal fun encodeVarint(inp: Int): ByteArray {
|
||||
var value = inp
|
||||
|
@ -0,0 +1,70 @@
|
||||
/*
|
||||
* Copyright 2020 Him188.
|
||||
*
|
||||
* Use of this source code is governed by the Apache 2.0 license that can be found through the following link.
|
||||
*
|
||||
* https://github.com/him188/Tarskt/blob/master/LICENSE
|
||||
*/
|
||||
|
||||
@file:Suppress("MemberVisibilityCanBePrivate", "unused")
|
||||
|
||||
package net.mamoe.mirai.qqandroid.utils.io.serialization.tars
|
||||
|
||||
import kotlinx.io.charsets.Charset
|
||||
import kotlinx.io.charsets.Charsets
|
||||
import kotlinx.io.core.*
|
||||
import kotlinx.serialization.*
|
||||
import kotlinx.serialization.modules.EmptySerializersModule
|
||||
import kotlinx.serialization.modules.SerializersModule
|
||||
import net.mamoe.mirai.qqandroid.utils.io.serialization.tars.internal.TarsDecoder
|
||||
import net.mamoe.mirai.qqandroid.utils.io.serialization.tars.internal.TarsInput
|
||||
import net.mamoe.mirai.qqandroid.utils.io.serialization.tars.internal.TarsOld
|
||||
import kotlin.jvm.JvmStatic
|
||||
|
||||
/**
|
||||
* The main entry point to work with Tars serialization.
|
||||
*/
|
||||
@OptIn(ExperimentalSerializationApi::class)
|
||||
internal class Tars(
|
||||
override val serializersModule: SerializersModule = EmptySerializersModule,
|
||||
val charset: Charset = Charsets.UTF_8
|
||||
) : SerialFormat, BinaryFormat {
|
||||
private val old = TarsOld(charset)
|
||||
|
||||
fun <T> dumpTo(serializer: SerializationStrategy<T>, ojb: T, output: Output) {
|
||||
output.writePacket(old.dumpAsPacket(serializer, ojb))
|
||||
}
|
||||
|
||||
fun <T> load(deserializer: DeserializationStrategy<T>, input: Input): T {
|
||||
return TarsDecoder(TarsInput(input, charset), serializersModule).decodeSerializableValue(deserializer)
|
||||
}
|
||||
|
||||
override fun <T> encodeToByteArray(serializer: SerializationStrategy<T>, value: T): ByteArray {
|
||||
return buildPacket { dumpTo(serializer, value, this) }.readBytes()
|
||||
}
|
||||
|
||||
override fun <T> decodeFromByteArray(deserializer: DeserializationStrategy<T>, bytes: ByteArray): T {
|
||||
return load(deserializer, ByteReadPacket(bytes))
|
||||
}
|
||||
|
||||
companion object {
|
||||
@JvmStatic
|
||||
val UTF_8: Tars = Tars()
|
||||
|
||||
internal const val BYTE: Byte = 0
|
||||
internal const val DOUBLE: Byte = 5
|
||||
internal const val FLOAT: Byte = 4
|
||||
internal const val INT: Byte = 2
|
||||
internal const val Tars_MAX_STRING_LENGTH = 104857600
|
||||
internal const val LIST: Byte = 9
|
||||
internal const val LONG: Byte = 3
|
||||
internal const val MAP: Byte = 8
|
||||
internal const val SHORT: Byte = 1
|
||||
internal const val SIMPLE_LIST: Byte = 13
|
||||
internal const val STRING1: Byte = 6
|
||||
internal const val STRING4: Byte = 7
|
||||
internal const val STRUCT_BEGIN: Byte = 10
|
||||
internal const val STRUCT_END: Byte = 11
|
||||
internal const val ZERO_TYPE: Byte = 12
|
||||
}
|
||||
}
|
@ -0,0 +1,13 @@
|
||||
package net.mamoe.mirai.qqandroid.utils.io.serialization.tars
|
||||
|
||||
import kotlinx.serialization.ExperimentalSerializationApi
|
||||
import kotlinx.serialization.SerialInfo
|
||||
|
||||
/**
|
||||
* The serial id used in Tars serialization
|
||||
*/
|
||||
@OptIn(ExperimentalSerializationApi::class)
|
||||
@SerialInfo
|
||||
@Target(AnnotationTarget.PROPERTY)
|
||||
internal annotation class TarsId(val id: Int)
|
||||
|
@ -0,0 +1,333 @@
|
||||
/*
|
||||
* Copyright 2020 Mamoe Technologies and contributors.
|
||||
*
|
||||
* 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证.
|
||||
* Use of this source code is governed by the GNU AGPLv3 license that can be found through the following link.
|
||||
*
|
||||
* https://github.com/mamoe/mirai/blob/master/LICENSE
|
||||
*/
|
||||
|
||||
@file:Suppress("PrivatePropertyName")
|
||||
|
||||
package net.mamoe.mirai.qqandroid.utils.io.serialization.tars.internal
|
||||
|
||||
import kotlinx.serialization.ExperimentalSerializationApi
|
||||
import kotlinx.serialization.InternalSerializationApi
|
||||
import kotlinx.serialization.descriptors.*
|
||||
import kotlinx.serialization.encoding.AbstractDecoder
|
||||
import kotlinx.serialization.encoding.CompositeDecoder
|
||||
import kotlinx.serialization.internal.TaggedDecoder
|
||||
import kotlinx.serialization.modules.SerializersModule
|
||||
import net.mamoe.mirai.qqandroid.utils.io.serialization.tars.Tars
|
||||
import net.mamoe.mirai.qqandroid.utils.io.serialization.tars.TarsId
|
||||
|
||||
|
||||
@OptIn(InternalSerializationApi::class, ExperimentalSerializationApi::class)
|
||||
internal class TarsDecoder(
|
||||
val input: TarsInput, override val serializersModule: SerializersModule
|
||||
) : TaggedDecoder<TarsTag>() {
|
||||
override fun SerialDescriptor.getTag(index: Int): TarsTag {
|
||||
val annotations = this.getElementAnnotations(index)
|
||||
|
||||
val id = annotations.filterIsInstance<TarsId>().single().id
|
||||
// ?: error("cannot find @TarsId or @ProtoNumber for ${this.getElementName(index)} in ${this.serialName}")
|
||||
//println("getTag: ${this.getElementName(index)}=$id")
|
||||
|
||||
return TarsTagCommon(id)
|
||||
}
|
||||
|
||||
private fun SerialDescriptor.getTarsTagId(index: Int): Int {
|
||||
// higher performance, don't use filterIsInstance
|
||||
val annotation = getElementAnnotations(index).firstOrNull { it is TarsId }
|
||||
?: error("missing @TarsId for ${getElementName(index)} in ${this.serialName}")
|
||||
return (annotation as TarsId).id
|
||||
|
||||
}
|
||||
|
||||
private val SimpleByteArrayReader: SimpleByteArrayReaderImpl = SimpleByteArrayReaderImpl()
|
||||
|
||||
private inner class SimpleByteArrayReaderImpl : AbstractDecoder() {
|
||||
override fun decodeSequentially(): Boolean = true
|
||||
|
||||
override fun endStructure(descriptor: SerialDescriptor) {
|
||||
this@TarsDecoder.endStructure(descriptor)
|
||||
}
|
||||
|
||||
override fun beginStructure(descriptor: SerialDescriptor): CompositeDecoder {
|
||||
this@TarsDecoder.pushTag(TarsTagListElement)
|
||||
return this@TarsDecoder.beginStructure(descriptor)
|
||||
}
|
||||
|
||||
override fun decodeByte(): Byte = input.input.readByte()
|
||||
override fun decodeShort(): Short = error("illegal access")
|
||||
override fun decodeInt(): Int = error("illegal access")
|
||||
override fun decodeLong(): Long = error("illegal access")
|
||||
override fun decodeFloat(): Float = error("illegal access")
|
||||
override fun decodeDouble(): Double = error("illegal access")
|
||||
override fun decodeBoolean(): Boolean = error("illegal access")
|
||||
override fun decodeChar(): Char = error("illegal access")
|
||||
override fun decodeEnum(enumDescriptor: SerialDescriptor): Int = error("illegal access")
|
||||
override fun decodeString(): String = error("illegal access")
|
||||
|
||||
override fun decodeElementIndex(descriptor: SerialDescriptor): Int {
|
||||
error("should not be reached")
|
||||
}
|
||||
|
||||
override fun decodeCollectionSize(descriptor: SerialDescriptor): Int {
|
||||
// 不要读下一个 head
|
||||
return input.currentHead.let { input.readTarsIntValue(it) }
|
||||
}
|
||||
}
|
||||
|
||||
private val ListReader: ListReaderImpl = ListReaderImpl()
|
||||
|
||||
private inner class ListReaderImpl : AbstractDecoder() {
|
||||
override fun decodeSequentially(): Boolean = true
|
||||
override fun decodeElementIndex(descriptor: SerialDescriptor): Int = error("should not be reached")
|
||||
override fun endStructure(descriptor: SerialDescriptor) {
|
||||
this@TarsDecoder.endStructure(descriptor)
|
||||
}
|
||||
|
||||
override fun beginStructure(descriptor: SerialDescriptor): CompositeDecoder {
|
||||
this@TarsDecoder.pushTag(TarsTagListElement)
|
||||
|
||||
return this@TarsDecoder.beginStructure(descriptor)
|
||||
}
|
||||
|
||||
override fun decodeByte(): Byte = input.useHead { input.readTarsByteValue(it) }
|
||||
override fun decodeShort(): Short = input.useHead { input.readTarsShortValue(it) }
|
||||
override fun decodeInt(): Int = input.useHead { input.readTarsIntValue(it) }
|
||||
override fun decodeLong(): Long = input.useHead { input.readTarsLongValue(it) }
|
||||
override fun decodeFloat(): Float = input.useHead { input.readTarsFloatValue(it) }
|
||||
override fun decodeDouble(): Double = input.useHead { input.readTarsDoubleValue(it) }
|
||||
override fun decodeBoolean(): Boolean = input.useHead { input.readTarsBooleanValue(it) }
|
||||
override fun decodeChar(): Char = decodeByte().toChar()
|
||||
override fun decodeEnum(enumDescriptor: SerialDescriptor): Int = decodeInt()
|
||||
override fun decodeString(): String = input.useHead { input.readTarsStringValue(it) }
|
||||
|
||||
override fun decodeCollectionSize(descriptor: SerialDescriptor): Int {
|
||||
//println("decodeCollectionSize: ${descriptor.serialName}")
|
||||
// 不读下一个 head
|
||||
return input.useHead { input.readTarsIntValue(it) }
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private val MapReader: MapReaderImpl = MapReaderImpl()
|
||||
|
||||
private inner class MapReaderImpl : AbstractDecoder() {
|
||||
override fun decodeSequentially(): Boolean = true
|
||||
override fun decodeElementIndex(descriptor: SerialDescriptor): Int = error("stub")
|
||||
|
||||
override fun endStructure(descriptor: SerialDescriptor) {
|
||||
this@TarsDecoder.endStructure(descriptor)
|
||||
}
|
||||
|
||||
override fun beginStructure(descriptor: SerialDescriptor): CompositeDecoder {
|
||||
println { "MapReader.beginStructure: ${input.currentHead}" }
|
||||
this@TarsDecoder.pushTag(
|
||||
when (input.currentHead.tag) {
|
||||
0 -> TarsTagMapEntryKey
|
||||
1 -> TarsTagMapEntryValue
|
||||
else -> error("illegal map entry head: ${input.currentHead.tag}")
|
||||
}
|
||||
)
|
||||
return this@TarsDecoder.beginStructure(descriptor)
|
||||
}
|
||||
|
||||
override fun decodeByte(): Byte = input.useHead { input.readTarsByteValue(it) }
|
||||
override fun decodeShort(): Short = input.useHead { input.readTarsShortValue(it) }
|
||||
override fun decodeInt(): Int = input.useHead { input.readTarsIntValue(it) }
|
||||
override fun decodeLong(): Long = input.useHead { input.readTarsLongValue(it) }
|
||||
override fun decodeFloat(): Float = input.useHead { input.readTarsFloatValue(it) }
|
||||
override fun decodeDouble(): Double = input.useHead { input.readTarsDoubleValue(it) }
|
||||
|
||||
override fun decodeBoolean(): Boolean = input.useHead { input.readTarsBooleanValue(it) }
|
||||
override fun decodeChar(): Char = decodeByte().toChar()
|
||||
override fun decodeEnum(enumDescriptor: SerialDescriptor): Int = decodeInt()
|
||||
override fun decodeString(): String = input.useHead { input.readTarsStringValue(it) }
|
||||
|
||||
override fun decodeCollectionSize(descriptor: SerialDescriptor): Int {
|
||||
println { "decodeCollectionSize in MapReader: ${descriptor.serialName}" }
|
||||
// 不读下一个 head
|
||||
return input.useHead { input.readTarsIntValue(it) }
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
override fun endStructure(descriptor: SerialDescriptor) {
|
||||
structureHierarchy--
|
||||
println { "endStructure: ${descriptor.serialName}" }
|
||||
if (currentTagOrNull?.isSimpleByteArray == true) {
|
||||
input.prepareNextHead() // read to next head
|
||||
}
|
||||
if (descriptor.kind == StructureKind.CLASS) {
|
||||
if (currentTagOrNull == null) {
|
||||
return
|
||||
}
|
||||
while (true) {
|
||||
val currentHead = input.currentHeadOrNull ?: return
|
||||
if (currentHead.type == Tars.STRUCT_END) {
|
||||
input.prepareNextHead()
|
||||
//println("current end")
|
||||
break
|
||||
}
|
||||
//println("current $currentHead")
|
||||
input.skipField(currentHead.type)
|
||||
input.prepareNextHead()
|
||||
}
|
||||
// pushTag(TarsTag(0, true))
|
||||
// skip STRUCT_END
|
||||
// popTag()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
companion object {
|
||||
@Suppress("MemberVisibilityCanBePrivate")
|
||||
var debuggingMode: Boolean = false
|
||||
|
||||
var structureHierarchy: Int = 0
|
||||
|
||||
inline fun println(value: () -> String) {
|
||||
if (debuggingMode) {
|
||||
kotlin.io.println(" ".repeat(structureHierarchy) + value())
|
||||
}
|
||||
}
|
||||
|
||||
@Suppress("NOTHING_TO_INLINE")
|
||||
inline fun println(value: Any? = "") {
|
||||
if (debuggingMode) {
|
||||
kotlin.io.println(" ".repeat(structureHierarchy) + value)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun beginStructure(descriptor: SerialDescriptor): CompositeDecoder {
|
||||
println()
|
||||
println { "beginStructure: ${descriptor.serialName}" }
|
||||
structureHierarchy++
|
||||
return when (descriptor.kind) {
|
||||
is PrimitiveKind -> this@TarsDecoder
|
||||
|
||||
StructureKind.MAP -> {
|
||||
//println("!! MAP")
|
||||
val tag = popTag()
|
||||
return input.skipToHeadAndUseIfPossibleOrFail(tag.id) {
|
||||
it.checkType(Tars.MAP, "beginStructure", tag, descriptor)
|
||||
MapReader
|
||||
}
|
||||
}
|
||||
StructureKind.LIST -> {
|
||||
//println("!! ByteArray")
|
||||
//println("decoderTag: $currentTagOrNull")
|
||||
//println("TarsHead: " + Tars.currentHeadOrNull)
|
||||
return input.skipToHeadAndUseIfPossibleOrFail(currentTag.id) {
|
||||
// don't check type. it's polymorphic
|
||||
|
||||
//println("listHead: $it")
|
||||
when (it.type) {
|
||||
Tars.SIMPLE_LIST -> {
|
||||
currentTag.isSimpleByteArray = true
|
||||
input.nextHead() // 无用的元素类型
|
||||
SimpleByteArrayReader
|
||||
}
|
||||
Tars.LIST -> ListReader
|
||||
else -> error("type mismatch. Expected SIMPLE_LIST or LIST, got $it instead")
|
||||
}
|
||||
}
|
||||
}
|
||||
StructureKind.CLASS -> {
|
||||
currentTagOrNull ?: return this@TarsDecoder // outermost
|
||||
|
||||
//println("!! CLASS")
|
||||
//println("decoderTag: $currentTag")
|
||||
//println("TarsHead: " + Tars.currentHeadOrNull)
|
||||
val tag = popTag()
|
||||
return input.skipToHeadAndUseIfPossibleOrFail(tag.id) { TarsHead ->
|
||||
TarsHead.checkType(Tars.STRUCT_BEGIN, "beginStructure", tag, descriptor)
|
||||
|
||||
repeat(descriptor.elementsCount) {
|
||||
pushTag(descriptor.getTag(descriptor.elementsCount - it - 1)) // better performance
|
||||
}
|
||||
this // independent tag stack
|
||||
}
|
||||
}
|
||||
|
||||
StructureKind.OBJECT -> error("unsupported StructureKind.OBJECT: ${descriptor.serialName}")
|
||||
is SerialKind.ENUM -> error("unsupported UnionKind: ${descriptor.serialName}")
|
||||
is PolymorphicKind -> error("unsupported PolymorphicKind: ${descriptor.serialName}")
|
||||
is SerialKind.CONTEXTUAL -> error("unsupported PolymorphicKind: ${descriptor.serialName}")
|
||||
}
|
||||
}
|
||||
|
||||
override fun decodeSequentially(): Boolean = false
|
||||
override fun decodeElementIndex(descriptor: SerialDescriptor): Int {
|
||||
var tarsHead = input.currentHeadOrNull ?: kotlin.run {
|
||||
println("decodeElementIndex: currentHead == null")
|
||||
return CompositeDecoder.DECODE_DONE
|
||||
}
|
||||
|
||||
println { "decodeElementIndex: ${input.currentHead}" }
|
||||
while (!input.input.endOfInput) {
|
||||
if (tarsHead.type == Tars.STRUCT_END) {
|
||||
println { "decodeElementIndex: ${input.currentHead}" }
|
||||
return CompositeDecoder.DECODE_DONE
|
||||
}
|
||||
|
||||
repeat(descriptor.elementsCount) {
|
||||
val tag = descriptor.getTarsTagId(it)
|
||||
if (tag == tarsHead.tag) {
|
||||
println {
|
||||
"name=" + descriptor.getElementName(
|
||||
it
|
||||
)
|
||||
}
|
||||
return it
|
||||
}
|
||||
}
|
||||
|
||||
input.skipField(tarsHead.type)
|
||||
if (!input.prepareNextHead()) {
|
||||
println { "decodeElementIndex EOF" }
|
||||
break
|
||||
}
|
||||
tarsHead = input.currentHead
|
||||
println { "next! $tarsHead" }
|
||||
}
|
||||
|
||||
return CompositeDecoder.DECODE_DONE // optional support
|
||||
}
|
||||
|
||||
override fun decodeTaggedInt(tag: TarsTag): Int =
|
||||
kotlin.runCatching { input.skipToHeadAndUseIfPossibleOrFail(tag.id) { input.readTarsIntValue(it) } }.getOrElse {
|
||||
throw IllegalStateException("$tag", it)
|
||||
}
|
||||
|
||||
override fun decodeTaggedByte(tag: TarsTag): Byte =
|
||||
kotlin.runCatching { input.skipToHeadAndUseIfPossibleOrFail(tag.id) { input.readTarsByteValue(it) } }.getOrElse {
|
||||
throw IllegalStateException("$tag", it)
|
||||
}
|
||||
|
||||
override fun decodeTaggedBoolean(tag: TarsTag): Boolean =
|
||||
input.skipToHeadAndUseIfPossibleOrFail(tag.id) { input.readTarsBooleanValue(it) }
|
||||
|
||||
override fun decodeTaggedFloat(tag: TarsTag): Float =
|
||||
input.skipToHeadAndUseIfPossibleOrFail(tag.id) { input.readTarsFloatValue(it) }
|
||||
|
||||
override fun decodeTaggedDouble(tag: TarsTag): Double =
|
||||
input.skipToHeadAndUseIfPossibleOrFail(tag.id) { input.readTarsDoubleValue(it) }
|
||||
|
||||
override fun decodeTaggedShort(tag: TarsTag): Short =
|
||||
input.skipToHeadAndUseIfPossibleOrFail(tag.id) { input.readTarsShortValue(it) }
|
||||
|
||||
override fun decodeTaggedLong(tag: TarsTag): Long =
|
||||
input.skipToHeadAndUseIfPossibleOrFail(tag.id) { input.readTarsLongValue(it) }
|
||||
|
||||
override fun decodeTaggedString(tag: TarsTag): String =
|
||||
input.skipToHeadAndUseIfPossibleOrFail(tag.id) { input.readTarsStringValue(it) }
|
||||
|
||||
override fun decodeTaggedNotNullMark(tag: TarsTag): Boolean {
|
||||
return input.skipToHeadOrNull(tag.id) != null
|
||||
}
|
||||
}
|
@ -0,0 +1,260 @@
|
||||
/*
|
||||
* Copyright 2020 Mamoe Technologies and contributors.
|
||||
*
|
||||
* 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证.
|
||||
* Use of this source code is governed by the GNU AGPLv3 license that can be found through the following link.
|
||||
*
|
||||
* https://github.com/mamoe/mirai/blob/master/LICENSE
|
||||
*/
|
||||
|
||||
package net.mamoe.mirai.qqandroid.utils.io.serialization.tars.internal
|
||||
|
||||
import kotlinx.io.charsets.Charset
|
||||
import kotlinx.io.core.*
|
||||
import net.mamoe.mirai.qqandroid.utils.io.serialization.tars.Tars
|
||||
|
||||
|
||||
/**
|
||||
* Tars Input. 需要手动管理 head.
|
||||
*/
|
||||
internal class TarsInput(
|
||||
val input: Input, private val charset: Charset
|
||||
) {
|
||||
private var _head: TarsHead? = null
|
||||
|
||||
val currentHead: TarsHead get() = _head ?: throw EOFException("No current TarsHead available")
|
||||
val currentHeadOrNull: TarsHead? get() = _head
|
||||
|
||||
init {
|
||||
prepareNextHead()
|
||||
}
|
||||
|
||||
/**
|
||||
* 读取下一个 [TarsHead] 并保存. 可通过 [currentHead] 获取这个 [TarsHead].
|
||||
*
|
||||
* @return 是否成功读取. 返回 `false` 时代表 [Input.endOfInput]
|
||||
*/
|
||||
fun prepareNextHead(): Boolean {
|
||||
return readNextHeadButDoNotAssignTo_Head().also { _head = it; } != null
|
||||
}
|
||||
|
||||
fun nextHead(): TarsHead {
|
||||
if (!prepareNextHead()) {
|
||||
throw EOFException("No more TarsHead available")
|
||||
}
|
||||
return currentHead
|
||||
}
|
||||
|
||||
/**
|
||||
* 直接读取下一个 [TarsHead] 并返回.
|
||||
* 返回 `null` 则代表 [Input.endOfInput]
|
||||
*/
|
||||
@Suppress("FunctionName")
|
||||
@OptIn(ExperimentalUnsignedTypes::class)
|
||||
private fun readNextHeadButDoNotAssignTo_Head(): TarsHead? {
|
||||
if (input.endOfInput) {
|
||||
return null
|
||||
}
|
||||
val var2 = input.readUByte()
|
||||
val type = var2 and 15u
|
||||
var tag = var2.toUInt() shr 4
|
||||
if (tag == 15u) {
|
||||
tag = input.readUByte().toUInt()
|
||||
}
|
||||
return TarsHead(
|
||||
tag = tag.toInt(),
|
||||
type = type.toByte()
|
||||
)
|
||||
}
|
||||
|
||||
/**
|
||||
* 使用这个 [TarsHead].
|
||||
* [block] 结束后将会 [准备下一个 [TarsHead]][prepareNextHead]
|
||||
*/
|
||||
inline fun <R> useHead(crossinline block: (TarsHead) -> R): R {
|
||||
return currentHead.let(block).also { prepareNextHead() }
|
||||
}
|
||||
|
||||
/**
|
||||
* 跳过 [TarsHead] 和对应的数据值, 直到找到 [tag], 否则返回 `null`
|
||||
*/
|
||||
inline fun <R> skipToHeadAndUseIfPossibleOrNull(tag: Int, crossinline block: (TarsHead) -> R): R? {
|
||||
return skipToHeadOrNull(tag)?.let(block).also { prepareNextHead() }
|
||||
}
|
||||
|
||||
/**
|
||||
* 跳过 [TarsHead] 和对应的数据值, 直到找到 [tag], 否则抛出异常
|
||||
*/
|
||||
inline fun <R : Any> skipToHeadAndUseIfPossibleOrFail(
|
||||
tag: Int,
|
||||
crossinline message: () -> String = { "tag not found: $tag" },
|
||||
crossinline block: (TarsHead) -> R
|
||||
): R {
|
||||
return checkNotNull<R>(skipToHeadAndUseIfPossibleOrNull(tag, block), message)
|
||||
}
|
||||
|
||||
tailrec fun skipToHeadOrNull(tag: Int): TarsHead? {
|
||||
val current: TarsHead = currentHeadOrNull ?: return null // no backing field
|
||||
|
||||
return when {
|
||||
current.tag > tag -> null // tag 大了,即找不到
|
||||
current.tag == tag -> current // 满足需要.
|
||||
else -> { // tag 小了
|
||||
skipField(current.type)
|
||||
check(prepareNextHead()) { "cannot skip to tag $tag, early EOF" }
|
||||
skipToHeadOrNull(tag)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@OptIn(ExperimentalUnsignedTypes::class)
|
||||
@PublishedApi
|
||||
internal fun skipField(type: Byte) {
|
||||
TarsDecoder.println {
|
||||
"skipping ${
|
||||
TarsHead.findTarsTypeName(
|
||||
type
|
||||
)
|
||||
}"
|
||||
}
|
||||
when (type) {
|
||||
Tars.BYTE -> this.input.discardExact(1)
|
||||
Tars.SHORT -> this.input.discardExact(2)
|
||||
Tars.INT -> this.input.discardExact(4)
|
||||
Tars.LONG -> this.input.discardExact(8)
|
||||
Tars.FLOAT -> this.input.discardExact(4)
|
||||
Tars.DOUBLE -> this.input.discardExact(8)
|
||||
Tars.STRING1 -> this.input.discardExact(this.input.readUByte().toInt())
|
||||
Tars.STRING4 -> this.input.discardExact(this.input.readInt())
|
||||
Tars.MAP -> { // map
|
||||
TarsDecoder.structureHierarchy++
|
||||
var count = 0
|
||||
nextHead() // avoid shadowing, don't remove
|
||||
repeat(skipToHeadAndUseIfPossibleOrFail(0, message = { "tag 0 not found when skipping map" }) { head ->
|
||||
readTarsIntValue(head).also { count = it * 2 }
|
||||
} * 2) {
|
||||
skipField(currentHead.type)
|
||||
if (it != count - 1) { // don't read last head
|
||||
nextHead()
|
||||
}
|
||||
}
|
||||
TarsDecoder.structureHierarchy--
|
||||
}
|
||||
Tars.LIST -> { // list
|
||||
TarsDecoder.structureHierarchy++
|
||||
var count = 0
|
||||
nextHead() // avoid shadowing, don't remove
|
||||
repeat(skipToHeadAndUseIfPossibleOrFail(0, message = { "tag 0 not found when skipping list" }) { head ->
|
||||
readTarsIntValue(head).also { count = it }
|
||||
}) {
|
||||
skipField(currentHead.type)
|
||||
if (it != count - 1) { // don't read last head
|
||||
nextHead()
|
||||
}
|
||||
}
|
||||
if (count == 0) {
|
||||
|
||||
}
|
||||
TarsDecoder.structureHierarchy--
|
||||
}
|
||||
Tars.STRUCT_BEGIN -> {
|
||||
TarsDecoder.structureHierarchy++
|
||||
var head: TarsHead
|
||||
do {
|
||||
head = nextHead()
|
||||
skipField(head.type)
|
||||
} while (head.type != Tars.STRUCT_END)
|
||||
TarsDecoder.structureHierarchy--
|
||||
}
|
||||
Tars.STRUCT_END, Tars.ZERO_TYPE -> {
|
||||
}
|
||||
Tars.SIMPLE_LIST -> {
|
||||
TarsDecoder.structureHierarchy++
|
||||
var head = nextHead()
|
||||
check(head.type == Tars.BYTE) { "bad simple list element type: " + head.type }
|
||||
check(head.tag == 0) { "simple list element tag must be 0, but was ${head.tag}" }
|
||||
|
||||
head = nextHead()
|
||||
check(head.tag == 0) { "tag for size for simple list must be 0, but was ${head.tag}" }
|
||||
this.input.discardExact(readTarsIntValue(head))
|
||||
TarsDecoder.structureHierarchy--
|
||||
}
|
||||
else -> error("invalid type: $type")
|
||||
}
|
||||
}
|
||||
|
||||
// region readers
|
||||
fun readTarsIntValue(head: TarsHead): Int {
|
||||
//println("readTarsIntValue: $head")
|
||||
return when (head.type) {
|
||||
Tars.ZERO_TYPE -> 0
|
||||
Tars.BYTE -> input.readByte().toInt()
|
||||
Tars.SHORT -> input.readShort().toInt()
|
||||
Tars.INT -> input.readInt()
|
||||
else -> error("type mismatch: $head")
|
||||
}
|
||||
}
|
||||
|
||||
fun readTarsShortValue(head: TarsHead): Short {
|
||||
return when (head.type) {
|
||||
Tars.ZERO_TYPE -> 0
|
||||
Tars.BYTE -> input.readByte().toShort()
|
||||
Tars.SHORT -> input.readShort()
|
||||
else -> error("type mismatch: $head")
|
||||
}
|
||||
}
|
||||
|
||||
fun readTarsLongValue(head: TarsHead): Long {
|
||||
return when (head.type) {
|
||||
Tars.ZERO_TYPE -> 0
|
||||
Tars.BYTE -> input.readByte().toLong()
|
||||
Tars.SHORT -> input.readShort().toLong()
|
||||
Tars.INT -> input.readInt().toLong()
|
||||
Tars.LONG -> input.readLong()
|
||||
else -> error("type mismatch ${head.type}")
|
||||
}
|
||||
}
|
||||
|
||||
fun readTarsByteValue(head: TarsHead): Byte {
|
||||
//println("readTarsByteValue: $head")
|
||||
return when (head.type) {
|
||||
Tars.ZERO_TYPE -> 0
|
||||
Tars.BYTE -> input.readByte()
|
||||
else -> error("type mismatch: $head")
|
||||
}
|
||||
}
|
||||
|
||||
fun readTarsFloatValue(head: TarsHead): Float {
|
||||
return when (head.type) {
|
||||
Tars.ZERO_TYPE -> 0f
|
||||
Tars.FLOAT -> input.readFloat()
|
||||
else -> error("type mismatch: $head")
|
||||
}
|
||||
}
|
||||
|
||||
@OptIn(ExperimentalUnsignedTypes::class)
|
||||
fun readTarsStringValue(head: TarsHead): String {
|
||||
//println("readTarsStringValue: $head")
|
||||
return when (head.type) {
|
||||
Tars.STRING1 -> input.readString(input.readUByte().toInt(), charset = charset)
|
||||
Tars.STRING4 -> input.readString(
|
||||
input.readUInt().toInt().also { require(it in 1 until 104857600) { "bad string length: $it" } },
|
||||
charset = charset
|
||||
)
|
||||
else -> error("type mismatch: $head, expecting 6 or 7 (for string)")
|
||||
}
|
||||
}
|
||||
|
||||
fun readTarsDoubleValue(head: TarsHead): Double {
|
||||
return when (head.type.toInt()) {
|
||||
12 -> 0.0
|
||||
4 -> input.readFloat().toDouble()
|
||||
5 -> input.readDouble()
|
||||
else -> error("type mismatch: $head")
|
||||
}
|
||||
}
|
||||
|
||||
fun readTarsBooleanValue(head: TarsHead): Boolean {
|
||||
return readTarsByteValue(head) == 1.toByte()
|
||||
}
|
||||
}
|
@ -0,0 +1,324 @@
|
||||
/*
|
||||
* Copyright 2020 Mamoe Technologies and contributors.
|
||||
*
|
||||
* 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证.
|
||||
* Use of this source code is governed by the GNU AGPLv3 license that can be found through the following link.
|
||||
*
|
||||
* https://github.com/mamoe/mirai/blob/master/LICENSE
|
||||
*/
|
||||
|
||||
package net.mamoe.mirai.qqandroid.utils.io.serialization.tars.internal
|
||||
|
||||
import kotlinx.io.charsets.Charset
|
||||
import kotlinx.io.charsets.Charsets
|
||||
import kotlinx.io.core.*
|
||||
import kotlinx.serialization.*
|
||||
import kotlinx.serialization.builtins.MapEntrySerializer
|
||||
import kotlinx.serialization.builtins.SetSerializer
|
||||
import kotlinx.serialization.descriptors.PolymorphicKind
|
||||
import kotlinx.serialization.descriptors.PrimitiveKind
|
||||
import kotlinx.serialization.descriptors.SerialDescriptor
|
||||
import kotlinx.serialization.descriptors.StructureKind
|
||||
import kotlinx.serialization.encoding.CompositeEncoder
|
||||
import kotlinx.serialization.internal.MapLikeSerializer
|
||||
import kotlinx.serialization.internal.TaggedEncoder
|
||||
import kotlinx.serialization.modules.EmptySerializersModule
|
||||
import kotlinx.serialization.modules.SerializersModule
|
||||
import net.mamoe.mirai.qqandroid.utils.io.serialization.tars.Tars.Companion.BYTE
|
||||
import net.mamoe.mirai.qqandroid.utils.io.serialization.tars.Tars.Companion.DOUBLE
|
||||
import net.mamoe.mirai.qqandroid.utils.io.serialization.tars.Tars.Companion.FLOAT
|
||||
import net.mamoe.mirai.qqandroid.utils.io.serialization.tars.Tars.Companion.INT
|
||||
import net.mamoe.mirai.qqandroid.utils.io.serialization.tars.Tars.Companion.LIST
|
||||
import net.mamoe.mirai.qqandroid.utils.io.serialization.tars.Tars.Companion.LONG
|
||||
import net.mamoe.mirai.qqandroid.utils.io.serialization.tars.Tars.Companion.MAP
|
||||
import net.mamoe.mirai.qqandroid.utils.io.serialization.tars.Tars.Companion.SHORT
|
||||
import net.mamoe.mirai.qqandroid.utils.io.serialization.tars.Tars.Companion.SIMPLE_LIST
|
||||
import net.mamoe.mirai.qqandroid.utils.io.serialization.tars.Tars.Companion.STRING1
|
||||
import net.mamoe.mirai.qqandroid.utils.io.serialization.tars.Tars.Companion.STRING4
|
||||
import net.mamoe.mirai.qqandroid.utils.io.serialization.tars.Tars.Companion.STRUCT_BEGIN
|
||||
import net.mamoe.mirai.qqandroid.utils.io.serialization.tars.Tars.Companion.STRUCT_END
|
||||
import net.mamoe.mirai.qqandroid.utils.io.serialization.tars.Tars.Companion.Tars_MAX_STRING_LENGTH
|
||||
import net.mamoe.mirai.qqandroid.utils.io.serialization.tars.Tars.Companion.ZERO_TYPE
|
||||
import net.mamoe.mirai.qqandroid.utils.io.serialization.tars.TarsId
|
||||
|
||||
@OptIn(ExperimentalSerializationApi::class)
|
||||
internal inline fun <reified A : Annotation> SerialDescriptor.findAnnotation(elementIndex: Int): A? {
|
||||
val candidates = getElementAnnotations(elementIndex).filterIsInstance<A>()
|
||||
return when (candidates.size) {
|
||||
0 -> null
|
||||
1 -> candidates[0]
|
||||
else -> throw IllegalStateException("There are duplicate annotations of type ${A::class} in the descriptor $this")
|
||||
}
|
||||
}
|
||||
|
||||
internal fun getSerialId(desc: SerialDescriptor, index: Int): Int? = desc.findAnnotation<TarsId>(index)?.id
|
||||
|
||||
//@Suppress("DEPRECATION_ERROR")
|
||||
@OptIn(InternalSerializationApi::class, ExperimentalSerializationApi::class)
|
||||
internal class TarsOld internal constructor(private val charset: Charset, override val serializersModule: SerializersModule = EmptySerializersModule) :
|
||||
SerialFormat, BinaryFormat {
|
||||
|
||||
private inner class ListWriter(
|
||||
private val count: Int,
|
||||
private val tag: Int,
|
||||
private val parentEncoder: TarsEncoder
|
||||
) : TarsEncoder(BytePacketBuilder()) {
|
||||
override fun SerialDescriptor.getTag(index: Int): Int {
|
||||
return 0
|
||||
}
|
||||
|
||||
override fun endEncode(descriptor: SerialDescriptor) {
|
||||
parentEncoder.writeHead(LIST, this.tag)
|
||||
parentEncoder.encodeTaggedInt(0, count)
|
||||
parentEncoder.output.writePacket(this.output.build())
|
||||
}
|
||||
}
|
||||
|
||||
private inner class TarsMapWriter(
|
||||
output: BytePacketBuilder
|
||||
) : TarsEncoder(output) {
|
||||
override fun SerialDescriptor.getTag(index: Int): Int {
|
||||
return if (index % 2 == 0) 0 else 1
|
||||
}
|
||||
|
||||
/*
|
||||
override fun endEncode(desc: SerialDescriptor) {
|
||||
parentEncoder.writeHead(MAP, this.tag)
|
||||
parentEncoder.encodeTaggedInt(Int.STUB_FOR_PRIMITIVE_NUMBERS_GBK, count)
|
||||
// println(this.output.toByteArray().toUHexString())
|
||||
parentEncoder.output.write(this.output.toByteArray())
|
||||
}*/
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* From: com.qq.taf.Tars.TarsOutputStream
|
||||
*/
|
||||
@Suppress("unused", "MemberVisibilityCanBePrivate")
|
||||
@OptIn(ExperimentalIoApi::class)
|
||||
private open inner class TarsEncoder(
|
||||
val output: BytePacketBuilder
|
||||
) : TaggedEncoder<Int>() {
|
||||
override val serializersModule get() = this@TarsOld.serializersModule
|
||||
|
||||
override fun SerialDescriptor.getTag(index: Int): Int {
|
||||
return getSerialId(this, index) ?: error("cannot find @SerialId")
|
||||
}
|
||||
|
||||
/**
|
||||
* 序列化最开始的时候的
|
||||
*/
|
||||
override fun beginStructure(
|
||||
descriptor: SerialDescriptor
|
||||
): CompositeEncoder =
|
||||
when (descriptor.kind) {
|
||||
StructureKind.LIST -> this
|
||||
StructureKind.MAP -> this
|
||||
StructureKind.CLASS, StructureKind.OBJECT -> this
|
||||
is PolymorphicKind -> this
|
||||
else -> throw SerializationException("Primitives are not supported at top-level")
|
||||
}
|
||||
|
||||
@Suppress("UNCHECKED_CAST", "NAME_SHADOWING")
|
||||
override fun <T> encodeSerializableValue(serializer: SerializationStrategy<T>, value: T) = when {
|
||||
serializer.descriptor.kind == StructureKind.MAP -> {
|
||||
try {
|
||||
val entries = (value as Map<*, *>).entries
|
||||
val serializer = (serializer as MapLikeSerializer<Any?, Any?, T, *>)
|
||||
val mapEntrySerial = MapEntrySerializer(serializer.keySerializer, serializer.valueSerializer)
|
||||
|
||||
this.writeHead(MAP, currentTag)
|
||||
this.encodeTaggedInt(0, entries.count())
|
||||
SetSerializer(mapEntrySerial).serialize(TarsMapWriter(this.output), entries)
|
||||
} catch (e: Exception) {
|
||||
super.encodeSerializableValue(serializer, value)
|
||||
}
|
||||
}
|
||||
serializer.descriptor.kind == StructureKind.LIST
|
||||
&& value is ByteArray -> encodeTaggedByteArray(popTag(), value as ByteArray)
|
||||
serializer.descriptor.kind == StructureKind.LIST
|
||||
&& serializer.descriptor.getElementDescriptor(0) is PrimitiveKind -> {
|
||||
serializer.serialize(
|
||||
ListWriter(
|
||||
when (value) {
|
||||
is ShortArray -> value.size
|
||||
is IntArray -> value.size
|
||||
is LongArray -> value.size
|
||||
is FloatArray -> value.size
|
||||
is DoubleArray -> value.size
|
||||
is CharArray -> value.size
|
||||
is ByteArray -> value.size
|
||||
is BooleanArray -> value.size
|
||||
else -> error("unknown array type: ${value.getClassName()}")
|
||||
}, popTag(), this
|
||||
),
|
||||
value
|
||||
)
|
||||
}
|
||||
serializer.descriptor.kind == StructureKind.LIST && value is Array<*> -> {
|
||||
if (serializer.descriptor.getElementDescriptor(0).kind is PrimitiveKind.BYTE) {
|
||||
encodeTaggedByteArray(popTag(), (value as Array<Byte>).toByteArray())
|
||||
} else
|
||||
serializer.serialize(
|
||||
ListWriter((value as Array<*>).size, popTag(), this),
|
||||
value
|
||||
)
|
||||
}
|
||||
serializer.descriptor.kind == StructureKind.LIST -> {
|
||||
serializer.serialize(
|
||||
ListWriter((value as Collection<*>).size, popTag(), this),
|
||||
value
|
||||
)
|
||||
}
|
||||
serializer.descriptor.kind == StructureKind.CLASS -> {
|
||||
if (currentTagOrNull == null) {
|
||||
serializer.serialize(this, value)
|
||||
} else {
|
||||
this.writeHead(STRUCT_BEGIN, popTag())
|
||||
serializer.serialize(TarsEncoder(this.output), value)
|
||||
this.writeHead(STRUCT_END, 0)
|
||||
}
|
||||
}
|
||||
else -> {
|
||||
serializer.serialize(this, value)
|
||||
}
|
||||
}
|
||||
|
||||
public override fun encodeTaggedByte(tag: Int, value: Byte) {
|
||||
if (value.toInt() == 0) {
|
||||
writeHead(ZERO_TYPE, tag)
|
||||
} else {
|
||||
writeHead(BYTE, tag)
|
||||
output.writeByte(value)
|
||||
}
|
||||
}
|
||||
|
||||
public override fun encodeTaggedShort(tag: Int, value: Short) {
|
||||
if (value in Byte.MIN_VALUE..Byte.MAX_VALUE) {
|
||||
encodeTaggedByte(tag, value.toByte())
|
||||
} else {
|
||||
writeHead(SHORT, tag)
|
||||
output.writeShort(value)
|
||||
}
|
||||
}
|
||||
|
||||
public override fun encodeTaggedInt(tag: Int, value: Int) {
|
||||
if (value in Short.MIN_VALUE..Short.MAX_VALUE) {
|
||||
encodeTaggedShort(tag, value.toShort())
|
||||
} else {
|
||||
writeHead(INT, tag)
|
||||
output.writeInt(value)
|
||||
}
|
||||
}
|
||||
|
||||
public override fun encodeTaggedFloat(tag: Int, value: Float) {
|
||||
writeHead(FLOAT, tag)
|
||||
output.writeFloat(value)
|
||||
}
|
||||
|
||||
public override fun encodeTaggedDouble(tag: Int, value: Double) {
|
||||
writeHead(DOUBLE, tag)
|
||||
output.writeDouble(value)
|
||||
}
|
||||
|
||||
public override fun encodeTaggedLong(tag: Int, value: Long) {
|
||||
if (value in Int.MIN_VALUE..Int.MAX_VALUE) {
|
||||
encodeTaggedInt(tag, value.toInt())
|
||||
} else {
|
||||
writeHead(LONG, tag)
|
||||
output.writeLong(value)
|
||||
}
|
||||
}
|
||||
|
||||
public override fun encodeTaggedBoolean(tag: Int, value: Boolean) {
|
||||
encodeTaggedByte(tag, if (value) 1 else 0)
|
||||
}
|
||||
|
||||
public override fun encodeTaggedChar(tag: Int, value: Char) {
|
||||
encodeTaggedByte(tag, value.toByte())
|
||||
}
|
||||
|
||||
public override fun encodeTaggedEnum(tag: Int, enumDescriptor: SerialDescriptor, ordinal: Int) {
|
||||
encodeTaggedInt(tag, ordinal)
|
||||
}
|
||||
|
||||
public override fun encodeTaggedNull(tag: Int) {
|
||||
}
|
||||
|
||||
fun encodeTaggedByteArray(tag: Int, bytes: ByteArray) {
|
||||
writeHead(SIMPLE_LIST, tag)
|
||||
writeHead(BYTE, 0)
|
||||
encodeTaggedInt(0, bytes.size)
|
||||
output.writeFully(bytes)
|
||||
}
|
||||
|
||||
public override fun encodeTaggedString(tag: Int, value: String) {
|
||||
require(value.length <= Tars_MAX_STRING_LENGTH) { "string is too long for tag $tag" }
|
||||
val array = value.toByteArray(charset)
|
||||
if (array.size > 255) {
|
||||
writeHead(STRING4, tag)
|
||||
output.writeInt(array.size)
|
||||
output.writeFully(array)
|
||||
} else {
|
||||
writeHead(STRING1, tag)
|
||||
output.writeByte(array.size.toByte()) // one byte
|
||||
output.writeFully(array)
|
||||
}
|
||||
}
|
||||
|
||||
override fun encodeTaggedValue(tag: Int, value: Any) {
|
||||
when (value) {
|
||||
is Byte -> encodeTaggedByte(tag, value)
|
||||
is Short -> encodeTaggedShort(tag, value)
|
||||
is Int -> encodeTaggedInt(tag, value)
|
||||
is Long -> encodeTaggedLong(tag, value)
|
||||
is Float -> encodeTaggedFloat(tag, value)
|
||||
is Double -> encodeTaggedDouble(tag, value)
|
||||
is Boolean -> encodeTaggedBoolean(tag, value)
|
||||
is String -> encodeTaggedString(tag, value)
|
||||
is Unit -> {
|
||||
}
|
||||
else -> error("unsupported type: ${value.getClassName()}")
|
||||
}
|
||||
}
|
||||
|
||||
fun writeHead(type: Byte, tag: Int) {
|
||||
if (tag < 15) {
|
||||
this.output.writeByte(((tag shl 4) or type.toInt()).toByte())
|
||||
return
|
||||
}
|
||||
if (tag < 256) {
|
||||
this.output.writeByte((type.toInt() or 0xF0).toByte())
|
||||
this.output.writeByte(tag.toByte())
|
||||
return
|
||||
}
|
||||
error("tag is too large: $tag")
|
||||
}
|
||||
}
|
||||
|
||||
@Suppress("MemberVisibilityCanBePrivate")
|
||||
companion object : BinaryFormat by TarsOld(Charsets.UTF_8) {
|
||||
|
||||
private fun Any?.getClassName(): String =
|
||||
(if (this == null) Unit::class else this::class).simpleName?.split(".")?.takeLast(2)?.joinToString(".")
|
||||
?: "<unnamed class>"
|
||||
}
|
||||
|
||||
fun <T> dumpAsPacket(serializer: SerializationStrategy<T>, obj: T): ByteReadPacket {
|
||||
val encoder = BytePacketBuilder()
|
||||
val dumper = TarsEncoder(encoder)
|
||||
dumper.encodeSerializableValue(serializer, obj)
|
||||
return encoder.build()
|
||||
}
|
||||
|
||||
override fun <T> encodeToByteArray(serializer: SerializationStrategy<T>, value: T): ByteArray {
|
||||
return dumpAsPacket(serializer, value).readBytes()
|
||||
}
|
||||
|
||||
override fun <T> decodeFromByteArray(deserializer: DeserializationStrategy<T>, bytes: ByteArray): T {
|
||||
error("Use TarsNew.")
|
||||
}
|
||||
}
|
||||
|
||||
internal fun Input.readString(length: Int, charset: Charset = Charsets.UTF_8): String =
|
||||
String(this.readBytes(length), charset = charset)
|
@ -0,0 +1,107 @@
|
||||
/*
|
||||
* Copyright 2020 Mamoe Technologies and contributors.
|
||||
*
|
||||
* 此源代码的使用受 GNU AFFERO GENERAL PUBLIC LICENSE version 3 许可证的约束, 可以在以下链接找到该许可证.
|
||||
* Use of this source code is governed by the GNU AGPLv3 license that can be found through the following link.
|
||||
*
|
||||
* https://github.com/mamoe/mirai/blob/master/LICENSE
|
||||
*/
|
||||
|
||||
package net.mamoe.mirai.qqandroid.utils.io.serialization.tars.internal
|
||||
|
||||
import kotlinx.io.core.Output
|
||||
import kotlinx.serialization.ExperimentalSerializationApi
|
||||
import kotlinx.serialization.descriptors.SerialDescriptor
|
||||
import net.mamoe.mirai.qqandroid.utils.io.serialization.tars.Tars
|
||||
|
||||
|
||||
internal abstract class TarsTag {
|
||||
abstract val id: Int
|
||||
internal var isSimpleByteArray: Boolean = false
|
||||
}
|
||||
|
||||
internal object TarsTagListElement : TarsTag() {
|
||||
override val id: Int get() = 0
|
||||
override fun toString(): String {
|
||||
return "TarsTagListElement"
|
||||
}
|
||||
}
|
||||
|
||||
internal object TarsTagMapEntryKey : TarsTag() {
|
||||
override val id: Int get() = 0
|
||||
override fun toString(): String {
|
||||
return "TarsTagMapEntryKey"
|
||||
}
|
||||
}
|
||||
|
||||
internal object TarsTagMapEntryValue : TarsTag() {
|
||||
override val id: Int get() = 1
|
||||
override fun toString(): String {
|
||||
return "TarsTagMapEntryValue"
|
||||
}
|
||||
}
|
||||
|
||||
internal data class TarsTagCommon(
|
||||
override val id: Int
|
||||
) : TarsTag()
|
||||
|
||||
@OptIn(ExperimentalSerializationApi::class)
|
||||
internal fun TarsHead.checkType(type: Byte, message: String, tag: TarsTag, descriptor: SerialDescriptor) {
|
||||
check(this.type == type) {
|
||||
"type mismatch. " +
|
||||
"Expected ${TarsHead.findTarsTypeName(type)}, " +
|
||||
"actual ${TarsHead.findTarsTypeName(this.type)} for $message. " +
|
||||
"Tag info: " +
|
||||
"id=${tag.id}, " +
|
||||
"name=${descriptor.getElementName(tag.id)} " +
|
||||
"in ${descriptor.serialName}"
|
||||
}
|
||||
}
|
||||
|
||||
@PublishedApi
|
||||
internal fun Output.writeTarsHead(type: Byte, tag: Int) {
|
||||
if (tag < 15) {
|
||||
writeByte(((tag shl 4) or type.toInt()).toByte())
|
||||
return
|
||||
}
|
||||
if (tag < 256) {
|
||||
writeByte((type.toInt() or 0xF0).toByte())
|
||||
writeByte(tag.toByte())
|
||||
return
|
||||
}
|
||||
error("tag is too large: $tag")
|
||||
}
|
||||
|
||||
@OptIn(ExperimentalUnsignedTypes::class)
|
||||
internal class TarsHead(private val value: Long) {
|
||||
constructor(tag: Int, type: Byte) : this(tag.toLong().shl(32) or type.toLong())
|
||||
|
||||
val tag: Int get() = (value ushr 32).toInt()
|
||||
val type: Byte get() = value.toUInt().toByte()
|
||||
|
||||
override fun toString(): String {
|
||||
return "TarsHead(tag=$tag, type=$type(${findTarsTypeName(type)}))"
|
||||
}
|
||||
|
||||
companion object {
|
||||
fun findTarsTypeName(type: Byte): String {
|
||||
return when (type) {
|
||||
Tars.BYTE -> "Byte"
|
||||
Tars.DOUBLE -> "Double"
|
||||
Tars.FLOAT -> "Float"
|
||||
Tars.INT -> "Int"
|
||||
Tars.LIST -> "List"
|
||||
Tars.LONG -> "Long"
|
||||
Tars.MAP -> "Map"
|
||||
Tars.SHORT -> "Short"
|
||||
Tars.SIMPLE_LIST -> "SimpleList"
|
||||
Tars.STRING1 -> "String1"
|
||||
Tars.STRING4 -> "String4"
|
||||
Tars.STRUCT_BEGIN -> "StructBegin"
|
||||
Tars.STRUCT_END -> "StructEnd"
|
||||
Tars.ZERO_TYPE -> "Zero"
|
||||
else -> error("illegal Tars type: $type")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -16,13 +16,13 @@ import kotlinx.io.core.*
|
||||
import kotlinx.serialization.DeserializationStrategy
|
||||
import kotlinx.serialization.SerializationStrategy
|
||||
import kotlinx.serialization.descriptors.SerialDescriptor
|
||||
import moe.him188.jcekt.Jce
|
||||
import net.mamoe.mirai.qqandroid.network.protocol.data.jce.RequestDataVersion2
|
||||
import net.mamoe.mirai.qqandroid.network.protocol.data.jce.RequestDataVersion3
|
||||
import net.mamoe.mirai.qqandroid.network.protocol.data.jce.RequestPacket
|
||||
import net.mamoe.mirai.qqandroid.utils.io.JceStruct
|
||||
import net.mamoe.mirai.qqandroid.utils.io.ProtoBuf
|
||||
import net.mamoe.mirai.qqandroid.utils.io.readPacketExact
|
||||
import net.mamoe.mirai.qqandroid.utils.io.serialization.tars.Tars
|
||||
import net.mamoe.mirai.qqandroid.utils.read
|
||||
import kotlin.jvm.JvmMultifileClass
|
||||
import kotlin.jvm.JvmName
|
||||
@ -34,20 +34,20 @@ internal fun <T : JceStruct> ByteArray.loadWithUniPacket(
|
||||
|
||||
internal fun <T : JceStruct> ByteArray.loadAs(
|
||||
deserializer: DeserializationStrategy<T>
|
||||
): T = this.read { Jce.UTF_8.load(deserializer, this) }
|
||||
): T = this.read { Tars.UTF_8.load(deserializer, this) }
|
||||
|
||||
internal fun <T : JceStruct> BytePacketBuilder.writeJceStruct(
|
||||
serializer: SerializationStrategy<T>,
|
||||
struct: T
|
||||
) {
|
||||
Jce.UTF_8.dumpTo(serializer, struct, this)
|
||||
Tars.UTF_8.dumpTo(serializer, struct, this)
|
||||
}
|
||||
|
||||
internal fun <T : JceStruct> ByteReadPacket.readJceStruct(
|
||||
serializer: DeserializationStrategy<T>,
|
||||
length: Int = this.remaining.toInt()
|
||||
): T {
|
||||
return Jce.UTF_8.load(serializer, this.readPacketExact(length))
|
||||
return Tars.UTF_8.load(serializer, this.readPacketExact(length))
|
||||
}
|
||||
|
||||
/**
|
||||
@ -99,7 +99,7 @@ private fun <R> ByteReadPacket.decodeUniRequestPacketAndDeserialize(name: String
|
||||
|
||||
internal fun <T : JceStruct> T.toByteArray(
|
||||
serializer: SerializationStrategy<T>
|
||||
): ByteArray = Jce.UTF_8.encodeToByteArray(serializer, this)
|
||||
): ByteArray = Tars.UTF_8.encodeToByteArray(serializer, this)
|
||||
|
||||
internal fun <T : ProtoBuf> BytePacketBuilder.writeProtoBuf(serializer: SerializationStrategy<T>, v: T) {
|
||||
this.writeFully(v.toByteArray(serializer))
|
||||
|
@ -36,7 +36,7 @@ kotlin {
|
||||
)
|
||||
}
|
||||
|
||||
jvm() {
|
||||
jvm {
|
||||
// withJava() // https://youtrack.jetbrains.com/issue/KT-39991
|
||||
}
|
||||
|
||||
@ -51,6 +51,7 @@ kotlin {
|
||||
languageSettings.useExperimentalAnnotation("kotlin.experimental.ExperimentalTypeInference")
|
||||
languageSettings.useExperimentalAnnotation("kotlin.time.ExperimentalTime")
|
||||
languageSettings.useExperimentalAnnotation("kotlin.contracts.ExperimentalContracts")
|
||||
languageSettings.useExperimentalAnnotation("kotlinx.serialization.ExperimentalSerializationApi")
|
||||
|
||||
languageSettings.progressiveMode = true
|
||||
}
|
||||
@ -60,7 +61,7 @@ kotlin {
|
||||
api(kotlin("serialization"))
|
||||
api(kotlin("reflect"))
|
||||
|
||||
api(kotlinx("serialization-runtime", Versions.Kotlin.serialization))
|
||||
api(kotlinx("serialization-core", Versions.Kotlin.serialization))
|
||||
implementation(kotlinx("serialization-protobuf", Versions.Kotlin.serialization))
|
||||
implementation(kotlinx("io", Versions.Kotlin.io))
|
||||
implementation(kotlinx("coroutines-io", Versions.Kotlin.coroutinesIo))
|
||||
@ -131,4 +132,19 @@ kotlin {
|
||||
}
|
||||
}
|
||||
|
||||
apply(from = rootProject.file("gradle/publish.gradle"))
|
||||
apply(from = rootProject.file("gradle/publish.gradle"))
|
||||
|
||||
tasks.withType<com.jfrog.bintray.gradle.tasks.BintrayUploadTask> {
|
||||
doFirst {
|
||||
publishing.publications
|
||||
.filterIsInstance<MavenPublication>()
|
||||
.forEach { publication ->
|
||||
val moduleFile = buildDir.resolve("publications/${publication.name}/module.json")
|
||||
if (moduleFile.exists()) {
|
||||
publication.artifact(object : org.gradle.api.publish.maven.internal.artifact.FileBasedMavenArtifact(moduleFile) {
|
||||
override fun getDefaultExtension() = "module"
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -175,14 +175,15 @@ public abstract class Group : Contact(), CoroutineScope {
|
||||
/**
|
||||
* 上传一个语音消息以备发送.
|
||||
* 请手动关闭输入流
|
||||
* 请使用mar格式
|
||||
* 请使用amr或silk格式
|
||||
* 请注意,这是一个实验性api且随时会被删除
|
||||
* @throws EventCancelledException 当发送消息事件被取消
|
||||
* @throws OverFileSizeMaxException 当图片文件过大而被服务器拒绝上传时. (最大大小约为 1 MB)
|
||||
* @throws OverFileSizeMaxException 当语音文件过大而被服务器拒绝上传时. (最大大小约为 1 MB)
|
||||
*/
|
||||
@JvmSynthetic
|
||||
@MiraiExperimentalAPI
|
||||
public abstract suspend fun uploadGroupVoice(input: InputStream): Voice
|
||||
@SinceMirai("1.2.0")
|
||||
public abstract suspend fun uploadVoice(input: InputStream): Voice
|
||||
|
||||
|
||||
public companion object {
|
||||
|
@ -16,7 +16,7 @@ import kotlinx.serialization.KSerializer
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.json.Json
|
||||
import kotlinx.serialization.protobuf.ProtoBuf
|
||||
import kotlinx.serialization.protobuf.ProtoId
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
import net.mamoe.mirai.utils.*
|
||||
import net.mamoe.mirai.utils.internal.checkOffsetAndLength
|
||||
import kotlin.jvm.JvmOverloads
|
||||
@ -125,9 +125,9 @@ public sealed class CustomMessage : SingleMessage {
|
||||
|
||||
@Serializable
|
||||
private class CustomMessageFullData(
|
||||
@ProtoId(1) val miraiVersionFlag: Int,
|
||||
@ProtoId(2) val typeName: String,
|
||||
@ProtoId(3) val data: ByteArray
|
||||
@ProtoNumber(1) val miraiVersionFlag: Int,
|
||||
@ProtoNumber(2) val typeName: String,
|
||||
@ProtoNumber(3) val data: ByteArray
|
||||
)
|
||||
|
||||
public class CustomMessageFullDataDeserializeInternalException(cause: Throwable?) : RuntimeException(cause)
|
||||
|
@ -12,7 +12,7 @@ package net.mamoe.mirai.utils
|
||||
import kotlinx.serialization.Serializable
|
||||
import kotlinx.serialization.Transient
|
||||
import kotlinx.serialization.protobuf.ProtoBuf
|
||||
import kotlinx.serialization.protobuf.ProtoId
|
||||
import kotlinx.serialization.protobuf.ProtoNumber
|
||||
|
||||
/**
|
||||
* 设备信息. 可通过继承 [SystemDeviceInfo] 来在默认的基础上修改
|
||||
@ -58,15 +58,15 @@ public abstract class DeviceInfo {
|
||||
public fun generateDeviceInfoData(): ByteArray {
|
||||
@Serializable
|
||||
class DevInfo(
|
||||
@ProtoId(1) val bootloader: ByteArray,
|
||||
@ProtoId(2) val procVersion: ByteArray,
|
||||
@ProtoId(3) val codename: ByteArray,
|
||||
@ProtoId(4) val incremental: ByteArray,
|
||||
@ProtoId(5) val fingerprint: ByteArray,
|
||||
@ProtoId(6) val bootId: ByteArray,
|
||||
@ProtoId(7) val androidId: ByteArray,
|
||||
@ProtoId(8) val baseBand: ByteArray,
|
||||
@ProtoId(9) val innerVersion: ByteArray
|
||||
@ProtoNumber(1) val bootloader: ByteArray,
|
||||
@ProtoNumber(2) val procVersion: ByteArray,
|
||||
@ProtoNumber(3) val codename: ByteArray,
|
||||
@ProtoNumber(4) val incremental: ByteArray,
|
||||
@ProtoNumber(5) val fingerprint: ByteArray,
|
||||
@ProtoNumber(6) val bootId: ByteArray,
|
||||
@ProtoNumber(7) val androidId: ByteArray,
|
||||
@ProtoNumber(8) val baseBand: ByteArray,
|
||||
@ProtoNumber(9) val innerVersion: ByteArray
|
||||
)
|
||||
|
||||
return ProtoBuf.encodeToByteArray(
|
||||
|
@ -119,14 +119,15 @@ public suspend fun File.uploadAsImage(contact: Contact): Image {
|
||||
}
|
||||
|
||||
/**
|
||||
* 在 [Dispatchers.IO] 中将文件作为语音上传后构造 [Image]
|
||||
* 在 [Dispatchers.IO] 中将文件作为语音上传后构造 [Voice]
|
||||
* 请手动关闭输入流
|
||||
* 请使用mar格式
|
||||
* 请使用amr或silk格式
|
||||
* 注意,这只是个实验性功能且随时可能会删除
|
||||
* @throws OverFileSizeMaxException
|
||||
*/
|
||||
@Throws(OverFileSizeMaxException::class)
|
||||
@MiraiExperimentalAPI
|
||||
@SinceMirai("1.2.0")
|
||||
public suspend fun InputStream.uploadAsGroupVoice(group: Group): Voice {
|
||||
return group.uploadGroupVoice(this)
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user