home *** CD-ROM | disk | FTP | other *** search
/ Popular Software (Premium Edition) / mycd.iso / INTERNET / NETSCAP4.06 / CP32E406.EXE / netcast.z / ncjava10.jar / netscape / netcast / application / NetcasterConfig.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-02-27  |  9.6 KB  |  298 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.getArchiveDir()) {
  60.          JSObject var1 = JSObject.getWindow(this.parent.applet);
  61.          var1.eval("showSplashText(3);");
  62.          String var2 = NCPrefsManager.GetData("netcaster.version", (String)null);
  63.          NCPrefsManager.SaveData("netcaster.version", VERSION_STRING);
  64.          Const.SetVersionString(VERSION_STRING);
  65.          if (var2 != null && var2.equals(VERSION_STRING)) {
  66.             var1.eval("showSplashText(5);");
  67.             String var3 = NCPrefsManager.GetData("netcaster.defaultChannel", "");
  68.             if (System.getProperty("os.name").startsWith("Win") && var3.equals("(T:C++ Font CVS:1.14)")) {
  69.                NCPrefsManager.SaveData("netcaster.defaultChannel", "Netscape_Channel");
  70.             }
  71.  
  72.          } else if (!this.getAdminCacheJAR()) {
  73.             var1.eval("showSplashText(5);");
  74.          } else {
  75.             if (var2 == null) {
  76.                DebugManager.println("NetcasterConfigurator::firstRun version = " + var2);
  77.                if (this.platform != 3) {
  78.                   this.showAnimation();
  79.                }
  80.  
  81.                this.addDefaultChannel();
  82.             }
  83.  
  84.             this.upgrade(var2);
  85.             var1.eval("showSplashText(5);");
  86.          }
  87.       }
  88.    }
  89.  
  90.    public void showAnimation() {
  91.       JSObject var1 = JSObject.getWindow(this.parent.applet);
  92.       String var2 = this.installDir + "ncstart" + File.separator + "ncstart.htm";
  93.       String var3 = var2.replace('\\', '/');
  94.       var3 = var3.replace(':', '|');
  95.       var1.eval("showAnimation('" + var3 + "')");
  96.    }
  97.  
  98.    private void addDefaultChannel() {
  99.       int var1 = Integer.parseInt(NCPrefsManager.GetData("netcaster.channel.count", "0"));
  100.       String[] var2 = new String[18];
  101.       String[] var3 = new String[18];
  102.       var2[0] = "netcaster.channel.count";
  103.       ++var1;
  104.       var3[0] = String.valueOf(var1);
  105.       var2[1] = "netcaster.channel.channel_" + var1;
  106.       var3[1] = "Netscape_Channel";
  107.       var2[2] = "netcaster.channel.Netscape_Channel.url";
  108.       var3[2] = "http://netcaster.netscape.com/channel/index.html";
  109.       var2[3] = "netcaster.channel.Netscape_Channel.description";
  110.       var3[3] = "The Netscape Channel";
  111.       var2[4] = "netcaster.channel.Netscape_Channel.mode";
  112.       if (this.platform == 3) {
  113.          var3[4] = "webtop";
  114.       } else {
  115.          var3[4] = "full";
  116.       }
  117.  
  118.       var2[5] = "netcaster.channel.Netscape_Channel.lastUpdate";
  119.       var3[5] = "0";
  120.       var2[6] = "netcaster.channel.Netscape_Channel.type";
  121.       var3[6] = "1";
  122.       var2[7] = "netcaster.channel.Netscape_Channel.name";
  123.       var3[7] = "Netscape Channel";
  124.       var2[8] = "netcaster.channel.Netscape_Channel.updateFrequency";
  125.       var3[8] = "1440";
  126.       var2[9] = "netcaster.channel.Netscape_Channel.updateTime";
  127.       var3[9] = "-1";
  128.       var2[10] = "netcaster.channel.Netscape_Channel.cacheName";
  129.       var3[10] = "Netscape Channel";
  130.       var2[11] = "netcaster.channel.Netscape_Channel.cacheFilename";
  131.       var3[11] = "netscape.db";
  132.       var2[12] = "netcaster.channel.Netscape_Channel.maxSize";
  133.       var3[12] = "5120000";
  134.       var2[13] = "netcaster.channel.Netscape_Channel.depth";
  135.       var3[13] = "1";
  136.       var2[14] = "netcaster.channel.Netscape_Channel.startTime";
  137.       var3[14] = "0";
  138.       var2[15] = "netcaster.channel.Netscape_Channel.endTime";
  139.       var3[15] = "0";
  140.       var2[16] = "netcaster.channel.Netscape_Channel.permissions";
  141.       var3[16] = String.valueOf(7L);
  142.       var2[17] = "netcaster.defaultChannel";
  143.       var3[17] = "(T:C++ Font CVS:1.14)";
  144.       NCPrefsManager.SetBatchData(var2, var3);
  145.    }
  146.  
  147.    private boolean upgrade(String var1) {
  148.       boolean var2 = false;
  149.       this.installAdminCache();
  150.       if (var1 == null || var1.indexOf("1.0") == -1) {
  151.          var2 = true;
  152.          System.out.println("Upgrading from earlier version.");
  153.          String var3 = NCPrefsManager.GetData("netcaster.containers.container_1", "");
  154.          if (var3.length() == 0) {
  155.             String[] var4 = new String[5];
  156.             String[] var5 = new String[5];
  157.             var4[0] = "netcaster.containers.container_1";
  158.             var5[0] = "-3;finder;Channel Finder;'http://netcaster.netscape.com/finder/9708/container/index.html'";
  159.             var4[1] = "netcaster.containers.finder.permissions";
  160.             var5[1] = "0";
  161.             var4[2] = "netcaster.containers.container_2";
  162.             var5[2] = "1;channel;My Channels;";
  163.             var4[3] = "netcaster.containers.channel.permissions";
  164.             var5[3] = String.valueOf(24583L);
  165.             var4[4] = "netcaster.defaultContainer";
  166.             var5[4] = "channel";
  167.             NCPrefsManager.SetBatchData(var4, var5);
  168.             if (this.platform == 3) {
  169.                NCPrefsManager.SaveData("netcaster.updateMax", "1");
  170.             }
  171.          }
  172.       }
  173.  
  174.       return var2;
  175.    }
  176.  
  177.    private void installAdminCache() {
  178.       ZipFile var1 = null;
  179.       DebugManager.println("NetcasterConfigurator::install");
  180.       long var2 = 0L;
  181.       JSObject var4 = JSObject.getWindow(this.parent.applet);
  182.       var4.eval("showSplashText(4);");
  183.       PrivilegeManager.enablePrivilege("UniversalFileAccess");
  184.  
  185.       try {
  186.          var1 = new ZipFile(this.adminCacheJAR);
  187.       } catch (IOException var11) {
  188.          DebugManager.println("NetcasterConfigurator::install IOException thrown");
  189.          ((Throwable)var11).printStackTrace();
  190.       }
  191.  
  192.       Enumeration var5 = var1.entries();
  193.  
  194.       while(var5.hasMoreElements()) {
  195.          ZipEntry var6 = (ZipEntry)var5.nextElement();
  196.  
  197.          try {
  198.             File var7 = new File(this.archiveDir.toString() + File.separator + var6.getName());
  199.             BufferedInputStream var8 = new BufferedInputStream(var1.getInputStream(var6), 512);
  200.             BufferedOutputStream var9 = new BufferedOutputStream(new FileOutputStream(var7), 512);
  201.  
  202.             try {
  203.                while(true) {
  204.                   int var10 = var8.read();
  205.                   if (var10 == -1) {
  206.                      ((FilterOutputStream)var9).close();
  207.                      throw new EOFException();
  208.                   }
  209.  
  210.                   var9.write(var10);
  211.                }
  212.             } catch (EOFException var12) {
  213.                var2 += var6.getSize();
  214.             }
  215.          } catch (IOException var13) {
  216.             DebugManager.println("NetcasterConfigurator::install IOException thrown");
  217.             ((Throwable)var13).printStackTrace();
  218.          }
  219.       }
  220.  
  221.       String[] var14 = new String[15];
  222.       String[] var15 = new String[15];
  223.       var14[0] = "netcaster.NetcasterAdmin.url";
  224.       var15[0] = "http://netcaster.netscape.com/finder/9708/container/index.html";
  225.       var14[1] = "netcaster.NetcasterAdmin.description";
  226.       var15[1] = "NetcasterOfflineAdminData";
  227.       var14[2] = "netcaster.NetcasterAdmin.mode";
  228.       var15[2] = "webtop";
  229.       var14[3] = "netcaster.NetcasterAdmin.lastUpdate";
  230.       var15[3] = "0";
  231.       var14[4] = "netcaster.NetcasterAdmin.type";
  232.       var15[4] = "1";
  233.       var14[5] = "netcaster.NetcasterAdmin.name";
  234.       var15[5] = "NetcasterAdmin";
  235.       var14[6] = "netcaster.NetcasterAdmin.updateFrequency";
  236.       var15[6] = "1440";
  237.       var14[7] = "netcaster.NetcasterAdmin.updateTime";
  238.       var15[7] = "-1";
  239.       var14[8] = "netcaster.NetcasterAdmin.cacheName";
  240.       var15[8] = "Netcaster Admin Cache";
  241.       var14[9] = "netcaster.NetcasterAdmin.cacheFilename";
  242.       var15[9] = "admin.db";
  243.       var14[10] = "netcaster.NetcasterAdmin.maxSize";
  244.       var15[10] = "50000000";
  245.       var14[11] = "netcaster.NetcasterAdmin.depth";
  246.       var15[11] = "1";
  247.       var14[12] = "netcaster.NetcasterAdmin.startTime";
  248.       var15[12] = "0";
  249.       var14[13] = "netcaster.NetcasterAdmin.endTime";
  250.       var15[13] = "0";
  251.       var14[14] = "netcaster.NetcasterAdmin.permissions";
  252.       var15[14] = String.valueOf(1L);
  253.       NCPrefsManager.SetBatchData(var14, var15);
  254.    }
  255.  
  256.    private boolean getArchiveDir() {
  257.       String var1 = NCPrefsManager.GetData("profile.directory", "ERROR");
  258.       if (var1.compareTo("ERROR") == 0) {
  259.          return false;
  260.       } else {
  261.          if (System.getProperty("os.name").startsWith("Mac")) {
  262.             JSObject var3 = JSObject.getWindow(this.parent.applet);
  263.             var1 = (String)var3.eval("unescape('" + var1 + "')");
  264.          }
  265.  
  266.          String var2 = new String(var1 + File.separator + "archive");
  267.          this.archiveDir = new File(var2);
  268.          PrivilegeManager.enablePrivilege("UniversalFileRead");
  269.          DebugManager.println("NetcasterConfigurator::getArchiveDir archiveDir = " + this.archiveDir.toString() + " exists = " + this.archiveDir.exists());
  270.          return this.archiveDir.exists();
  271.       }
  272.    }
  273.  
  274.    private boolean getAdminCacheJAR() {
  275.       URL var1 = this.parent.applet.getCodeBase();
  276.       String var2 = System.getProperty("os.name");
  277.       String var3 = var1.toString();
  278.       if (var2.startsWith("Mac")) {
  279.          this.installDir = var3.substring(5, var3.length());
  280.          JSObject var4 = JSObject.getWindow(this.parent.applet);
  281.          this.installDir = (String)var4.eval("unescape('" + this.installDir + "')");
  282.          this.platform = 2;
  283.       } else if (var2.startsWith("Win")) {
  284.          this.installDir = var3.substring(6, var3.length());
  285.          this.installDir = this.installDir.replace('|', ':');
  286.          this.platform = 1;
  287.       } else {
  288.          this.installDir = var3.substring(5, var3.length());
  289.          this.platform = 3;
  290.       }
  291.  
  292.       PrivilegeManager.enablePrivilege("UniversalFileRead");
  293.       this.adminCacheJAR = new File(this.installDir + "admin.jar");
  294.       DebugManager.println("NetcasterConfigurator::getAdminCacheJAR adminCacheJAR = " + this.adminCacheJAR.toString() + " exists = " + this.adminCacheJAR.exists());
  295.       return this.adminCacheJAR.exists();
  296.    }
  297. }
  298.