Новое дополнение для Firefox "VOTT filter"

addons.mozilla.org — Камрады! Радость снова пришла в наш дом! (правда, не для всех) Наконец-то опубликовано моё дополнение для Firefox, с помощью которого можно присваивать погоны, фильтровать и всячески раскрашивать комменты. История и описание - в первом.
Новости, Компьютеры | amb 20:37 27.11.2020
34 комментария | 123 за, 2 против |
#1 | 20:38 27.11.2020 | Кому: Всем
Давно я собирался найти и оживить широко известный в узких кругах плагин "VOTT.RU: Stop Pupking!" камрада "Кабанатор", да всё как-то страшновато было, ибо не занимался программной (да и вообще никакой) обработкой HTML уже лет двадцать. И вотт, прошло всего пять лет со смерти этого плагина и случился тред "Как стать программистом?", по итогам которого я таки решился - скачал и посмотрел.
Быстро выяснилось, что нельзя просто так взять и написать программу, какую ты хочешь - за прошедшие годы навыдумывали всяких требований по безопасности, JSON, DOM и прочая. И промисы, чтоб их. К тому же, в плагине использовалась библиотека JQuery, птичий язык которой я сходу вообще не понял. Короче - было сложно, учитывая отсутствие каких-либо знаний javascript.
В итоге - решил писать с нуля, пользуясь хорошим примером, описанием имеющегося функционала, желанием сделать "как хочу" и ресурсами MDN (копипаста - наше всё!). Искал подходящие образцы, с помощью отладочной консоли и какой-то матери допиливал под задачу. И вотт - набыдлокодил.

Реализовал всё, что придумалось. Очень помогли отпуск и больничный за это время)))
Представляю первую версию, пока только под Firefox, дальше буду модифицировать под хром тоже (пишут, что сильно похоже).

Устанавливайте, пробуйте, пишите в комментах своё мнение.
Дальше - описание функционала, максимально полное (как я думаю).

---
Дополнение для браузера
"VOTT filter" - Обработка списка комментариев для VOTT.RU

Фильтрация или декорирование сообщений в обсуждениях на сайте VOTT.RU
в соответствии с предварительно настроенным списком пользователей.

1. Основной функционал

1.1 Фильтрация сообщений в обсуждениях на сайте VOTT.RU.
После установки появляется значок дополнения в панели инструментов браузера:
серый в неактивном режиме, цветной на страницах со списком комментариев (в темах).
На значке отображается количество спрятанных комментариев в данной теме (если такие есть).
Доступно контекстное меню браузера (ПКМ на тексте страницы) - "Показать все комментарии",
при выборе которого будут отображены ранее спрятанные комментарии и помечены
особой рамочкой (пурпурного цвета). Чтобы снова спрятать комментарии - обновите страницу.
Кроме скрывания комментариев возможно настроить выделение фоновым цветом текста с
именем автора или текста заголовка комментария, а также добавление своих пометок
каждому пользователю.
Работает даже без авторизации на сайте, хотя при этом не используются
все возможности фильтрации.

1.2 Управление списком пользователей.
Список пользователей отображается при нажатии на значок дополнения
в панели инструментов браузера (даже неактивный). Удаление и редактирование
всех настроек пользователей выполняется прямо в списке
(подробнее см. "Список пользователей" и "Возможности фильтра").
Добавление пользователей в список происходит через контекстное меню браузера (ПКМ),
если активировать меню на какой-нибудь ссылке внутри комментария
(имя автора, ссылка на другой комментарий, кнопка "Ответить", картинка или линк в тексте).
Вручную добавить запись нельзя (если только через экспорт/импорт).

1.3 Подсветка рейтинга комментария.
Выделяет заданными цветами маленький квадратик с рейтингом (перед кнопками +/-).
Работает при авторизации на сайте, управляется со страницы настроек дополнения.
От фильтра и списка пользователей не зависит.

