package mediawiki.info; import java.net.MalformedURLException; import java.net.URL; import java.util.regex.Matcher; public class Project { private String site; public Project(String site) { this.site = site; } public String getSite() { return site; } public void setSite(String site) { this.site = site; } public String getProject(){ for(String s : new String[]{"wikibooks","wikiquote","wikisource","wikinews","wikivoyage","wikidatawiki","commonswiki","wiki"}){ if(site.endsWith(s)) return s; } return null; } public String getLanguage(){ return site.replaceAll(Matcher.quoteReplacement(getProject()), ""); } public String getURLSuffix(){ if(getProject().equals("wikidatawiki")) return "wikidata.org"; if(getProject().equals("commonswiki")) return "wikimedia.org"; if(getProject().equals("wiki")) return "wikipedia.org"; return getProject()+".org"; } public String getURLPrefix(){ if(getProject().equals("wikidatawiki")) return "www"; if(getProject().equals("commonswiki")) return "commons"; return getLanguage().replace('_', '-'); } @Override public String toString() { return getSite(); } public static Project forAPIhref(String api) throws MalformedURLException{ api = new URL(api).getHost(); api = api.replaceAll("\\.org", ""); if(api.equals("wikidata")) return new Project("wikidatawiki"); if(api.equals("commons.wikimedia")) return new Project("commonswiki"); if(api.endsWith("wikipedia")) api = api.replaceAll("wikipedia", "wiki"); api = api.replaceAll("\\.", ""); return new Project(api); } @Override public boolean equals(Object obj) { if(obj == null) return false; if(!(obj instanceof Project)) return false; return site.equals(((Project)obj).site); } }