This commit is contained in:
calzoneman 2013-05-04 12:02:38 -05:00
parent 622788f7e7
commit b2fd687307
1 changed files with 18 additions and 1 deletions

View File

@ -134,11 +134,18 @@ Channel.prototype.loadDump = function() {
} }
if(data.motd) { if(data.motd) {
this.motd = data.motd; this.motd = data.motd;
this.broadcastMotd();
} }
data.logins = data.logins || {}; data.logins = data.logins || {};
for(var ip in data.logins) { for(var ip in data.logins) {
this.logins[ip] = data.logins[ip]; this.logins[ip] = data.logins[ip];
} }
this.setLock(!(data.openqueue || false));
this.chatbuffer = data.chatbuffer || [];
for(var i = 0; i < this.chatbuffer.length; i++) {
this.sendAll("chatMsg", this.chatbuffer[i]);
}
setTimeout(function() { incrementalDump(this); }, 300000);
} }
catch(e) { catch(e) {
Logger.errlog.log("Channel dump load failed: "); Logger.errlog.log("Channel dump load failed: ");
@ -159,13 +166,23 @@ Channel.prototype.saveDump = function() {
opts: this.opts, opts: this.opts,
filters: filts, filters: filts,
motd: this.motd, motd: this.motd,
logins: this.logins logins: this.logins,
openqueue: this.openqueue,
chatbuffer: this.chatbuffer
}; };
var text = JSON.stringify(dump); var text = JSON.stringify(dump);
fs.writeFileSync("chandump/" + this.name, text); fs.writeFileSync("chandump/" + this.name, text);
this.logger.flush(); this.logger.flush();
} }
// Save channel dumps every 5 minutes, in case of crash
function incrementalDump(chan) {
if(chan && chan.users.length > 0) {
chan.saveDump();
}
setTimeout(function() { incrementalDump(chan); }, 300000);
}
Channel.prototype.tryRegister = function(user) { Channel.prototype.tryRegister = function(user) {
if(this.registered) { if(this.registered) {
user.socket.emit("registerChannel", { user.socket.emit("registerChannel", {