From b8dd312869501de84026860ea53b7f28714b5111 Mon Sep 17 00:00:00 2001 From: YuviPanda Date: Wed, 6 Feb 2013 19:16:51 +0530 Subject: [PATCH] Save canonical filename of uploaded files Also display filenames in a 'pretty'ier way --- .../java/org/wikimedia/commons/UploadService.java | 5 ++++- .../src/main/java/org/wikimedia/commons/Utils.java | 13 +++++++++++++ .../commons/contributions/Contribution.java | 8 ++++++++ .../contributions/ContributionsActivity.java | 2 +- 4 files changed, 26 insertions(+), 2 deletions(-) diff --git a/commons/src/main/java/org/wikimedia/commons/UploadService.java b/commons/src/main/java/org/wikimedia/commons/UploadService.java index 0c27e4331..e460b95df 100644 --- a/commons/src/main/java/org/wikimedia/commons/UploadService.java +++ b/commons/src/main/java/org/wikimedia/commons/UploadService.java @@ -1,7 +1,6 @@ package org.wikimedia.commons; import java.io.*; -import java.text.*; import java.util.Date; import org.mediawiki.api.*; @@ -265,6 +264,10 @@ public class UploadService extends IntentService { } else { Date dateUploaded = null; dateUploaded = Utils.parseMWDate(result.getString("/api/upload/imageinfo/@timestamp")); + String canonicalFilename = "File:" + result.getString("/api/upload/@filename").replace("_", " "); // Title vs Filename + String imageUrl = result.getString("/api/upload/imageinfo/@url"); + contribution.setFilename(canonicalFilename); + contribution.setImageUrl(imageUrl); contribution.setState(Contribution.STATE_COMPLETED); contribution.setDateUploaded(dateUploaded); contribution.save(); diff --git a/commons/src/main/java/org/wikimedia/commons/Utils.java b/commons/src/main/java/org/wikimedia/commons/Utils.java index cc067d1e7..99196ce6c 100644 --- a/commons/src/main/java/org/wikimedia/commons/Utils.java +++ b/commons/src/main/java/org/wikimedia/commons/Utils.java @@ -15,6 +15,8 @@ import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.TimeZone; +import java.util.regex.Matcher; +import java.util.regex.Pattern; public class Utils { public static Date parseMWDate(String mwDate) { @@ -73,4 +75,15 @@ public class Utils { task.execute(params); } } + + public static Pattern displayTitlePattern = Pattern.compile("\\w+:(.*)(\\.\\w+)", Pattern.CASE_INSENSITIVE); + public static String displayTitleFromTitle(String title) { + // FIXME: This does not work for pages without an extension! + Matcher matcher = displayTitlePattern.matcher(title); + if(matcher.matches()) { + return matcher.group(1); + } else { + return title; + } + } } diff --git a/commons/src/main/java/org/wikimedia/commons/contributions/Contribution.java b/commons/src/main/java/org/wikimedia/commons/contributions/Contribution.java index ce89eb72f..7fcfafacc 100644 --- a/commons/src/main/java/org/wikimedia/commons/contributions/Contribution.java +++ b/commons/src/main/java/org/wikimedia/commons/contributions/Contribution.java @@ -132,6 +132,14 @@ public class Contribution extends Media { return cv; } + public void setFilename(String filename) { + this.filename = filename; + } + + public void setImageUrl(String imageUrl) { + this.imageUrl = imageUrl; + } + public static class Table { public static final String TABLE_NAME = "contributions"; diff --git a/commons/src/main/java/org/wikimedia/commons/contributions/ContributionsActivity.java b/commons/src/main/java/org/wikimedia/commons/contributions/ContributionsActivity.java index 1ab4fab24..5d263bfe5 100644 --- a/commons/src/main/java/org/wikimedia/commons/contributions/ContributionsActivity.java +++ b/commons/src/main/java/org/wikimedia/commons/contributions/ContributionsActivity.java @@ -98,7 +98,7 @@ public class ContributionsActivity extends AuthenticatedActivity implements Load imageView.setTag(actualUrl); } - titleView.setText(title); + titleView.setText(Utils.displayTitleFromTitle(title)); switch(state) { case Contribution.STATE_COMPLETED: Date uploaded = new Date(cursor.getLong(COLUMN_UPLOADED));