home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1997 November / PCO1197.ISO / FilesBBS / WIN95 / NET_COM / N32E403.EXE / netcast.z / ncjava10.jar / netscape / netcast / application / NetcasterConfig.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-09-03  |  9.6 KB  |  301 lines

  1. package netscape.netcast.application;
  2.  
  3. import java.io.BufferedInputStream;
  4. import java.io.BufferedOutputStream;
  5. import java.io.EOFException;
  6. import java.io.File;
  7. import java.io.FileOutputStream;
  8. import java.io.FilterOutputStream;
  9. import java.io.IOException;
  10. import java.net.URL;
  11. import java.text.DateFormat;
  12. import java.util.Calendar;
  13. import java.util.Date;
  14. import java.util.Enumeration;
  15. import java.util.zip.ZipEntry;
  16. import java.util.zip.ZipFile;
  17. import netscape.javascript.JSObject;
  18. import netscape.security.PrivilegeManager;
  19.  
  20. public class NetcasterConfig {
  21.    private static String VERSION_STRING = "1.0";
  22.    private File adminCacheJAR;
  23.    private File archiveDir;
  24.    private Const parent;
  25.    private String installDir;
  26.    private int platform;
  27.  
  28.    public NetcasterConfig(Const var1) {
  29.       this.parent = var1;
  30.    }
  31.  
  32.    public boolean netcasterExpired() {
  33.       Date var1 = new Date();
  34.       Date var2 = new Date(98, 0, 1);
  35.       PrivilegeManager.enablePrivilege("Netcaster");
  36.       if (var1.after(var2)) {
  37.          JSObject var7 = JSObject.getWindow(this.parent.applet);
  38.          System.out.println("This version of Netcaster has expired");
  39.          var7.eval("showExpiration()");
  40.          return true;
  41.       } else {
  42.          Calendar var3 = Calendar.getInstance();
  43.          var3.setTime(var2);
  44.          DateFormat var4 = DateFormat.getDateInstance();
  45.          var4.setCalendar(var3);
  46.          String var5 = var4.format(var3.getTime());
  47.          var3.add(5, -14);
  48.          if (var1.after(var3.getTime())) {
  49.             JSObject var6 = JSObject.getWindow(this.parent.applet);
  50.             System.out.println("Warning: This version of Netcaster will expire on " + var5);
  51.             var6.eval("whineExpiration('" + var5 + "')");
  52.          }
  53.  
  54.          return false;
  55.       }
  56.    }
  57.  
  58.    public void run() {
  59.       if (!this.netcasterExpired()) {
  60.          if (this.getArchiveDir()) {
  61.             JSObject var1 = JSObject.getWindow(this.parent.applet);
  62.             var1.eval("showSplashText(3);");
  63.             String var2 = NCPrefsManager.GetData("netcaster.version", (String)null);
  64.             NCPrefsManager.SaveData("netcaster.version", VERSION_STRING);
  65.             Const.SetVersionString(VERSION_STRING);
  66.             if (var2 != null && var2.equals(VERSION_STRING)) {
  67.                var1.eval("showSplashText(5);");
  68.                String var3 = NCPrefsManager.GetData("netcaster.defaultChannel", "");
  69.                if (System.getProperty("os.name").startsWith("Win") && var3.equals("(T:C++ Font CVS:1.14)")) {
  70.                   NCPrefsManager.SaveData("netcaster.defaultChannel", "Netscape_Channel");
  71.                }
  72.  
  73.             } else if (!this.getAdminCacheJAR()) {
  74.                var1.eval("showSplashText(5);");
  75.             } else {
  76.                if (var2 == null) {
  77.                   DebugManager.println("NetcasterConfigurator::firstRun version = " + var2);
  78.                   if (this.platform != 3) {
  79.                      this.showAnimation();
  80.                   }
  81.  
  82.                   this.addDefaultChannel();
  83.                }
  84.  
  85.                this.upgrade(var2);
  86.                var1.eval("showSplashText(5);");
  87.             }
  88.          }
  89.       }
  90.    }
  91.  
  92.    public void showAnimation() {
  93.       JSObject var1 = JSObject.getWindow(this.parent.applet);
  94.       String var2 = this.installDir + "ncstart" + File.separator + "ncstart.htm";
  95.       String var3 = var2.replace('\\', '/');
  96.       var3 = var3.replace(':', '|');
  97.       var1.eval("showAnimation('" + var3 + "')");
  98.    }
  99.  
  100.    private void addDefaultChannel() {
  101.       int var1 = Integer.parseInt(NCPrefsManager.GetData("netcaster.channel.count", "0"));
  102.       String[] var2 = new String[18];
  103.       String[] var3 = new String[18];
  104.       var2[0] = "netcaster.channel.count";
  105.       StringBuffer var10002 = (new StringBuffer()).append("");
  106.       ++var1;
  107.       var3[0] = var10002.append(var1).toString();
  108.       var2[1] = "netcaster.channel.channel_" + var1;
  109.       var3[1] = "Netscape_Channel";
  110.       var2[2] = "netcaster.channel.Netscape_Channel.url";
  111.       var3[2] = "http://netcaster.netscape.com/channel/index.html";
  112.       var2[3] = "netcaster.channel.Netscape_Channel.description";
  113.       var3[3] = "The Netscape Channel";
  114.       var2[4] = "netcaster.channel.Netscape_Channel.mode";
  115.       if (this.platform == 3) {
  116.          var3[4] = "webtop";
  117.       } else {
  118.          var3[4] = "full";
  119.       }
  120.  
  121.       var2[5] = "netcaster.channel.Netscape_Channel.lastUpdate";
  122.       var3[5] = "0";
  123.       var2[6] = "netcaster.channel.Netscape_Channel.type";
  124.       var3[6] = "1";
  125.       var2[7] = "netcaster.channel.Netscape_Channel.name";
  126.       var3[7] = "Netscape Channel";
  127.       var2[8] = "netcaster.channel.Netscape_Channel.updateFrequency";
  128.       var3[8] = "1440";
  129.       var2[9] = "netcaster.channel.Netscape_Channel.updateTime";
  130.       var3[9] = "-1";
  131.       var2[10] = "netcaster.channel.Netscape_Channel.cacheName";
  132.       var3[10] = "Netscape Channel";
  133.       var2[11] = "netcaster.channel.Netscape_Channel.cacheFilename";
  134.       var3[11] = "netscape.db";
  135.       var2[12] = "netcaster.channel.Netscape_Channel.maxSize";
  136.       var3[12] = "5120000";
  137.       var2[13] = "netcaster.channel.Netscape_Channel.depth";
  138.       var3[13] = "1";
  139.       var2[14] = "netcaster.channel.Netscape_Channel.startTime";
  140.       var3[14] = "0";
  141.       var2[15] = "netcaster.channel.Netscape_Channel.endTime";
  142.       var3[15] = "0";
  143.       var2[16] = "netcaster.channel.Netscape_Channel.permissions";
  144.       var3[16] = "" + 7L;
  145.       var2[17] = "netcaster.defaultChannel";
  146.       var3[17] = "(T:C++ Font CVS:1.14)";
  147.       NCPrefsManager.SetBatchData(var2, var3);
  148.    }
  149.  
  150.    private boolean upgrade(String var1) {
  151.       boolean var2 = false;
  152.       this.installAdminCache();
  153.       if (var1 == null || var1.indexOf("1.0") == -1) {
  154.          var2 = true;
  155.          System.out.println("Upgrading from earlier version.");
  156.          String var3 = NCPrefsManager.GetData("netcaster.containers.container_1", "");
  157.          if (var3.length() == 0) {
  158.             String[] var4 = new String[5];
  159.             String[] var5 = new String[5];
  160.             var4[0] = "netcaster.containers.container_1";
  161.             var5[0] = "-3;finder;Channel Finder;'http://netcaster.netscape.com/finder/9708/container/index.html'";
  162.             var4[1] = "netcaster.containers.finder.permissions";
  163.             var5[1] = "0";
  164.             var4[2] = "netcaster.containers.container_2";
  165.             var5[2] = "1;channel;My Channels;";
  166.             var4[3] = "netcaster.containers.channel.permissions";
  167.             var5[3] = "" + 24583L;
  168.             var4[4] = "netcaster.defaultContainer";
  169.             var5[4] = "channel";
  170.             NCPrefsManager.SetBatchData(var4, var5);
  171.             if (this.platform == 3) {
  172.                NCPrefsManager.SaveData("netcaster.updateMax", "1");
  173.             }
  174.          }
  175.       }
  176.  
  177.       return var2;
  178.    }
  179.  
  180.    private void installAdminCache() {
  181.       ZipFile var1 = null;
  182.       DebugManager.println("NetcasterConfigurator::install");
  183.       long var2 = 0L;
  184.       JSObject var4 = JSObject.getWindow(this.parent.applet);
  185.       var4.eval("showSplashText(4);");
  186.       PrivilegeManager.enablePrivilege("UniversalFileAccess");
  187.  
  188.       try {
  189.          var1 = new ZipFile(this.adminCacheJAR);
  190.       } catch (IOException var11) {
  191.          DebugManager.println("NetcasterConfigurator::install IOException thrown");
  192.          ((Throwable)var11).printStackTrace();
  193.       }
  194.  
  195.       Enumeration var5 = var1.entries();
  196.  
  197.       while(var5.hasMoreElements()) {
  198.          ZipEntry var6 = (ZipEntry)var5.nextElement();
  199.  
  200.          try {
  201.             File var7 = new File(this.archiveDir.toString() + File.separator + var6.getName());
  202.             BufferedInputStream var8 = new BufferedInputStream(var1.getInputStream(var6), 512);
  203.             BufferedOutputStream var9 = new BufferedOutputStream(new FileOutputStream(var7), 512);
  204.  
  205.             try {
  206.                while(true) {
  207.                   int var10 = var8.read();
  208.                   if (var10 == -1) {
  209.                      ((FilterOutputStream)var9).close();
  210.                      throw new EOFException();
  211.                   }
  212.  
  213.                   var9.write(var10);
  214.                }
  215.             } catch (EOFException var12) {
  216.                var2 += var6.getSize();
  217.             }
  218.          } catch (IOException var13) {
  219.             DebugManager.println("NetcasterConfigurator::install IOException thrown");
  220.             ((Throwable)var13).printStackTrace();
  221.          }
  222.       }
  223.  
  224.       String[] var14 = new String[15];
  225.       String[] var15 = new String[15];
  226.       var14[0] = "netcaster.NetcasterAdmin.url";
  227.       var15[0] = "http://netcaster.netscape.com/finder/9708/container/index.html";
  228.       var14[1] = "netcaster.NetcasterAdmin.description";
  229.       var15[1] = "NetcasterOfflineAdminData";
  230.       var14[2] = "netcaster.NetcasterAdmin.mode";
  231.       var15[2] = "webtop";
  232.       var14[3] = "netcaster.NetcasterAdmin.lastUpdate";
  233.       var15[3] = "0";
  234.       var14[4] = "netcaster.NetcasterAdmin.type";
  235.       var15[4] = "1";
  236.       var14[5] = "netcaster.NetcasterAdmin.name";
  237.       var15[5] = "NetcasterAdmin";
  238.       var14[6] = "netcaster.NetcasterAdmin.updateFrequency";
  239.       var15[6] = "1440";
  240.       var14[7] = "netcaster.NetcasterAdmin.updateTime";
  241.       var15[7] = "-1";
  242.       var14[8] = "netcaster.NetcasterAdmin.cacheName";
  243.       var15[8] = "Netcaster Admin Cache";
  244.       var14[9] = "netcaster.NetcasterAdmin.cacheFilename";
  245.       var15[9] = "admin.db";
  246.       var14[10] = "netcaster.NetcasterAdmin.maxSize";
  247.       var15[10] = "50000000";
  248.       var14[11] = "netcaster.NetcasterAdmin.depth";
  249.       var15[11] = "1";
  250.       var14[12] = "netcaster.NetcasterAdmin.startTime";
  251.       var15[12] = "0";
  252.       var14[13] = "netcaster.NetcasterAdmin.endTime";
  253.       var15[13] = "0";
  254.       var14[14] = "netcaster.NetcasterAdmin.permissions";
  255.       var15[14] = "" + 1L;
  256.       NCPrefsManager.SetBatchData(var14, var15);
  257.    }
  258.  
  259.    private boolean getArchiveDir() {
  260.       String var1 = NCPrefsManager.GetData("profile.directory", "ERROR");
  261.       if (var1.compareTo("ERROR") == 0) {
  262.          return false;
  263.       } else {
  264.          if (System.getProperty("os.name").startsWith("Mac")) {
  265.             JSObject var3 = JSObject.getWindow(this.parent.applet);
  266.             var1 = (String)var3.eval("unescape('" + var1 + "')");
  267.          }
  268.  
  269.          String var2 = new String(var1 + File.separator + "archive");
  270.          this.archiveDir = new File(var2);
  271.          PrivilegeManager.enablePrivilege("UniversalFileRead");
  272.          DebugManager.println("NetcasterConfigurator::getArchiveDir archiveDir = " + this.archiveDir.toString() + " exists = " + this.archiveDir.exists());
  273.          return this.archiveDir.exists();
  274.       }
  275.    }
  276.  
  277.    private boolean getAdminCacheJAR() {
  278.       URL var1 = this.parent.applet.getCodeBase();
  279.       String var2 = System.getProperty("os.name");
  280.       String var3 = var1.toString();
  281.       if (var2.startsWith("Mac")) {
  282.          this.installDir = var3.substring(5, var3.length());
  283.          JSObject var4 = JSObject.getWindow(this.parent.applet);
  284.          this.installDir = (String)var4.eval("unescape('" + this.installDir + "')");
  285.          this.platform = 2;
  286.       } else if (var2.startsWith("Win")) {
  287.          this.installDir = var3.substring(6, var3.length());
  288.          this.installDir = this.installDir.replace('|', ':');
  289.          this.platform = 1;
  290.       } else {
  291.          this.installDir = var3.substring(5, var3.length());
  292.          this.platform = 3;
  293.       }
  294.  
  295.       PrivilegeManager.enablePrivilege("UniversalFileRead");
  296.       this.adminCacheJAR = new File(this.installDir + "admin.jar");
  297.       DebugManager.println("NetcasterConfigurator::getAdminCacheJAR adminCacheJAR = " + this.adminCacheJAR.toString() + " exists = " + this.adminCacheJAR.exists());
  298.       return this.adminCacheJAR.exists();
  299.    }
  300. }
  301.