-- Leo's gemini proxy

-- Connecting to git.thebackupbox.net:1965...

-- Connected

-- Sending request

-- Meta line: 20 text/gemini

repo: janusweb
action: commit
revision:
path_from:
revision_from: e761f2c6187980c27b2a802a8e65c981bb8dcfc2:
path_to:
revision_to:

git.thebackupbox.net

janusweb

git://git.thebackupbox.net/janusweb

commit e761f2c6187980c27b2a802a8e65c981bb8dcfc2
Author: James Baicoianu <james_github@baicoianu.com>
Date:   Thu Mar 23 22:58:02 2017 -0700

    Fix for mismatched case causing assets to be lost

diff --git a/scripts/external/JanusFireboxParser.js b/scripts/external/JanusFireboxParser.js

index e05b49138944a54411c0b820d5de356cd85c2d90..

index ..20f49c0ec39539f13c10903b52c0e0b904243a4a 100644

--- a/scripts/external/JanusFireboxParser.js
+++ b/scripts/external/JanusFireboxParser.js
@@ -78,7 +78,7 @@ JanusFireboxParser.prototype.getAsArray = function(arr) {
   return (arr instanceof Array ? arr : [arr]);
 }
 JanusFireboxParser.prototype.parseAssets = function(xml, baseurl, datapath) {
-  var assetxml = this.arrayget(xml, 'fireboxroom._children.assets', {});
+  var assetxml = this.arrayget(xml, 'fireboxroom._children.assets.0', {});
   var objectassets = this.getAsArray(this.arrayget(assetxml, "_children.assetobject", []));
   var soundassets = this.getAsArray(this.arrayget(assetxml, "_children.assetsound", []));
   var imageassets = this.getAsArray(this.arrayget(assetxml, "_children.assetimage", []));
@@ -246,7 +246,7 @@ JanusFireboxParser.prototype.parseXML = function(imgxml, leaf, forceLower) {
   if (!leaf) {
     var rootname = node.tagName;
     if (forceLower) rootname = rootname.toLowerCase();
-    root[rootname] = {};
+    if (!root[rootname]) root[rootname] = {};
     parent = root[rootname];
     //node = parent[node.tagName];
   } else {
@@ -265,11 +265,13 @@ JanusFireboxParser.prototype.parseXML = function(imgxml, leaf, forceLower) {
       var child = node.childNodes[j];
       var nodename = child.nodeName;
       if (forceLower) nodename = nodename.toLowerCase();
-      if (node.getElementsByTagName(child.tagName).length > 1) {
-        if (!parent._children) parent._children = {};
-        if (!parent._children[nodename]) {
-          parent._children[nodename] = [];
-        }
+      if (!parent._children) parent._children = {};
+      if (!parent._children[nodename]) {
+        parent._children[nodename] = [];
+      } else if (parent._children[nodename].constructor !== Array) {
+        parent._children[nodename] = [parent._children[nodename]];
+      }
+      if (node.getElementsByTagName(child.tagName).length > 0) {
         parent._children[nodename].push(this.parseXML(child, true, forceLower));
       } else if (child.nodeName) {
         if (child.nodeName == "#text" || child.nodeName == "#cdata-section") {
@@ -278,8 +280,7 @@ JanusFireboxParser.prototype.parseXML = function(imgxml, leaf, forceLower) {
             parent._content = child.nodeValue;
           }
         } else {
-          if (!parent._children) parent._children = {};
-          parent._children[nodename] = this.parseXML(child, true, forceLower);
+          parent._children[nodename] = parent._children[nodename].concat(this.parseXML(child, true, forceLower));
         }
       }
     }

-----END OF PAGE-----

-- Response ended

-- Page fetched on Sun Jun 2 16:35:42 2024