Как и многие здесь я часто пользуюсь Тостером и порой очень не хватает некоторых фич, которые могли бы облегчить или ускорить процесс взаимодействия с данным сайтом.
Поэтому было решено сделать расширение для браузера, которое восполнило бы этот пробел.
В итоге родился вот такой проект — Toster Extension.
Что умеет расширение:
- Скрывать кнопку «Отметить решением» (для чужих вопросов)
- Поменять местами кнопки «Отметить решением» и «Нравится»
- Скрывать блок с вакансиями и заказами
- Скрывать блок «Похожие вопросы»
- Скрывать блок «Самое интересное за 24 часа»
- Дублировать пагинацию над списком вопросов в ленте
- Скрывать вопросы с решениями
- Использовать Ctrl+Enter для отправки формы
- Сохранять введенный в форму ответа текст до отправки
- Показывать имя или ник в списке вопросов
- Показывать все теги в списке вопросов
- Оборачивать примеры кода в спойлер
- Включить моноширинный шрифт для кода в вопросах/ответах/комментариях
- Открывать ссылки со страницы вопроса в новой вкладке
- Показывать ссылку на ЛС юзера на Хабре
- Показывать превью вопроса при наведении на заголовок в ленте
- Вырезать примеры кода из превью вопроса
- Показывать превью профиля при наведении на имя юзера
- Включить реалтайм показ новых уведомлений
- Черный список тегов
- Черный список пользователей
Примерно так выглядит сейчас моя
Расширение пока доступно только для Google Chrome и Firefox.
Проект написан на TypeScript, страница настроек с использованием Vue.js.
В качестве временного хранилища вопросов используется LocalStorage. Да, знаю, некошерно и лучше бы использовать тот же IndexedDB, но пока вот так.
Ближайшие планы:
- Отображение количества непрочитанных уведомлений на иконке расширения
- Лента вопросов с автоматическим обновлением
- Страница вопроса с автоматическим обновлением ответов и комментариев
- Поднять бэкенд для того, чтобы можно было хранить там проиндексированные вопросы, черные списки, разные отметки (например дизлайки) и прочее
Чуть позже расскажу о нюансах использования Vue.js в браузерном расширении, а так же об отличии Firefox и Chrome в неожиданном для меня месте.
Жду предложений в Issues и конструктивной критики в комментариях. Всем спасибо, что уделили немного времени.
Комментарии (19)
sfi0zy
26.03.2019 21:29Раз уж речь зашла про расширения для тостера, я бы тут отметил и Toster-Comfort от dollar, уж очень мне полюбился формат, в котором статистика о пользователе выводится — кратко и сразу все видно:
yarkov Автор
26.03.2019 22:09+1Знаю про него, даже пару раз PR сделал в репозиторий. Но вот что-то не зашло оно мне и решил пилить свое.
Если будет фидбэк положительный, то реализую подобную статистику.
eugene_bx
26.03.2019 22:09-3Сделайте интерфейс с кросс-публикацией в ru.stackoverflow.com
Или даже с stackoverflow.com с автоматическим переводом с гугл переводчикаyarkov Автор
26.03.2019 22:10Хм… Не думаю, что кросс-публикация силами расширения это хорошая идея. Но обязательно посмотрю в этом направлении. Спасибо.
eugene_bx
26.03.2019 22:27И заодно в другую сторону, т.е. с stackoverflow в тостер.
Проблема с тем что когда есть множество похожих систем, хотелось бы иметь механизм с упрощением работы между ними.
Anton23
27.03.2019 08:41+1С кросс-постингом на руСО — не очень хорошая идея. Дело в том, что на этих двух сайтах очень отличатся планка качества вопросов, и то что нормально пойдет на тостере, будет удалено на SO. Кстати, не планируете сделать похожее расширение для SO? Было бы неплохо. А кросс-постинг на stackoverflow.com — тоже не советую, там он сразу соберет минусов из-за машинного перевода.
eugene_bx
27.03.2019 16:19Ну я думаю что тот кто задаёт вопрос может адекватно оценить необходимость публикации на SO. Если вопрос не подходит, то и не постить, я не предлагаю делать автоматический кросс-постинг.
xPomaHx
27.03.2019 07:31Может кому пригодится для себя писал скрипт в Tampermonkey
gist.github.com/xPomaHx/83e70c45c43ce2614877e2c826ed3181
автоматом срабатывает на toster.ru/questions/interesting скачивает 10 страниц погинации отображает в 1 список, и фильтрует подсмотренные, подсмотренные убираются в локалсторейдж кнопкой крест.
Меня напрягала работа этой рубрики, а других выборок у них вообще нет, я бы например сортировал по просмотрам за год, а приходится довольствоваться тем что дают, но так выходит много повторов, а это бесит.
Так можно хоть пять раз в день заходить и читать, только новые, иначе доскролить просто не получится там они перемешиваются непонятным способом.
Тоже самое написал себе для хабра чтобы точно отмечать статьи которые я прочитал, ну и убирать те которые точно не буду читать.
sergey-gornostaev
27.03.2019 10:57Нет действительно нужной функции — отображения в вопросе процента принятых его автором ответов. Чтобы не тратить время на хронически неблагодарных.
yarkov Автор
27.03.2019 11:21Такую информацию вроде и сам Тостер не отдаёт, так что ее просто негде взять.
ThunderCat
27.03.2019 12:04Перенесите строчку «автор вопроса» ниже заголовка, очень сильно ломает как общий вид, так и юзабилити, все же это добавочная информация, ее можно даже шрифтом поменьше дать.
yarkov Автор
27.03.2019 12:45Спасибо за участие. Если я Вас правильно понял, то должно быть как-то так?
uvelichitel
27.03.2019 13:5615. Показывать ссылку на ЛС юзера на Хабре
А как это сделано? Штатными средствами(мышинными кликами) у меня не получается. Видимо у toster.ru есть API? Публичное, в открытом доступе? Или парсинг и реверс-ижиниринг?yarkov Автор
27.03.2019 14:01Видимо у toster.ru есть API?
К сожалению нет API.
А как это сделано?
Эм… Обычная ссылка с подстановкой логина юзера.
umaxe
27.03.2019 16:33Чуть позже расскажу о нюансах использования Vue.js в браузерном расширении
Это было бы очень интересно.
Сам в раздумьях — и хочется vue.js использовать в моем расширении, и колется — берут меня сомнения в необходимости тащить немаленькую библиотеку ради удобства.
token
Typescript и Vue.js некошерно, надо было на реакте писать.