package mediawiki.task;
import java.net.MalformedURLException;
import java.util.List;
import mediawiki.MediaWikiConnection;
import mediawiki.info.Article;
import mediawiki.info.Project;
import mediawiki.info.wikibase.Entity;
import mediawiki.request.QueryPagesRequest;
import mediawiki.request.wikibase.EditEntityRequest;
import mediawiki.request.wikibase.GetEntityRequest;
public class AssumeInterwikiTask extends WikipediaWikidataTask {
private Project parent;
public AssumeInterwikiTask(MediaWikiConnection wikidata,
MediaWikiConnection child,
Project parent) {
super(wikidata, child);
this.parent = parent;
}
@Override
public void run() {
Project child;
try {
child = getWikipediaConnection().getProject();
} catch (MalformedURLException e1) {
e1.printStackTrace();
return;
}
List<Article> l = null;
do{
try{
l = getWikipediaConnection().request(new QueryPagesRequest("UnconnectedPages", 200));
for(Article a: l){
try{
System.out.println(a.getTitle());
Entity target = getWikidataConnection().request(new GetEntityRequest(parent, a.getTitle()));
if(target == null)
continue;
if(target.hasSitelink(child))
continue;
target.addSitelink(child, a.getTitle());
getWikidataConnection().request(new EditEntityRequest(target, "add sitelink based on equal name "+parent.getSite()+" article"));
}catch(Exception e){
e.printStackTrace();
}
}
}catch(Exception e){
e.printStackTrace();
}
}while(l.size() > 0);
}
}