0,0
рейтинг
3 июня 2012 в 00:00

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

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

Давно хотел это реализовать, а прочитав комментарий, понял, что пора, благо движок уже оттестирован на подобном расширении для другого сайта.

Пока сделаны версии для двух браузеров — Chrome и Opera.

На текущий момент в версии 1.0 реализован минимум — оповещение о новых комментариях, которые направлены вам.

По приходу нового комментария начинает мигать иконка расширения с количеством новых комментариев, и открыв список, вы увидите новое сообщение, помеченное жирным фоном и с красной пометкой-кнопкой «новое». По щелчку на эту кнопку сообщение помечается как прочитанное. Точно также сообщение помечается как прочитанное при открытии ссылки события (хабратопика).


Можно «удалить» (скрыть) неинтересное сообщение, если нужно. Оно попадает во вкладку «удалённые». А уже из этой вкладки они удаляются навсегда.

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

Ответ через расширение пока не реализовал, ибо у хабры стоит проверка на Referer при отправке комментария, но обязательно сделаю это в следующих версиях.

Присутствует меню для действий со всеми элементами — можно пометить как прочитанное, удалить, восстановить. Это треугольник справа от названий вкладок «новые», «все» и т.д.

Также можно просмотреть информацию о пользователе по наведению мыши на ник — пока только аватар, карма и рейтинг.

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

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

Есть показ того собственного (своего) коммента, на которое был дан ответ другим пользователем, при наводке мыши на ссылки с текстом «отвечает в хабратопике...» всплывает полный текст вашего комментария.

Для Хрома работает desktop notification. Можно отключить — иконка в правом верхнем углу.

Движок использует БД на sqlite для хранения данных.

Использован обратный страничник. Это позволяет сделать так, чтобы сообщения были постоянно на одной и той же странице, сколько бы новых ни появилось.

Все ссылки укорачиваются до минимально возможной длины с троеточием посередине. При цитировании они правильно раскрываются в нормальные полные ссылки.

Длинные записи сворачиваются и рисуются ножницы. Чтобы посмотреть весь текст, нужно щёлкнуть по ним.

Расширение для Оперы расположено на моём сервере, поэтому встроено автообновление по стандарту.

В Опере стоит ограничение по размеру БД на 5 Мбайт, поэтому, чтобы хранить много информации, вы можете увеличить этот размер. Нужно открыть в Опере вот эту ссылку opera:config#PersistentStorage:
Нужно увеличить Domain Quota For Databases, Domain Quota For Widget Preferences, Global Quota For Databases, Global Quota For Widget Preferences.
Необходимый минимум для расширения — 1 Мб (зависит от объёма переписки, для 400 комментариев около 600 Кбайт нужно)

При самом первом запуске оно будет активно трудиться и подгружать все ваши комментарии + ответы на них, а также юзеров, которые это всё написали. То есть, будет тратить трафик.

В дальнейшем же трафик будет на уровне минимум 8 Кб в минуту, но обычно выше, так как будут постоянно проверяться на новые комментарии те хабратопики, в которых вы участвуете (но обычно это только те хабратопики, которые проявляются в прямом эфире).

Хабр проверяет Referer и при взятии комментариев, поэтому хабратопики берутся полностью по html-каналу, а не по ajax, но если хабр уберёт эту проверку, то трафик можно снизить до минимума.

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

Настройки:
  1. Можно сделать так, что при клике по окошку desktop-уведомления будет открываться ссылка события, а также событие будет помечаться прочитанным;
  2. Периодичность сканирования прямого эфира, сек — как часто проверять прямой эфир на появление обновленных хабратопиков, где вы комментировали. Не ставьте слишком большое время, ибо тогда может не ухватить хабратопик и пропустить комментарий для вас. Хотя он всё равно найдётся при пересканировании ваших комментариев;
  3. Периодичность проверки новых собственных комментариев, сек — как часто проверять на появление ваших собственных комментариев в вашем профиле. По сути, влияет на добавление хабратопика в проверяемый список прямого эфира;
  4. Периодичность пересканирования собственных комментариев, сек — раз в час будет пересканировать весь список ваших комментариев на появление в них новых комментариев (ибо там есть счётчик комментариев). Сделано для того, чтобы всё же находить комментарии для вас, если через проверку прямого эфира они были пропущены — по причине закрытия браузера, отсутствия интернета и т.п.


Планирую добавить подобные оповещения и просмотр для QA и привата, сделать функцию отслеживаемых хабратопиков и многое другое.

