com.planet_ink.coffee_mud.Libraries
Class WebMacroCreamer

java.lang.Object
  extended by com.planet_ink.coffee_mud.Libraries.StdLibrary
      extended by com.planet_ink.coffee_mud.Libraries.WebMacroCreamer
All Implemented Interfaces:
CMObject, Tickable, CMLibrary, WebMacroLibrary, com.planet_ink.coffee_web.interfaces.HTTPOutputConverter, com.planet_ink.coffee_web.interfaces.SimpleServlet, java.lang.Cloneable, java.lang.Comparable<CMObject>

public class WebMacroCreamer
extends StdLibrary
implements WebMacroLibrary, com.planet_ink.coffee_web.interfaces.SimpleServlet


Nested Class Summary
protected static class WebMacroCreamer.JScriptablePage
           
 
Field Summary
protected  com.planet_ink.coffee_mud.Libraries.WebMacroCreamer.YahooGroupSession yahooSession
           
 
Fields inherited from class com.planet_ink.coffee_mud.Libraries.StdLibrary
isDebugging, name, serviceClient, tickStatus
 
Fields inherited from interface com.planet_ink.coffee_mud.core.interfaces.Tickable
STATUS_AFFECT, STATUS_ALIVE, STATUS_BEHAVIOR, STATUS_CLASS, STATUS_DEAD, STATUS_END, STATUS_FIGHT, STATUS_MISC, STATUS_MISC2, STATUS_MISC3, STATUS_MISC4, STATUS_MISC5, STATUS_MISC6, STATUS_MISC7, STATUS_NOT, STATUS_OTHER, STATUS_RACE, STATUS_REBIRTH, STATUS_SCRIPT, STATUS_START, STATUS_WEATHER, TICKID_AREA, TICKID_BEAMWEAPON, TICKID_CLAN, TICKID_CLANITEM, TICKID_DEADBODY_DECAY, TICKID_ELECTRONICS, TICKID_EMAIL, TICKID_EXIT_BEHAVIOR, TICKID_EXIT_REOPEN, TICKID_ITEM_BEHAVIOR, TICKID_ITEM_BOUNCEBACK, TICKID_LIGHT_FLICKERS, TICKID_LIVEAUCTION, TICKID_LONGERMASK, TICKID_MISCELLANEOUS, TICKID_MOB, TICKID_PROPERTY_SPECIAL, TICKID_QUEST, TICKID_READYTOSTOP, TICKID_ROOM_BEHAVIOR, TICKID_ROOM_ITEM_REJUV, TICKID_SOLITARYMASK, TICKID_SPECIALCOMBAT, TICKID_SPECIALMANEUVER, TICKID_SPELL_AFFECT, TICKID_SUPPORT, TICKID_TIMEAUCTION, TICKID_TRAP_DESTRUCTION, TICKID_TRAP_RESET
 
Constructor Summary
WebMacroCreamer()
           
 
Method Summary
 boolean activate()
          Activates the library.
 java.lang.String clearWebMacros(java.lang.String s)
           
 java.lang.String clearWebMacros(java.lang.StringBuffer s)
           
 java.nio.ByteBuffer convertOutput(com.planet_ink.coffee_web.util.CWConfig config, com.planet_ink.coffee_web.interfaces.HTTPRequest request, java.io.File pageFile, com.planet_ink.coffee_web.http.HTTPStatus status, java.nio.ByteBuffer buffer)
           
 java.lang.String copyYahooGroupMsg(com.planet_ink.coffee_mud.Libraries.WebMacroCreamer.YahooGroupSession sess)
           
 java.lang.String copyYahooGroupMsgs(java.lang.String user, java.lang.String password, java.lang.String url, int numTimes, int[] skipList, java.lang.String journal)
           
 void doGet(com.planet_ink.coffee_web.interfaces.SimpleServletRequest request, com.planet_ink.coffee_web.interfaces.SimpleServletResponse response)
           
 void doPost(com.planet_ink.coffee_web.interfaces.SimpleServletRequest request, com.planet_ink.coffee_web.interfaces.SimpleServletResponse response)
           
 TickClient getServiceClient()
          If this library has a service thread, this method returns the TickClient object associated with that service.
 int getTickStatus()
          A coded status for this object during the period where its tick method is being called.
 java.lang.String ID()
          The CoffeeMud Java Class ID shared by all instances of this object.
 void init()
           
