Кто вам пишет в хабраящике. Расширение для браузера

в 20:00, , рубрики: Extensions, Google Chrome, opera, производительность, расширения, хабрахабр, Хабрахабр API, хром, метки: , , , , , ,

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

Также был доработан блок по приёму хабратопиков (для уменьшения трафика) и исправлено немного общих багов.

Добавлен приём и просмотр личных сообщений — вкладка «Приват». В ней приватные вкладки «Контакты», «Переписка» и приватные события.

В контактах присутствуют системные папки «Я читаю» и «Меня читают», а также «Последние контакты». В последних контактах оказываются юзеры, с которыми вы когда-либо переписывались, при этом они отсортированы по времени самого последнего сообщения.

Также можно создать свои папки или так называемые группы, в которые впоследствии можно добавить юзеров, таким образом удобно раскладывая по полочкам всех юзеров, с которыми у вас переписка.

Кто вам пишет в хабраящике. Расширение для браузера

Во вкладке «Переписка» список юзеров, с которыми вы общаетесь в данный момент. Справа видны «хабраящики», а ниже их сообщения из активного ящика.

Щелчок по аватару юзера (в любом месте расширения) открывает в новой вкладке его профиль.

Добавить пользователя в «переписку» можно простым кликом на его имя в любом месте приложения. Все папки и сообщения кешируются, а в случае необходимости обновить сообщения в папке с сервера нужно кликнуть по активной папке. Под названием папки ссылка на хабраящик на хабре, и чтобы открыть его в новой вкладке, используйте Ctrl.

Новые комментарии помечаются более жирным шрифтом и плюсиком со счётчиком количества новых сообщений.

Кто вам пишет в хабраящике. Расширение для браузера

Приватные события создаются из новых хабраящиков и новых комментариев в них. Новые приватные события помещаются во вкладку «Новые» и в переписку (юзер при этом будет мелькать, показывая этим, что от него есть новое сообщение).

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

Информация кешируется на 5 минут (и запрашивается с сервера только для активных элементов).

Добавленные настройки:

  1. Подгружать свою старую переписку. Если включено, то будет подгружаться ваша старая личная переписка (у которых время создания раньше времени установки расширения)
  2. Ограничение подгрузки и проверки переписки, страниц.
  3. Периодичность пересканирования переписки, сек. Как часто будет пересканировать весь список вашей переписки на появление в них новых сообщений. Сделано для того, чтобы всё же находить комментарии для вас, если через проверку прямого эфира они упустились — по причине закрытия браузера, отсутствия интернета и т.п.
  4. Настройка Периодичность сканирования прямого эфира расширена до Периодичность сканирования прямого эфира или привата, сек. То есть, используется и для прямого эфира и для привата. Это один и тот же адрес, поэтому настройка одна.

Пока всё. Отправление сообщений через расширение пока не реализовано из-за технических ограничений архитектуры расширений для Хрома и Оперы.
Оба браузера не позволяют выставлять заголовок Referer в ajax-запросах, хотя в настройках на этот домен выставлены права.
По сути, этот, как я считаю, баг, не позволяет создавать полноценные расширения. Будем надеяться, что этот баг исправят.

Я попробовал также применить одну хитрость в Хроме с iframe (в Опере это пока не работает), но это не сработало — то ли у хабры стоит защита на iframe, то ли это баг в Хроме. Постараюсь это получше исследовать.

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

В ближайшем будущем буду заниматься разделом QA, а также сделать версии для браузеров Safari и Firefox.

Автор: Methos

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js