Возвращение юзерскрипта, или покалеченный, но воспрявший tabun-fixes

+212
в блоге IT Pony!
Всем привет!

Если кто помнит, когда-то давным-давно, в далёкой-далёкой галактике… Ой, это же не из нашей вселенной. В общем, давным-давно, при позапрошлом крупном (и жутко глючном) обновлении Табуна, зародился небольшой юзерскрипт, исправляющий косяки и добавляющий небольшие фишки. Косяки потом исправили, а фишки оказались полезными и скрипт продолжил жить, развиваться и расти (и даже когда он не развивался и не рос, то по крайней мере верно служил тем, кто поставил его себе в браузер). И было всё отлично аж до недавнего времени, пока очередное обновление Табуна не сломало его полностью.

Долго ли, коротко ли, а накопал я несколько дней на посидеть за яваскриптом и восстановить скриптовую работоспособность. К моему ужасу, табун изнутра изменился настолько, что старые приёмы оказались неприменимы, и некоторые (самые важные) возможности скрипта реализовать уже нельзя вовсе. Однако, часть возможностей старого скрипта я-таки перенёс.

Скрипт переехал на новое место. Теперь его можно скачать здесь.


Что даёт этот скрипт:
• Кнопка с настройками в правом нижнем углу экрана (большинство фич надо сначала включить там);
• Ссылка на комментарий, находящийся в открытом сейчас посте, просто скролит страницу до нужного коммента, а не открывает сначала страницу tabun.everypony.ru/comments/<id> (для удобства эти ссылки ещё и подсвечиваются зелёным цветом при наведении);
• Чтобы меньше елозить мышью, лайт-спойлеры можно открывать не только по наведению непосредственно на спойлер, но и при наведении на содержащий его пост/коммент целиком, или даже всегда держать их приоткрытыми;
• Полноценные спойлеры можно открывать сразу вместе со спойлерами, вложенными в них;
• Проматывать непрочитанные комментарии можно кнопкой «пробел» на клавиатуре вместо кликов по циферям сбоку экрана;
• Можно показывать кол-во непрочитанных комментов в иконке в заголовке вкладки сайта (как на почтовых сервисах);
• Можно уменьшить глубину вложенности лестницы комментариев для узких экранов (сейчас табун отображает до 60 комментов в глубину);
• Можно поменять формат дат на произвольный;
• Надпись «в избранное» можно заменить на более компактную и заметную звёздочку;
• Ах да, теперь изменения конфигурации применяются без перезагрузки страницы (и даже ко всем вкладкам сразу);
• Ну и то, что мало кому интересно, но всё же: изнутри он теперь модульный и красивый :)

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

Как это установить?
Надо поставить расширение в браузер:
• Для Лисы — Greasemonkey;
• Для Хрома и новой Оперы — Tampermonkey.
А потом — просто перейти по ссылке на этот самый скрипт. Плагин подхватит его и при следующем обновлении страницы табуна в правом нижнем углу появится заветная шестерёнка :)

63 комментария

А кат прикрутить к этой стене не судьба?
AlexUnknown
0
Ссылка на комментарий, находящийся в открытом сейчас посте, просто скролит страницу до нужного коммента, а не открывает сначала страницу

Кстати, Табун теперь тоже так умеет.
GadS
0
А старые ссылки всё равно никто не обновлял
andreymal
0
А, вы про ссылки.
Я имел ввиду значки якоря.
GadS
0
О, это фича конфликтует с юзерскриптом ответов, лол)
andreymal
0
GadS
0
Круто! А починить поиск и редактирование комментов можешь? :)
Nox
0
Нет :)
eeyupbrony
0
Как сделать неподвижной кнопку прокрутки комментариев?
Yunnan
0
Заебала эта сука по экрану бегать…
Yunnan
0
Хм… Что у тебя за браузер такой?
eeyupbrony
0
Opera 33.0.1990.58
Yunnan
0
Хм. Воспроизвёл баг и в лисе тоже. Горе от ума, называется: какой-то скрипт меняет (и при этом косячно) позицию боковой панельки в зависимости от скрола и зума. Это при том, что достаточно css'а, который будет работать быстре, да ещё и не будет глючить :)
Короче, добавил костыль в юзерскрипт. Полагаю, скоро надобность в нём отпадёт, но пока пусть будет.
eeyupbrony
+1
Спасибо.
Yunnan
0
Была таже проблема. Но был виноват старый элт-монитор 1024х768, где табун не мог нормально отображаться…
arheus
0
Вот эта вот пакость:
При клике на ссылку на коммент, находящийся на текущей странице

