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