protected  java.lang.String loginToYahooSession(com.planet_ink.coffee_mud.Libraries.WebMacroCreamer.YahooGroupSession sess)
           
protected  int myBack(java.lang.StringBuffer s, int i, java.lang.String[] lastFoundMacro)
           
protected  int myElse(java.lang.StringBuffer s, int i, int end, java.lang.String[] lastFoundMacro)
           
protected  int myEndif(java.lang.StringBuffer s, int i, java.lang.String[] lastFoundMacro)
           
protected  int myNext(java.lang.StringBuffer s, int i, java.lang.String[] lastFoundMacro)
           
 java.lang.String parseFoundMacro(java.lang.StringBuffer s, int i, boolean lookOnly)
           
protected  java.lang.String parseFoundMacro(java.lang.StringBuffer s, int i, java.lang.String[] lastFoundMacro, boolean lookOnly)
           
protected  java.lang.String runMacro(com.planet_ink.coffee_web.interfaces.HTTPRequest request, java.lang.String foundMacro, java.lang.String[] lastFoundMacro, boolean isAdminServer)
           
 void service(com.planet_ink.coffee_web.http.HTTPMethod method, com.planet_ink.coffee_web.interfaces.SimpleServletRequest request, com.planet_ink.coffee_web.interfaces.SimpleServletResponse response)
           
 boolean shutdown()
          Shuts down the library.
 boolean tick(Tickable ticking, int tickID)
          this is the method which is called periodically by the threading engine.
 byte[] virtualPageFilter(byte[] data)
           
 java.lang.StringBuffer virtualPageFilter(com.planet_ink.coffee_web.interfaces.HTTPRequest request, java.util.Map<java.lang.String,java.lang.Object> objects, long[] processStartTime, java.lang.String[] lastFoundMacro, java.lang.StringBuffer s)
           
 java.lang.String virtualPageFilter(java.lang.String s)
           
 java.lang.StringBuffer virtualPageFilter(java.lang.StringBuffer s)
           
 
Methods inherited from class com.planet_ink.coffee_mud.Libraries.StdLibrary
checkDatabase, compareTo, copyOf, initializeClass, L, name, newInstance, propertiesLoaded, setThreadStatus
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.planet_ink.coffee_mud.Libraries.interfaces.CMLibrary
L, propertiesLoaded
 
Methods inherited from interface com.planet_ink.coffee_mud.core.interfaces.CMObject
copyOf, initializeClass, name, newInstance
 
Methods inherited from interface java.lang.Comparable
compareTo
 

Field Detail

yahooSession

protected com.planet_ink.coffee_mud.Libraries.WebMacroCreamer.YahooGroupSession yahooSession
Constructor Detail

WebMacroCreamer

public WebMacroCreamer()
Method Detail

ID

public java.lang.String ID()
Description copied from interface: CMObject
The CoffeeMud Java Class ID shared by all instances of this object. Unlike the Java Class name, this method does not include package information. However, it must return a String value unique to its class category in the ClassLoader. Class categories include Libraries, Common, Areas, Abilities, Behaviors, CharClasses, Commands, Exits Locales, MOBS, Races, WebMacros, Basic Items, Armor, Weapons, ClanItems, Tech. The name is typically identical to the class name.

Specified by:
ID in interface CMObject
Overrides:
ID in class StdLibrary
Returns:
the name of this class

convertOutput

