Пользовательские скрипты для управления содержимым сайта

07.02.2013

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

Если вдруг не знаете, речь о программах на javascript, которые хранятся на локальной машине, и которые можно запускать на страницах любых сайтов, получая доступ к DOM. В Firefox это делается с помощью расширения Greasemonkey, в Chrome — с помощью Tampermonkey, в Opera — с помощью файлов user.js.

Что именно можно делать? Например, можно в пару кликов постить найденные в интернете картинки и кусочки текста на свой сайт. Посмотрите, как работает букмарклет френдфида. Можно в любом месте на своем сайте внедрить edit-in-place-редактирование. Можно подсвечивать ненормативную лексику и т.д.

Чем пользовательские скрипты лучше тех, что «встроены» в сайт? Они могут работать не только на вашем, но и на любом другом сайте. Их не нужно деплоить, не нужно думать о контроле доступа, не нужно тестировать в разных браузерах. Они гранулярные. Они могут быть написаны грязно, на один раз. Их проще начать разрабатывать, а потом, при необходимости, легко перенести на сайт. Не нужно писать лишний серверный код.

Общий алгоритм такой:

  1. Человек мышкой указывает на текст/URL/картинку/видео на вашем или чужом сайте.
  2. После клика/выделения появляются поля для редактирования/добавления параметров и кнопка для сохранения.
  3. После нажатия на кнопку отправляется POST-запрос.
  4. Этот запрос обрабатывается простеньким серверным скриптом, который выполняет insert/update запросы к базе данных и обрабатывает файлы.

Скорость выполнения операций с такими вспомогательными скриптами возрастает в разы. Что не менее важно, избавление от части рутинных кликов делает процесс для человека гораздо приятнее.

Ссылки на фрагменты кода для людей, которые, как и я, не особенно хорошо знают javascript:

Если вы напишете пару подобных скриптов, то увидите, что они однотипные и простые. После этого, когда будете замечать трудоемкий участок рутинной работы, сразу будет хотеться его автоматизировать. Когда объемы большие, написать пользовательский скрипт — быстрее, чем решать задачу в лоб.

Комментарии

Алексей, 07.02.2013 22:35

Дима, привет. Рад, что ты снова написал пост, надеюсь, та регулярность, чтобы наблюдалась год-полтора назад, снова вернётся :-)

По теме: у юзерскриптов есть одна ужасно неприятная особенность: их надо обновлять и устанавливать локально. То есть их внедрение мало пригодно для сайтов, которые будут обслуживаться клиентами или часто меняющимися контентщиками, потому что куча накладных расходов придётся на обучение, обновление версий и т.д. разве что идти дальше и делать сразу своё «студийное» расширение для браузера.

Дмитрий Сергеев, 08.02.2013 09:46

Спасибо за добрые слова.

С недостатком согласен.

Мне нравится, что при разработке нужен минимум лишних движений. Психологически проще решиться автоматизировать какую-то задачу. Не нужно думать, как в этой CMS "правильно" подключить edit-in-place, как бы использовать максимум уже написанного кода. Написал - решил текущую задачу, дальше, если приживется, срипт можно облагородить.