home *** CD-ROM | disk | FTP | other *** search
- package netscape.netcast.application;
-
- import java.applet.Applet;
- import java.io.File;
- import java.util.Date;
- import java.util.ResourceBundle;
- import java.util.Vector;
- import netscape.javascript.JSObject;
- import netscape.net.Cache;
- import netscape.security.AppletSecurity;
- import netscape.security.Principal;
- import netscape.security.PrivilegeManager;
- import netscape.security.Target;
-
- public class SiteData extends DataItem implements UpdateParent {
- static final int SITE_ERROR = -2;
- static final int SITE_INACTIVE = -1;
- static final int SITE_IDLE = 0;
- static final int SITE_UPDATING = 1;
- static int UPDATE_MAX = Integer.parseInt(NCPrefsManager.GetData("netcaster.updateMax", "2"));
- static final long PERM_SD_INSITE = 8192L;
- private static int m_NumUpdates;
- protected String m_CacheName;
- protected String m_CacheFileName;
- protected Cache m_Cache;
- protected int m_Depth;
- private HTMLCrawler crawler;
- private boolean StopProgressBar = true;
-
- public SiteData(Applet var1) {
- super.m_Applet = (ConstPR4)var1;
- super.m_Status = -1;
- super.m_Type = 1;
- super.m_Frequency = -1;
- super.m_UpdateTime = -1;
- super.m_LastUpdate = 0L;
- super.m_State = 0;
- }
-
- public SiteData(Applet var1, String var2) {
- super.m_State = 0;
- super.m_Status = -1;
- super.m_Applet = (ConstPR4)var1;
- ((DataItem)this).loadData(var2);
- }
-
- public int getDepth() {
- return this.m_Depth;
- }
-
- public void setDepth(int var1) {
- this.m_Depth = var1;
- }
-
- public boolean crawlInSite() {
- return (super.m_Permissions & 8192L) != 0L;
- }
-
- public void setCrawlInSite(Boolean var1) {
- if (var1) {
- super.m_Permissions |= 8192L;
- } else {
- super.m_Permissions &= -8193L;
- }
- }
-
- public synchronized int getNumUpdates() {
- return m_NumUpdates;
- }
-
- protected int loadDataSetup(Vector var1, Vector var2) throws IllegalArgumentException {
- int var3 = 0;
- String var4 = ((DataItem)this).getPrefsKey();
- var3 = super.loadDataSetup(var1, var2);
- if (var1.size() != var2.size()) {
- throw new IllegalArgumentException("Different count of preference keys and values");
- } else {
- var1.addElement(var4 + ".updateFrequency");
- var2.addElement("-1");
- var1.addElement(var4 + ".updateTime");
- var2.addElement("-1");
- var1.addElement(var4 + ".cacheName");
- var2.addElement((Object)null);
- var1.addElement(var4 + ".cacheFilename");
- var2.addElement((Object)null);
- var1.addElement(var4 + ".depth");
- var2.addElement("1");
- var1.addElement(var4 + ".maxSize");
- var2.addElement("0");
- var1.addElement(var4 + ".startTime");
- var2.addElement("0");
- var1.addElement(var4 + ".endTime");
- var2.addElement("0");
- return var3 + 8;
- }
- }
-
- protected void reflectLoadedData(String[] var1, String[] var2) {
- super.reflectLoadedData(var1, var2);
-
- for(int var3 = 0; var3 < var1.length; ++var3) {
- String var4 = var1[var3].substring(var1[var3].lastIndexOf(46) + 1);
- if (var4.compareTo("updateFrequency") == 0) {
- super.m_Frequency = Integer.parseInt(var2[var3]);
- } else if (var4.compareTo("updateTime") == 0) {
- super.m_UpdateTime = Integer.parseInt(var2[var3]);
- } else if (var4.compareTo("cacheName") == 0) {
- this.m_CacheName = var2[var3];
- } else if (var4.compareTo("cacheFilename") == 0) {
- this.m_CacheFileName = var2[var3];
- } else if (var4.compareTo("depth") == 0) {
- this.m_Depth = Integer.parseInt(var2[var3]);
- } else if (var4.compareTo("maxSize") == 0) {
- super.m_MaxSize = Integer.parseInt(var2[var3]);
- } else if (var4.compareTo("startTime") == 0) {
- super.m_StartTime = Integer.parseInt(var2[var3]);
- } else if (var4.compareTo("endTime") == 0) {
- super.m_EndTime = Integer.parseInt(var2[var3]);
- }
- }
-
- }
-
- protected int saveDataSetup(Vector var1, Vector var2) throws IllegalArgumentException {
- int var3 = 0;
- String var4 = ((DataItem)this).getPrefsKey();
- var3 = super.saveDataSetup(var1, var2);
- if (var1.size() != var2.size()) {
- throw new IllegalArgumentException("Different count of preference keys and values");
- } else {
- var1.addElement(var4 + ".updateFrequency");
- var2.addElement(String.valueOf(super.m_Frequency));
- var1.addElement(var4 + ".updateTime");
- var2.addElement(String.valueOf(super.m_UpdateTime));
- var1.addElement(var4 + ".cacheName");
- var2.addElement(this.m_CacheName);
- var1.addElement(var4 + ".cacheFilename");
- var2.addElement(this.m_CacheFileName);
- var1.addElement(var4 + ".depth");
- var2.addElement(String.valueOf(this.m_Depth));
- var1.addElement(var4 + ".maxSize");
- var2.addElement(String.valueOf(super.m_MaxSize));
- var1.addElement(var4 + ".startTime");
- var2.addElement(String.valueOf(super.m_StartTime));
- var1.addElement(var4 + ".endTime");
- var2.addElement(String.valueOf(super.m_EndTime));
- return var3 + 8;
- }
- }
-
- public String[][] getMenuItems() {
- int var2 = 1;
- String[][] var1;
- if (((DataItem)this).isDeletable()) {
- var1 = new String[4][2];
- } else {
- var1 = new String[3][2];
- }
-
- if (super.m_Status != 1 && this.crawler == null) {
- var1[0][0] = "Start Update";
- var1[0][1] = "update_start";
- } else {
- var1[0][0] = "Stop Update";
- var1[0][1] = "update_stop";
- }
-
- if (((DataItem)this).isDeletable()) {
- var1[var2][0] = "Delete";
- var1[var2++][1] = "delete";
- }
-
- var1[var2][0] = "-";
- var1[var2++][1] = "";
- var1[var2][0] = "Properties";
- var1[var2++][1] = "props";
- return var1;
- }
-
- public void processMenuItem(String var1) {
- if (var1.compareTo("update_start") == 0) {
- this.update();
- } else if (var1.compareTo("update_stop") == 0) {
- this.cancelUpdate();
- } else {
- super.processMenuItem(var1);
- }
- }
-
- public void added(CategoryData var1, boolean var2) {
- super.added(var1, var2);
- if (this.m_CacheName == null || this.m_CacheFileName == null) {
- Date var3 = new Date();
- this.m_CacheFileName = (new Integer(var3.getMonth())).toString() + "" + (new Integer(var3.getDate())).toString() + "" + (new Integer(var3.getMinutes())).toString() + "" + (new Integer(var3.getSeconds())).toString() + ".db";
- this.m_CacheName = super.m_Name;
- }
-
- this.m_Cache = new Cache("//", this.m_CacheFileName, this.m_CacheName, super.m_MaxSize);
- NSTimer.master.add(Const.scheduler, 0L, this);
- ++DataItem.m_NumItems;
- if (!var2) {
- NCPrefsManager.SaveData("netcaster.channel.count", String.valueOf(DataItem.m_NumItems - 1));
- NCPrefsManager.SaveData("netcaster.channel.channel_" + (DataItem.m_NumItems - 1), ((DataItem)this).getPrefsName());
- }
-
- if (!var2) {
- ((DataItem)this).saveData("netcaster.channel");
- }
-
- }
-
- public synchronized void autoUpdate() {
- if (super.m_Applet.constManager.ws == null || super.m_Applet.constManager.ws.getEnvironment().networkEnabled()) {
- this.m_Cache = new Cache("//", this.m_CacheFileName, this.m_CacheName, super.m_MaxSize);
- if (super.m_Status != 1 && this.crawler == null) {
- this.crawler = new HTMLCrawler(super.m_URL, this.m_Cache, this, this.m_Depth, NCPrefsManager.GetData("profile.directory", "") + File.separator + "archive" + File.separator + this.m_CacheFileName, super.m_MaxSize, this.crawlInSite(), false);
- PrivilegeManager var1 = AppletSecurity.getPrivilegeManager();
- Principal var3 = PrivilegeManager.getSystemPrincipal();
- Target var2 = Target.findTarget("Netcaster", var3);
- var1.enablePrivilege(var2);
- this.crawler.setPriority(1);
- var1.revertPrivilege(var2);
- this.crawler.start();
- }
- }
- }
-
- public void update() {
- if (super.m_Applet.constManager.ws == null || super.m_Applet.constManager.ws.getEnvironment().networkEnabled()) {
- if (super.m_Status != 1) {
- super.m_Status = 1;
- this.crawler = new HTMLCrawler(super.m_URL, this.m_Cache, this, this.m_Depth, NCPrefsManager.GetData("profile.directory", "") + File.separator + "archive" + File.separator + this.m_CacheFileName, super.m_MaxSize, this.crawlInSite(), true);
- PrivilegeManager var1 = AppletSecurity.getPrivilegeManager();
- Principal var3 = PrivilegeManager.getSystemPrincipal();
- Target var2 = Target.findTarget("Netcaster", var3);
- var1.enablePrivilege(var2);
- this.crawler.setPriority(1);
- var1.revertPrivilege(var2);
- this.crawler.start();
- }
- }
- }
-
- public void updateStarted() {
- super.m_Status = 1;
- long var1 = System.currentTimeMillis();
- ((DataItem)this).setLastUpdate(var1);
- if (super.m_ItemView != null && super.m_Applet != null) {
- JSObject var3 = JSObject.getWindow(super.m_Applet);
- JSObject[] var4 = new JSObject[]{super.m_ItemView};
- var3.call("animateGo", var4);
- }
-
- ((DataItem)this).setLastUpdate(System.currentTimeMillis());
- }
-
- public synchronized void updateComplete(int var1) {
- super.m_Status = 0;
- --m_NumUpdates;
- this.crawler = null;
- if (this.StopProgressBar) {
- if (var1 == 1) {
- ((DataItem)this).setState(1);
- this.setError((String)null);
- } else if (var1 == 0) {
- this.setError((String)null);
- } else {
- ResourceBundle var2 = ResourceBundle.getBundle("netscape.netcast.application.NetcasterStrings");
- ((DataItem)this).setState(-1);
- switch (var1) {
- case -4:
- this.setError(var2.getString("site down error"));
- break;
- case -3:
- this.setError(var2.getString("robots error"));
- break;
- case -2:
- this.setError(var2.getString("depth value error"));
- break;
- case -1:
- this.setError(var2.getString("Cache size error"));
- break;
- default:
- this.setError((String)null);
- }
- }
-
- if (super.m_ItemView != null && super.m_Applet != null) {
- JSObject var4 = JSObject.getWindow(super.m_Applet);
- JSObject[] var3 = new JSObject[]{super.m_ItemView};
- var4.call("animateStop", var3);
- return;
- }
- } else {
- this.StopProgressBar = true;
- }
-
- }
-
- public void remove() {
- this.cancelUpdate();
- NSTimer.master.remove(Const.scheduler, this);
- }
-
- public void deleted(CategoryData var1) {
- this.remove();
- this.cancelUpdate();
- super.deleted(var1);
- NCPrefsManager.SaveData("netcaster.channel.count", String.valueOf(--DataItem.m_NumItems));
- PrivilegeManager.enablePrivilege("Netcaster");
- this.m_Cache = new Cache("//", this.m_CacheFileName, this.m_CacheName, super.m_MaxSize);
- this.m_Cache.delete();
- File var2 = new File(NCPrefsManager.GetData("profile.directory", "") + File.separator + "archive" + File.separator + this.m_CacheFileName);
- var2.delete();
- Object var3 = null;
- }
-
- public void updateProps() {
- NSTimer.master.remove(Const.scheduler, this);
- NSTimer.master.add(Const.scheduler, 0L, this);
- }
-
- public void close() {
- this.remove();
- this.m_Cache = new Cache("//", this.m_CacheFileName, this.m_CacheName, super.m_MaxSize);
- this.m_Cache.close();
- super.close();
- }
-
- public synchronized void setError(String var1) {
- super.setError(var1);
- if (var1 != null) {
- ((DataItem)this).setState(-1);
- }
-
- ((DataItem)this).updateLEDImage(false);
- }
-
- public void cancelUpdate() {
- if (super.m_Status == 1) {
- this.StopProgressBar = false;
- if (super.m_ItemView != null && super.m_Applet != null) {
- JSObject var1 = JSObject.getWindow(super.m_Applet);
- JSObject[] var2 = new JSObject[]{super.m_ItemView};
- var1.call("animateStop", var2);
- }
-
- this.crawler.setStopUpdate();
- }
-
- }
-
- public static synchronized boolean canICrawl(boolean var0) {
- if (m_NumUpdates >= UPDATE_MAX && !var0) {
- return false;
- } else {
- ++m_NumUpdates;
- return true;
- }
- }
-
- public void openCache() {
- this.m_Cache = new Cache("//", this.m_CacheFileName, this.m_CacheName, super.m_MaxSize);
- }
-
- public void clearCache() {
- PrivilegeManager.enablePrivilege("Netcaster");
- this.m_Cache = new Cache("//", this.m_CacheFileName, this.m_CacheName, super.m_MaxSize);
- this.m_Cache.clear();
- }
- }
-