Расширенный модуль воспроизведения [ 1 ] позволяет IRC-клиентам избежать нежелательного повторяющегося воспроизведения из буфера. Клиенты IRC могут запросить модуль для отправки частичного воспроизведения из буфера, начиная с определенного момента времени.
Более того, последняя версия мастера ZNC [ 2 ] поддерживает постоянные буферы запросов [ 3 ]. Клиент может выбрать сохранение буферов запросов до тех пор, пока они не будут явно закрыты в графическом интерфейсе. Это также проще всего сделать с помощью того же модуля воспроизведения, чтобы избежать нежелательных ответов от ZNC [ 4 ].
Вместе с плагином mymsg [ 5 ] эти две функции позволяют использовать IRC с ZNC на совершенно другом уровне.
РЕДАКТИРОВАТЬ: удалены ссылки на быстрый и грязный пример реализации, который больше не существует. Вилки, на которой он хранился, больше не существует.
[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
PS. Пожалуйста, подумайте о том, чтобы сделать клиента способным получать сообщения от себя без дополнительного плагина mymsg.
Я почти сказал, что это принадлежит плагину. Это кажется довольно простым, но он более специфичен для ZNC, чем для серверного времени.
@jpnurmi Разум проверяю https://github.com/hexchat/hexchat/tree/znc
РЕДАКТИРОВАТЬ: подумав об этом, я думаю, что плагин должен просто хранить одну временную метку для каждого сервера. Нет причин хранить по одному для каждого контекста с текущим использованием.
Выглядит многообещающе! Я играл с этим и заметил, что что-то идет не так с отметками времени. Это часто повторное воспроизведение сообщений канала, которые я уже видел. Похоже, если я сразу отключаюсь, а затем снова подключаюсь, я снова получаю то же воспроизведение.
Я тоже заметил, что в плагине ничего не могло быть. Вы замечали подобные проблемы в своей ветке WIP?
Вроде работает с випом / воспроизведением. Некоторые случайные мысли, которые могут помочь в решении проблемы:
достаточно одной временной метки на соединение
Уже сделал это на месте, проблема все еще существует.
Похоже, если я сразу отключаюсь, а затем снова подключаюсь, я снова получаю то же воспроизведение.
Я тоже заметил, что в плагине ничего не могло быть.
У меня было короткое отключение и повторное подключение к ZNC, и он отправил мне сообщение в канале, которое произошло во время периода отключения (подтверждено другим клиентом). Это было _без поддержки воспроизведения. Возможно, он повторяет непакетированные посылки с разорванного соединения на новое. Так что, если бы HC запросил поддержку воспроизведения, он, вероятно, получил бы это сообщение дважды.
Есть новости о ходе этого?
@jpnurmi , 404 по вашим ссылкам. :плакать:
Я сделал еще один выстрел в плагин, который, кажется, работает лучше: https://github.com/TingPing/plugins/blob/master/HexChat/playback.lua
У меня было короткое отключение и повторное подключение к ZNC, и он отправил мне сообщение в канале, которое произошло во время периода отключения (подтверждено другим клиентом). Это было без поддержки воспроизведения. Возможно, он повторяет непакетированные посылки с разорванного соединения на новое. Так что, если бы HC запросил поддержку воспроизведения, он, вероятно, получил бы это сообщение дважды.
Но разве это не просто стандартный буфер ZNC? Ничего общего с модулем [[воспроизведение]] для znc.
@TingPing ваш последний playback.lua
скрипт у меня работал нормально, хотя я все еще наблюдаю воспроизведение сообщений, которые я уже видел. Спасибо, хотя это лучше, чем ничего :)
@TingPing, ваш последний
Обратите внимание, что сценарий не сохраняет временные метки на диск специально.
Самый полезный комментарий
Есть новости о ходе этого?