1.4 Сохранение всех данных.
Все настройки и список пользователей с параметрами фильтрации записываются в
локальное хранилище браузера (не синхронизируемое).
На каждую запись в списке пользователей сохраняется примерно 440 байт,
заявленный объем хранилища 5 Мб, так что можно сохранить очень длинный список.
Отдельной кнопки очистки хранилища нет - при нажатии "Сохранить" на страничке
настроек дополнения все содержание перезаписывается полностью.

1.5 Экспорт и импорт всех настроек.
На странице настроек дополнения имеются две кнопки, позволяющие записать
в текстовый файл все настройки и список пользователей с параметрами фильтрации,
а также загрузить все обратно.
Файлу присваивается имя "VOTT filter" с добавлением текущей даты для удобства
и производится "скачивание", так что ищите его в папке загрузок (если не выбрали другую).
Формат файла - текстовый JSON в кодировке UTF-8. Его можно посмотреть/изменить
любым редактором, все поля текстовые. Формат и структуру нарушать не надо -
контроль при импорте минимальный. Имена пользователей, даты и ссылки не проверяются.
Это ваш файл и ваш фильтр - на ваше усмотрение.
После успешного импорта списка и настроек нажмите кнопку "Сохранить" - автоматически
данные импорта не записываются (можно отменить импорт, просто закрыв страницу настроек).


2. Список пользователей

2.1 Добавленные через контекстное меню пользователи отображаются во всплывающем окне
дополнения. В списке у каждого видно:
- имя пользователя (отображается ссылкой на профиль)
- персональный "погон"
- дата добавления в список
- источник - ссылка на комментарий, через который было сделано добавление
(слово "комментарий") или любая другая ссылка после редактирования (слово "адрес")
или любой текст (отображается начало).

2.2 Персональный "погон" - текст добавляется в комментариях к имени пользователя
после официального погона и выделяется темно-зеленым цветом и курсивом.

2.3 При настроенном фильтре поля списка могут быть отмечены фоновым цветом или
другим начертанием шрифта.

2.4 Переход по ссылкам производится прямо из списка - открываются новые окна или вкладки.

2.5 Редактирование записи начинается кликом мыши по полю даты добавления. В начале
редактирования добавляются две кнопки: около имени пользователя - для удаления записи,
около погона - для завершения редактирования и обновления записи.
Также поле даты заменяется на два поля выбора действий, управляющих фильтром
(см. "Возможности фильтра").

2.6 Имя пользователя изменить нельзя, дату тоже.
Текст "Погон" ограничивается максимальной длиной 33 символа.
Текст "Источник" ограничивается максимальной длиной 99 символов.
Валидность ссылки не проверяется, "http" автоматом не добавляется,
можно написать любой текст (отображается начало).

2.7 Кнопка удаления записи не имеет отмены и восстановления, немедленно удаляются все
данные и настройки фильтрации выбранного пользователя.

2.8 Редактирование записи завершается нажатием кнопки "V" в поле "Погон". При этом
все изменения в настройках текущей записи актуализируются и список перерисовывается.
Для сохранения результатов редактирования нажмите кнопку "Сохранить" внизу списка.

2.9 Отдельной кнопки для отмены изменений нет - можно просто закрыть всплывающее окно,
не нажав "Сохранить". Будьте внимательны - отменяются все несохраненные изменения
и удаления по всем записям.


3. Возможности фильтра

3.1 Фильтр управляется двумя полями выбора действий. После добавления в список
оба действия установлены как "Ничего не делать", при этом комментарии добавленного
пользователя выделяются рамочкой желтого цвета.

3.2 Первое поле управляет фильтрацией по автору комментария.
Варианты выбора:

- "Ничего не делать"

- "Выделение автора цветом" : поле автора комментария вместе с погоном получает выбранный фоновый цвет

- "Скрывать все" : будут спрятаны все комментарии за авторством данного пользователя

- "Только ответы мне" : будут спрятаны только ответы данного пользователя владельцу дополнения (вам). Прочие комментарии этого автора спрятаны не будут. Опция работает только при наличии авторизации на сайте

