BLUEPRINT
( "9AE5F78771774127B5DDBD225501EDC7", {
inputs: [ '__power__'
, 'trigger_in'
]
, input_specs: [ { queue_size: 1
}
, { queue_size: 10
}
]
, outputs: [ 'rss_feed_out'
]
, properties: [ 'does_trigger_automatically'
]
, name: 'RSS Retriever'
}, function(Class){Class.prototype._onInit=function(props)
{var a=this.dom_node.getElementsByTagName("A")[0];if(!a||a.rel!="rpc"||!a.href){throw"This is a proxy infotron: an anchor tag of the format \
is required!";}
this._base_url=props["pipes_through"]||"http://pipes.yahoo.com/pipes/9oyONQzA2xGOkM4FqGIyXQ/run";this._rss_url=a.href;this._auto_starts=props["does_trigger_automatically"];};Class.prototype.onMsgFor["__power__"]=function(msg)
{if(this._auto_starts){this.onMsgFor["trigger_in"].call(this,msg);}};Class.prototype.onMsgFor["trigger_in"]=function(msg)
{var o,e;var type;var url=this._base_url+"/?_render=json&feed="+escape(this._rss_url)+"&_callback=__star.infotrons."+escape(this.id)+"._onResponse";o=document.createElement("SCRIPT");o.type="text/javascript";o.src=url;this.debug(url);this.dom_node.appendChild(o);return 0;};Class.prototype._onResponse=function(msg){try{this.postMessage("rss_feed_out",this._toCollection(msg));}catch(e){this.error(e);}}
Class.prototype._toCollection=function(msg)
{var coll=[];var n,item,result,results,issued,modified,m;try{results=msg.value.items;n=results.length;}catch(ex){this.error(ex,"malformed JSON RSS output");return{};}
for(i=0;i1){end_date=o.date[o.date.length-1];}}else{start_date=o.date;}}else{this.warning("Item #"+(i+1)+" missing date");continue;}
try{if(!(start_date instanceof Date)){this.warning("Item #"+(i+1)+" has invalid date");continue;}}catch(ex){if(!start_date.UTC){this.warning("Item #"+(i+1)+" has invalid date");continue;}}
txt=o["text_content"]||o["description"]||"";txt=txt.replace(/<.+?>/g,"");txt=txt.replace(/\ /g," ");txt=txt.replace(/\</g,"<");txt=txt.replace(/\>/g,">");txt=txt.replace(/\—/g,"--");txt=txt.replace(/^\s+|\s+$/g,"");evt={start:start_date,instant:(end_date?true:false),title:o["name"]||o["label"]||"",link:o["uri"]||null,description:txt}
if(end_date){evt.end=end_date;}
coll.push(evt);}
this._ev_src.loadJSON({events:coll},document.location.href);};});