package mediawiki.request;
import javat.xml.Document;
import javat.xml.Element;
import mediawiki.MediaWikiConnection;
import mediawiki.MediaWikiPostRequest;
import mediawiki.MediaWikiRequest;
import mediawiki.info.Article;
import mediawiki.info.wikibase.Sitelink;
public class ArticleForNameRequest extends MediaWikiRequest<Article> {
public ArticleForNameRequest(String title){
setProperty("titles", title);
}
public ArticleForNameRequest(Sitelink sl){
this(sl.getTitle());
}
@Override
public Article request(MediaWikiConnection c) throws Exception {
MediaWikiPostRequest p = new MediaWikiPostRequest(c);
p.putData(getProperties());
p.putData("action", "query");
p.putData("prop", "info");
Document d = p.requestDocument();
Element e = d.getRootElement().getChildren("query").get(0).getChildren("pages").get(0).getChildren("page").get(0);
if(e.getAttribute("missing") != null)
return null;
return new Article(Integer.parseInt(e.getAttribute("pageid").getValue()), Integer.parseInt(e.getAttribute("ns").getValue()), e.getAttribute("title").getValue());
}
}