К содержимому
Журнал QIO

Сайты и разработка2 мин чтения

Kwork Hider: расширение, которое прячет неинтересные проекты на Kwork

На бирже Kwork ежедневно появляются десятки проектов, половина из которых не подходит конкретному исполнителю, а кнопки «скрыть» на сайте нет. Разработчик написал расширение для браузера Kwork Hider: две кнопки на карточке, локальное хранилище и наблюдатель за динамической лентой. Разбираем, как это сделано.

Kwork Hider: расширение, которое прячет неинтересные проекты на Kwork

Что делает расширение

На каждую карточку проекта добавляются две кнопки: скрыть и сохранить. Скрытые объявления исчезают из ленты, сохранённые подсвечиваются зелёным, а значок расширения показывает счётчики. Все данные лежат в браузере пользователя, на сервер ничего не уходит.

Биржа проектов Kwork без расширения
Биржа проектов Kwork без расширения
Карточка проекта с кнопками расширения
Карточка проекта с кнопками расширения

По тому же шаблону мы делаем небольшие внутренние инструменты для клиентов: кнопка в админке или расширение для менеджера решает задачу быстрее, чем доработка ядра CMS. Главное помнить, что привязка к вёрстке живёт до первого редизайна.

Как это устроено технически

Внутри три знакомых веб-разработчику механизма.

  • Контент-скрипт находит элементы карточек по классу .want-card и добавляет кнопки в блок .want-card__buttons.
  • Идентификаторы скрытых и сохранённых проектов хранятся в chrome.storage.local.
  • MutationObserver следит за появлением новых карточек при подгрузке ленты и обрабатывает их без перезагрузки страницы.

Где взять

Расширение опубликовано в Chrome Web Store, исходный код открыт на GitHub, есть страница у автора. Открытый код важен для расширений, которые работают на чужих сайтах: любой может проверить, что данные не уходят наружу.

Чему учит этот маленький проект

Во-первых, функция, которой не хватает в чужом продукте, часто реализуется за вечер расширением, а не ожиданием обновления. Во-вторых, зависимость от классов вёрстки вроде .want-card — главный риск: после редизайна площадки расширение перестанет работать, и это надо честно понимать. В-третьих, такие инструменты — хороший тест для разработчика перед более крупными задачами с DOM и хранилищем.

Итог

Kwork Hider решает узкую проблему фрилансеров и одновременно показывает шаблон любого расширения для чужого сайта: найти элементы, добавить управление, запомнить состояние, следить за изменениями.

Источники

  1. Устал листать неинтересные проекты на Kwork.ru, добавил кнопку «Скрыть» (Хабр)
  2. Chrome for Developers: расширения
  3. MDN: MutationObserver
  • Kwork
  • Расширение для браузера
  • MutationObserver
  • Chrome Web Store

Подписаться на журнал

Новые разборы о сайтах, SEO и ИИ выходят в журнале QIO. Подпишитесь в Google, по RSS или в Telegram, чтобы получать их первыми.

Читайте также

Чем можем помочь?
Обсудить проект