3.3 Второе поле управляет фильтрацией по заголовку комментария.
Варианты выбора:

- "Ничего не делать"

- "Выделение заголовка цветом" :поле заголовка комментария (данного автора!) получает выбранный фоновый цвет (там, где дата написания, "кому" и пр.)

- "Скрывать ответы ему" : будут спрятаны все ответы данному пользователю от всех остальных авторов

3.4 При выборе опции "Выделение цветом" немедленно активируется "выбиралка цвета",
скрывающая управление фильтрацией. Завершить выбор цвета можно нажатием кнопки
"Закрыть" или кликом в любом месте списка за пределами цветовыбиралки.
(Не кликайте за пределами всплывающего окна!)
Последний выбранный цвет запоминается (даже если вы нажали "Esc"),
после чего опять восстанавливаются поля управления фильтром.

3.5 Если в фильтре настроено выделение цветом - фоновый цвет полей в списке
меняется соответственно: "имя пользователя" и "погон" по первому полю,
"дата" и "источник" - по второму полю.

3.6 Если в фильтре настроена хоть одна опция скрытия комментариев - поля в списке
"имя пользователя" и "погон" дополнительно отмечаются жирным шрифтом и зачеркиванием.


4. Примечания

4.1 Кроме значка в панели инструментов со списком пользователей, контекстного меню
и страницы настроек - других элементов интерфейса у дополнения нет.
На страницах сайта тоже никаких дополнительных кнопок и ссылок не создается.

4.2 После редактирования списка пользователей не забывайте нажимать кнопку "Сохранить",
иначе все изменения не запишутся. При любых действиях, закрывающих всплывающее окно
со списком - изменения не сохраняются.

4.3 После редактирования списка пользователей или страницы настроек
обновите страницы с открытыми темами, автоматически это не делается.

4.4 Все параметры и список фильтрации сохраняются на локальном компьютере,
никуда не передаются и никому больше не видны. Результаты работы фильтра,
такие как присвоенный "погон" и цвет, тоже видны только у вас в браузере.

4.5 Главная страница со списком тем никак не обрабатывается.

4.6 Спасибо камраду "Кабанатор" за основную идею и пример реализации.
Однако, дополнение "VOTT.RU: Stop Pupking!" никак не поддерживается.

---

Пример списка (в процессе редактирования):
[censored]

и что из него получается:
[censored]
#2 | 20:52 27.11.2020 | Кому: Швейк
Пока не умею.
Я на лисичке сижу, под неё и делал. ВПН у меня не используется - почему-то нет необходимости, но при случае включаю Browsec.
#3 | 21:07 27.11.2020 | Кому: Всем
Всем!

Кто хочет попробовать - поспешите установить!
Почему-то запланировано отключение загрузки. Я в этом деле - нуб, буду разбираться.
#4 | 21:08 27.11.2020 | Кому: бывший
> А можно тебе в личку написать?

Это куда?

> Есть одно соображение насчет плагина, но мои товарищи-программисты дать однозначную консультацию не могут. Вдруг и тебе будет интересно.


Интересно. Пиши хоть сюда, в тему.
#5 | 21:23 27.11.2020 | Кому: Всем
> Свистелки и перделки для слабаков.

Удобно же. Подкрасил кого надо, пометил кого не надо.
#6 | 21:24 27.11.2020 | Кому: Tegucigalpa
> А. Ну, ладно. Я запенил - камрад старался!

Спасибо!
#7 | 21:42 27.11.2020 | Кому: бывший
> Мне в конечном счете объяснили, что целиком блоки инфы затирать можно, как это делает с рекламой АДблок, а вот внутри блока это никак сделать нельзя, так как агрегатор яндекса сначала собирает ленту на отдельном сайте, а потом себе на главный сайт отправляет. И влезть туда никак не возможно, только сам яндекс может свой контент фильтровать. Интересно, так ли это в полной мере?

