forked from codepo8/yql-rss-speed-comparison
-
Notifications
You must be signed in to change notification settings - Fork 1
/
rss.multi.list.xml
executable file
·71 lines (69 loc) · 2.65 KB
/
rss.multi.list.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<?xml version="1.0"?>
<table xmlns="http://query.yahooapis.com/v1/schema/table.xsd">
<meta>
<author>Christian Heilmann</author>
<description>Weather with woeid</description>
<documentationURL>http://developer.yahoo.com/weather/</documentationURL>
</meta>
<bindings>
<select produces="XML" itemPath="">
<inputs>
<key id="feeds" type="xs:string" paramType="variable" required="true"/>
<key id="html" type="xs:string" paramType="variable" required="false"/>
<key id="compact" type="xs:string" paramType="variable" required="false"/>
</inputs>
<execute><![CDATA[
var feedlist = feeds.split(',');
if(!html){
var out = <feeds/>;
for(var i=0,j=feedlist.length;i<j;i++){
var f = feedlist[i];
var q = 'select channel.title,channel.link,channel.item.title,channel.item.link';
if(!compact){
q+=',channel.item.description';
}
q += ' from xml where url='+f;
y.log(q);
var content = y.query(q);
y.log(content.results.rss);
feed = <feed/>;
feed.source = f;
feed.title = content.results.rss[0].channel.title;
feed.link = content.results.rss[0].channel.link;
for each(rss in content.results.rss){
feed.item += <item>{rss.channel.item.title}{rss.channel.item.link}{rss.channel.item.description}</item>;
}
out.feed += feed;
}
} else {
var out = <div class="feeds"/>;
for(var i=0,j=feedlist.length;i<j;i++){
var f = feedlist[i];
var q = 'select channel.title,channel.link,channel.item.title,channel.item.link';
if(!compact){
q+=',channel.item.description';
}
q += ' from xml where url='+f;
var content = y.query(q);
feed = <div class="feed"/>;
feed.h2 = <h2/>;
feed.h2.a = <a/>;
feed.h2.a.@href = content.results.rss[0].channel.link.text();
feed.h2.a.content = content.results.rss[0].channel.title.text();
feed.ul = <ul/>;
for each(rss in content.results.rss){
var li = <li/>;
li.a = <a/>;
li.a.@href = rss.channel.item.link.text();
li.a.content = rss.channel.item.title.text();
li.p = <p>{rss.channel.item.description.text()}</p>;
feed.ul.li += li;
}
out.feed += feed;
}
}
response.object = out;
]]></execute>
</select>
</bindings>
</table>