[MediaWiki-commits] [Gerrit] Add parser for media file urls - change (analytics...source)
Hello Ottomata, I'd like you to do a code review. Please visit https://gerrit.wikimedia.org/r/189981 to review the following change. Change subject: Add parser for media file urls .. Add parser for media file urls Change-Id: I1b76e1e331ea781aee13557fc55a2c19ce5744a7 --- M changelog.md A refinery-core/src/main/java/org/wikimedia/analytics/refinery/core/MediaFileUrlInfo.java A refinery-core/src/main/java/org/wikimedia/analytics/refinery/core/MediaFileUrlParser.java A refinery-core/src/test/java/org/wikimedia/analytics/refinery/core/TestMediaFileUrlInfo.java A refinery-core/src/test/java/org/wikimedia/analytics/refinery/core/TestMediaFileUrlParser.java M refinery-hive/src/main/java/org/wikimedia/analytics/refinery/hive/IsLegacyPageviewUDF.java A refinery-hive/src/main/java/org/wikimedia/analytics/refinery/hive/MediaFileUrlParserUDF.java A refinery-hive/src/test/java/org/wikimedia/analytics/refinery/hive/TestMediaFileUrlParserUDF.java 8 files changed, 1,655 insertions(+), 1 deletion(-) git pull ssh://gerrit.wikimedia.org:29418/analytics/refinery/source refs/changes/81/189981/1 diff --git a/changelog.md b/changelog.md index 76ac26a..5733c29 100644 --- a/changelog.md +++ b/changelog.md @@ -1,6 +1,7 @@ ## v0.0.6-SNAPSHOT * Add custom percent en-/decoders to ease URL normalization. * Add Referer classifier +* Add parser for media file urls ## v0.0.5 * For geocoding, allow to specify the MaxMind databases that should get used. diff --git a/refinery-core/src/main/java/org/wikimedia/analytics/refinery/core/MediaFileUrlInfo.java b/refinery-core/src/main/java/org/wikimedia/analytics/refinery/core/MediaFileUrlInfo.java new file mode 100644 index 000..ab972f9 --- /dev/null +++ b/refinery-core/src/main/java/org/wikimedia/analytics/refinery/core/MediaFileUrlInfo.java @@ -0,0 +1,132 @@ +package org.wikimedia.analytics.refinery.core; + +public class MediaFileUrlInfo { + +public enum Classification { +UNKNOWN, +ORIGINAL, +TRANSCODED_TO_AUDIO, +TRANSCODED_TO_IMAGE, +TRANSCODED_TO_MOVIE, +} + +private String baseName; +private Classification classification; +private Integer width; +private Integer height; + +public static MediaFileUrlInfo createUnknown() { +return new MediaFileUrlInfo(null, Classification.UNKNOWN, +null, null); +} + +public static MediaFileUrlInfo createOriginal(final String baseName) { +return new MediaFileUrlInfo(baseName, Classification.ORIGINAL, +null, null); +} + +public static MediaFileUrlInfo createTranscodedToImage( +final String baseName, final Integer width) { +return new MediaFileUrlInfo(baseName, +Classification.TRANSCODED_TO_IMAGE, width, null); +} + +public static MediaFileUrlInfo createTranscodedToMovie( +final String baseName, final int height) { +return new MediaFileUrlInfo(baseName, +Classification.TRANSCODED_TO_MOVIE, null, height); +} + +public static MediaFileUrlInfo createTranscodedToAudio( +final String baseName) { +return new MediaFileUrlInfo(baseName, +Classification.TRANSCODED_TO_AUDIO, null, null); +} + +private MediaFileUrlInfo(final String baseName, +final Classification quality, final Integer width, +final Integer height) { +this.baseName = baseName; +this.classification = quality; +this.width = width; +this.height = height; +} + +public String getBaseName() { +return baseName; +} + +public Classification getClassification() { +return classification; +} + +public Integer getWidth() { +return width; +} + +public Integer getHeight() { +return height; +} + +@Override +public boolean equals(final Object obj) { +boolean ret = false; + +if (obj instanceof MediaFileUrlInfo) { +MediaFileUrlInfo other = +(MediaFileUrlInfo) obj; + +ret = true; + +ret = classification == other.classification; + +if (baseName == null) { +ret = other.baseName == null; +} else { +ret = baseName.equals(other.baseName); +} + +if (width == null) { +ret = other.width == null; +} else { +ret = width.equals(other.width); +} + +if (height == null) { +ret = other.height == null; +} else { +ret = height.equals(other.height); +} +} + +return ret; +} + +@Override +public String toString() { +String ret = MediaFileUrlInfo[; +switch (classification) { +case UNKNOWN: +ret += unknown; +
[MediaWiki-commits] [Gerrit] Add parser for media file urls - change (analytics...source)
Ottomata has submitted this change and it was merged. Change subject: Add parser for media file urls .. Add parser for media file urls Change-Id: I1b76e1e331ea781aee13557fc55a2c19ce5744a7 --- M changelog.md A refinery-core/src/main/java/org/wikimedia/analytics/refinery/core/MediaFileUrlInfo.java A refinery-core/src/main/java/org/wikimedia/analytics/refinery/core/MediaFileUrlParser.java A refinery-core/src/test/java/org/wikimedia/analytics/refinery/core/TestMediaFileUrlInfo.java A refinery-core/src/test/java/org/wikimedia/analytics/refinery/core/TestMediaFileUrlParser.java M refinery-hive/src/main/java/org/wikimedia/analytics/refinery/hive/IsLegacyPageviewUDF.java A refinery-hive/src/main/java/org/wikimedia/analytics/refinery/hive/MediaFileUrlParserUDF.java A refinery-hive/src/test/java/org/wikimedia/analytics/refinery/hive/TestMediaFileUrlParserUDF.java 8 files changed, 1,669 insertions(+), 1 deletion(-) Approvals: Ottomata: Verified; Looks good to me, approved diff --git a/changelog.md b/changelog.md index 2880917..cef5d80 100644 --- a/changelog.md +++ b/changelog.md @@ -1,5 +1,6 @@ ## v0.0.7-SNAPSHOT * Add Referer classifier +* Add parser for media file urls ## v0.0.6 * Add custom percent en-/decoders to ease URL normalization. diff --git a/refinery-core/src/main/java/org/wikimedia/analytics/refinery/core/MediaFileUrlInfo.java b/refinery-core/src/main/java/org/wikimedia/analytics/refinery/core/MediaFileUrlInfo.java new file mode 100644 index 000..ab972f9 --- /dev/null +++ b/refinery-core/src/main/java/org/wikimedia/analytics/refinery/core/MediaFileUrlInfo.java @@ -0,0 +1,132 @@ +package org.wikimedia.analytics.refinery.core; + +public class MediaFileUrlInfo { + +public enum Classification { +UNKNOWN, +ORIGINAL, +TRANSCODED_TO_AUDIO, +TRANSCODED_TO_IMAGE, +TRANSCODED_TO_MOVIE, +} + +private String baseName; +private Classification classification; +private Integer width; +private Integer height; + +public static MediaFileUrlInfo createUnknown() { +return new MediaFileUrlInfo(null, Classification.UNKNOWN, +null, null); +} + +public static MediaFileUrlInfo createOriginal(final String baseName) { +return new MediaFileUrlInfo(baseName, Classification.ORIGINAL, +null, null); +} + +public static MediaFileUrlInfo createTranscodedToImage( +final String baseName, final Integer width) { +return new MediaFileUrlInfo(baseName, +Classification.TRANSCODED_TO_IMAGE, width, null); +} + +public static MediaFileUrlInfo createTranscodedToMovie( +final String baseName, final int height) { +return new MediaFileUrlInfo(baseName, +Classification.TRANSCODED_TO_MOVIE, null, height); +} + +public static MediaFileUrlInfo createTranscodedToAudio( +final String baseName) { +return new MediaFileUrlInfo(baseName, +Classification.TRANSCODED_TO_AUDIO, null, null); +} + +private MediaFileUrlInfo(final String baseName, +final Classification quality, final Integer width, +final Integer height) { +this.baseName = baseName; +this.classification = quality; +this.width = width; +this.height = height; +} + +public String getBaseName() { +return baseName; +} + +public Classification getClassification() { +return classification; +} + +public Integer getWidth() { +return width; +} + +public Integer getHeight() { +return height; +} + +@Override +public boolean equals(final Object obj) { +boolean ret = false; + +if (obj instanceof MediaFileUrlInfo) { +MediaFileUrlInfo other = +(MediaFileUrlInfo) obj; + +ret = true; + +ret = classification == other.classification; + +if (baseName == null) { +ret = other.baseName == null; +} else { +ret = baseName.equals(other.baseName); +} + +if (width == null) { +ret = other.width == null; +} else { +ret = width.equals(other.width); +} + +if (height == null) { +ret = other.height == null; +} else { +ret = height.equals(other.height); +} +} + +return ret; +} + +@Override +public String toString() { +String ret = MediaFileUrlInfo[; +switch (classification) { +case UNKNOWN: +ret += unknown; +break; +case ORIGINAL: +ret += baseName; +ret += , original; +break; +case TRANSCODED_TO_AUDIO: +ret += baseName; +ret += ,