to post messages and comments.

← All posts tagged JS

После #2871615/4 я обратил внимание на то, что Tampermonkey существует в том числе для Dolphin Browser и UC Browser на Android.
Решил проверить, заработает ли там хоть как-то мой скрипт.

Разумеется, сразу ничего не заработало. Пришлось разбираться, как тут скрпты отлаживать можно.
Получилось так:
* Релевантные сообщения сыпятся в андроидный лог с определёнными тегами.
* Первое приложение для просмотра лога, которое мне позволило более или менее адекватно работать — CatLog.
* Хотя хотелось бы более удобную работу с фильтрами.
* По идее браузер кидает сообщения с тегом "Web Console".
* Но Tampermonkey удобнее отлаживать, включив дебаг в его настройках и фильтруя по тегам на "TD_S" (скриншот в комменте).

Основной проблемой стало то, что на моём смартфоне не поддерживается ES6. Что-то сконвертировал, где-то подставил полифилы... В результате получился почти рабочий юзерскрипт. Не работает встраивание жуйки и ютуба. Возможно что-то ещё. Плюс некоторые вещи долго обрабатываются на телефоне.
Результат может зависеть от версии андроида.

Положил эту версию сюда:
greasyfork.org

Оригинал, по-прежнему, тут:
greasyfork.org

Мне не нравятся эти браузеры. Но если пользователи для этой версии скрипта найдутся, то надо будет как-то автоматизировать сборку под ES5 и посмотреть, какие ещё костыли подставить.

Точка с запятой нужна?


Я тут узнал про этот холивар.
JS — ленивый язык для ленивых людей. Настолько, что им лень в C-style языке ставить C-style разделители выражений.

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

Если я предпочитаю использовать т-с-з, по аналогии с другими языками и потому что явное лучше неявного, то ASI мне только палки в колёса иногда вставляет, делая внешне нормальный код нерабочим (неявные вещи случаются независимо от моей воли).

Сторонники "чистого кода" говорят, что у них всё хорошо, надо вот только помнить про несколько случаев, где препроцессор ошибается, и они то не пишут код так, чтобы сталкиваться с этими случаями. И даже если сталкиваются, то т-с-з в начале строки — это абсолютно нормальное решение в такой ситуации.
Для меня звучит как сидром жертвы плохого дизайна языка.

Вот эта "фича" регулярок в JS очень огорчает.
Можно было бы легко выбирать параметры из url'ов. Но нет, захватывается только то, что попало в последний проход, т.е. в данном случае только тот параметр, который стоит крайним справа.

regex101.com — на примере можно пощёлкать языки и увидеть, что попадает в результаты.

В JS остаётся только выгребать все параметры массивом и уже из него брать нужное.

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

Границы лет — хардкод, и я утомился искать предыдущие, так что только последние несколько лет.

Попутно обнаружил, что там что-то не так с форматом дат (возможно, только в старых постах): в посте и в ленте показывается по разному — UTC или местное время.

greasyfork.org

Сделал цвета тегов style-aware, чтобы с тёмными темами работало.
Плюс, более правильно диапазон значений выбирается и глубина диапазона яркости задаётся одной переменной.

Работает с userstyles.org , но не работает с userstyles.org почему-то. Поскольку второй уже не совсем совместим с Juick'ом и вряд ли будет обновляться, то не стал разбираться, почему так.

greasyfork.org