QMS Plus — юзерскрипт | Добавление/исправление функционала ЛС



Реп: (3133)
QMS Plus — юзерскрипт
версия: 0.7.0

Последнее обновление скрипта: 26.09.2023

Прикрепленное изображение
Скриншот
Прикрепленное изображение

Требование: Tampermonkey (расширение для браузера)
Репозиторий: IamR3m/QMS-Plus
Установить: QMS-Plus.user.js

Внимание! Начиная с версии 0.2 у скрипта новый разработчик: R3m
прошлые версии < 0.2
Репозиторий: CopyMist/QMS-Plus
Установить: QMS-Plus.user.js

Предыстория
Довелось активно поработать с QMS, отвечая на вопросы и помогая пользователям.
Заметил некоторые моменты в плане интерфейса и поведения, которые хотелось бы улучшить или исправить.

Прочитал тему QMS 2.0 и сделал поиск по слову «QMS» в Предложениях по сайту и форуму.
Понял, что некоторые вещи просят уже давно, и что многие из этих «хотелок» можно решить пользовательским скриптом (JS-кодом в браузере клиента).

Примечание: речь идет о работе с форумом на компьютере/ноутбуке через браузер.
Для телефонов/планшетов есть официальный и неофициальный клиенты с неплохими возможностями и интерфейсом (хотя сам ими не пользуюсь).

Кстати, расширение 4PDA Инспектор — тоже отличная вещь, решило проблему с уведомлениями в браузере. Но интерфейс QMS оно не меняет.

Описание:
Главная задача — облегчить и ускорить работу с QMS, чтобы улучшить опыт тех, кто тратит много времени на общение и помощь пользователям.
Пока что скрипт мало что умеет. Но решил не ждать и поделиться уже сейчас, чтобы другие могли пользоваться, предлагать идеи и тестировать.
Хотя даже с текущими доработками лично мне пользоваться QMS уже стало приятнее. Решил для себя главную проблему: убрал плавную прокрутку.
Напрягало такое поведение, особенно когда смотришь в середину длинной беседы, а тебя вдруг докручивает в конец :nea:
Заодно упорядочу в этой теме планы на будущий функционал.
Примечание: скорее всего, скрипт немного выйдет за рамки QMS, т.к. хочется и на форуме пару моментов подправить.

Возможности (можно включать/выключать по отдельности):
  • убирание плавной прокрутки (чтобы ускорить работу, убрать случайные срабатывания)
  • скрытие шапки и подвала (больше места для сообщений)
  • вынесение поиска из выпадающего списка прямо в панель (для оперативного доступа)
  • добавление подсказки про Ctrl+Enter в название кнопки «Отправить»
FAQ: ответы на вопросы
C А это безопасно?
— Конечно, юзерскрипт никуда не стучится и никаких данных не отсылает
— Можете изучить код, он открыт и написан по-простому (с использованием jQuery, никаких фреймворков)

C Как установить?
— Добавить в браузер расширение Tampermonkey (есть еще Greasemonkey и Violentmonkey, но там работа не проверялась)
— Нажать на ссылку вверху: QMS-Plus.user.js
— В открывшемся окне расширения нажать Установить (или Install)
— Обновить страницу с QMS (F5)

C Как обновить?
— Если Tampermonkey настроен верно, то он будет проверять обновления автоматически.
Однако для принудительного обновления:
— Нажать на ту же ссылку QMS-Plus.user.js
— Если обновления будут, нажать Обновить (Update)
— Обновить страницу с QMS (F5)
— Tampermonkey сам проверяет новые версии юзерскриптов один раз в сутки (по умолчанию)
История изменений
0.1
  • первая версия
0.1.1
  • Адаптирован для домена 4pda.to
0.2.1
  • Авторазворачивание панели BB-кодов
  • Обновление ссылок на репозиторий нового автора
0.3.0
  • Изменение размера панели отправки сообщения
0.3.1
  • Теперь размер панели отправки сообщения ограничен минимальной высотой в 200px
  • Поправлены стили полосы изменения размеров панели отправки сообщения
  • Замена var на let, const
