From 2b65fecebe4a2133497758cbbadae6f6de72da49 Mon Sep 17 00:00:00 2001 From: mh Date: Tue, 26 Mar 2002 20:47:21 +0000 Subject: [PATCH] made the getUrl() method of MirMedia return a SimpleList of TemplateModels (either Entity directly or a self made one.) so that the templates have more flexibility. it's not quite finished, but hang in there. it does work --- source/mir/media/MirMedia.java | 4 +- source/mircoders/entity/EntityUploadedMedia.java | 25 +++++++-- source/mircoders/media/MediaHandlerGeneric.java | 19 +++---- source/mircoders/media/MediaHandlerImages.java | 17 +++--- source/mircoders/media/MediaHandlerMp3.java | 54 ++++++++++--------- source/mircoders/media/MediaHandlerRealAudio.java | 13 ++--- source/mircoders/media/MediaHandlerRealVideo.java | 13 ++--- templates-dist/producer/content.template | 63 ++++++++++++++--------- 8 files changed, 119 insertions(+), 89 deletions(-) diff --git a/source/mir/media/MirMedia.java b/source/mir/media/MirMedia.java index 0431e9b4..646cd0ff 100755 --- a/source/mir/media/MirMedia.java +++ b/source/mir/media/MirMedia.java @@ -8,6 +8,8 @@ package mir.media; import java.util.*; +import freemarker.template.SimpleList; + import mir.entity.*; /** @@ -113,7 +115,7 @@ public interface MirMedia{ * @see mir.entity.Entity * @see mir.misc.StringUtil */ - public abstract String getURL (Entity ent, Entity mediaTypeEnt) + public abstract SimpleList getURL (Entity ent, Entity mediaTypeEnt) throws MirMediaException; /** diff --git a/source/mircoders/entity/EntityUploadedMedia.java b/source/mircoders/entity/EntityUploadedMedia.java index 044a37fd..7e67826a 100755 --- a/source/mircoders/entity/EntityUploadedMedia.java +++ b/source/mircoders/entity/EntityUploadedMedia.java @@ -65,8 +65,8 @@ public class EntityUploadedMedia extends Entity String returnValue=null; if (key!=null) { - if (key.equals("url")) - returnValue=getUrl(); + if (key.equals("big_icon")) + returnValue=getBigIcon(); else if (key.equals("list")) returnValue=getListView(); else @@ -77,10 +77,29 @@ public class EntityUploadedMedia extends Entity public TemplateModel get(java.lang.String key) throws TemplateModelException { + if (key.equals("url")) + return getUrl(); + return new SimpleScalar(getValue(key)); } - private String getUrl() + private String getBigIcon() + { + MirMedia mediaHandler=null; + Entity mediaType=null; + + try { + mediaType = getMediaType(); + mediaHandler = MediaHelper.getHandler( mediaType ); + return mediaHandler.getBigIcon(); + } catch (Exception ex) { + theLog.printWarning("-- getBigIcon: could not fetch data " + + this.getClass().toString()+" "+ ex.toString()); + } + return null; + } + + private SimpleList getUrl() { MirMedia mediaHandler=null; Entity mediaType=null; diff --git a/source/mircoders/media/MediaHandlerGeneric.java b/source/mircoders/media/MediaHandlerGeneric.java index 31eaff9b..e3d2124d 100755 --- a/source/mircoders/media/MediaHandlerGeneric.java +++ b/source/mircoders/media/MediaHandlerGeneric.java @@ -8,6 +8,8 @@ package mircoders.media; import java.util.*; import java.io.*; +import freemarker.template.SimpleList; + import mir.media.*; import mir.entity.*; import mir.misc.*; @@ -137,17 +139,11 @@ public class MediaHandlerGeneric implements MirMedia return "Generic media"; } - public String getURL(Entity ent, Entity mediaTypeEnt) + public SimpleList getURL(Entity ent, Entity mediaTypeEnt) { - String stringSize = ent.getValue("size"); - if (stringSize == null) - return null; - int size = Integer.parseInt(stringSize, 10)/1024; - String title = ent.getValue("title")+ - " - "+mediaTypeEnt.getValue("name")+" "+ - size+" KB"; - return StringUtil.createURLLinks(ent.getValue("publish_server")+"/"+ - ent.getValue("publish_path"), title, imageRoot, getBigIcon()); + SimpleList theList = new SimpleList(); + theList.add(ent); + return theList; } public String getListView(Entity ent, Entity mediaTypeEnt) @@ -155,8 +151,7 @@ public class MediaHandlerGeneric implements MirMedia //String title = ent.getValue("title")+ // " - "+mediaTypeEnt.getValue("name")+" "+ // ent.getValue("size")+" Bytes"; - return StringUtil.createIMGLinks(imageHost+ - getBigIcon(), null, null, null); + return getBigIcon(); } public boolean isVideo() diff --git a/source/mircoders/media/MediaHandlerImages.java b/source/mircoders/media/MediaHandlerImages.java index d5db1a1f..b72ca183 100755 --- a/source/mircoders/media/MediaHandlerImages.java +++ b/source/mircoders/media/MediaHandlerImages.java @@ -6,6 +6,8 @@ import java.io.*; import java.util.*; import java.lang.reflect.*; +import freemarker.template.SimpleList; + import mir.media.*; import mir.misc.*; import mir.entity.*; @@ -116,14 +118,6 @@ public class MediaHandlerImages implements MirMedia return icon_data; } - public String getURL(Entity ent, Entity mediaTypeEnt) - { - String title = ent.getValue("title"); - return StringUtil.createIMGLinks(ent.getValue("publish_server")+ - ent.getValue("publish_path"), title, ent.getValue("img_height"), - ent.getValue("img_width")); - } - public String getListView(Entity ent, Entity mediaTypeEnt) { //String title = ent.getValue("title"); @@ -132,6 +126,13 @@ public class MediaHandlerImages implements MirMedia null, ent.getValue("icon_height"), ent.getValue("icon_width")); } + public SimpleList getURL(Entity ent, Entity mediaTypeEnt) + { + SimpleList theList = new SimpleList(); + theList.add(ent); + return theList; + } + public String getStoragePath() { return MirConfig.getProp("Producer.Image.Path"); diff --git a/source/mircoders/media/MediaHandlerMp3.java b/source/mircoders/media/MediaHandlerMp3.java index 270bc642..26484fdc 100755 --- a/source/mircoders/media/MediaHandlerMp3.java +++ b/source/mircoders/media/MediaHandlerMp3.java @@ -7,6 +7,9 @@ package mircoders.media; import java.util.*; +import freemarker.template.SimpleList; +import freemarker.template.SimpleHash; + import mir.media.*; import mir.entity.*; import mir.misc.*; @@ -70,31 +73,34 @@ public class MediaHandlerMp3 extends MediaHandlerAudio implements MirMedia } } - public String getURL(Entity ent, Entity mediaTypeEnt) + public SimpleList getURL(Entity ent, Entity mediaTypeEnt) { - String stringSize = ent.getValue("size"); - if (stringSize == null) - return null; - int size = Integer.parseInt(stringSize, 10)/1024; - String rawTitle = ent.getValue("title")+ - " - "+mediaTypeEnt.getValue("name")+" "+ - size+" KB "+"download"; - String m3uTitle = ent.getValue("title")+ - " - "+mediaTypeEnt.getValue("name")+" "+ - "streaming URL"; - String plsTitle = ent.getValue("title")+ - " - "+mediaTypeEnt.getValue("name")+" "+ - "playlist URL"; - - String basePath=StringUtil.regexpReplace(ent.getValue("publish_path"), ".mp3$",""); - - String m3uURL = StringUtil.createURLLinks(ent.getValue("publish_server")+"/"+basePath+".m3u", m3uTitle, imageRoot, getBigIcon()); - String plsURL = StringUtil.createURLLinks(ent.getValue("publish_server")+"/"+basePath+".pls", plsTitle, imageRoot, getBigIcon()); - String rawURL = StringUtil.createURLLinks(ent.getValue("publish_server")+"/"+ent.getValue("publish_path"), rawTitle, imageRoot, getBigIcon()); - - return m3uURL+"\n

