package org.simon.jspwiki.plugin; import com.ecyrd.jspwiki.plugin.WikiPlugin; import com.ecyrd.jspwiki.plugin.PluginException; import com.ecyrd.jspwiki.WikiContext; import java.text.SimpleDateFormat; import java.util.*; /** * User: SimonLei * Date: 2004-6-4 * Time: 11:09:56 * $Id: DailyComicPlugin.java,v 1.3 2004/06/04 05:40:33 simonlei Exp $ */ public class DailyComicPlugin implements WikiPlugin { public String execute(WikiContext wikiContext, Map map) throws PluginException { String urlPattern = (String) map.get("urlPattern"); String timeZoneId = (String) map.get("timeZone"); String altName = (String) map.get("altName"); String delim = (String) map.get("delim"); TimeZone timeZone; if ( urlPattern == null) return "Error, no url pattern"; if ( delim != null) urlPattern = urlPattern.replaceAll( delim, "'"); if ( timeZoneId == null) timeZone = TimeZone.getDefault(); else timeZone = TimeZone.getTimeZone( timeZoneId); if ( altName == null) altName = "Daily Comic"; Calendar cal = Calendar.getInstance( timeZone); SimpleDateFormat dateFormat = new SimpleDateFormat( urlPattern); long time = cal.getTimeInMillis(); time = time + timeZone.getRawOffset() - TimeZone.getDefault().getRawOffset(); String text = "[" + altName + "|" + dateFormat.format( new Date( time)) + "]"; if ( wikiContext != null) return wikiContext.getEngine().textToHTML( wikiContext, text); return text; } public static void main(String[] args) throws PluginException { DailyComicPlugin dcp = new DailyComicPlugin(); HashMap map = new HashMap(); map.put( "urlPattern", "!http://images.ucomics.com/comics/ga/!yyyy!/ga!yyMMdd!.gif!"); map.put( "delim", "!"); String res = dcp.execute( null, map); System.out.println( res); System.out.println( res.equals( "[Daily Comic|http://images.ucomics.com/comics/ga/2004/ga040604.gif]")); map.put( "altName", "Nothing"); res = dcp.execute( null, map); System.out.println( res); System.out.println( res.equals( "[Nothing|http://images.ucomics.com/comics/ga/2004/ga040604.gif]")); map.put( "timeZone", "America/Los_Angeles"); res = dcp.execute( null, map); System.out.println( res); System.out.println( res.equals( "[Nothing|http://images.ucomics.com/comics/ga/2004/ga040604.gif]")); map.clear(); res = dcp.execute( null, map); System.out.println( res); System.out.println( res.equals( "Error, no url pattern")); } }