-- 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: 115813091b3776aee3d6f0cc65a64de57cc2db7c:
path_to:
revision_to:

git.thebackupbox.net

janusweb

git://git.thebackupbox.net/janusweb

commit 115813091b3776aee3d6f0cc65a64de57cc2db7c
Author: James Baicoianu <james_github@baicoianu.com>
Date:   Tue Oct 11 21:35:22 2016 -0700

    Initial pass at separating FireBoxRoom parsing from room object

diff --git a/scripts/room.js b/scripts/room.js

index fa066574d0de794bdcc814ea6082fd6c522c05c5..

index ..96d24239f7c2872220f2a86c2d398d7a0648cbe8 100644

--- a/scripts/room.js
+++ b/scripts/room.js
@@ -11,14 +11,7 @@ elation.require([
       this.defineProperties({
         'janus': { type: 'object' },
         'url': { type: 'string', default: false },
-/*
-        'skybox_left': { type: 'string', default: 'skyrender_left' },
-        'skybox_right': { type: 'string', default: 'skyrender_right' },
-        'skybox_up': { type: 'string', default: 'skyrender_up' },
-        'skybox_down': { type: 'string', default: 'skyrender_down' },
-        'skybox_front': { type: 'string', default: 'skyrender_front' },
-        'skybox_back': { type: 'string', default: 'skyrender_back' },
-*/
+        'source': { type: 'string' },
         'skybox_left': { type: 'string' },
         'skybox_right': { type: 'string' },
         'skybox_up': { type: 'string' },
@@ -46,7 +39,6 @@ elation.require([
       };
       this.playerstartposition = [0,0,0];
       this.playerstartorientation = new THREE.Quaternion();
-      this.load(this.properties.url);
       this.roomsrc = '';
       this.changes = {};
       this.appliedchanges = {};
@@ -59,6 +51,12 @@ elation.require([

       elation.events.add(this.engine.client.container, 'mousedown', elation.bind(this, this.onMouseDown));
       elation.events.add(this.engine.client.container, 'mouseup', elation.bind(this, this.onMouseUp));
+
+      if (this.url) {
+        this.load(this.url);
+      } else if (this.source) {
+        this.loadFromSource(this.source);
+      }
     }
     this.createChildren = function() {
       this.spawn('light_ambient', this.id + '_ambient', {
@@ -90,7 +88,6 @@ elation.require([
         pos = this.playerstartposition;
         orientation = this.playerstartorientation;
       }
-
       var player = this.engine.client.player;
       if (pos && orientation) {
         player.properties.position.set(pos[0], pos[1], pos[2]);
@@ -269,33 +266,21 @@ elation.require([
             //'X-Requested-With':'JanusWeb Client'
           },
           callback: elation.bind(this, function(data, xhr) {
-            var source = this.parseSource(data);
-            if (source && source.source) {
-              this.roomsrc = source.source;
-              var responseURL = xhr.getResponseHeader('X-Final-URL');
-              if (!responseURL) {
-                responseURL = xhr.responseURL.replace(proxyurl, '');
-              }
-              if (responseURL != this.properties.url) {
-                var url = responseURL;
-                if (!baseurloverride) {
-                  baseurl = url.split('/');
-                  baseurl.pop();
-                  baseurl = baseurl.join('/') + '/';
-                  this.baseurl = baseurl;
-                }
-                this.properties.url = url;
+            var responseURL = xhr.getResponseHeader('X-Final-URL');
+            if (!responseURL) {
+              responseURL = xhr.responseURL.replace(proxyurl, '');
+            }
+            if (responseURL != this.properties.url) {
+              var url = responseURL;
+              if (!baseurloverride) {
+                baseurl = url.split('/');
+                baseurl.pop();
+                baseurl = baseurl.join('/') + '/';
+                this.baseurl = baseurl;
               }
-              var roomdata = this.parseFireBox(source.source);
-              this.createRoomObjects(roomdata);
-              this.setActive();
-              elation.events.fire({type: 'janus_room_load', element: this});
-            } else {
-              var datapath = elation.config.get('janusweb.datapath', '/media/janusweb');
-              var transpath = datapath + 'assets/translator/web/';
-              //console.log('no firebox room, load the translator', transpath);
-              this.load(transpath + 'Parallelogram.html', transpath );
+              this.properties.url = url;
             }
+            this.loadFromSource(data);
           }),
           failurecallback: elation.bind(this, function(xhr) {
             var translator = this.translators['^error$'];
@@ -306,6 +291,23 @@ elation.require([
         });
       }
     }
+    this.loadFromSource = function(sourcecode) {
+      var source = this.parseSource(sourcecode);
+      if (source && source.source) {
+        this.roomsrc = source.source;
+        var roomdata = this.parseFireBox(source.source);
+        this.createRoomObjects(roomdata);
+        if (this.active) {
+          this.setActive();
+        }
+        elation.events.fire({type: 'janus_room_load', element: this});
+      } else {
+        var datapath = elation.config.get('janusweb.datapath', '/media/janusweb');
+        var transpath = datapath + 'assets/translator/web/';
+        //console.log('no firebox room, load the translator', transpath);
+        this.load(transpath + 'Parallelogram.html', transpath );
+      }
+    }
     this.parseSource = function(data) {
       this.fullsource = data;
       var titlere = /<title>([\s\S]*?)<\/title>/mi;

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

-- Response ended

-- Page fetched on Sun Jun 2 18:09:37 2024