В полной мере - я не настолько спец в этом деле, я нуб.
Теоретически рассуждая - всё, что ты на экране видишь, как-то скачано браузером и поддаётся обработке.
Другой вопрос, если скачивание идёт скриптом, динамически - либо как-то перехватывать (надо знать протокол), либо обрабатывать по итогу (надо понимать, как найти итог и что там можно сделать).
Так что, если спец смотрел и сказал "не получится", то, наверное, и не получится.
#8 | 21:47 27.11.2020 | Кому: Всем
> Что б навел на ник, а под ним выпадает меню с ссылками на его избранные комменты. Мож кому пригодится когда.

Дык прилепить можно, а нужно ли? Про всех досье собирать на всякий случай - запаришься. Сразу захочется всякие поиски, сортировки, пометки и пошло-поехало, лепи базу данных. Я думал о таком, пока не готов.
#9 | 21:49 27.11.2020 | Кому: Всем
> Вот так у приблуды слетели настройки, а уже и не помнишь без подсказки и подсветки кто тебе тут друг, а кто гнилой пидарас.
>
> Это недопустимо.

На этот случай и приделал экспорт в текст!
#10 | 21:53 27.11.2020 | Кому: Alex Wolf
> не знаю зачем, но молодец.

Многие спрашивали.
Вон, камрад dse раздаёт волшебные заклинания под какой-то блокировщик, чтобы комменты чистить.
А тут всё быстро, в несколько кликов, и обратимо. Плюс можно помечать, а не чистить (я так и делаю).
#11 | 22:02 27.11.2020 | Кому: aspav
> Когда примерно, камрад?

Сложно сказать, я про хромовые расширения только читал у мозиллы, что типа "очень совместимо, можно портировать". Ну и только что закончил доделки, мозг ещё кипит ))

> В любом случае, мегамолодец! Даже если не буду юзать.


Спасибо, старался!
#12 | 22:08 27.11.2020 | Кому: alshup
> Что-то не сохраняет настройки под Mint 20. Т.е. персонаж добавляется, а опции по нему — нет.

В списке персонажей "Сохранить" нажимал? Отрисовка новых опций ещё ничего не сохраняет.

> Оно где настройки хранит? Мож права на запись выдать нужно?


В локальном хранилище для дополнений. Может, в MInt и права нужно, я не знаю.
Попробуй на странице настроек поменять раскраску рейтингов, сохранить настройки и перезагрузить браузер - проверить сохранение.
#13 | 22:16 27.11.2020 | Кому: shazamba
> Эх, для оперы бы

Функционал весь универсальный, современными браузерами поддерживается. Вопрос только в написании совместимого кода. Я пока ставил задачу написать хоть какой-то работающий код.

> Я плюнул на мозиллу, она все сильнее и сильнее тупила, и ушел на Оперу


У меня вроде не тупит. На работе тоже на хром и яндекс плюнул и огнелис поставил - машина древняя, полёт нормальный.
Какую версию Оперы используешь?

> И да, добавь возможность ставить для пользователей картинки


Куда? Какие? Где их хранить?
#14 | 22:28 27.11.2020 | Кому: alshup
> Сохранилось.
> Странно. Поковыряюсь ещё.

Действительно, странно. Всё сохраняется в одном месте. А на странице настроек "Количество пользователей в списке" ненулевое? Оно из сохранения берётся.
Попробуй экспорт ещё - глянь, что там в файле.
Да, главный вопрос - не сохраняются вообще никакие опции или частично?
#15 | 22:47 27.11.2020 | Кому: aspav
> Они почему-то (может, так и должно быть?) у меня применяются только при нажатии на галку в столбце "Погон" (а только потом "Сохранить"). Вот тогда и сохраняется раскраска и появляется возможность редактировать погон.

Так и должно быть. См. п. 2.8: "Галка" завершает редактирование записи (одной). Можно тут же её редактировать снова (или другую) и надо опять нажать галку.
Потом "Сохранить" - все сразу.
#16 | 22:50 27.11.2020 | Кому: Jonny
> А можно, чтобы не было class="comment_wrapper2 comment_bordered"?

