Тостер - все в компостер. Фільтруй та кайфуй

Так уже склалося, що в СНД досить популярний російський Q&A ресурс з ІТ тематики. тостер. Однак чогось йому не вистачало, коли я почав з ним знайомитися. Це і вилилося в покращення у вигляді браузерного розширення. Зустрічайте.

Ключові особливості:

  • Назва: Toster Comfort.
  • Статистика користувачів: відсоток питань із вирішенням; карма з Хабра; зведення з профілю - все це у списку питань Тостера.
  • Сповіщення: в реальному часі на сайті, на іконці, плюс push-сповіщення, багато налаштувань, сайт повинен бути відкритий (вики).
  • фільтри: умови на основі формул: можна приховувати питання, розфарбовувати їх кольором, а також показувати повідомлення, - все це гнучко налаштовується у вигляді логічних умов (вики).
  • інтерфейс: дрібні покращення, наприклад, показ точних дат або відображення статусу передплати у списку питань.
  • Інтерфейс Хабра: дрібні покращення (опціонально), наприклад, лінії на відступи у коментарях.
  • Відкрите джерело: можна переробити під себе, якщо дуже хочеться (вихідники).
  • Безкоштовно: Ліцензія MIT.
  • Споживання пам'яті: 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 КБ коду, використовуючи зворотний польський запис. Це, можна сказати, сильно кастрований JS як за функціями, так і за синтаксисом.

Нещодавно був піст про Розширення Toster. Якщо порівнювати, то TE має приємніший інтерфейс і деякі функції, яких немає в Toster Comfort. Однак моє розширення наголошує на споживанні ресурсів. Втім, ніхто не заважає використовувати обидва розширення, вони не мають конфліктувати.

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

Джерело: habr.com

Додати коментар або відгук