Fixed web loading and hot refresh of pages [#131]

This commit is contained in:
reality 2013-01-15 13:58:13 +00:00
parent b733564cb2
commit 0a3d1b6f9e
3 changed files with 15 additions and 26 deletions

View File

@ -103,6 +103,6 @@ var pages = function(dbot) {
}; };
}; };
exports.getPages = function(dbot) { exports.fetch = function(dbot) {
return pages(dbot); return pages(dbot);
}; };

View File

@ -3,6 +3,13 @@ var express = require('express'),
fs = require('fs'); fs = require('fs');
var webInterface = function(dbot) { var webInterface = function(dbot) {
this.name = 'web';
this.ignorable = false;
this.onDestroy = function() {
server.close();
}
var pub = 'public'; var pub = 'public';
var app = express(); var app = express();
@ -15,7 +22,8 @@ var webInterface = function(dbot) {
var server = app.listen(dbot.config.web.webPort); var server = app.listen(dbot.config.web.webPort);
var reloadPages = function(pages) { this.reloadPages = function() {
var pages = dbot.pages;
for(var p in pages) { for(var p in pages) {
if(_.has(pages, p)) { if(_.has(pages, p)) {
var func = pages[p]; var func = pages[p];
@ -25,26 +33,16 @@ var webInterface = function(dbot) {
var shim = Object.create(resp); var shim = Object.create(resp);
shim.render = (function(view, one, two) { shim.render = (function(view, one, two) {
// Render with express.js // Render with express.js
resp.render(this.module.name + '/' + view, one, two); resp.render(this.module + '/' + view, one, two);
}).bind(this); }).bind(this);
shim.render_core = resp.render; shim.render_core = resp.render;
this.call(this.module, req, shim); this.call(this.module, req, shim);
}).bind(func)); }).bind(func));
} }
} }
}; }.bind(this);
return {
'name': 'web',
'ignorable': false,
'reloadPages': reloadPages,
'onDestroy': function() {
server.close();
}
};
}; };
exports.fetch = function(dbot) { exports.fetch = function(dbot) {
return webInterface(dbot); return new webInterface(dbot);
}; };

13
run.js
View File

@ -244,20 +244,11 @@ DBot.prototype.reloadModules = function() {
} }
}.bind(this)); }.bind(this));
this.reloadPages(); if(_.has(this.modules, 'web')) this.modules.web.reloadPages();
this.save(); this.save();
}; };
// I honestly don't know what the fuck this is meant to do. Why is it getting a
// reference to all the pages?
DBot.prototype.reloadPages = function() {
_.each(this.modules, function(module) {
if(_.isFunction(module.reloadPages)) {
module.reloadPages(this.pages);
}
}, this);
}
DBot.prototype.cleanNick = function(key) { DBot.prototype.cleanNick = function(key) {
key = key.toLowerCase(); key = key.toLowerCase();
while(key.endsWith("_")) { while(key.endsWith("_")) {