Планы: не факт, что все это будет :-D
  • список диалогов вынести в столбец справа, не скрывать при выборе одного (для быстрой навигации, меньше кликов)
  • при нажатии на контакт автоматически открывать последний диалог с ним
  • возможность менять ширину столбца с контактами (с запоминанием)
  • возможность менять высоту поля для ввода сообщения (Чс запоминанием)
  • выводить дату последнего сообщения рядом с контактом
  • улучшения общего стиля: уменьшение отступов в списках, увеличить индикаторы непрочтения (красные точки)
  • прикрепленные картинки и файлы показывать под сообщением (с отступом) а не над ним
  • индикатор набора текста (три точки справа) вынести влево и добавить слово "печатает"
  • альтернативный способ пометки диалогов как прочитанных (чтобы не считались прочитанными, если открыто окно с чатом)
  • возможность помечать диалоги как прочитанные/непрочитанные (будет своя локальная база)
  • при новых сообщениях текст в заголовке таба мигает или двигается (+ количество непрочитанных)
  • возможность прикреплять файлы через drag'n'drop, не только через кнопку и проводник
  • показывать прогресс загрузки файлов (по типу того, что на форуме)
  • быстрый фильтр контактов (= бесед) по названию
  • закрепление контактов вверху (избранное)
  • отправка контактов в конец списка (архив)
  • если получено сообщение от контакта в архиве - поднять вверх
  • настройка независимого зума страницы (например, на форуме 120%, а в QMS 150%)
  • добавление кратких комментариев к контактам (фильтр будет искать и по ним)
  • автоматически сохранять текст сообщения при наборе (и запоминать даже при закрытии браузера)
  • можно то же самое сделать для всех ответов на форуме (быстрый и полный)
  • добавить все кнопки c поддерживаемыми BB-кодами. не прятать, выводить сразу (будет настраиваться)
  • добавить выбор смайлов (тот же список, что и в ответах на форуме)
  • добавить выбор эмодзи (и в QMS, и на форум)
  • сделать так, чтобы сворачивание столбца смайлов не срабатывало случайно, когда выделяешь строку, ведя мышку влево и отпускаешь (глобально, и на форуме, и в QMS)
  • предпросмотр сообщения перед отправкой (придется костылить, но идеи есть)
  • возможность удалять сообщения у себя и собеседника (в мобильном клиенте же можно, попробовать перенести) (в родном функционале QMS это уже есть в выпадашке Действия)
  • возможность редактировать последнее сообщение (на самом деле будет удалять и вставлять текст в поле)
  • под сообщениями на форуме добавить кнопки быстрого написания QMS (с автозаполнением заголовка, поддерживать цитату выделенного)
  • кнопка цитаты конкретного сообщения в QMS (или только выделенного текста)
  • ники в сообщениях сделать кликабельными (отправляет в профиль)
  • подкрашивать ники в списке контактов в зависимости от группы пользователя (модератор, куратор и т.п.)
  • выводить в столбце справа краткий профиль контакта с аватаркой
  • функционал сбора краткой информации обо всех контактах (для вывода профилей и подкрашивания ников, естественно с задержкой при отправке запросов)
  • информацию о контакте обновлять не чаще раза в сутки и только при клике в списке, кешировать информацию в базе (локально)
  • функционал очистки внутренней базы непрочитанных сообщений, информации о контактах и т.п.
  • сохранение отдельных сообщений в избранное (сделать контакт Избранное в самом верху)
  • попробовать не выводить DOM всего диалога целиком при открытии, использовать Clusterize.js

P.S. Постоянной работы над скриптом не обещаю (т.к. есть и другие интересы), но периодически постараюсь обновлять ;-)

Сообщение отредактировал R3m - 26.09.23, 21:43
Причина редактирования: версия: 0.7.0



Реп: (1104)
* CopyMist, планы грандиозные, но будет ли их исполнение :unsure:
На данный момент мало полезного увидел для себя.

Спасибо и удачи в развитии скрипта



Реп: (37)
CopyMist @ 14.03.20, 01:55 *
убирание плавной прокрутки (чтобы ускорить работу, убрать случайные срабатывания)
скрытие шапки и подвала (больше места для сообщений)
вынесение поиска из выпадающего списка прямо в панель (для оперативного доступа)
добавление подсказки про Ctrl+Enter в название кнопки «Отправить»

* CopyMist, в принципе, если бы не плавная прокрутка, этот функционал можно довольно элементарно сделать на чистом CSS - и вопросов про безопасность было бы сразу меньше.
а так:
есть небольшие нарекания по скрипту, например:
- namespace выбран не очень аккуратно
- svg в принципе незачем загружать из удалённого источника - его изначально лучше в коде прописать
- библиотек уж больно много (для таких задач) загружается, да ещё и не из оригинального источника, как, например, arrive.js
- использование unsave-mode смущает
- блок метаданных неплохо было бы сделать более читабельным...

