войти зарегистрироваться

Колонки whois

индекс
32,38

Пример создания пайпа в Yahoo! Pipes.

Меня просили рассказать о том, каким образом можно использовать Yahoo! Pipes, и вот я разобрал один из примеров из перевода статьи об этом замечательном сервисе.


Итак, вот что мы видим, когда начинаем создавать новый пайп:



Слева находится панель инструментов, снизу находится отладчик, в котором можно смотреть промежуточные значения на выходах каждой плашки.
Сейчас мы создадим пайп, который будет брать последние прослушанные треки с last.fm и показывать соответствующие им картинки.

1. Для начала, нужно получить имя пользователя на last.fm. Для этого перетаскиваем панельку Text Input на рабочую область и заполняем её поля. Сама панель находится в подразделе User Inputs левой плашки.
Поле Name – название панельки;
Prompt – запрос, которые будет написан при просмотре пайпа;
Default – значение, которое будет выставлено по умолчанию;
Debug – значение, которое будет использоваться в режиме отладки, все данные в нижнем поле Debug берутся с использованием именно этого значения.



2. Теперь, нам нужно вытащить по введённому пользователю юзернейму rss-фид с последними прослушанным им треками.
Известно, что ссылка на rss с последними песнями на last.fm имеет вид http://ws.audioscrobbler.com/1.0/user/Uz… Понятно, что первым делом нужно к имени пользователя, введённому выше, добавить строчку /recenttracks.rss. Для этого переносим на рабочее поле инструмент String Concatenate из раздела Strings. По умолчанию, у него одно поле для ввода, но нам нужно два. Почему два? Потому, что этот инструмент работает следующим образом: к строке с первого поля прибавляет строку со второго поля. Создаём второе поле и вводим туда /recenttracks.rss, соединяем плашку с юзернейном с первым полем и смотрим в окошко debug: в нём сейчас стоит uznick/recenttracks.rss, а это то, что нужно.



3. Теперь сформируем полный путь к фиду с треками. Для этого надо использовать инструмент URLBuilder из раздела URL. В принципе, здесь можно было бы использовать знакомый нам String Concatenate, но есть одно но: на выходе String Concatenate мы получаем данные типа String, а нам нужно сформировать данные типа URL.
Переносим URLBuilder в рабочую область и заполняем его поля. В поле Base вводим основную часть урла, в нашем случае это http://ws.audioscrobbler.com/1.0/user В поле path elements ничего сейчас вводить не надо, просто соединяем с ним выход String Concatenate и смотрим результат: в поле debug написано http://ws.audioscrobbler.com/1.0/user/uz… всё верно.



4. Получаем содержимое rss-потока. В этом нам поможет элемент Fetch из раздела Sources. Соединяем его вход с выходом предыдущего элемента и смотрим в debug, там у нас список песен.



5. Всё что нам осталось сделать – вытащить по этим результатам картинки из Flickr и заменить ими полученные песни. Перетаскиваем на рабочую область элемент For Each: Replace из панельки Operators, потом перетаскиваем туда модуль Flicr из панельки Sources. Выбираем количество записей, которые надо выдрать из Flickr в поле Find (допустим, 5) и выбираем в поле images of из какого поля нужно брать названия этих картинок (нам нужно выбрать title). Теперь соединяем вход элемента For Each с выходом элемента Fetch, затем выход For Each с входом блока Pipe Output (этим блоком обязательно должен заканчиваться любой пайп) и всё, пайп готов.



Теперь пайп можно сохранить (Save в правом верхнем углу) или опубликовать для публики (Publish там же).



Ссылка на полученный пайп: http://pipes.yahoo.com/pipes/dtak0t282xG…

Это моё первое руководство, пишите в комментариях впечатления и замечания.

комментарии (18)

  • хм. Построенный пайп показывает для любых юзернеймов одно и тоже. ТДБ?
    • Такое впечатление, что это баг. В переводном примере было тоже самое, что меня озадачило =\
  • За мануал спасибо — побежал повторять твои действия ;)
    ЗЫ: Паша, поменяй в статье resenttracks.rss на recenttracks.rss, а то запутывает (хотя ссылка написана без ошибки).
  • А у кого ни будь получается скормить Pipes -у RSS с содержанием на русском языке? У меня – не получается :(
    • Не поддерживает, судя по всему.
    • вебпланету - кушает. хабр, компьюленту - не хочет; русский жж - кушает за милую душу. не исключено, что дело не в "русскости", а в форматах (rss 0.91, 1, 2, atom)
      • Вполне возможно, что дело не в форматах, а в кодировке: у вебпланеты и жж — utf-8, у хабра с компьюлентой — windows-1251.
        • угу, больше всего похоже на правду.
        • Спасибо – вот оказывается в чем дело. Я почему то думал – не знаю почему, что подавляюще большинство фидов даже у нас отдается в юникоде.
  • А где работает корректно? IE, Opera - отказывются.
    • по утверждениям самой яхи (кажется, не помню уже где это встречал, кажись, на O'Reilly Radar): "Firefox, Safari - ok, IE 6 - some minor bugs, Opera - definitely not working, IE 7 - was not extensively tested"
  • интересно, его можно использовать для взлома?)
  • народ я конечно дико извиняюсь но что такое этот пайп?
  • Yahoo! Pipes очень удобно использовать людям, работающим ньюс-мейкерами. Т.е. в пайп можно добавить ленты с зарубежных сайтов и поставить фильтр по слову Putin (к примеру) - будем отслеживать, что говорят за рубежом о Путине :)
  • Получил sub-element. Как его теперь подставить в URL?
Только авторизованные пользователи могут оставлять комментарии. Авторизуйтесь, пожалуйста.