package mediawiki.request; import java.util.ArrayList; import java.util.List; import java.util.Map; import org.json.JSONArray; import org.json.JSONObject; import mediawiki.MediaWikiConnection; import mediawiki.MediaWikiPostRequest; import mediawiki.MediaWikiRequest; import mediawiki.info.Article; import mediawiki.info.Project; import mediawiki.info.wikibase.Sitelink; import javat.xml.Element; public class InlineLanglinksRequest extends MediaWikiRequest<List<Sitelink>>{ public InlineLanglinksRequest(String title) { setProperty("page", title); } public InlineLanglinksRequest(Article a) { this(a.getTitle()); } @Override public List<Sitelink> request(MediaWikiConnection c) throws Exception { MediaWikiPostRequest p = new MediaWikiPostRequest(c); p.putData(getProperties()); p.putData("action", "parse"); p.putData("prop", "langlinks"); JSONObject o = p.requestJSONObject(); JSONArray langlinks = o.getJSONObject("parse").getJSONArray("langlinks"); ArrayList<Sitelink> result = new ArrayList<>(langlinks.length()); for(int i = 0; i < langlinks.length(); i++) { JSONObject link = langlinks.getJSONObject(i); result.add(new Sitelink(Project.forAPIhref(link.getString("url")), link.getString("*"))); } return result; } }