А как нужно?
#17 | 22:54 27.11.2020 | Кому: Jonny
> Да и не очень понятно нахрена вот конкретно этот кусок

Дык это и есть ярко-желтый пунктир, выделять свежедобавленных, по которым ещё не выставлено никаких действий.
#18 | 22:57 27.11.2020 | Кому: aspav
> Ёпть! Ты знал!!!

А то! Я ж эту галку и рисовал :)

> ЗЫ. Нужно внимательнее читать, значицца :)


Ну да. Я просто не умею сделать, чтоб без галки и удобопонятно.
#19 | 23:06 27.11.2020 | Кому: Jonny
> Я наверное старый, просто убрал эту штуку и стало вот так:

Можно поменять там "Gold" на тот цвет, который подходит.
А можно внутрь не лазить, просто выбрать "Выделение цветом" каким-нибудь тёмненьким - и рамки не будет.

> И я доволен как слон, спасибо)


На здоровье!
Я про тёмные темы вообще не заморачивался. Если что глаз режет - пиши свои соображения, прикручу по возможности. Может, цвет этой рамки в настройки вывести или лучше определять тёмные темы и автоматом затемнять?
#20 | 23:18 27.11.2020 | Кому: Jonny
> А вот выключить это мне не удалось, так как там разный id

id не мой, это сайт такие делает. В стиле косяк - это мой )))
А цвет кармы настраивается (в настройках дополнения) - поставь подходящий.
#21 | 23:24 27.11.2020 | Кому: Jonny
> Настраивать его постоянно при добавлении погона это не круто.

Цвет кармы от юзера не зависит, подсвечивается даже у тех, кто не в списке.

> К тому же посты чередуются цветами и все равно будет не айс.


Надо будет попробовать тёмную тему.

> Хотелось бы иметь возможность просто это убрать.


Выставь число в настройках побольше (поменьше для отрицательного) - ни у кого не будет кармы 99.
#22 | 23:45 27.11.2020 | Кому: Jonny
> Выставил, но на сообщениях, где делал скриншот ничего не поменялось. Ctrl+F5 не помог.

Выставил - сохранил? Потом только F5. Оно всё работает через хранилище, динамически ничего не подхватывается.

> Но в основном везде нормально.


Вот это как вообще? Одна ведь настройка для всех страниц.

> А вот эта шляпа с бордером иногда (причем рандомно) все же всплывает и это реально печаль. Мне, увы, придется пока без плагина посидеть, ибо не могу с такой штукой жить никак.


Только для тех, кто в списке и действие фильтра никакое не установлено. Поставь хоть один цвет.
#23 | 00:12 28.11.2020 | Кому: Jonny
> Не в курсе, я в этом не разбираюсь

Давай вместе разберёмся. Мы про цвет кармы комментария? В настройках для этого два числа и два цвета, для всех. Один раз настроил и всё. Если число большое - цвет не применится вообще никогда.
Что где не срабатывает - поясни.
99 поставил - настройки сохраняются? После сохранения и обновления страниц карма всё равно подсвечивается?

> Нахер все эти полоски, цветастые кубики и прочее. Просто погон, можно даже со ссылкой на комментарий это да, неплохо.


Насчёт жёлтой рамки. Как будет лучше - отключать совсем в настройках или выбирать ей цвет?
#24 | 07:47 28.11.2020 | Кому: Beholder
> В треде не был, но почему Пальтоконь - "грамотей"? Значение этого слова диаметрально противоположно понятию "грамотный".

Словарь Ожегова:

ГРАМОТЕЙ, я, м. (устар. и ирон.). Грамотный человек. Ты у нас г. известный.
#25 | 07:48 28.11.2020 | Кому: gl00m
> А где сцылко на гитхаб или гитлаб какой-нибудь?

