//
//    SHOP ZERO Tips38 RssReader  script   v1.0
//
//                   Created by Zero2000 Kid     2009/02/02
//
 
// Title
string title="++ ?????? ++";
// YahooPipe URL
string pipeURL="http://pipes.yahoo.com/pipes/pipe.run?_id=c890298689189b27880118f7b57b28c7&_render=rss&textinput=item.";
// Article Count
integer articleCount=5;
// Refresha rate
float refreshRate=300.0;
 
integer input_ch = -38;
integer handle;
key http_req;
string respons_data;
list article_list;
integer counter;
 
showInfo () {
    integer i;
    string msg=title+"\n";
    integer ct = llGetListLength(article_list)/4;
    for (i = 0; i < ct; i++) msg+=llList2String(article_list,4*i)+"."+llList2String(article_list,4*i+1)+"\n";
 
    llSetText(msg,<0,1,0>,1);
}
 
fetchdata(string data) {
    string tmpstr;
    counter++;
    list l1 = llParseString2List(data, [""], []);
    list l2 = llParseString2List(llList2String(l1,1), ["\n"], []);
    string title = getvalue(llList2String(l2,0),"");
    string link = getvalue(llList2String(l2,1),"");
    string description = getvalue(llList2String(l2,2),"");
    article_list+=[(string)counter,title,link,description];
    if (counter,1);
    http_req=llHTTPRequest(pipeURL+(string)counter,[HTTP_METHOD,"GET"],"");
}
 
default
{
 
    state_entry() {
        refresh_article();
        llSetTimerEvent(refreshRate);
    }
 
    on_rez(integer param){
        llResetScript();
    }
 
    touch_start(integer t)    {
        handle = llListen(input_ch,"",llDetectedKey(0),"");
        list menulist=llList2ListStrided(article_list, 0, -1, 4);
        menulist+=["Refresh"];
        llDialog(llDetectedKey(0), "Please select articel.", menulist, input_ch);
    }
 
    listen(integer ch, string name, key id, string message) {
        if (message=="Refresh") refresh_article();
        else {
            integer index=llListFindList(article_list,[message]);
            string title=llList2String(article_list,index+1);
            string link=llList2String(article_list,index+2);
            string description=llList2String(article_list,index+3);
            llLoadURL(llGetOwner(), "++++++++++++\n"+title+"\n++++++++++++\n"+description, link);
        }
        llListenRemove(handle);
    }
 
    timer(){
        refresh_article();
    }
 
    http_response(key request_id, integer status, list metadata, string body) {
        if (request_id == http_req) {
            fetchdata(body);
        }
    }
 
}