高级播放模块 [ 1 ] 使 IRC 客户端可以避免不需要的重复缓冲区播放。 IRC 客户端可以请求模块从某个时间点开始发送部分缓冲区回放。
此外,最新的 ZNC 主站 [ 2 ] 支持持久查询缓冲区 [ 3 ]。 客户端可以选择保留查询缓冲区,直到它们在 GUI 中明确关闭。 这也可以通过相同的播放模块最简单地完成,以避免来自 ZNC [ 4 ] 的不希望的响应。
与 mymsg 插件 [ 5 ] 一起,这两个功能在完全不同的层面上为 ZNC 带来了 IRC 体验。
编辑:删除了对不再存在的快速和肮脏的示例实现的引用。 存储它的叉子不再存在。
[1] http://wiki.znc.in/Playback
[2] https://github.com/znc/znc/pull/598
[3] http://wiki.znc.in/Query_buffers
[4] https://github.com/znc/znc/pull/620
[5] https://github.com/TingPing/plugins/blob/master/HexChat/mymsg.py
附注。 请考虑使客户端能够在没有额外 mymsg 插件的情况下接收来自 self 的消息。
我几乎会说这属于插件。 这看起来相当简单,但它比服务器时间更特定于 ZNC。
@jpnurmi 请注意查看https://github.com/hexchat/hexchat/tree/znc
编辑:考虑之后,我认为该插件应该只为每个服务器存储一个时间戳。 没有理由在当前使用情况下为每个上下文保留一个。
看起来很有希望! 不过,我一直在玩弄它,并注意到时间戳出现问题。 它经常重播我已经看过的频道消息。 看起来如果我立即断开连接然后重新连接,我会再次获得相同的播放效果。
我也注意到了,但它不能是插件中的任何东西。 您在 WIP 分支中是否注意到类似的问题?
似乎适用于擦拭/播放。 一些可能有助于解决问题的随机想法:
每个连接一个时间戳就足够了
已经在本地做了,问题仍然存在。
看起来如果我立即断开连接然后重新连接,我会再次获得相同的播放效果。
我也注意到了,但它不能是插件中的任何东西。
我与 ZNC 短暂断开连接并重新连接,它在断开连接期间发生的通道中向我发送了一条消息(从另一个客户端确认)。 这是_没有_播放支持。 也许它会重试从断开的连接到新连接的未确认发送。 因此,如果 HC 要求播放支持,它可能会收到两次该消息。
有关于这方面进展的消息吗?
@jpnurmi ,404 在你的链接上。 :哭:
我又拍了一个似乎效果更好的插件: https :
我与 ZNC 短暂断开连接并重新连接,它在断开连接期间发生的通道中向我发送了一条消息(从另一个客户端确认)。 这是没有播放支持的。 也许它会重试从断开的连接到新连接的未确认发送。 因此,如果 HC 要求播放支持,它可能会收到两次该消息。
但这不只是标准的 ZNC 缓冲区,与 znc 的 [[playback]] 模块无关。
@TingPing你最近的playback.lua
脚本对我来说很好用,尽管我仍然观察到我已经看过的重播消息。 谢谢,虽然这总比没有好:)
@TingPing你最近的
请注意,脚本不会故意将时间戳保存到磁盘。
最有用的评论
有关于这方面进展的消息吗?