"+plsURL+"\n

"+rawURL; - - } + SimpleList theList = new SimpleList(); + + //String stringSize = ent.getValue("size"); + //int size = Integer.parseInt(stringSize, 10)/1024; + theList.add(ent); + + String basePath=StringUtil.regexpReplace(ent.getValue("publish_path"), + ".mp3$",""); + + // @todo the texts ("title") below urgently need to be sanely localizaeble + // somehow + SimpleHash m3uHash = new SimpleHash(); + m3uHash.put("publish_path", basePath+".m3u"); + m3uHash.put("publish_server", ent.getValue("publish_server")); + m3uHash.put("title", "stream URL"); + theList.add(m3uHash); + + SimpleHash plsHash = new SimpleHash(); + plsHash.put("publish_path", basePath+".pls"); + plsHash.put("publish_server", ent.getValue("publish_server")); + plsHash.put("title", "playlist URL"); + theList.add(plsHash); + + return theList; + + } } diff --git a/source/mircoders/media/MediaHandlerRealAudio.java b/source/mircoders/media/MediaHandlerRealAudio.java index 3536981f..1b08664f 100755 --- a/source/mircoders/media/MediaHandlerRealAudio.java +++ b/source/mircoders/media/MediaHandlerRealAudio.java @@ -7,6 +7,9 @@ package mircoders.media; import java.util.*; +import freemarker.template.SimpleList; +import freemarker.template.SimpleHash; + import mir.media.*; import mir.entity.*; import mir.misc.*; @@ -53,16 +56,8 @@ public class MediaHandlerRealAudio extends MediaHandlerAudio implements } } - public String getURL(Entity ent, Entity mediaTypeEnt) + public String getStoragePath() { - int size = Integer.parseInt(ent.getValue("size"), 10)/1024; - String title = ent.getValue("title")+" - "+mediaTypeEnt.getValue("name")+ - " "+size+" KB"; - return StringUtil.createURLLinks(ent.getValue("publish_server")+"/"+ - ent.getValue("publish_path"), title, imageRoot, getBigIcon()); - } - - public String getStoragePath() { return MirConfig.getProp("Producer.RealMedia.Path"); } diff --git a/source/mircoders/media/MediaHandlerRealVideo.java b/source/mircoders/media/MediaHandlerRealVideo.java index a6e4e8d2..91e888e0 100755 --- a/source/mircoders/media/MediaHandlerRealVideo.java +++ b/source/mircoders/media/MediaHandlerRealVideo.java @@ -7,6 +7,9 @@ package mircoders.media; import java.util.*; +import freemarker.template.SimpleList; +import freemarker.template.SimpleHash; + import mir.media.*; import mir.entity.*; import mir.misc.*; @@ -53,16 +56,8 @@ public class MediaHandlerRealVideo extends MediaHandlerVideo implements } } - public String getURL(Entity ent, Entity mediaTypeEnt) + public String getStoragePath() { - int size = Integer.parseInt(ent.getValue("size"), 10)/1024; - String title = ent.getValue("title")+" - "+mediaTypeEnt.getValue("name")+ - " "+size+" KB"; - return StringUtil.createURLLinks(ent.getValue("publish_server")+"/"+ - ent.getValue("publish_path"), title, imageRoot, getBigIcon()); - } - - public String getStoragePath() { return MirConfig.getProp("Producer.RealMedia.Path"); } diff --git a/templates-dist/producer/content.template b/templates-dist/producer/content.template index d50c5c19..632a0134 100755 --- a/templates-dist/producer/content.template +++ b/templates-dist/producer/content.template @@ -67,30 +67,47 @@

${data.content.title}

${data.content.creator}, ${data.content.webdb_create_formatted}

${data.content.description_parsed} - - -

- ${media["url"]} -

+ + + +

+ + + ${audio["title"]} +

- -

- ${media["url"]} -

-
- -

- ${media["url"]} -

-
- -

I - ${media["url"]} -

-
- -

${data.content.content_data_parsed}

- +
+ + +

+ + + ${video["title"]} +

+
+
+ + +

+ + + ${other["title"]} +

+
+
+ + +

+ ${image[ +
${image["title"]} +

+
+
+ +

${data.content.content_data_parsed}

+
-- 2.11.0