вторник, 27 мая 2008 г.

Yahoo Pipes русский справочник по модулям (Operators). Часть 3

Yahoo Pipes русский справочник по модулям (Operators - I). Часть 3

Один из запланированных двух постов на тему - Модули Yahoo Pipes - Operators.

Модули класса Operators, предназначены для преобразований и всевозможных фильтраций данных в вашей трубе (Yahoo Pipes)



Count Module - модуль счетчик, он берет и считает количество элементов на входе, а на выходе у него результат подсчета.

Filter Module - название говорит само за себя. Бывает что у вас слишком много данных, и вот как раз для того чтоб ненужные данные отсеять и используется модуль Filter (Yahoo Pipes - Filter).
Полезный модуль? Несомненно. При всем при этом работа с ним заключается в создании простых правил на основе которых происходит фильтрация.

Первая составляющая любого правила - Блокировать/Разрешить (Block/Permit) элемент, который совпал со всеми/с любым (all/any) из следующих условий.
И сами правила (Rules) -
элемент содержит (Contains) (например - item.author contains Spec)
элемент не содержит (Does not contain) (например item.link does not contain way-blogger.blogspot.com)
элемент совпадает с регулярным выражением (Matches regexp) (например - item.title matches regexp Dummies$ - заголовок заканчивается Dummies)
элемент больше чем (is greater then) (например - itemp.g.price is greater then 1000)
элемент равен (is) - см пример для is greater then
элемент меньше чем (is less then) - см пример для is greater then
элемент находится после (is after)
элемент находится перед (is before)

А на выходе вы получаете отфильтрованные данные.




Location Extractor Module - супер модуль, анализирует входной элемент (описание, заголовок содержимое и прочее) и извлекает из него географические данные (если находит). Уж не знаю как он устроен, но когда мне довелось разбирать объявления из Google Base, то Location Exctractor дал вполне приемлемый и правдоподобный результат о георафическом местопложении интересующих меня товаров.

Если вы направите выхлоп из Location Extractor сразу в Pipe output, то получите карту с расположенными на ней элементами (у которых получилось найти сведения о метоположении).


Loop Module - модуль цикл. Обрабатывает по порядку все части входного потока данных (например каждую новость в RSS потоке). Отличительной особенностью от других модулей является то, что сам Loop никаких действий над данными не выполняет, для этого он использует другие модули Yahoo pipes.

Для использования Loop в ваших трубах, во-первых выберите элемент входного потока, который будет подвергнут обработке (For each in input feed). Во-вторых, выберите и претащите в поле в центре Loop (Drop module/pipe from toolbox here) модуль для выполнения обработки (например, String > Translate) выполните для него нужные настройки (в Translate например, выберите напрвление перевода), примечательно что в Loop можно использовать не только отдельные модули но и целые трубы (из меню my pipes, но об этом поговорим в отдельном посте). И наконец выберите выходные опции для Loop, этих опций всего две - emit results (отдавать только обработанные элементы) и assign results to (привязать результаты к элементу, например к элементу item.title)


Rename Module - иногда (я бы даже сказал весьма часто ;)) возникает необходимость переименовать какойнибудь элемент в возвращенных данных. Например, для отображения заголовка в RSS, надо чтоб элемент назывался title, а название элемента допустим item.loop:translatestring (после перевода модулем Translate).

Для корректного отображения заголовка в RSS, берем и переименовываем этот элемент в title. И оп-ца-ца - на выходе лента с переведенным заголовком.

Reverse Module - если есть необходимость перевернуть порядок новостей в RSS ленте, то используй этот модуль. В документации написано - модуль Reverse переворачивая порядок всех элементов содержащихся во входном канале.

Split Module - очень простой модуль, который просто разделяет поток переданных данных на два потока.

Наверно даже выражение разделяет будет неверно, он просто делает две копии входящего потока.


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

P.S. Не помню писал я где-нибудь или нет, но поскольку я программист по образованию, то многие вещи мне кажутся очень тривиальными, из-за чего я нередко упускаю важные подробности. Если вам, что-то непонятно, пишите в комменты, постараюсь разложить по полочкам.


Подписаться на новости блога Можно Абсолютно ЗаДаРМа ;) - здесь!!!!

Если вам интересно узнать о технологии YAHOO PIPES читайте следующие статьи:

Yahoo Pipes русский справочник по модулям (User Input). Часть 2
Yahoo Pipes русский справочник по модулям (Sources). Часть 1
Yahoo pipes - больше чем просто RSS агрегатор.Введение


На главную страницу
Карта блога

Статьи по теме:



4 комментария:

Максим комментирует...

У меня проблемма с переводом( Как правильно переводить фид? Как не использовать стандартный переводчик, а использовать translate.google?

Spec комментирует...

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

Анонимный комментирует...

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

Когда наступит эта самая ближайшая статья? Информацию в массы, если не сложно =) Оч всё отлично написано было, жду продолжения.

Deepa комментирует...

I dont understand the language of your blog. But since you seem to speak about yahoo pipes, i thought i would ask you anyway.

IS it possible to get the result of the "count module"as pipe output.

eg :- my count module gives me 10 ( a number)
but i am not able to connect this to my pipe output.

can you please help
thank you,
regards
Deepa