Ваши пожелания приветствуются, сообщения о багах тоже.

Евгений Иванов @Methos
карма
52,0
рейтинг 0,0
Front-end developer
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Спецпроект

Самое читаемое Разработка

Комментарии (24)

  • 0
    Пользовался, был, так сказать тестером :). Прекрасная штука, особенно если много комментариев и за всеми уследить невозможно.
  • +2
    Проблему отслеживания ответов на комментарии решаю ч/з стандартные оповещения хабра на свой ящик, тем не менее, допускаю, что это может быть не всегда возможно/удобно и тд., так что спасибо за потраченное время.
    • +1
      По сути, это расширение полезно не только оповещениями, но и хранением и дальнейшим удобным просмотром всех событий. Плюс оно может предоставлять всевозможные аналитические функции.

      По сути, одна уже работает, цитирую funcraft:
      Сортировка по рейтингу своих комментариев — позволило бы проанализировать отрицательные, чтобы проще учесть свои ошибки

      • 0
        Так точно, Methos. Активно пользуюсь этой фичей (:
        • 0
          спасибо громадное, funcraft =)
  • +1
    двач-стайл))?
    • +1
      вишмастер?
      • 0
        Кто-о-о отвечает в посте хабрахабра?
  • 0
    Как отметить все прочитанным?
    • 0

      Есть контекстное меню для действий со всеми элементами — можно пометить как прочитанное, удалить, восстановить. Это кнопка-треугольник справа от названий вкладок «новые», «все» и т.д.
      • 0
        Просмотрел, сорри. :)
  • НЛО прилетело и опубликовало эту надпись здесь
    • 0
      Если часы — сортировка по времени, если человек — по карме. И показывают текущий статус.

      Согласен, этот переключатель сортировки не очень хорошо оформлен, постараюсь в следующей версии оформить получше.
      • НЛО прилетело и опубликовало эту надпись здесь
        • 0
          Я хотел вообще сделать переключатель в виде радио, чтобы показывал две иконки, но одну из них как-то выделял. Потому подумал, что сортировка здесь возможна не только по двум параметрам, но и по другим, и решил это отложить на будущее, так сказать, накопить информацию и выдать впоследствии полный результат.

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

  • +1
    А можно сделать так, чтобы все-все комментарии не подгружались? С какой-то даты или N последних? То есть первоначальный трафик сократить.
    • 0
      Как-бы — «грузить и проверять только комментарии за последний N-месяц»?
      А остальные игнорировать?
      • 0
        Да.
        Или: только комментарии на первых N страницах отсюда: habrahabr.ru/users/username/comments/
        Или: только новые с момента установки расширения.

        И чтобы при запуске не грузились сразу, а можно было настроить.
        • 0
          Я сделал настройки по времени загрузки, по ограничениям загрузки и т.п.

          Мне нужно оттестировать, поэтому нужен комментарий в корень этого топика. Будьте добры, кто-нибудь? =)
  • 0
    Класс! Очень не хватало такой штуки, ибо в почте смотреть неудобно и приходилось переодически заходить в раздел «комментарии» и проверять последние парочку, так как считаю правилом плохого тона не отвечать на вопрос.

    Спасибо!
  • 0
    Так верстают только чудаки!
  • 0
    Пожалуйста.
    • 0
      Выложил новую 1.31 версию.

      Добавил настройки разных времён, загрузку комментариев к собственным хабратопикам, проверку собственных хабратопиков на изменение в них.

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

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


      Поясняю. Настройки по умолчанию настроены на экономию трафика, но при этом возможен пропуск изменения того, что расположено на тех страницах, которые не проверяются. Это ваш выбор, контроль полностью в ваших руках. То есть, если у вас безлимитный быстрый интернет, то можно без последствий включить подгрузку всех комментариев, топиков и юзеров, ограничение страниц поставить на 0 (не ограничено). Если же у вас медленный интернет, то тогда поставьте настройки как можно меньше.

      Если юзеров автоматом не грузить, то у них просто навсего будет отсутствовать расширенная информация — карма, фото и т.д.
      В любом случае, если вызвать появление окошка информации юзера и подождать так 5 секунд, то полная информация о юзере подгрузится и обновится.

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

      Также добавил поле у юзеров, сколько голосов было отдано для кармы.
  • 0
    Если в Опере долго не обновляется расширение, то можете обновить по ручному e-ivanov.ru/habr_updates/

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