А нету!
Я ими не пользуюсь, не умею. Пока не надо было.
#26 | 08:05 28.11.2020 | Кому: Jonny
> Отключать в настройках вообще всё, кроме погонов. Можно одной галочкой.

Принято.

> Зашел в настройки плагина, выставил -500 и +500, естественно нажал кнопку сохранить.


Но как?! Там стоИт ограничение -99 и 99. И что, сохранилось?

> Открыл страничку, где делал скриншоты, обновил ее - не помогло. Обновил через контрл - не помогло.


Непонятно. Проверил у себя на всех сочетаниях - срабатывает. Возможно, это из-за косяка в программном оформлении стиля. Поправлю - поглядим.

> По поводу выбирания цвета я уже писал, но повторю еще раз: сообщения на вотт чередуются двумя цветами.


Тремя. Есть еще выделение коммента, когда переходишь по ссылке.
А я в CSS не силён, от слова совсем. Старался делать так, чтобы особо ничего не ломать и можно было настроить "несрабатывание". Что-то не получилось.

> Но это не намек, что надо добавить два выбора цвета. Нет, не собираюсь я там ничего подбирать. Вот выключить нахер - это да, было бы юзабельно. А еще лучше, чтобы это было выключено по-умолчанию.


Если просто добавлять в список и погоны вешать, то и отключать ничего не надо, кроме желтой рамочки. Сделаю.
Кстати, цвет погона устраивает?
#27 | 08:11 28.11.2020 | Кому: Cyberness
> Выложи на github исходники, камрады допилят, улучшат и непоправимо исправят!

Понял.
Надо будет поглядеть как это делается.
#28 | 08:39 28.11.2020 | Кому: Jonny
> А вот и ошибка. Не сохранилось, но не сообщило, что нельзя много.

У меня тоже 500 не сохраняет. Молча, но выделяет это поле при сохранении - типа "поправь ошибку".
Поставь 99 и сохрани, должно помочь.

> А почему нельзя много?


А просто так, чтобы не крутить сильно долго стрелочками!
Смысла нет, никогда не видел такой большой кармы.
#29 | 15:53 28.11.2020 | Кому: Korsar
Дык, давно уже черкнул. Буду адаптировать.
Сейчас только ошибки устранить и доделать по мелочи, а потом займусь.
#30 | 07:53 30.11.2020 | Кому: Ерш
> Круто! Большое тебе человеческое спасибо!

На здоровье!

> Буду ждать плагина под хром, как-то не ладится у меня с лисой.


А у меня наоборот.
Но под хром сделаю. Сроков назвать не могу пока - даже не копал в ту сторону.
#31 | 19:21 09.12.2020 | Кому: Jonny
> Отключать в настройках вообще всё, кроме погонов. Можно одной галочкой.

Камрад, я обновил версию плагина - в настройках теперь есть отключение цвета. Везде! (ну, почти - рамку спрятанных комментариев оставил).
#32 | 19:48 09.12.2020 | Кому: Jonny
> Если у меня появится что сказать, отпишусь в этой теме.

Ага, давай.
А то вроде больше конструктивных идей не было, буду ковырять кроссбраузерность.

> никаких конфликтов с темной темой не обнаружил.


Какие там конфликты, нечему конфликтовать.
Кстати, ты пользуешься своей темой или "тупичок стайл"?
#33 | 20:16 09.12.2020 | Кому: Jonny
Ясно. Спасибо!
Ну теперь 2 последних можно и убрать ;)
#34 | 18:11 15.12.2020 | Кому: Jonny
> Слушай, а определенные темы с конкретными тегами тоже ведь можно прятать? Ты же вроде писал, что можешь прятать сообщения

Не, это Кабанатор писал.
У меня главная страница с темами вообще не обрабатывается - это нужен другой модуль и совсем по другому данные для фильтра вводить.
Теоретически можно, конечно, но в эту сторону даже не думал - надо постановку задачи прорабатывать.
Войдите или зарегистрируйтесь чтобы писать комментарии.