webui-aria2/js/libs/dojox/data/WikipediaStore.js
2012-05-01 19:52:07 +08:00

53 lines
1.3 KiB
JavaScript

//>>built
define("dojox/data/WikipediaStore",["dojo/_base/kernel","dojo/_base/lang","dojo/_base/declare","dojo/io/script","dojo/io-query","dojox/rpc/Service","dojox/data/ServiceStore"],function(_1,_2,_3,_4,_5,_6,_7){
_1.experimental("dojox.data.WikipediaStore");
return _3("dojox.data.WikipediaStore",_7,{constructor:function(_8){
if(_8&&_8.service){
this.service=_8.service;
}else{
var _9=new _6(require.toUrl("dojox/rpc/SMDLibrary/wikipedia.smd"));
this.service=_9.query;
}
this.idAttribute=this.labelAttribute="title";
},fetch:function(_a){
var rq=_2.mixin({},_a.query);
if(rq&&(!rq.action||rq.action==="parse")){
rq.action="parse";
rq.page=rq.title;
delete rq.title;
}else{
if(rq.action==="query"){
rq.list="search";
rq.srwhat="text";
rq.srsearch=rq.text;
if(_a.start){
rq.sroffset=_a.start-1;
}
if(_a.count){
rq.srlimit=_a.count>=500?500:_a.count;
}
delete rq.text;
}
}
_a.query=rq;
return this.inherited(arguments);
},_processResults:function(_b,_c){
if(_b.parse){
_b.parse.title=_5.queryToObject(_c.ioArgs.url.split("?")[1]).page;
_b=[_b.parse];
}else{
if(_b.query&&_b.query.search){
_b=_b.query.search;
var _d=this;
for(var i in _b){
_b[i]._loadObject=function(_e){
_d.fetch({query:{action:"parse",title:this.title},onItem:_e});
delete this._loadObject;
};
}
}
}
return this.inherited(arguments);
}});
});