• Juick userscript 2.18.0

    * вроде всё починил, что отвалилось. Возможно некоторые вещи чуть медленнее на странице будут появляться.
    * вернул возможность копировать номер и ссылку комментария. Не знаю, насколько удобно/навязчиво получилось. Возможно потом сделаю открытие по клику и доработаю стили.

    greasyfork.org

Replies (23)

  • @killy, // @match ://localhost:8080/Было бы лучше, если бы в релизе этого не было\ручками удалять не приходилось. Ну это так, мелочь.
  • @voice-of-lolks, Да, наверное.
    Оно по умолчанию никак не используется. Можно включить, чтобы работало на жуйке, собранном из исходников на локалхосте.
    Но кроме меня это никому не надо.
  • @killy, Это... Я тут попытался, собственно, использовать в деле этот юзерскрипт и осознал, что Links открываются только по ховеру мыши, а с клавиатуры не открываются. Наговнякал говнофикс, пробую — и осознаю, что ничего не копируется, лол. Убрал говнофикс, попробовал кликать курсором — не, нихуя, ничего не копируется. Под файрфоксом не работает?
  • @voice-of-lolks, test
    #2886953/3
    juick.com
    Пишу из FF 43.0
    Всё скопировалось.
  • @voice-of-lolks, А selectAndCopyElementContents — это вообще откуда? copyAction у меня вызывается, но ничего не происходит.
  • @voice-of-lolks, да, как раз на selectAndCopyElementContents выполнение copyAction прерывается, но в консоли никаких ошибок. Наверняка какие-нибудь сандбоксы-хуексы у этого гризманки, я в этом не шарю нихуя, так что сходу точнее сказать что происходит не могу.
  • @voice-of-lolks, Ох лол.
    Спасибо что нашёл багу.
    Функция selectAndCopyElementContents была написана для другой фичи, ещё не опубликованной. И я по привычке не добавил её в коммит.
  • @killy, ага! А какого хера ошибок в консоли нет, не знаешь?
  • @voice-of-lolks, В FF две консоли. Неужели в обеих?
  • @voice-of-lolks, Исправил в 2.18.3
  • @killy, Ааа! Все, понял. В общебраузерной консоли оно, да. (Ну я же говорил, что нихуя не шарю в этих ваших экстеншнах-хуеншинах.)

    Слушай, тогда можно тебе сразу фичреквест сделать, while we are at it?

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

    ```
    <div class="hoverTarget" onclick="window.toggleHoverContainerVisibility(this)"> // добавил в hoverTarget onclick

    // добавил говнофункцию
    function toggleHoverContainerVisibility(t) {
    let x = t.parentNode.getElementsByClassName('hoverContainer')[0];
    x.style.visibility = (x.style.visibility == 'visible' ? 'hidden' : 'visible');
    }

    // вговнячил функцию в браузер
    unsafeWindow.toggleHoverContainerVisibility = exportFunction(toggleHoverContainerVisibility, unsafeWindow);
    ```

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

    (В принципе, лично меня и этот говнофикс устраивает — сейчас бэкпортну ту функцию из только что выложенной версии и все, не буду обновляться, пока что-то не отвалится, так что если не хочешь это добавлять — ок.)
  • @voice-of-lolks, Ок. Буду иметь в виду, для для :hover нужно ещё клавиатурный fallback. Но реализую по-другому.

    unsafeWindowПочему-то эта фигня считается очень опасной и нерекомендуемой. Хотя если очень надо, то выполнить свой код в контексте страницы можно другими путями.
  • @killy, re unsafeWindow: я просто погуглил и нахреначил первое, что заработало — потому и предупреждаю, что не шарю в этих экстеншнах\сэндбоксах и нормального патча сразу же послать не смогу, вот.

    Если реализуешь показ\скрытие по клику в будущих версиях — будет очень круто. Спасибо. :3
  • @voice-of-lolks, Убрал localhost, добавил поддержку клавиатуры.
  • @killy, Заценил. Не-а, не работает. %) Сейчас посмотрю, почему.
  • @killy, А, ну ты просто нечто другое реализовал, а не показ\скрытие по клику. Тоже ок, кому-то пригодится.

    На всякий случай уточню, что экстеншны для управления с клавиатуры (у меня vimfx, например) при нажатии "f" (follow) выбирают все кликабельные элементы на странице, присваивают каждому уникальное сочетание буковок и затем эмулируют клик по выбранному элементу. Сейчас при таком клике ховерКонтейнер мигает (на долю секунды показывается и скрывается снова), а в моем говнофиксе он при клике показывается. Впрочем, фокус на элементе после клика все равно остается, так что все равно можно нажать энтер и стриггерить твой keyboardClickable эвент.

    Алсо, после спейса по идее надо делать preventDefault, чтобы страница не прокручивалась вниз.

    Алсо, только сейчас обратил внимание, что на новых комментариях (которые загружены асинхронно, с зеленой полосочкой справа) блок Links не появляется.

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

    Как думаешь?
  • @voice-of-lolks, Сейчас при таком клике ховерКонтейнер мигает (на долю секунды показывается и скрывается снова)
    Кажется, в итоге click() делается два раза (если только vimfx не эмулирует мышь и не триггерит mouseleave). При этом я сделал его toggle, а не только включение. Можно сделать только на включение, но сперва надо найти надёжный способ определить уход клавиатурного фокуса из меню, иначе единственным способом погасить меню будет копирование.

    после спейса по идее надо делать preventDefault
    Да, наверное. Хотя я думал, а не убрать ли реакцию на пробел вообще, т.к. те же ссылки на него не реагируют.

    на новых комментариях (которые загружены асинхронно, с зеленой полосочкой справа) блок Links не появляется.
    Из юзерскрипта я не могу напрямую следить за тем, что делает js самой страницы. Нужно либо делать Mutation Observer, либо отдельно подписываться на тот же веб-сокет, что и страница. Оба решения не очень красивые, и мне пока что было лень это делать.

    было бы неплохо иметь не только у комментариев, но и у самого поста.
    Можно, если кнопку Share выкинуть.
  • @killy, Добавил preventDefault.
    Нашёл, как надёжно обрабатывать уход фокуса из меню, изменил toggle на add.

    Поставил Vimium на-посмотреть. В нём описанный баг не воспроизводился, но и фокус не оставался на выбранном элементе.
    vimfx не удалось поставить на ту старую версию, которая у меня есть. А для новых версий рекомендуют переходить на альтернативы (в которых может быть ещё какое-нибудь странное поведение...).
  • @killy, Ок, протестирую вечером на файрфоксе.

    Про 57+ версии даже думать не хочется, ох — опять же все поломали, причем с точки зрения юзера — на ровном месте. Но по идее vimfx — это клон vimium, и мигрировать с него предлагают на vimium-ff, который есть порт все того же vimium'а. Так что если в хромском вимиуме все норм, то и в лисичьем должно быть норм — впрочем, постараюсь протестировать сегодня в бете, чтобы наверняка.

    А, да — про Links в асинхронно загруженных комментах понял. Думаю, что оно и вправду не стоит того, чтобы из-за него заморачиваться.
  • @killy, Так, отписываюсь наконец. В current файрфоксе теперь все работает как надо — спасибо :3

    В бете 57-го юзерскрипт не работет вообще: ReferenceError: GM_getValue is not defined
    Подозреваю брейкинг чейнджи в гризманки.
  • @voice-of-lolks, Алсо, приятно удивлен 57-ой лисой. Работает действительно ОЧЕ быстро. Да и анимации я хоть и не люблю, но здесь они действительно в тему и создают ощущение отзывчивости, да и вообще кажется, что все очень четко, резко, быстро работает.

    Вимиум похуже вимэфикса (например, нет удобной консольки), но в целом особой разницы нет. Основные неудобства — перенос конфига и привыкание к пидорским плашкам с тенями над ссылками.
  • @voice-of-lolks, (хотя нафига я это сюда-то пишу? надо у себя такое постить, а не в комментах)
  • @voice-of-lolks, Тоже у себя решил запостить: #2888356
    Видимо, пока лучше заменить Greasemonkey на Violentmonkey.