package webraveler.plugin; import java.util.*; import webraveler.html.HTMLPage2; import webraveler.http.HTTPRequest; import webraveler.http.HTTPResponse; import webraveler.ravel.PluginAPI; import webraveler.vurl.PluginChangePref; import webraveler.vurl.PluginConfig; /** * A quick demo for EdMedia. */ public class TrackerPlugin extends webraveler.ravel.RavelerPlugin { /* variables */ /*constructors*/ public TrackerPlugin () { name = "TrackerPlugin"; mimeTypes.add("text/html"); } /*methods*/ public void setDefaultAttributes () { this.attributes = new Hashtable(); this.attributes.put("VURL","Unknown"); } // setDefaultAttributes() public boolean initialize () { if (this.attributes == null) this.attributes = new Hashtable(); // String vurl = PluginAPI.addPermanentVirtualURL(ravel,name,"sample",new webraveler.samr.SampleVURL()); String vurl = PluginAPI.addPermanentVirtualURL(ravel,name,"redirect",new webraveler.vurl.RedirectVURL("http://www.math.grinnell.edu/~walker/")); System.out.println("TrackerPlugin: Created vurl: " + vurl); this.attributes.put("VURL",vurl); return true; }//initialize() public HTTPRequest execute (HTTPRequest request, Hashtable attributes, String userName) { return request; }//execute() public HTTPResponse execute (HTTPResponse response, Hashtable userAttributes, String userName){ System.out.println("TrackerPlugin: Processing response to URL: " + response.uriString); webraveler.samr.SendMail.send( "rebelsky@grinnell.edu", "Page visit by " + userName + " to " + response.uriString, response.uriString + "\n"); return response; } //execute(HTTPResponse) public void terminate() { } // terminate() }// TrackerPlugin