но в целом - неплохая реализация, код написан довольно аккуратно и понятно, даже комменты есть кое-где (вот бы мне тоже хотя бы так же часто их добавлять, но... сложно -_- )

а почему не используешь библиотеку GM_config для настроек?
она и интерфейс не занимает, и там можно просто чудеса творить

Сообщение отредактировал almaceleste - 27.05.20, 07:41



Реп: (647)
Скрипт обновлен до версии 0.1.1

Что нового?
  • Адаптирован для домена 4pda.to



Реп: (647)
Скрипт обновлен до версии 0.2.1

Что нового?
  • Авторазворачивание панели BB-кодов
  • Обновление ссылок на репозиторий нового автора


Сообщение отредактировал R3m - 16.02.22, 00:28



Реп: (647)
Скрипт обновлен до версии 0.3.0

Что нового?
  • Изменение размера панели отправки сообщения



Реп: (647)
Скрипт обновлен до версии 0.3.1

Что нового?
  • Теперь размер панели отправки сообщения ограничен минимальной высотой в 200px
  • Поправлены стили полосы изменения размеров панели отправки сообщения
  • Замена var на let, const



Реп: (647)
Скрипт обновлен до версии 0.3.2

Что нового?
  • Для стабильности добавлена задержка перед разворачиванием BB-панели и установкой событий



Реп: (647)
Скрипт обновлен до версии 0.3.3

Что нового?
  • Улучшено определение панели BB-кодов для авторазворачивания
  • Улучшено определение контейнеров для изменения размеров панели ввода



Реп: (647)
Скрипт обновлен до версии 0.4.0

Что нового?
  • Выводить дату последнего сообщения рядом с контактом


Сообщение отредактировал R3m - 25.02.22, 09:14



Реп: (647)
Друзья, кто успел обновиться до 0.4.0, просьба обновиться до 0.4.1. пришлось откатить изменения из-за высокой нагрузки на процессор у тех, у кого собралось сотни, а то и тысячи контактов :-(



Реп: (647)
Скрипт обновлен до версии 0.4.4

Что нового?
  • 0.4.2
    • Компактный список контактов
    • Более крупная точка непрочитанного сообщения
    • Избранные контакты (локально)
  • 0.4.3
    • Улучшение стилей
  • 0.4.4
    • Пересоздать контейнер с избранным при обновлении списка контактов



Реп: (647)
Скрипт обновлен до версии 0.4.5

Что нового?
  • Добавлен предпросмотр сообщения перед отправкой (включается в настройках QMS Plus)
    из нюансов: нумерованный список будет отображаться как маркированный



Реп: (647)
Скрипт обновлен до версии 0.4.6

Что нового?
  • Предпросмотр сообщения при создании нового диалога



Реп: (647)
Скрипт обновлен до версии 0.4.7

Что нового?
  • Исправление ссылок в предпросмотре



Реп: (647)
Скрипт обновлен до версии 0.4.9

Что нового?
  • 0.4.8. Показывать время последнего сообщения в избранном (включается в настройках)
    пришлось ограничиться только избранным т.к. на больших списках контактов изрядно так отжирает трафик (150кБ на каждый контакт) и у некоторых процессор
  • 0.4.9. Вывод даты последнего сообщения также после обновления контакт-листа



Реп: (647)
Скрипт обновлен до версии 0.5.1

Что нового?
  • 0.5.0. Добавлено ограничение высоты избранного до 400px. При превышении этой высоты появится дополнительный скролл в контейнере избранного.
  • 0.5.1.
    • Улучшен нижний бордер избранного.
    • Уменьшена высота избранного до 270px


Сообщение отредактировал R3m - 03.03.23, 12:07



Реп: (647)
Скрипт обновлен до версии 0.6.0

Что нового?
  • Сортировка избранного
  • Показ иконок избранного и сортировки только при наведении курсора



Реп: (647)
Скрипт обновлен до версии 0.6.2

Что нового?
  • 0.6.1. Добавлена настройка показа иконок избранного и сортировки
  • 0.6.2. Исправление скрытия избранных контактов из основного списка


Сообщение отредактировал R3m - 09.03.23, 00:53
Причина редактирования: 0.6.2



Реп: (647)
Скрипт обновлен до версии 0.7.0

Что нового?
  • Добавлены облака для наглядного разделения сообщений


Полная версия   Текстовая версия

Помощь   Правила

Сейчас: 28.11.23, 17:02