не дает копировать ссылку с якоря. От ПКМ перекидывает страницу, но не открывает менюшку.
GlennWitcher
0
Вроде fxd. Обнови.
eeyupbrony
0
Вроде да.
GlennWitcher
0
Ура!!! Как долго я страдал без этого скрипта! Спасибо!
geolaz
+1
А автообновление комментов? :(
Vadiman98
0
Ну всё же в посте написано: в нынешней версии табуна это невозможно реализовать сторонним скриптом. Если Орхи снизойдёт до чтения моих писем и вернёт всё как было, сделаю.
eeyupbrony
0
Просто для меня это самая важная функция в скрипте.
Vadiman98
0
Ну, для меня тоже одна из самых важных. Но ничего не могу поделать :(
eeyupbrony
0
Мне интересно, когда он хотя бы 1.3 выпустит.
Vadiman98
0
Я вот заметил, что от скрипта при нажатии стрелки вверх, комментарий, на который она направила, перестал выделяться и стрелка вниз, которая позволяет вернуться к комментарию, от которого была нажата стрелка вверх исчезла.
Vadiman98
0
Поправил.
eeyupbrony
0
А почему? Что там такого изменилось?
Zayka
0
Ну, не считая того, что Орхи полностью переписал JS под вебпак…
lunavod
0
Орхи заныкал в замыкания все функции и объекты livestreet'а, не вызываемые непосредственно из обработчиков кликов.
Даже фукнция ls.comments.load, которая когда-то умела подгружать комменты без снятия зелёнки, теперь — всего лишь обёртка над спрятанной функцией, и догружать комменты умеет только так же, как нажатие на кнопку refresh и никак иначе, т.е. для автоподгрузки уже не подойдёт.
Теоретически, юзерскриптом можно выкинуть всю инфораструктуру LiveStreet и самому реализовать drop-in-замену, но на это нужны явно несоразмерные результату усилия :) Я всё-таки надеюсь на благоразумие Орхида и возврат к менее окукленной клиентской части livestreet'а.
eeyupbrony
0
А, ну то есть возможно, просто лень :P
Просто смотря на все остальное что ты сделал это кажется не таким уж и трудоемким %)
Zayka
0
Всё остальное, что я сделал, накапливалось примерно год в месяц по чайной ложке, когда было время и желание.
А перелопачивать движок livestreet'а — это обрекать себя на постоянный поиск багов и гонку с Орхидом за совместимость моих костылей с его изменениями на сайте (да, я понимаю, что Орхид — тот ещё гонщик, но всё же :3 )
eeyupbrony
0
Даже фукнция ls.comments.load, которая когда-то умела подгружать комменты без снятия зелёнки, теперь — всего лишь обёртка над спрятанной функцией, и догружать комменты умеет только так же, как нажатие на кнопку refresh и никак иначе, т.е. для автоподгрузки уже не подойдёт.

А в чём проблема сделать рефреш и озеленить назад?
Wolfram
0
Насколько я помню, ls подерживает список «зелёных» комментов внутри себя, а на фактическую «зелень» ей по большей части плевать. Поскольку до этого списка теперь не добраться, то при реализации твоей идеи постоянно будут слетать, например, количество непрочитанных комментов, скролл к следующему непрочитанному и т.д.
eeyupbrony
0
надеюсь на благоразумие Орхида
Не надейся, это в корне противоречит его представлениям о хорошем js, мы с ним уже срались
andreymal
+2
Андрей, одно время назад я полностью разделял эти представления и прятал всё что можно в такую глыбь, что теперь и вспомнить страшно. Но это прошло :) Возможно, у Орхи тоже пройдёт.
eeyupbrony
0
Вот Орхи пишет мне аналогичное, только наоборот))
andreymal
0
Ему надо прописать целебный курс Go-терапии. Излечивает от абстракции головного мозга :3

А вообще, тут, видимо, разница подходов к сайту: с моей точки зрения (и с точки зрения разрабов LiveStreet'а, видимо, тоже), это должна быть легко расширяемая со стороны система, а с его — … тоже легко расширяемая, но только изнутра проекта. Он просто не видит, что сайт стал менее расширяем, потому что для него он и не стал таким! Если прислушается к мнению со стороны — авось, заткнёт своё эго, и даст поразвлекаться другим. Если нет — тогда беда.
eeyupbrony
0
Для Сафари работает расширение NinjaKit. Оно достаточно старое и с откровенно уродливым интерфейсом, так что если кто-то знает более современный вариант, поделитесь, пожалуйста.
Sid
0
v30.6
Ого…
WildPony
0
Просто раньше я менял версии одним целым числом :D Каждый мелкий фикс — новая версия.
Теперь решил соскочить с этой модели, но нельзя же откатить версию назад?
eeyupbrony
0
Установил, не заметил изменений.
KillMeWithFire
0
Страницу обновил? В нижнем правом углу должна быть шестеренка.
Vadiman98
0
Меня вверх страницы выкидывает.
KillMeWithFire
0
Какой у тебя браузер?
eeyupbrony
0
Огнелис же. 0_о
KillMeWithFire
0
Так говоришь, как будто об это все должны знать.
Vadiman98
0
Просто ответственно заявляю что скрипт не работает.
KillMeWithFire
0
Нажми F12, открой вкладку Консоль и обнови страницу. Ну и пришли мне, что тебе там напишет в консоли.
eeyupbrony
0
Пишет…
TypeError: ls.hook is undefined 143311.html:413:9

Метод getPreventDefault() является устаревшим. Для его замены используйте метод defaultPrevented. jquery-1.7.2.min.js:3:0

Вот.
KillMeWithFire
0
Кажется, у тебя старая версия стоит. В новой ls.hook не должно использоваться (ибо, блин, спрятано Орхидом).
Попробуй удалить и поставить новую. Если не поможет — вычисти руками из папки с профилем лисы.
eeyupbrony
0
Ладно. Где взять в новую версию или принудительно обновить?
KillMeWithFire
0
www.mozilla.org/ru/firefox/new/
Простейшим образом же гуглится.
Vadiman98
0
Я думал вы про скрипт.
KillMeWithFire
0
pacman -Syu firefox
Hibonicus
+1
Новая версия скрипта! Из ссылки в топике.
eeyupbrony
0
Не поверишь, всё работает.
KillMeWithFire
0
Ох…
Vadiman98
0
ах
Hibonicus
0
TampermonEKy

— TampermonKEy

plz fix
ALFminecraft
0
Done :D
eeyupbrony
0
Какой-то дохуя кастомный сайт этот ваш Табун.
Russian_Ivan
0
Предложение, есть ли возможность добавить переход по пробелу на следующую страницу, если мы дошли до последнего поста на текущей, ипа old opera style?
arheus
0
Это думать надо. Теоретически, можно.
eeyupbrony
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.
Скрыто Показать