Action Streams

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

Специально для тех, кто привык жить публично, кто хочет показать другим свои действия в интернете, был создан плагин Action Streams. Он позволяет собирать информацию с любых(!) сайтов, независимо от того, есть ли у них экспорт в RSS или нет. А затем публиковать эту информацию в своём блоге. Например, можно публиковать в блоге список расшаренных сообщений из Google Reader, одобренные ссылки на Digg.com, сообщения из Twitter'a или новые фотографии на Flickr.

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

Плагин Action Stream позволяет работать с XML и HTML документами. Это значит, что можно «скормить» ему какой-нибудь фид (RSS, Atom) или любую HTML-страницу. Лучше использовать фиды, так как их парсинг будет происходить быстрее и точнее.

Формат файла прост, это обычный YAML. Большинство современных редакторов подсвечивают его синтаксис. Хотя, для редактирования подойдёт любой текстовый редактор. Вот как выглядит файл в редакторе Notepad++:

action-streams-config.jpg

Приступаем к реализации

  1. Для начала нужно скачать и установить плагин. Делается это стандартным способом.
  2. Дальше нам нужно добавить новые сервисы в конфигурационный файл плагина — config.yaml. Открываем его и сначала ищем строчку «profile_services:». Блок profile_services содержит множество элементов — это и есть список сервисов. Рассмотрим формат каждого элемента.
    br /> action-streams-config-1.jpg
    1. Название элемента — должно быть написано латинскими буквами, без пробелов и специальных знаков.
    2. Имя элемента — может быть написано буквами из любого алфавита. Если имя состоит из нескольких слов, его нужно заключить в одинарные кавычки.
    3. URL страницы пользователя сервиса — адрес страницы, включающий в себя паттерн «%s», обозначающий имя пользователя.
    4. Подсказка, какие данные необходимо ввести при добавлении нового аккаунта.
    5. Суфикс URL — на некоторых сервисах профиль пользователя располагается на поддомене. Если это так, то можно добавить это значение.
    Есть и другие значение элементов, но их мы рассматривать не будем, так как они довольно специфичны, а в случае необходимости пример их реализации можно посмотреть в том же файле.

    Далее нам нужно в этом же файле найти другой блок — «action_streams:», в котором содержатся более детальные параметры для каждого сервиса.

    action-streams-config-news2.jpg

    1. Для примера был взят сайт News2.ru, имя которого в блоке — news2. Блок news2 содержит элементы links и submitted — каждый из них предназначен для сбора определённой информации. Например, links предназначен для сбора информации о новостях, за которые проголосовал пользователь, а submitted — для новостей, добавленных пользователем.
    2. name — это имя выводится при добавлении нового профиля в админке.
    3. description — описание элемента, также выводится при добавлении профиля.
    4. html_form — то, как будет выглядеть отображаемая информация на сайте. Содержит паттерны, один из которых ([_1]) по умолчанию — имя пользователя, а другие указаны в html_params.
    5. html_params — см. выше.
    6. url — адрес RSS потока, содержащий паттерн «{{ident}}», обозначающий имя пользователя сервиса.
    7. identifier — по чему идентифициируем, в большинстве случаев необязателен.
    8. foreach — из какого элемента будет браться информация.
    9. get — получение и обработка информации. Содержит значение пятого пункта, а также created_on — дата создания. В значениях этих подэлементов должны быть указаны имена тегов, которые будут парситься в получаемом из пунтка 6 документе.
    На этом, в принципе, можно остановиться. Но если есть желание сделать всё красиво, то нужно добавить ещё иконки для новых сервисов и чуточку изменить CSS файл. Иконки загружаются в папку mt-static/plugins/ActionStreams/images/services. CSS файл находится в папке mt-static/plugins/ActionStreams/css. Для каждого нового сервиса в него нужно добавить подобную строчку:
    .service-news2 { background-image: url(../images/services/news2.png); }


    Если вы хотите получать информацию с обычных вебсайтов, а не с фидов, то необходимо править другой конфигурационный файл — название у него то же, но находится он в папке плагина Iwtst, входящего в архив.
  3. На заключительной стадии нужно добавить в шаблоны блога необходимые теги для отображения вашей активности. В архиве с плагином есть несколько готовых примеров. А также необходимо добавить в CRON новое задание, чтобы периодически Movable Type обновлял вашу активность. В файле README.txt есть пример задания.

Скачать обновлённые файлы (config.yaml, картинки для сервисов и CSS файл), в которые уже добавлено несколько русскоязычных сервисов.

Ещё несколько примеров можно посмотреть в официальном блоге Movable Type.

Несколько скриншотов

action-streams-list-profiles.jpg action-streams-list-actions.jpg action-streams-list-actions-saahov2.jpg

Статистика

Последние записи

  • Movable Type 5.2.7

    Состоялся релиз новой версии Movable Type 5.27, основные изменения которого: Новая адаптивная тема «Eiger». Для редакции Pro и Advanced доступен плагин «Smartphone Option», благодаря которому...

  • Автоподстановка тегов в Movable Type

    Не знаю, как для вас, а для меня стало открытием, что в Movable Type работает автоподстановка тегов на кириллице — для этого достаточно ввести первые...

  • Movable Type 5.2.3

    Сегодня состоялся релиз новой версии Movable Type 5.2.3. Изменение всего одно — если в параметрах MySQL было разрешено 20 или менее соединений (max_user_connections), то Movable...

  • Movable Type на PSGI и nginx

    В Movable Type 5.2 появилась встроенная поддержка PSGI. В связке с nginx это даёт значительный прирост производительности — страницы открываются не просто быстро, а невероятно...

  • Патч для Movable Type 4.38, устраняющий проблему безопасности

    В Movable Type версий 4.2 и 4.3 обнаружена уязвимость в скрипте обновления. Вчера разработчики выложили обновлённый скрипт, устраняющий эту проблему. Для устранения уязвимости достаточно загрузить...

Закрыть