Привет, уважаемые Хабровчане.

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

В итоге родился вот такой проект — Toster Extension.

Что умеет расширение:

  1. Скрывать кнопку «Отметить решением» (для чужих вопросов)
  2. Поменять местами кнопки «Отметить решением» и «Нравится»
  3. Скрывать блок с вакансиями и заказами
  4. Скрывать блок «Похожие вопросы»
  5. Скрывать блок «Самое интересное за 24 часа»
  6. Дублировать пагинацию над списком вопросов в ленте
  7. Скрывать вопросы с решениями
  8. Использовать Ctrl+Enter для отправки формы
  9. Сохранять введенный в форму ответа текст до отправки
  10. Показывать имя или ник в списке вопросов
  11. Показывать все теги в списке вопросов
  12. Оборачивать примеры кода в спойлер
  13. Включить моноширинный шрифт для кода в вопросах/ответах/комментариях
  14. Открывать ссылки со страницы вопроса в новой вкладке
  15. Показывать ссылку на ЛС юзера на Хабре
  16. Показывать превью вопроса при наведении на заголовок в ленте
  17. Вырезать примеры кода из превью вопроса
  18. Показывать превью профиля при наведении на имя юзера
  19. Включить реалтайм показ новых уведомлений
  20. Черный список тегов
  21. Черный список пользователей

Примерно так выглядит сейчас моя

страница настроек
image

Расширение пока доступно только для Google Chrome и Firefox.

Проект написан на TypeScript, страница настроек с использованием Vue.js.

В качестве временного хранилища вопросов используется LocalStorage. Да, знаю, некошерно и лучше бы использовать тот же IndexedDB, но пока вот так.

Ближайшие планы:

  1. Отображение количества непрочитанных уведомлений на иконке расширения
  2. Лента вопросов с автоматическим обновлением
  3. Страница вопроса с автоматическим обновлением ответов и комментариев
  4. Поднять бэкенд для того, чтобы можно было хранить там проиндексированные вопросы, черные списки, разные отметки (например дизлайки) и прочее

Чуть позже расскажу о нюансах использования Vue.js в браузерном расширении, а так же об отличии Firefox и Chrome в неожиданном для меня месте.

Жду предложений в Issues и конструктивной критики в комментариях. Всем спасибо, что уделили немного времени.

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


  1. token
    26.03.2019 20:51
    -5

    Typescript и Vue.js некошерно, надо было на реакте писать.


  1. sfi0zy
    26.03.2019 21:29

    Раз уж речь зашла про расширения для тостера, я бы тут отметил и Toster-Comfort от dollar, уж очень мне полюбился формат, в котором статистика о пользователе выводится — кратко и сразу все видно:

    image


    1. yarkov Автор
      26.03.2019 22:09
      +1

      Знаю про него, даже пару раз PR сделал в репозиторий. Но вот что-то не зашло оно мне и решил пилить свое.
      Если будет фидбэк положительный, то реализую подобную статистику.


  1. eugene_bx
    26.03.2019 22:09
    -3

    Сделайте интерфейс с кросс-публикацией в ru.stackoverflow.com

    Или даже с stackoverflow.com с автоматическим переводом с гугл переводчика


    1. yarkov Автор
      26.03.2019 22:10

      Хм… Не думаю, что кросс-публикация силами расширения это хорошая идея. Но обязательно посмотрю в этом направлении. Спасибо.


      1. eugene_bx
        26.03.2019 22:27

        И заодно в другую сторону, т.е. с stackoverflow в тостер.

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


      1. Anton23
        27.03.2019 08:41
        +1

        С кросс-постингом на руСО — не очень хорошая идея. Дело в том, что на этих двух сайтах очень отличатся планка качества вопросов, и то что нормально пойдет на тостере, будет удалено на SO. Кстати, не планируете сделать похожее расширение для SO? Было бы неплохо. А кросс-постинг на stackoverflow.com — тоже не советую, там он сразу соберет минусов из-за машинного перевода.


        1. yarkov Автор
          27.03.2019 09:23

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


          1. Anton23
            27.03.2019 09:53

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


        1. eugene_bx
          27.03.2019 16:19

          Ну я думаю что тот кто задаёт вопрос может адекватно оценить необходимость публикации на SO. Если вопрос не подходит, то и не постить, я не предлагаю делать автоматический кросс-постинг.


  1. xPomaHx
    27.03.2019 07:31

    Может кому пригодится для себя писал скрипт в Tampermonkey
    gist.github.com/xPomaHx/83e70c45c43ce2614877e2c826ed3181
    автоматом срабатывает на toster.ru/questions/interesting скачивает 10 страниц погинации отображает в 1 список, и фильтрует подсмотренные, подсмотренные убираются в локалсторейдж кнопкой крест.
    Меня напрягала работа этой рубрики, а других выборок у них вообще нет, я бы например сортировал по просмотрам за год, а приходится довольствоваться тем что дают, но так выходит много повторов, а это бесит.
    Так можно хоть пять раз в день заходить и читать, только новые, иначе доскролить просто не получится там они перемешиваются непонятным способом.
    Тоже самое написал себе для хабра чтобы точно отмечать статьи которые я прочитал, ну и убирать те которые точно не буду читать.


  1. sergey-gornostaev
    27.03.2019 10:57

    Нет действительно нужной функции — отображения в вопросе процента принятых его автором ответов. Чтобы не тратить время на хронически неблагодарных.


    1. yarkov Автор
      27.03.2019 11:21

      Такую информацию вроде и сам Тостер не отдаёт, так что ее просто негде взять.


  1. ThunderCat
    27.03.2019 12:04

    Перенесите строчку «автор вопроса» ниже заголовка, очень сильно ломает как общий вид, так и юзабилити, все же это добавочная информация, ее можно даже шрифтом поменьше дать.


    1. yarkov Автор
      27.03.2019 12:45

      Спасибо за участие. Если я Вас правильно понял, то должно быть как-то так?


      1. ThunderCat
        27.03.2019 17:54

        да, так на порядок аккуратнее


  1. uvelichitel
    27.03.2019 13:56

    15. Показывать ссылку на ЛС юзера на Хабре

    А как это сделано? Штатными средствами(мышинными кликами) у меня не получается. Видимо у toster.ru есть API? Публичное, в открытом доступе? Или парсинг и реверс-ижиниринг?


    1. yarkov Автор
      27.03.2019 14:01

      Видимо у toster.ru есть API?

      К сожалению нет API.

      А как это сделано?

      Эм… Обычная ссылка с подстановкой логина юзера.
      image


  1. umaxe
    27.03.2019 16:33

    Чуть позже расскажу о нюансах использования Vue.js в браузерном расширении

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