public java.nio.ByteBuffer convertOutput(com.planet_ink.coffee_web.util.CWConfig config,
                                         com.planet_ink.coffee_web.interfaces.HTTPRequest request,
                                         java.io.File pageFile,
                                         com.planet_ink.coffee_web.http.HTTPStatus status,
                                         java.nio.ByteBuffer buffer)
                                  throws com.planet_ink.coffee_web.http.HTTPException
Specified by:
convertOutput in interface com.planet_ink.coffee_web.interfaces.HTTPOutputConverter
Throws:
com.planet_ink.coffee_web.http.HTTPException

virtualPageFilter

public byte[] virtualPageFilter(byte[] data)
                         throws HTTPRedirectException
Specified by:
virtualPageFilter in interface WebMacroLibrary
Throws:
HTTPRedirectException

virtualPageFilter

public java.lang.String virtualPageFilter(java.lang.String s)
                                   throws HTTPRedirectException
Specified by:
virtualPageFilter in interface WebMacroLibrary
Throws:
HTTPRedirectException

virtualPageFilter

public java.lang.StringBuffer virtualPageFilter(java.lang.StringBuffer s)
                                         throws HTTPRedirectException
Specified by:
virtualPageFilter in interface WebMacroLibrary
Throws:
HTTPRedirectException

clearWebMacros

public java.lang.String clearWebMacros(java.lang.String s)
Specified by:
clearWebMacros in interface WebMacroLibrary

parseFoundMacro

public java.lang.String parseFoundMacro(java.lang.StringBuffer s,
                                        int i,
                                        boolean lookOnly)
Specified by:
parseFoundMacro in interface WebMacroLibrary

clearWebMacros

public java.lang.String clearWebMacros(java.lang.StringBuffer s)
Specified by:
clearWebMacros in interface WebMacroLibrary

virtualPageFilter

public java.lang.StringBuffer virtualPageFilter(com.planet_ink.coffee_web.interfaces.HTTPRequest request,
                                                java.util.Map<java.lang.String,java.lang.Object> objects,
                                                long[] processStartTime,
                                                java.lang.String[] lastFoundMacro,
                                                java.lang.StringBuffer s)
                                         throws HTTPRedirectException
Specified by:
virtualPageFilter in interface WebMacroLibrary
Throws:
HTTPRedirectException

runMacro

protected java.lang.String runMacro(com.planet_ink.coffee_web.interfaces.HTTPRequest request,
                                    java.lang.String foundMacro,
                                    java.lang.String[] lastFoundMacro,
                                    boolean isAdminServer)
                             throws HTTPRedirectException,
                                    HTTPServerException
Throws:
HTTPRedirectException
HTTPServerException

parseFoundMacro

protected java.lang.String parseFoundMacro(java.lang.StringBuffer s,
                                           int i,
                                           java.lang.String[] lastFoundMacro,
                                           boolean lookOnly)

myElse

protected int myElse(java.lang.StringBuffer s,
                     int i,
                     int end,
                     java.lang.String[] lastFoundMacro)

myBack

protected int myBack(java.lang.StringBuffer s,
                     int i,
                     java.lang.String[] lastFoundMacro)

myNext

protected int myNext(java.lang.StringBuffer s,
                     int i,
                     java.lang.String[] lastFoundMacro)

myEndif

protected int myEndif(java.lang.StringBuffer s,
                      int i,
                      java.lang.String[] lastFoundMacro)

init

public void init()
Specified by:
init in interface com.planet_ink.coffee_web.interfaces.SimpleServlet

doGet

public void doGet(com.planet_ink.coffee_web.interfaces.SimpleServletRequest request,
                  com.planet_ink.coffee_web.interfaces.SimpleServletResponse response)
           throws com.planet_ink.coffee_web.http.HTTPException
Specified by:
doGet in interface com.planet_ink.coffee_web.interfaces.SimpleServlet
Throws:
com.planet_ink.coffee_web.http.HTTPException

doPost

