Hexchat: 添加对 ZNC 播放模块的支持

创建于 2014-08-24  ·  13评论  ·  资料来源: hexchat/hexchat

高级播放模块 [ 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 的消息。

bounty enhancement

最有用的评论

有关于这方面进展的消息吗?

所有13条评论

我几乎会说这属于插件。 这看起来相当简单,但它比服务器时间更特定于 ZNC。

@jpnurmi 请注意查看https://github.com/hexchat/hexchat/tree/znc

编辑:考虑之后,我认为该插件应该只为每个服务器存储一个时间戳。 没有理由在当前使用情况下为每个上下文保留一个。

看起来很有希望! 不过,我一直在玩弄它,并注意到时间戳出现问题。 它经常重播我已经看过的频道消息。 看起来如果我立即断开连接然后重新连接,我会再次获得相同的播放效果。

我也注意到了,但它不能是插件中的任何东西。 您在 WIP 分支中是否注意到类似的问题?

似乎适用于擦拭/播放。 一些可能有助于解决问题的随机想法:

  • 每个连接一个时间戳就足够了
  • 播放模块将服务器时间添加到除上限消息之外的所有内容
  • 您应该存储任何看到的消息的最后一个时间戳,而不仅仅是 privmsg
  • 在发送初始播放命令之前注意不要取 001 的时间戳,否则您将无法播放:)

每个连接一个时间戳就足够了

已经在本地做了,问题仍然存在。

看起来如果我立即断开连接然后重新连接,我会再次获得相同的播放效果。

我也注意到了,但它不能是插件中的任何东西。

我与 ZNC 短暂断开连接并重新连接,它在断开连接期间发生的通道中向我发送了一条消息(从另一个客户端确认)。 这是_没有_播放支持。 也许它会重试从断开的连接到新连接的未确认发送。 因此,如果 HC 要求播放支持,它可能会收到两次该消息。

有关于这方面进展的消息吗?

@jpnurmi ,404 在你的链接上。 :哭:

我又拍了一个似乎效果更好的插件: https :

我与 ZNC 短暂断开连接并重新连接,它在断开连接期间发生的通道中向我发送了一条消息(从另一个客户端确认)。 这是没有播放支持的。 也许它会重试从断开的连接到新连接的未确认发送。 因此,如果 HC 要求播放支持,它可能会收到两次该消息。

但这不只是标准的 ZNC 缓冲区,与 znc 的 [[playback]] 模块无关。

@TingPing你最近的playback.lua脚本对我来说很好用,尽管我仍然观察到我已经看过的重播消息。 谢谢,虽然这总比没有好:)

@TingPing你最近的

请注意,脚本不会故意将时间戳保存到磁盘。

此页面是否有帮助?
0 / 5 - 0 等级