Yahoo Pipes для динамического обогащения описаний RSS с помощью переменной $ {title}?

В Yahoo Pipes, используя модуль Regex, я могу заменить item.link. * URL-адресом, например https://www.google.com/webhp#output=search&sclient=psy-ab&q= $ {title}

Это означает, что заголовок фида - «Барак Обама посещает Оклахому», заголовок теперь будет связан с поисковым запросом Google «Барак Обама посещает Оклахому» с использованием переменной $ {title}.

Но я бы хотел добавить к описанию скрипт, чтобы я мог делать такие вещи, как встраивание видео с YouTube с выводом rss http://gdata.youtube.com/feeds/api/videos?max-results=1&alt=rss&q= $ {title} и покажите изображения связанного заголовка с выходом flickr rss http://www.flickr.com/services/feeds/photos_public.gne?tags= $ {title} & format = rss_200

Есть ли способ добиться этого? Можно ли этого добиться с помощью модуля Yahoo YQL для каналов? Существуют ли другие службы, которые могут выполнять эту функцию?

Спасибо!


person Michael d    schedule 27.05.2013    source источник


Ответы (1)


YQL имеет метод execute, который может запускать JavaScript на выходе, чтобы преобразовать его в желаемый формат. Вот несколько примеров:

<execute><![CDDATA[
// request.url == 'http://some_web_service_or_feed
// This is the same as 'y.rest(request.url).get();'
var returned_response = request.get();
...
]]>
</execute>

<execute><![CDATA[
// Include the OAuth libraries from oauth.net
y.include("http://oauth.googlecode.com/svn/code/javascript/oauth.js");
y.include("http://oauth.googlecode.com/svn/code/javascript/sha1.js");

// Collect all the parameters
var encodedurl = request.url;
var accessor = { consumerSecret: cs, tokenSecret: ""};
var message = { action: encodedurl, method: "GET", parameters: [["oauth_consumer_key",ck],["oauth_version","1.0"]]};
OAuth.setTimestampAndNonce(message);

// Sign the request
OAuth.SignatureMethod.sign(message, accessor);

try {
   // get the content from service along with the OAuth header, and return the result back out
    response.object = request.contentType('application/xml').header("Authorization", OAuth.getAuthorizationHeader("netflix.com", message.parameters)).get().response;
    } catch(err) {
    response.object = {'result':'failure', 'error': err};
    }
]]>
</execute>

Ссылки

person Paul Sweatte    schedule 09.09.2013