public void doPost(com.planet_ink.coffee_web.interfaces.SimpleServletRequest request,
                   com.planet_ink.coffee_web.interfaces.SimpleServletResponse response)
            throws com.planet_ink.coffee_web.http.HTTPException
Specified by:
doPost in interface com.planet_ink.coffee_web.interfaces.SimpleServlet
Throws:
com.planet_ink.coffee_web.http.HTTPException

service

public void service(com.planet_ink.coffee_web.http.HTTPMethod method,
                    com.planet_ink.coffee_web.interfaces.SimpleServletRequest request,
                    com.planet_ink.coffee_web.interfaces.SimpleServletResponse response)
             throws com.planet_ink.coffee_web.http.HTTPException
Specified by:
service in interface com.planet_ink.coffee_web.interfaces.SimpleServlet
Throws:
com.planet_ink.coffee_web.http.HTTPException

activate

public boolean activate()
Description copied from interface: CMLibrary
Activates the library. This is called after the mud is booted, but before connections are accepted.

Specified by:
activate in interface CMLibrary
Overrides:
activate in class StdLibrary
Returns:
true if activation was successful, false if you're screwed
See Also:
CMLibrary.shutdown()

shutdown

public boolean shutdown()
Description copied from interface: CMLibrary
Shuts down the library. Called at system shutdown time obviously, but is sometimes called just to reset the library.

Specified by:
shutdown in interface CMLibrary
Overrides:
shutdown in class StdLibrary
Returns:
true if shutdown was successful, false if there's nothing you can do about it
See Also:
CMLibrary.activate()

getServiceClient

public TickClient getServiceClient()
Description copied from interface: CMLibrary
If this library has a service thread, this method returns the TickClient object associated with that service. Normally returns null, since most libraries don't set themselves up to receive thread time.

Specified by:
getServiceClient in interface CMLibrary
Overrides:
getServiceClient in class StdLibrary
Returns:
null, or the TickClient for the service
See Also:
TickClient

getTickStatus

public int getTickStatus()
Description copied from interface: Tickable
A coded status for this object during the period where its tick method is being called. The statis is defined, at least in part, by constants in this interface STATUS_*. STATUS_NOT should be returned when the objects tick method is not currently in execution. It should never return STATUS_NOT when the objects tick method is in execution.

Specified by:
getTickStatus in interface Tickable
Overrides:
getTickStatus in class StdLibrary
Returns:
the numeric status of this object
See Also:
Tickable.tick(Tickable, int)

tick

public boolean tick(Tickable ticking,
                    int tickID)
Description copied from interface: Tickable
this is the method which is called periodically by the threading engine. How often it is called depends on the parameters passed to the threadding engine when it is submitted for thread access. Typically the period is once per TIME_TICK period, but that is determined when the object is submitted to the thread engine.

Specified by:
tick in interface Tickable
Overrides:
tick in class StdLibrary
Parameters:
ticking - a reference to this Tickable object
tickID - the TICKID_ constant describing this periodic call, as defined in Tickable
Returns:
true always, unless this object no longer wishes to ever tick again, in which case false
See Also:
Tickable, ServiceEngine, TickableGroup

copyYahooGroupMsg

public java.lang.String copyYahooGroupMsg(com.planet_ink.coffee_mud.Libraries.WebMacroCreamer.YahooGroupSession sess)

loginToYahooSession

protected java.lang.String loginToYahooSession(com.planet_ink.coffee_mud.Libraries.WebMacroCreamer.YahooGroupSession sess)
                                        throws java.io.UnsupportedEncodingException
Throws:
java.io.UnsupportedEncodingException

copyYahooGroupMsgs

public java.lang.String copyYahooGroupMsgs(java.lang.String user,
                                           java.lang.String password,
                                           java.lang.String url,
                                           int numTimes,
                                           int[] skipList,
                                           java.lang.String journal)
Specified by:
copyYahooGroupMsgs in interface WebMacroLibrary