package mediawiki.request;
import java.util.ArrayList;
import java.util.List;
import javat.xml.Document;
import javat.xml.Element;
import mediawiki.MediaWikiConnection;
import mediawiki.MediaWikiPostRequest;
import mediawiki.MediaWikiRequest;
import mediawiki.info.Site;
public class SitematrixRequest extends MediaWikiRequest<List<Site>> {
public SitematrixRequest() {
}
public SitematrixRequest(Site.State state) {
setProperty("smstate", state.toString().toLowerCase());
}
@Override
public List<Site> request(MediaWikiConnection c) throws Exception {
MediaWikiPostRequest p = new MediaWikiPostRequest(c);
p.putData(getProperties());
p.putData("action", "sitematrix");
Document d = p.requestDocument();
ArrayList<Site> r = new ArrayList<>();
Element root = d.getRootElement().getChildren("sitematrix").get(0);
if(root.getChildren("specials").size() > 0) {
for(Element e : root.getChildren("specials").get(0).getChildren("special")) {
r.add(new Site(e));
}
}
for(Element e : root.getChildren("language")) {
for(Element e2 : e.getChildren("site").get(0).getChildren("site")) {
r.add(new Site(e2));
}
}
return r;
}
}