Инструменты пользователя

Инструменты сайта


other:userscripts

Скрупты для радио

HTML5 player (Vito)
Меняет проигрыватель в левом фрейме с флеша на HTML5.

anon.fm cleaner (Vito)
Делает главную чуть безопаснее, помещая все сообщения от Ыыыыы под спойлеры.

DJ name fixer (Mïmo)
Меняет ФИО диджеев на их ники.

Что это вообще?

На большинстве страниц в WWW есть кусочки кода на JavaScript. Браузер читает страничку, натыкается на скрипт, и что-то делает, часто полезное. Эти скрипты пишутся Администрацией, пишутся медленно, и априори не могут удовлетворить всем противоречивым и шизофреничным шизожеланиям всех шизопользователей.
Но если тебе, Анон, позарез нужна какая-то вещь на глагне, её можно реализовать, встроив на страничку свой (а чаще чужой) кусочек кода. Такие кусочки кода и называются "пользовательскими скриптами", или по-англоязычному "user scripts".

Как ввести себе зонд в очко?

Браузеры из коробки если и могут управляться со скриптами, то криво. Поэтому для начала надо обзавестись управлятором пользовательских сценариев (Userscript manager). Ниже ссылкота в зависимости от браузера. Отсортирована по убыванию годности.
Chrome: Tampermonkey, Violentmonkey
Firefox: Tampermonkey, Violentmonkey, Greasemonkey
IE7-8: ie7pro
IE11: Trixie 1)

История?

Типичный юзерскрипт Сначала были браузерные расширения, и имя им было легион. Часть была сконцентрирована на общих для всего вэба вещах: выделение ссылок, которые автор сайта не посчитал нужным обратить в тег <a>, открывание всех найденных ссылок в новой вкладке… Другая часть встраивала в страницы свой код, как бактериофаги вставляют свою РНК в бактерию. Код менял внешний сайта, менял его поведение, добавлял горячие клавиши, добавлял новые — несомненно полезные — кнопки, словом, делал всё, до чего мог дойти воспалённый ум древних js-питеков.
Но писать подобные расширения было довольно нудным занятием: помимо JS надо было разобраться с дебрями XUL 2), спецификациями на RFD, DTD; вникнуть в layouts, ебанутый подход к локализации, обскурные внутренние апи, в которые даже юникод добавили не сразу… 3) (автор этих строк тоже не осилил)

В 2005 году Искра Божьего Озарения одновременно Аарона Будмана и команду разработчиков браузера Opera 4). Первый явил миру Greasemonkey, а вторые через полмесяца релизнули версию 8.0 с поддержкой юзерскриптов прямо в браузере.

Пользователей оперы всегда было немного. А аддон несколько лет вызревал-вызревал и взорвался в 2009-м. Люди распробовали вкус свободных интернетов и начали писать себе скрупты и переворачивать сайты с ног на голову. И если раньше все скрупты могли удобно поместиться на одной странице, то тут уже пришлось запиливать сайт-каталог. Первой пташкой из оных стал ныне мёртвый userscripts.org.

А потом тема поутихла, раскрутился хромог. В него поддержку сабжа добавил лично не кто-то там, а тот самый автор исходного Greasemonkey. Спустя некоторое время в хромого внедрили WebExtensions API, и разрабатывать расширения стало не сложнее чем юзерскрипты. Более того, сейчас огромная часть расширений и является не более чем оболочкой для старых-добрых юзерскриптов.

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

Эры рассвета пользовательских сценариев.

Хроники Greasemonkey, ещё. Тематические гуглотренды.

Где искать?

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

Самые известные имеют собственные сайты.

А самому можно сделать?

Есссно. С технической стороны код скрипта ничем не отличаются от того, который выполняется на веб-страницах, за парой исключений: объект window у них виртуальный 5), зато есть доступ к дополнительному API 6).

Так что если ты, Анон, владеешь магией JS и знаешь, чему равно 'яблоко'+1 и как пользоваться DOMом, тебе это будет как три трека об барабанную перепонку.

Ах да, метаданные. С ними всё просто: выбираешь директивы по духу, пишешь в шапке скрипта. Оно работает. Ты молодец.

1)
Настройки прячутся в скрытой по умолчанию верхней панели меню, в подменю Сервис
2)
Конструктор GUI от Mozilla
3)
Были в этом подходе, конечно, и плюсы: расширения в то благодатное время могли менять внешний вид браузера и его поведение. То, что сейчас даже теоретически не представляется возможным без создания нового отдельного хромоногого клона
4)
тогда ещё расово-норвежского
5)
Это сделано для бижапашношти пользователя. При желании можно достучаться до реального window-а при помощи директивы @grant unsafeWindow
6)
Старое API, которое поддерживают все. Новое ебанутое API, которое поддерживает только замасленная
other/userscripts.txt · Последнее изменение: 11.07.2020 13:29 — mimo