Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(onebot11): add support for market face message #167

Open
wants to merge 11 commits into
base: master
Choose a base branch
from

Conversation

markyfsun
Copy link
Contributor

Should work with LLOneBot/LLOneBot#205

Copy link
Member

@RF-Tar-Railt RF-Tar-Railt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

除非现有的几个qq客户端传过来的信息都是llob那样子,否则我不推荐你采取llob的数据格式

avilla/standard/qq/elements.py Show resolved Hide resolved
@nullqwertyuiop
Copy link
Contributor

MarketFace 似乎没有在 OneBot11 标准中定义,目前不同协议似乎使用了不同的字段 (See Lagrange.OneBot/Message/Entity/MarketFaceSegment.cs#L10-L14),如果使用不同于 LLOneBot 的协议可能会导致无法正常解析

@nullqwertyuiop
Copy link
Contributor

nullqwertyuiop commented Apr 27, 2024

除非现有的几个qq客户端传过来的信息都是llob那样子,否则我不推荐你采取llob的数据格式

LLOneBot 这部分的实现也是他写的,See LLOneBot/LLOneBot#205,而且现在还没 merge 进去

@RF-Tar-Railt
Copy link
Member

要不放弃ob11协议去用新的吧(

@RF-Tar-Railt
Copy link
Member

你还是没按我说的改啊

搞清楚一点,avilla是跨平台框架,所有模型应该是抽象的,而不是依赖于某一具体实现

商城表情并非llonebot独属的元素,mirai协议,chronocat都有这类元素

你照着llonebot写,其他协议端怎么办?

@markyfsun
Copy link
Contributor Author

MarketFace已修改idname
序列化与反序列化的方式保持与LLOneBot一致,因为OneBot11并未规定商城表情的格式,而该PR已经合入LLOneBot。

@GreyElaina
Copy link
Member

目前不同协议似乎使用了不同的字段 (See Lagrange.OneBot/Message/Entity/MarketFaceSegment.cs#L10-L14),如果使用不同于 LLOneBot 的协议可能会导致无法正常解析

罚你重看一遍。

@RF-Tar-Railt
Copy link
Member

RF-Tar-Railt commented May 25, 2024

目前不同协议似乎使用了不同的字段 (See Lagrange.OneBot/Message/Entity/MarketFaceSegment.cs#L10-L14),如果使用不同于 LLOneBot 的协议可能会导致无法正常解析

罚你重看一遍。

https://github.com/KonataDev/Lagrange.Core/blob/master/Lagrange.OneBot%2FMessage%2FEntity%2FMarketFaceSegment.cs

就最新的来看字段仍然不一样

或者llob那边改了

@markyfsun
Copy link
Contributor Author

MarketFace已修改idname。 序列化与反序列化的方式保持与LLOneBot一致,因为OneBot11并未规定商城表情的格式,而该PR已经合入LLOneBot。

OneBot11没有规定商城表情的格式,现在商城表情各家的字段名都不一样。
我现在正在使用LLOneBot,该PR也是我提的。
由于Lagrange的签名服务器是由“外国热心网友”提供的,出于隐私安全考虑,我并没有使用该项目。

OneBot11事实上已经过时了,Avilla是希望以Lagrange作为新的OneBot11拓展标准吗?

@RF-Tar-Railt
Copy link
Member

MarketFace已修改idname。 序列化与反序列化的方式保持与LLOneBot一致,因为OneBot11并未规定商城表情的格式,而该PR已经合入LLOneBot。

OneBot11没有规定商城表情的格式,现在商城表情各家的字段名都不一样。
我现在正在使用LLOneBot,该PR也是我提的。
由于Lagrange的签名服务器是由“外国热心网友”提供的,出于隐私安全考虑,我并没有使用该项目。

OneBot11事实上已经过时了,Avilla是希望以Lagrange作为新的OneBot11拓展标准吗?

因为avilla的ob11还就是标准的ob11,这样能够对接更多的ob协议端。

当然差异这边,llob作者说他与lagrange已经同步了这个商城表情。你可以再等一会看看是lagrange改了还是llob改了

@GreyElaina
Copy link
Member

avilla 允许使用形如 avilla.onebot.llonebot 的命名空间,但 flywheel migrate还没完成。。。

@markyfsun
Copy link
Contributor Author

因为avilla的ob11还就是标准的ob11,这样能够对接更多的ob协议端。

当然差异这边,llob作者说他与lagrange已经同步了这个商城表情。你可以再等一会看看是lagrange改了还是llob改了

好的,LLOneBot修改合并后我也会更新本PR保持适配。


avilla 允许使用形如 avilla.onebot.llonebot 的命名空间,但 flywheel migrate还没完成。。。

ryanvk很有潜力,如果能补充注释和文档,或者在链路中增加日志,那么可以让新人更易上手和Debug。

@nullqwertyuiop
Copy link
Contributor

由于Lagrange的签名服务器是由“外国热心网友”提供的,出于隐私安全考虑,我并没有使用该项目。

Interessant...

@nullqwertyuiop
Copy link
Contributor

nullqwertyuiop commented May 28, 2024

实现 emojiPackageId 对应字段名 emojiId 对应字段名 faceName 对应字段名 key 对应字段名 Reference
LLOneBot emoji_package_id emoji_id summary key Reference
Lagrange.OneBot emoji_package_id emoji_id summary key Reference
NapCatQQ emoji_package_id emoji_id summary key Reference

Warning

该表格仅展示了部分协议实现,由于 OneBot11 标准中没有编写 MarketFace 的规范,也又可能存在其他使用不同字段的协议实现。

Note

Lagrange.OneBot 似乎会在未来更新相关字段。
Lagrange.OneBot 已更改相关字段,包括将 MarketFace 更名为 Mface

@markyfsun
Copy link
Contributor Author

Lagrange.OneBot的商城表情字段已更新到与LLOneBot一致,本PR无需再做适配。

@RF-Tar-Railt
Copy link
Member

RF-Tar-Railt commented Jun 17, 2024

经过研究后,我建议你可以把MarketFace做成这种结构(与ob11大致一致):

@dataclass
class MarketFace(Element):
    """MarketFace对象, 专门表示 QQ 中的商城表情"""

    id: str  # alias: emoji_id
    tab_id: Optional[str] = None  # alias: package_id
    key: Optional[str] = None
    summary: Optional[str] = None  # alias: face_name

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants