Skip to content

Bug: Milky适配器下发送Reaction出错 #529

@HyperCherry

Description

@HyperCherry

描述问题

问题类似于#346
Milky协议中,send_group_message_reaction接收字符串类型的Emoji ID,而不是字符串Emoji

if target.adapter in (SupportAdapter.onebot11, SupportAdapter.qq):
emoji = EMOJI_MAP[status][0]
else:
emoji = EMOJI_MAP[status][1]

可能的解决方案:

-if target.adapter in (SupportAdapter.onebot11, SupportAdapter.qq):
+if target.adapter in (SupportAdapter.onebot11, SupportAdapter.qq, SupportAdapter.milky):
    emoji = EMOJI_MAP[status][0]
else:
    emoji = EMOJI_MAP[status][1]

(这样会越写越长,似乎不太优雅,可以寻找更好的方式)

复现步骤

触发任意的解析

期望的结果

正确发送Reaction

截图或日志

发送Reaction时出现报错,使用Milky协议(Yogurt)

ERROR HttpModule 127.0.0.1 调用 API /send_group_message_reaction(失败 OidbException)
org.ntqqrev.acidify.exception.OidbException: Oidb(cmd=9082, svc=1) failed with 51: invalid ReqBody.EmojiId: value contains invalid strings
    at 0   yogurt.kexe                         0xa37836           kfun:org.ntqqrev.acidify.exception.OidbException#<init>(kotlin.Int;kotlin.Int;kotlin.Int;kotlin.String){} + 1270 
    at 1   yogurt.kexe                         0xc05776           kfun:org.ntqqrev.acidify.internal.service.OidbService#parse(org.ntqqrev.acidify.internal.AbstractClient;kotlin.ByteArray){}1:1 + 486 
    at 2   yogurt.kexe                         0xa3dc52           kfun:org.ntqqrev.acidify.internal.AbstractClient.$callServiceCOROUTINE$2.invokeSuspend#internal + 15394 
    at 3   yogurt.kexe                         0x6989ff           kfun:kotlin.coroutines.native.internal.BaseContinuationImpl#resumeWith(kotlin.Result<kotlin.Any?>){} + 223 
    at 4   yogurt.kexe                         0x77834e           kfun:kotlinx.coroutines.internal.ScopeCoroutine#afterResume(kotlin.Any?){} + 158 
    at 5   yogurt.kexe                         0x73a11a           kfun:kotlinx.coroutines.AbstractCoroutine#resumeWith(kotlin.Result<1:0>){} + 186 
    at 6   yogurt.kexe                         0x698b25           kfun:kotlin.coroutines.native.internal.BaseContinuationImpl#resumeWith(kotlin.Result<kotlin.Any?>){} + 517 
    at 7   yogurt.kexe                         0x775146           kfun:kotlinx.coroutines.DispatchedTask#run(){} + 758 
    at 8   yogurt.kexe                         0x776b94           kfun:kotlinx.coroutines.internal.LimitedDispatcher.Worker.run#internal + 196 
    at 9   yogurt.kexe                         0x7864b3           kfun:kotlinx.coroutines.MultiWorkerDispatcher.MultiWorkerDispatcher$workerRunLoop$1.$invokeCOROUTINE$0.invokeSuspend#internal + 1251 
    at 10  yogurt.kexe                         0x6989ff           kfun:kotlin.coroutines.native.internal.BaseContinuationImpl#resumeWith(kotlin.Result<kotlin.Any?>){} + 223 
    at 11  yogurt.kexe                         0x775146           kfun:kotlinx.coroutines.DispatchedTask#run(){} + 758 
    at 12  yogurt.kexe                         0x746746           kfun:kotlinx.coroutines.EventLoopImplBase#processNextEvent(){}kotlin.Long + 966 
    at 13  yogurt.kexe                         0x7806c3           kfun:kotlinx.coroutines#runBlocking(kotlin.coroutines.CoroutineContext;kotlin.coroutines.SuspendFunction1<kotlinx.coroutines.CoroutineScope,0:0>){0§<kotlin.Any?>}0:0 + 1811 
    at 14  yogurt.kexe                         0x785e96           kfun:kotlinx.coroutines.MultiWorkerDispatcher.MultiWorkerDispatcher$1.MultiWorkerDispatcher$1$invoke$$inlined$apply$1.$<bridge-DN>invoke(){}#internal + 214 
    at 15  yogurt.kexe                         0x1038f95          _ZN6Worker19processQueueElementEb + 1589 
    at 16  yogurt.kexe                         0x10388cc          _ZN12_GLOBAL__N_113workerRoutineEPv + 108 
    at 17  libc.so.6                           0x7fb2f76a5979     0x0 + 140406631848313 
    at 18  libc.so.6                           0x7fb2f77292bb     0x0 + 140406632387259 

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions