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