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