Miranda NG Official Community Forum
Miranda NG русскоязычный форум => Плагины => Topic started by: tima_s on 25 04 2018, 05:48:19
-
Здравствуйте.
Установлены плагины historypp и hystory sweeper light.
Хотя, как по мне, логичнее всего в ядро перенести функцию history on/off.
Установлены опции "не сохранять историю для всех контактов" и "удалять историю после закрытия окна сообщений".
Все работает, кроме истории отправленных файлов - они постоянно показываются в окне сообщений.
Можно ли это исправить?
-
Завёл тикет
https://github.com/miranda-ng/miranda-ng/issues/1303
-
Уже больше месяца прошло, но разработчики так и не починили.
-
а там хз что и где фиксить, на самом деле.
я посмотрел бегло - оба плагина не разбирают, какие события тереть, обычные сообщения или файл трансферы. критерий только один - нечитанные сообщения не трутся, а вот почему конкретное окно лога (h++?) не помечает трансфер файла как прочитанный, это отдельный вопрос. лезть же в кучу паскаля никакого удовольствия не доставляет, тем более, что отладчика для него у меня нет
-
Решение: в настройках TabSRMM выставить вместо History++ журналом либо встроенный журнал TabSRMM, либо установить плагин IEView и выбрать его там же в качестве журнала.
-
в настройках TabSRMM выставить вместо History++ журналом либо встроенный журнал TabSRMM, либо установить плагин IEView и выбрать его там же в качестве журнала.
А тогда у меня история вообще автоматически удаляться не будет этими плагинами?
Может все же можно как-то это пофиксить в нормальном режиме, чтобы не залезать в такие дебри?
-
А тогда у меня история вообще автоматически удаляться не будет этими плагинами?
Будет. История ведь не зависит от наличия от History++. Каждый модуль в Миранде делает своё дело. Встроенный в табсы журнал или IEView, или History++ берут историю из базы и показывают пользователю, реализуя тем самым журнал, и помечают события прочитанными (как видим, H++ не все события помечает прочитанными). А NoHistory и HistorySweeper удаляют события из базы. Им нет дела до того, какой там журнал используется.
Соответственно, если один "кирпичик" в этой схеме глючит, его можно спокойно заменить на аналог.
-
А вы не могли бы тыкнуть, где и что настроить?
В Миранде столько настроек, что можно потратить месяц на поиск...
-
Беседы → Журнал. Из выпадающего меню там можно выбрать журнал. Соответственно, нужно выбрать не H++, а встроенный журнал. Если встроенный журнал не нравится, то поставить IEView, который поддерживает шаблоны (https://addons.miranda-ng.org/ru/category/16) (шаблоны = красивое форматирование текста в окне беседы) и выбрать его в том же выпадающем меню.
Миранда тем и хороша, что настроить можно всё, а если что-то не нравится, то поменять на аналог. Не нравится стандартный список контактов - вот аж 3 других. Не нравится окно беседы - вот альтернативы. Не нравится журнал в окне беседы - вот ещё парочка :) Ещё бы переписать H++ с паскаля на плюсы, но это очень долго, нудно и желающих нет...
-
А NoHistory и HistorySweeper удаляют события из базы.
Так получается что не удаляют, раз другие плагины ее берут из базы?
Или в базе сообщения не удаляются, а только помечаются как удаленные?
-
Контакт прислал сообщение. Это событие записалось в базу. Вы это сообщение прочитали (то есть, оно пришло, вы сделали вкладку/окно активным = это считается, что прочитали). Оно пометилось прочитанным в базе. Вы обменились файлами. Это событие записалось в базу (и вот тут, если используется H++, то он не пометил именно это событие прочитанным, а другие вышеупомянутые журналы пометили бы, если бы вы их использовали). Пока эти события есть в базе, журналы истории их показывают в окне сообщений. Дальше отрабатывают плагины удаления истории, стирая эти события из базы. Всё, их нет. Эти события больше не будут видны нигде никогда, их тупо нет в базе.
Выставите, например, в HistorySweeperLight очищение истории при закрытии окна сообщений. При каждом закрытии окна он сразу начнёт стирать сообщение из базы. Переоткрыв окно, в журнале вы уже ничего не увидите, потому что журнал при открытии окна беседы полез в базу, чтобы подгрузить историю, а там пусто.
Плагины удаления истории стирают все прочитанные сообщения по правилам, которые вы укажете в их настройках. Укажете при выходе - сотрут при выходе. Укажете при закрытии окна сообщений - сотрут при закрытии окна. Просто поменяйте себе H++ на любой другой журнал.
-
Беседы → Журнал. Из выпадающего меню там можно выбрать журнал. Соответственно, нужно выбрать не H++, а встроенный журнал.
А у меня там и выставлен сейчас "internal message log", а не History++.
И в HistorySweeperLight очищение истории при закрытии окна сообщений. Все чистится, кроме передаваемого файла.
-
Настройки HistorySweeper покажите, пожалуйста.
И передача файлов исходящая или входящая?
-
https://prnt.sc/kquqix - скриншот настроек.
Передача файлов в основном исходящая, входящие давно не получал, но могу проверить, если надо.
-
Попробую воспроизвести, правда, придётся ждать несколько дней, судя по настройке "удалять старше одного дня".
Я тестировал на исходящих с настройкой "удалять сразу" - всё удаляется.
-
А у меня сразу удаляется после закрытия окна, но после открытия с этим же абонентом в окне висит имя отправленного файла. Со временем оно уходит, но я не проверял точно, через сколько дней.
-
2 года прошло, до сих пор нет изменений (пробовал отправлять файл tox-протоколом).
-
Мы движемся к уничтожению History++, который и вызывает проблему, как выяснили на предыдущих страницах.
Он написан на Delphi, в команде уже несколько лет нет паскалистов/дельфистов, а сишники в Delphi-код никто не полезут даже под угрозой расстрела.
На замену ему идет NewStory, который уже можно пощупать в ночнике.
-
Только пожалуйста не удаляйте NoHistory!
Много пользователей не хочет сохранять свою болтовню на компьютере...
И еще бы хорошо сделать в новом просмотрщике функцию удаления истории для всех контактов сразу,
а не как в HistoryPP, наводя на каждый контакт по отдельности.
-
Э
И еще бы хорошо сделать в новом просмотрщике функцию удаления истории для всех контактов сразу,
а не как в HistoryPP, наводя на каждый контакт по отдельности.
Чистить всю историю у всех это задача NoHistory и HistorySweeperLight и они с ней справляются.
Пока хорошо хотя бы довести NewStory до более-менее паритета с History++
-
Чистить всю историю у всех это задача NoHistory и HistorySweeperLight и они с ней справляются.
Хотелось бы кнопку "удалить историю для всех контактов", как например в Скайпе или других мессенджерах, чтобы периодически можно было все очищать.
Неважно в каком плагине, наверное логически это было бы вернее в NoHistory, но теоретически и просмотрщик может почистить всю базу.
-
Чистить всю историю у всех это задача NoHistory и HistorySweeperLight и они с ней справляются.
Не справляются они. Там нет кнопки "полная очистка".
Сначала заводишь пользователя, для каждого нового выставляешь опцию - хранить для него историю или нет.
Это все очень полезно, но когда контактов не один десяток, и ты забыл выставить каждому опцию "не сохранять историю" - надо потом на каждом чистить через HistoryPP.
Можно же просто добавить кнопку "удалить всю историю для всех контактов"?
По-моему это сейчас есть в каждом более-менее крупном мессенджере.
-
ля каждого нового выставляешь опцию - хранить для него историю или нет
Зачем? Там есть пункт "All contacts" (NoHistory) / "Default Action" (HistorySweeper), который означает "для всех существующих и тех, что добавятся в будущем".
-
Там есть пункт "All contacts" (NoHistory) / "Default Action" (HistorySweeper), который означает "для всех существующих и тех, что добавятся в будущем".
В NoHistory у меня это никогда не срабатывало - добавляешь нового, на него почему-то по умолчанию выставляется "хранить историю". Или кто-то не из контакт-листа пишет - та же картина.
В HistorySweeper на всех стоит действие "очищать историю старше 1 дня", но он далеко не всегда очищает.
У меня в паре стояли NoHistory и HistorySweeper, я отключил HistorySweeper, потому что подозреваю их несовместимость.
Может если NoHistory выключить а оставить только HistorySweeper - будет работать нормально.
Но я предпочел бы не очистку, а просто не сохранение в базу, этим они и отличаются.
Оба плагины на мой взгляд сыроваты. Давно пользуюсь ими, но куски истории все обнаруживаются в разных местах.
-
не сохранение в базу
Это технически невозможно из-за архитектуры программы (где каждый плагин делает своё дело, благодаря чему сохраняется модульная структура и возможность иметь взаимозаменяемые плагины)
За запись в базу отвечает драйвер базы (и это круто, хочешь - имей базу в mdbx, хочешь - в sqlite, только драйвер базы другой воткни, а для остальной части Миранды это всё прозрачно, потому что непосредственное общение с базой берет на себя плагин), поэтому если хочется не писать в базу, нужно создать драйвер базы, который в ответ на прилетевшее от ядра распоряжение писнуть в базу, ответит, что операция завершена успешно, но на самом деле писать не станет.
Таким образом, есть только два пути:
- написать и поддерживать такой драйвер базы (мы с радостью принимаем авторов новых плагинов)
- тупо стирать историю из базы (что и делают обсуждаемые в этом топике два плагина)
Я завел тикет про удаление всей истории, это максимум, что я могу сделать.
-
Я завел тикет про удаление всей истории, это максимум, что я могу сделать.
Спасибо, а можно ли завести тикет для NoHistory, чтобы он вновь прибывших по умолчанию мог помечать либо красными (не сохранять), либо зелеными (сохранять),
в зависимости от переключателя, типа "как поступать с новыми контактами" ?
И еще хотелка - можно ли в базовой Миранде завести опцию "удалять всю историю при выходе из программы"?
-
И еще хотелка - можно ли в базовой Миранде завести опцию "удалять всю историю при выходе из программы"?
Это работа для плагина удаления истории. Если он её не делает, то его нужно починить, а не дублировать функциональность, упихивая ее в ядро.
-
Спасибо, а можно ли завести тикет для NoHistory, чтобы он вновь прибывших по умолчанию мог помечать либо красными (не сохранять), либо зелеными (сохранять),
в зависимости от переключателя, типа "как поступать с новыми контактами" ?
Я проверю, если он этого не делает, это явно баг.
-
Это работа для плагина удаления истории. Если он её не делает, то его нужно починить, а не дублировать функциональность, упихивая ее в ядро.
Вообще это базовый функционал у многих мессенджеров.
Здесь же придется просить эту опцию сразу у двух плагинов - NoHistory и HistorySweeper
-
Я проверю, если он этого не делает, это явно баг.
Не делает. Он у меня периодически сам ставит пометку на **Все контакты** зеленой, хотя перед тем я несколько раз ставил ее красной, затем он какие-то контакты хаотически помечает зеленым.
Скрины:
http://prntscr.com/t44gds
http://prntscr.com/t44iv9
-
За запись в базу отвечает драйвер базы (и это круто, хочешь - имей базу в mdbx, хочешь - в sqlite, только драйвер базы другой воткни, а для остальной части Миранды это всё прозрачно, потому что непосредственное общение с базой берет на себя плагин), поэтому если хочется не писать в базу, нужно создать драйвер базы, который в ответ на прилетевшее от ядра распоряжение писнуть в базу, ответит, что операция завершена успешно, но на самом деле писать не станет.
Таким образом, есть только два пути:
- написать и поддерживать такой драйвер базы (мы с радостью принимаем авторов новых плагинов)
- тупо стирать историю из базы (что и делают обсуждаемые в этом топике два плагина)
Тогда видимо на странице плагина NoHistory в wiki написано неверно?
https://wiki.miranda-ng.org/index.php?title=Plugin:NoHistory/ru
Выдержка оттуда - "В отличие от HistorySweeperLight, при использовании плагина NoHistory история не пишется в базу в принципе."
-
Надо будет уточнить. Этот текст взят из документации к плагину, а плагин (как и документация) писался очень давно. Возможно, это было корректно по отношению к формату MMAP.
В принципе, можно проверить и эмпирически: достаточно с установленным плагином накидать в Миранду "Войну и Мир" и посмотреть на изменение размера базы.
-
На замену ему идет NewStory, который уже можно пощупать в ночнике.
Поставил, он не удаляет системную историю, как и History++
-
Не делает. Он у меня периодически сам ставит пометку на **Все контакты** зеленой, хотя перед тем я несколько раз ставил ее красной, затем он какие-то контакты хаотически помечает зеленым.
Скрины:
http://prntscr.com/t44gds
http://prntscr.com/t44iv9
Не вышло повторить. Подобавлял контакты, они исправно наследуют политику от "Все контакты". Может, от протокола зависит?
Нашёл мелкую багулю в HSL (https://github.com/miranda-ng/miranda-ng/issues/2553), но это фигня
-
Не вышло повторить. Подобавлял контакты, они исправно наследуют политику от "Все контакты".
Дело в том, что Ghazan недавно исправил этот баг.