Add Campaign & CampaignContribution classes

Change-Id: Ib300e32b0d8146321b661ab5feb20ba9714bfd52
This commit is contained in:
YuviPanda 2013-07-23 16:16:42 +05:30
parent 3465dc044c
commit 0be6e87d5e
3 changed files with 110 additions and 3 deletions

View file

@ -0,0 +1,63 @@
package org.wikimedia.commons.campaigns;
import org.json.JSONArray;
import org.json.JSONObject;
import java.util.ArrayList;
public class Campaign {
private boolean enabled;
private String autoAddWikitext;
private ArrayList<String> autoAddCategories;
private String name;
private String ownWorkLicenseDefault;
private String defaultDescription;
private JSONObject config;
public boolean isEnabled() {
return enabled;
}
public String getAutoAddWikitext() {
return autoAddWikitext;
}
public ArrayList<String> getAutoAddCategories() {
return autoAddCategories;
}
public String getName() {
return name;
}
public String getOwnWorkLicenseDefault() {
return ownWorkLicenseDefault;
}
public String getDefaultDescription() {
return defaultDescription;
}
public JSONObject getConfig() {
return config;
}
public Campaign(String name, JSONObject config) {
this.config = config;
this.name = name;
if(config.has("autoAdd")) {
this.autoAddWikitext = config.optJSONObject("autoAdd").optString("wikitext", null);
if(config.optJSONObject("autoAdd").has("categories")) {
this.autoAddCategories = new ArrayList<String>();
JSONArray catsArray = config.optJSONObject("autoAdd").optJSONArray("categories");
for(int i=0; i < catsArray.length(); i++) {
autoAddCategories.add(catsArray.optString(i));
}
}
}
}
}

View file

@ -0,0 +1,40 @@
package org.wikimedia.commons.campaigns;
import org.wikimedia.commons.contributions.Contribution;
import java.util.ArrayList;
public class CampaignContribution extends Contribution {
private Campaign campaign;
private ArrayList<String> fieldValues;
public Campaign getCampaign() {
return campaign;
}
public void setCampaign(Campaign campaign) {
this.campaign = campaign;
}
@Override
public String getTrackingTemplates() {
StringBuffer buffer = new StringBuffer();
if(campaign.getAutoAddWikitext() != null) {
buffer.append(campaign.getAutoAddWikitext()).append("\n");
}
if(campaign.getAutoAddCategories() != null && campaign.getAutoAddCategories().size() != 0) {
for(String cat : campaign.getAutoAddCategories()) {
buffer.append("[[Category:").append(cat).append("]]").append("\n");
}
} else {
buffer.append("{{subst:unc}}\n");
}
return buffer.toString();
}
@Override
public String getDescription() {
return super.getDescription();
}
}

View file

@ -117,13 +117,17 @@ public class Contribution extends Media {
this.dateUploaded = date;
}
public String getTrackingTemplates() {
return "{{subst:unc}}"; // Remove when we have categorization
}
public String getPageContents() {
StringBuffer buffer = new StringBuffer();
SimpleDateFormat isoFormat = new SimpleDateFormat("yyyy-MM-dd");
buffer
.append("== {{int:filedesc}} ==\n")
.append("{{Information\n")
.append("|description=").append(description).append("\n")
.append("|description=").append(getDescription()).append("\n")
.append("|source=").append("{{own}}\n")
.append("|author=[[User:").append(creator).append("]]\n");
if(dateCreated != null) {
@ -133,9 +137,9 @@ public class Contribution extends Media {
buffer
.append("}}").append("\n")
.append("== {{int:license-header}} ==\n")
.append(Utils.licenseTemplateFor(license)).append("\n\n")
.append(Utils.licenseTemplateFor(getLicense())).append("\n\n")
.append("{{Uploaded from Mobile|platform=Android|version=").append(CommonsApplication.APPLICATION_VERSION).append("}}\n")
.append("{{subst:unc}}"); // Remove when we have categorization
.append(getTrackingTemplates());
return buffer.toString();
}