package mediawiki.request.wikibase;
import java.util.ArrayList;
import javat.xml.Document;
import javat.xml.Element;
import mediawiki.MediaWikiConnection;
import mediawiki.MediaWikiPostRequest;
import mediawiki.MediaWikiRequest;
import mediawiki.info.Project;
import mediawiki.info.wikibase.Sitelink;
public class GetSitelinksRequest extends MediaWikiRequest<ArrayList<Sitelink>> {
public GetSitelinksRequest(String base){
setProperty("ids", base);
}
@Override
public ArrayList<Sitelink> request(MediaWikiConnection c) throws Exception {
MediaWikiPostRequest p = new MediaWikiPostRequest(c);
p.putData(getProperties());
p.putData("action", "wbgetentities");
p.putData("props", "sitelinks");
Document d = p.requestDocument();
Element e = d.getRootElement().getChildren("entities").get(0).getChildren("entity").get(0).getChildren("sitelinks").get(0);
ArrayList<Sitelink> res = new ArrayList<>();
for(Element link : e.getChildren("sitelink")){
Sitelink s = new Sitelink(new Project(link.getAttribute("site").getValue()), link.getAttribute("title").getValue());
if(link.getChildren("badges").size() == 1){
for(Element badge : link.getChildren("badges").get(0).getChildren("badge"))
s.addBadge(badge.getText());
}
res.add(s);
}
return res;
}
}