Hexchat: Добавить поддержку модуля воспроизведения ZNC

Созданный на 24 авг. 2014  ·  13Комментарии  ·  Источник: hexchat/hexchat

Расширенный модуль воспроизведения [ 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.

bounty enhancement

Самый полезный комментарий

Есть новости о ходе этого?

Все 13 Комментарий

Я почти сказал, что это принадлежит плагину. Это кажется довольно простым, но он более специфичен для ZNC, чем для серверного времени.

@jpnurmi Разум проверяю https://github.com/hexchat/hexchat/tree/znc

РЕДАКТИРОВАТЬ: подумав об этом, я думаю, что плагин должен просто хранить одну временную метку для каждого сервера. Нет причин хранить по одному для каждого контекста с текущим использованием.

Выглядит многообещающе! Я играл с этим и заметил, что что-то идет не так с отметками времени. Это часто повторное воспроизведение сообщений канала, которые я уже видел. Похоже, если я сразу отключаюсь, а затем снова подключаюсь, я снова получаю то же воспроизведение.

Я тоже заметил, что в плагине ничего не могло быть. Вы замечали подобные проблемы в своей ветке WIP?

Вроде работает с випом / воспроизведением. Некоторые случайные мысли, которые могут помочь в решении проблемы:

  • достаточно одной временной метки на соединение
  • модуль воспроизведения добавляет серверное время ко всем сообщениям, кроме cap
  • вы должны хранить последнюю метку времени любого увиденного сообщения, а не только privmsg
  • будьте осторожны, чтобы не взять отметку времени 001 перед отправкой начальной команды воспроизведения, иначе вы не получите воспроизведение :)

достаточно одной временной метки на соединение

Уже сделал это на месте, проблема все еще существует.

Похоже, если я сразу отключаюсь, а затем снова подключаюсь, я снова получаю то же воспроизведение.

Я тоже заметил, что в плагине ничего не могло быть.

У меня было короткое отключение и повторное подключение к ZNC, и он отправил мне сообщение в канале, которое произошло во время периода отключения (подтверждено другим клиентом). Это было _без поддержки воспроизведения. Возможно, он повторяет непакетированные посылки с разорванного соединения на новое. Так что, если бы HC запросил поддержку воспроизведения, он, вероятно, получил бы это сообщение дважды.

Есть новости о ходе этого?

@jpnurmi , 404 по вашим ссылкам. :плакать:

Я сделал еще один выстрел в плагин, который, кажется, работает лучше: https://github.com/TingPing/plugins/blob/master/HexChat/playback.lua

У меня было короткое отключение и повторное подключение к ZNC, и он отправил мне сообщение в канале, которое произошло во время периода отключения (подтверждено другим клиентом). Это было без поддержки воспроизведения. Возможно, он повторяет непакетированные посылки с разорванного соединения на новое. Так что, если бы HC запросил поддержку воспроизведения, он, вероятно, получил бы это сообщение дважды.

Но разве это не просто стандартный буфер ZNC? Ничего общего с модулем [[воспроизведение]] для znc.

@TingPing ваш последний playback.lua скрипт у меня работал нормально, хотя я все еще наблюдаю воспроизведение сообщений, которые я уже видел. Спасибо, хотя это лучше, чем ничего :)

@TingPing, ваш последний

Обратите внимание, что сценарий не сохраняет временные метки на диск специально.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги