- PVSM.RU - https://www.pvsm.ru -

Тостер — всё в компостер. Фильтруй и кайфуй

Так уж сложилось, что в СНГ довольно популярен русский Q&A ресурс по ИТ тематике — Тостер [1]. Однако чего-то ему не хватало, когда я начал плотно с ним знакомиться. Это и вылилось в улучшение в виде браузерного расширения. Встречайте.

Ключевые особенности:

  • Название: Toster Comfort.
  • Статистика пользователей: процент вопросов с решением; карма с Хабра; сводка из профиля — всё это в списке вопросов Тостера.
  • Уведомления: в реальном времени на сайте, на иконке, плюс push-уведомления, много настроек, сайт должен быть открыт (вики [2]).
  • Фильтры: условия на основе формул: можно скрывать вопросы, раскрашивать их цветом, а также показывать уведомления, — всё это гибко настраивается в виде логических условий (вики [3]).
  • Интерфейс: мелкие улучшения, например, показ точных дат или отображение статуса подписки в списке вопросов.
  • Интерфейс Хабра: мелкие улучшения (опционально), например, линии на отступы в комментариях.
  • Open source: можно переделать под себя, если очень хочется (исходники [4]).
  • Free: MIT License.
  • Потребление памяти: 30-50МБ, в зависимости от опций и интенсивности использования Тостера
  • Размер: 93КБ для v0.8.1 (распакованный, не минимизированный код).
  • Фреймворк: отсутствует, чистый JS (минимализм).
  • Качество кода: среднее, смешение стилей, большие функции, грязные приёмы, мало комментов.
  • Разрешения: toster.ru, habr.com, notifications, storage, unlimitedStorage

Изначально расширение сделал для себя с одной-единственной целью: показывать процент вопросов пользователя, в которых он удосужился нажать кнопку «Отметить решением». Затем мало-помалу добавлялись то одни, то другие хотелки, пока инструмент не вырос в монстра на сотню килобайт. Тем не менее, принцип «не использовать ничего лишнего» соблюдался до конца.

Одной из главных фич сейчас является использование формул в настройках. С ними можно делать практически, что угодно, любую хотелку по управлению своим вниманием. Главное знать, что хотеть. Сокрытие, изменение цвета и уведомления — вот три основных аспекта внимания при работе с сайтом. Фильтрация всего и вся — ключ к удобству.

Пример гибкого правила, которое позволит получать уведомления на определённую тему:

!tag("Блокирование рекламы") && !contains(t,"реклам") && contains(t,"блокиров") && !tag("HTACCESS") || containsWord(t,"ркн") || contains(t,"роскомнадзор") || contains(t,"роскомпозор") || contains(t,"государств") || contains(t,"запрещен") || contains(t,"запрещён") || contains(t,"пиратск") || containsWord(t,"обход") || containsWord(t,"ростелеком") || containsWord(t,"яровой") || containsWord(t,"рф") && tag("Компьютерные сети") = notify

Сразу скажу, что функцию eval() использовать было нельзя. Так что особо не разгуляешься. Поэтому пришлось написать свой костыль на 5 КБ кода, используя обратную польскую запись [7]. Это, можно сказать, сильно кастрированный JS, как по функциям, так и по синтаксису.

Недавно был пост про Toster Extension [8]. Если сравнивать, то TE имеет более приятный интерфейс и кое-какие функции, которых нет в Toster Comfort. Однако моё расширение делает акцент на потреблении ресурсов. Впрочем, никто не мешает использовать оба расширения, они не должны конфликтовать.

По-хорошему, TC нужно переписывать с нуля, потому что работу можно ускорить минимум вдвое, а работу с кэшем — раз в 10, отказавшись от localStorage и JSON.stringify() и изменив некоторые архитектурные решения. Но этот подвиг предстоит делать уже не мне. А я поклонник принципа «работает — не трогай». Пока отпуск, активно принимаю issues и PR, но не в ущерб минимализму. Спасибо за внимание!

Автор: dollar

Источник [9]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/javascript/315400

Ссылки в тексте:

[1] Тостер: https://toster.ru/

[2] вики: https://github.com/MarisKori/Toster-Comfort/wiki/%D0%A3%D0%B2%D0%B5%D0%B4%D0%BE%D0%BC%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F

[3] вики: https://github.com/MarisKori/Toster-Comfort/wiki/%D0%94%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B8%D1%82%D0%B5%D0%BB%D1%8C%D0%BD%D1%8B%D0%B5-%D0%BF%D1%80%D0%B0%D0%B2%D0%B8%D0%BB%D0%B0

[4] исходники: https://github.com/MarisKori/Toster-Comfort

[5] Chrome: https://chrome.google.com/webstore/detail/toster-comfort/opmddoloccnldcfbglknhpjgcljkodko

[6] Firefox: https://addons.mozilla.org/ru/firefox/addon/toster-comfort/

[7] обратную польскую запись: https://ru.wikipedia.org/wiki/%D0%9E%D0%B1%D1%80%D0%B0%D1%82%D0%BD%D0%B0%D1%8F_%D0%BF%D0%BE%D0%BB%D1%8C%D1%81%D0%BA%D0%B0%D1%8F_%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D1%8C

[8] Toster Extension: https://habr.com/ru/post/445450/

[9] Источник: https://habr.com/ru/post/448834/?utm_campaign=448834