NowPlaying DynamicSignature by MirandaIM

Собственно идея передавать информацию о текущем треке на скрипт, который в последствие будет генерить картинку не нова… И пришла она из небезызвестного AMIP‘a.

Sig - AMIP

Мы же будем реализовывать её силами Миранды и её плагов. И получим точно такой же результат(или, если потом чуть-чуть покопаться – намного лучше)

Итак…

Подготовка

Для успешного осуществления задуманного нам понядобятся:

  1. Собственно Миранда, если вы уж пришли сюда, думаю, она то у вас есть…
  2. Плагин WATrack для определения текущей информации о музыке в любимом плеере :: Берём последнюю версию у Awkward’a
  3. Плагин WebAware для передачи информации на сервер :: Берём последнюю бету на сайте разработчика
  4. Плагин Triggers для автоматической отправки информации при смене трека или остановке плеера :: Берём последнюю бету на уже знакомом сайте разработчика
  5. Плагин Variables для формирования необходимых данных :: Берём последнюю бету(а других впринципе и нету…) всё там же
  6. Небольшую подброчку дополнительных файлов, необходимых для осуществления задуманного :: Берём прямо здесь

Процесс настройки

Я не буду здесь описывать процесс настройки плагина WATrack, т.к. во-первых это не является темой данной статьи, во-вторых это уже сделал Антоха.

Единственная оговорка: в Ватраке у вас должна быть включена поддержка плагина Variables.
Мы перейдём к такой теме, как…

Настройка плагина WebAware

Сразу подчёркиваю, что я здесь описываю его настройку исключительно для отправки информации о текущем треке, при этом его реальный функционал сведён к минимуму. Итак по порядку:

  1. Для успешного функционирования плагина(как и реализации всей нашей затеи) необходимо, чтобы где-то в интернете у вас был хост на который будет залит файлик httppost.php, который можно найти в архиве, скачанном с моего сайта. Особо подчёркиваю, что httppost.php из комплекта WebAware для нашей задачи не подходит !!!
    Заливаете файлик в отдельную папочку, например np и запоминаете ссылку; допуcтим, она у нас получилась http://mysite.ru/np/httppost.php
  2. Теперь открываем окошко настроек Миранды и переходим в раздел Plugins > WebAware Location (здесь и далее все заголовки разделов и настроек на английском) и там ставим галочку у группы HTTP POST вписываем в поле CGI Script ссылку на наш скрипт, т.е. “http://mysite.ru/np/httppost.php” теперь вписываем в поле File Name “info”. Готово…
    Чуть не забыл… Кто-то сейчас скажет, что не может ни поставить галочку в чекбоксе рядом с HTTP POST, ни ввести что-либо в указанные поля… и будет прав. Для этого надо, чтобы в папочке Миранды лежали библиотечки libcurl.dll libeay32.dll libssl32.dll, которst тоже лежfт в архиве, который вы скачивали с этого сайта.
    WebAware-Location
  3. Теперь переходим в раздел Plugins > WebAware Info и снимаем галочки со всех присутствующих там чекбоксов(в том числе и в списке протоколов)
    WabAware-Info
  4. Берём из архива, скачанного с этого сайта файлик waNP.xml и кладём его или в папку миранды или поглубже, например в Plugins – на ваше усмотрение.
  5. Далее в разделе Plugins > WebAware General убираем галочки из всех чекбоксов в первой группе элементов, а так же с чекбокса Store as javaScript (.js) file и ставим галочки в чекбоксах Store as XML (.xml) file и Insert custom info прямо под ним. После чего нажимаем кнопочку выбора дополнительного файла(нижнюю кнопку с тремя точками) и ищем наш waNP.xml
    WabAware-General

Настройка WebAware завершена, на очереди у нас…

Настройка плагина Variables

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

Идём далее…

Настройка плагина Triggers

Плагин ещё на стадии бетатестирования, но работает довольно ровно и без глюков(по крайней мере я пока их не заметил). Зато настраивается он довольно капризно. Но настроить его надо.

Заходим в раздел Plugins > Triggers и выключаем плагин нажатием на кнопочку внизу, при этом станет активен лист триггеров, где мы кликаем право кнопкой мыши и выбираем Add trigger, далее двойной клик левой кнопычкой на заголовке появившегося триггера(на надписи New Trigger) – появляется окошко редактирования события.
В выпадающем списке выбираем “Miranda: System event“, далее в поле Event name пишем “WATrack/NewStatus” в выпадающем списке Parameter выбираем “wParam”, Process as… “int” и убираем галочку в чекбоксе Use this parameter as Trigger data если она там есть. Подтверждаем сохранение и продолжаем…
Щёлкаем правой кнопочкой на папочке Chain в дереве нашего нового триггера и выбираем Add Action в контекстном меню. Тепрь даблклик на заголовке созданного действия (на надписи New Action).
В появившемся окне настройки в выпадающем меню выбираем “Miranda: Make a Service call”, в поле Service name пишем “WebAware/StoreInfo”, далее в выпадающем списке Parameter выбираем “wParam”, Process as… “int” потом ставим кружок в радиокнопке Use the following и в поле под ней вписываем “1″. Подтверждаем сохранение.
Теперь остаётся только включить плагин нажатием на кнопку внузу.

Настоятельно рекомендую посмотреть сследуюший скрин – это анимированная иллюстрация к настройке триггера!

Triggers [Animated GIF]

Серверная часть

Мы положили на сервер файл, который будет принимать данные и производить их начальную подготовку(файл не претендует на идеальность – написано так, чтобы побыстрей было и нормально работало), но у нас нет скрипта, который будет генерировать ту самую картинку из-за которой всё это затеяно…
Писать такой скрипт – не наша задача… Мы возьмём готовое. По скольку слава AMIP‘a в это области и побудила меня к созданию этой статьи – его скриптом мы и воспользуемся.
Заходите на эту страничку и скачиваете оттуда(в самом низу) файл amipds.zip содержащий всё необходимое для генерации картинки на сервере.
В архиве есть папочка “np” – как раз всё её содержимое и мы должны положить на сервер в ту же папку, что и httppost.php, но не будем спешить с этим!
У скрипта генерации картинки из комплекта АМИПа есть защита от несанкционированного обновления, мы должны учесть её. Открываем в любимом редакторе файл signature.php и находим следующую строку:

$config['action'] = 'secretword';

Это 55 строка файла, если его до этого не редактировали. Теперь слово secretword заменяем на что-нибудь своё. А так же лезем в настройки Миранды в раздел Plugins > WebAware Location и добавляем к ссылке параметр передачи этого “секретного слова” нашему скрипту.
?action=secretword

SecretWord-Signature SecretWord-WebAware

Теперь можно залить файлы на сервер. Дополнительно кладём в эту папку последний файл из архива, скачанного на этом сайте – info.xml
Теперь нам осталось только выставить права на некоторые файлы, чтобы сервер мог их изменять:

Filename	CHMOD
info.xml	777
npvars.txt	777
signature.php	777

CHMOD

Заключение

Ну вот собственно и всё… теперь при смене трека, отcлеженнной Ватраком или при остановке музыки/закрытии плеера на сервер будет отправляться информация о состоянии вашего музыкального окружения.

Tags: ,

Leave a Reply