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; } }