package mediawiki.task;
import java.util.List;
import java.util.Map;
import mediawiki.MediaWikiConnection;
import mediawiki.MediaWikiUtil;
import mediawiki.info.Article;
import mediawiki.info.wikibase.Claim;
import mediawiki.info.wikibase.Property;
import mediawiki.info.wikibase.Reference;
import mediawiki.info.wikibase.snaks.ItemSnak;
import mediawiki.info.wikibase.snaks.StringSnak;
import mediawiki.request.GetTemplateValuesRequest;
import mediawiki.request.TemplateEmbeddedInRequest;
import mediawiki.request.WikiBaseItemRequest;
public class ImportCommonscatTask extends WikipediaWikidataTask {
public ImportCommonscatTask(MediaWikiConnection wikidata,
MediaWikiConnection wikipedia) {
super(wikidata, wikipedia);
}
@Override
public void run() {
try{
TemplateEmbeddedInRequest p = new TemplateEmbeddedInRequest("Vorlage:Commonscat", 0);
p.setProperty("eidir", "descending");
List<Article> a = getWikipediaConnection().request(p);
setTogo(a.size());
System.out.println("Alle Commons geladen!");
for(Article ac : a){
if(isStopped())
return;
try{
String base = (String) getWikipediaConnection().request(new WikiBaseItemRequest(ac));
if(base == null){
increaseDone();
continue;
}
Map<String, String> v = getWikipediaConnection().request(new GetTemplateValuesRequest(ac, "Commonscat"));
String commonscat = v.get("1");
commonscat = commonscat == null || commonscat.trim().equals("") ? ac.getTitle() : commonscat;
MediaWikiUtil.addClaim(getConnection(), base, new Claim(373, new StringSnak(commonscat)), new Reference(new Property(143), new ItemSnak(48183)), "based on commonscat-Template on dewiki");
}catch(Exception e){
e.printStackTrace();
continue;
}
increaseDone();
}
}catch(Exception e){
e.printStackTrace();
}
fireCompletedEvent();
}
}