mirror of
https://github.com/NuSkooler/enigma-bbs.git
synced 2025-06-06 20:55:30 +02:00
* Remove old dependency
* Add string-format dep. * Convert various strUtil.format() -> String.prototype.format() based system
This commit is contained in:
parent
140990811a
commit
ede00f8937
7 changed files with 57 additions and 32 deletions
|
@ -8,7 +8,6 @@ var miscUtil = require('./misc_util.js');
|
||||||
var database = require('./database.js');
|
var database = require('./database.js');
|
||||||
var clientConns = require('./client_connections.js');
|
var clientConns = require('./client_connections.js');
|
||||||
|
|
||||||
var iconv = require('iconv-lite');
|
|
||||||
var paths = require('path');
|
var paths = require('path');
|
||||||
var async = require('async');
|
var async = require('async');
|
||||||
var util = require('util');
|
var util = require('util');
|
||||||
|
@ -98,7 +97,9 @@ function initialize(cb) {
|
||||||
process.exit();
|
process.exit();
|
||||||
});
|
});
|
||||||
|
|
||||||
iconv.extendNodeEncodings();
|
// Init some extensions
|
||||||
|
require('iconv-lite').extendNodeEncodings();
|
||||||
|
require('string-format').extend(String.prototype, require('./string_util.js').stringFormatExtensions);
|
||||||
|
|
||||||
callback(null);
|
callback(null);
|
||||||
},
|
},
|
||||||
|
@ -192,6 +193,7 @@ function startListening() {
|
||||||
clientConns.addNewClient(client);
|
clientConns.addNewClient(client);
|
||||||
|
|
||||||
client.on('ready', function onClientReady() {
|
client.on('ready', function onClientReady() {
|
||||||
|
|
||||||
// Go to module -- use default error handler
|
// Go to module -- use default error handler
|
||||||
prepareClient(client, function onPrepared() {
|
prepareClient(client, function onPrepared() {
|
||||||
require('./connect.js').connectEntry(client);
|
require('./connect.js').connectEntry(client);
|
||||||
|
|
|
@ -85,10 +85,10 @@ function prepareTerminal(term) {
|
||||||
|
|
||||||
function displayBanner(term) {
|
function displayBanner(term) {
|
||||||
// :TODO: add URL(s) to banner
|
// :TODO: add URL(s) to banner
|
||||||
term.pipeWrite(util.format(
|
term.pipeWrite(
|
||||||
'|33Conected to |32EN|33|01i|00|32|22GMA|32|01½|00 |33BBS version|31|01 %s\n' +
|
('|33Conected to |32EN|33|01i|00|32|22GMA|32|01½|00 |33BBS version|31|01 {0}\n' +
|
||||||
'|00|33Copyright (c) 2014-2015 Bryan Ashby |33|01- |31|01http://l33t.codes/\n' +
|
'|00|33Copyright (c) 2014-2015 Bryan Ashby |33|01- |31|01http://l33t.codes/\n' +
|
||||||
'|00', packageJson.version));
|
'|00').format(packageJson.version));
|
||||||
}
|
}
|
||||||
|
|
||||||
function connectEntry(client) {
|
function connectEntry(client) {
|
||||||
|
|
|
@ -44,7 +44,8 @@ function getDateFromFtnDateTime(dateTime) {
|
||||||
}
|
}
|
||||||
|
|
||||||
function getFormattedFTNAddress(address, dimensions) {
|
function getFormattedFTNAddress(address, dimensions) {
|
||||||
var addr = util.format('%d:%d', address.zone, address.net);
|
//var addr = util.format('%d:%d', address.zone, address.net);
|
||||||
|
var addr = '{0}:{1}'.format(address.zone, address.net);
|
||||||
switch(dimensions) {
|
switch(dimensions) {
|
||||||
case 2 :
|
case 2 :
|
||||||
case '2D' :
|
case '2D' :
|
||||||
|
@ -53,18 +54,18 @@ function getFormattedFTNAddress(address, dimensions) {
|
||||||
|
|
||||||
case 3 :
|
case 3 :
|
||||||
case '3D' :
|
case '3D' :
|
||||||
addr += util.format('/%d', address.node);
|
addr += '/{0}'.format(address.node);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 4 :
|
case 4 :
|
||||||
case '4D':
|
case '4D':
|
||||||
addr += util.format('.%d', address.point || 0); // missing and 0 are equiv for point
|
addr += '.{0}'.format(address.point || 0); // missing and 0 are equiv for point
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 5 :
|
case 5 :
|
||||||
case '5D' :
|
case '5D' :
|
||||||
if(address.domain) {
|
if(address.domain) {
|
||||||
addr += util.format('@%s', address.domain);
|
addr += '@{0}'.format(address.domain);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -87,9 +87,9 @@ function getMessageListForArea(options, areaName, cb) {
|
||||||
[
|
[
|
||||||
function fetchMessages(callback) {
|
function fetchMessages(callback) {
|
||||||
msgDb.each(
|
msgDb.each(
|
||||||
'SELECT message_id, message_uuid, reply_to_message_id, to_user_name, from_user_name, subject, modified_timestamp, view_count '
|
'SELECT message_id, message_uuid, reply_to_message_id, to_user_name, from_user_name, subject, modified_timestamp, view_count ' +
|
||||||
'FROM message '
|
'FROM message ' +
|
||||||
'WHERE area_name=? '
|
'WHERE area_name=? ' +
|
||||||
'ORDER BY message_id;',
|
'ORDER BY message_id;',
|
||||||
[ areaName.toLowerCase() ],
|
[ areaName.toLowerCase() ],
|
||||||
function msgRow(err, row) {
|
function msgRow(err, row) {
|
||||||
|
|
|
@ -177,17 +177,40 @@ function debugEscapedString(s) {
|
||||||
return JSON.stringify(s).slice(1, -1);
|
return JSON.stringify(s).slice(1, -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
function format(fmt) {
|
//
|
||||||
if (!arguments.length) {
|
// Extend String.format's object syntax with some modifiers
|
||||||
return fmt;
|
// e.g.: '{username!styleL33t}'.format( { username : 'Leet User' } ) -> "L33t U53r"
|
||||||
|
//
|
||||||
|
var stringFormatExtensions = {
|
||||||
|
styleUpper : function(s) {
|
||||||
|
return stylizeString(s, 'upper');
|
||||||
|
},
|
||||||
|
styleLower : function(s) {
|
||||||
|
return stylizeString(s, 'lower');
|
||||||
|
},
|
||||||
|
styleTitle : function(s) {
|
||||||
|
return stylizeString(s, 'title');
|
||||||
|
},
|
||||||
|
styleFirstLower : function(s) {
|
||||||
|
return stylizeString(s, 'first lower');
|
||||||
|
},
|
||||||
|
styleSmallVowels : function(s) {
|
||||||
|
return stylizeString(s, 'small vowels');
|
||||||
|
},
|
||||||
|
styleBigVowels : function(s) {
|
||||||
|
return stylizeString(s, 'big vowels');
|
||||||
|
},
|
||||||
|
styleSmallI : function(s) {
|
||||||
|
return stylizeString(s, 'small i');
|
||||||
|
},
|
||||||
|
styleMixed : function(s) {
|
||||||
|
return stylizeString(s, 'mixed');
|
||||||
|
},
|
||||||
|
styleL33t : function(s) {
|
||||||
|
return stylizeString(s, 'l33t');
|
||||||
}
|
}
|
||||||
|
|
||||||
var args = typeof arguments[1];
|
// :TODO: Add padding/etc. modifiers.
|
||||||
args = (("string" === args || "number" === args) ? arguments : arguments[1]);
|
};
|
||||||
|
|
||||||
for(var arg in args) {
|
exports.stringFormatExtensions = stringFormatExtensions;
|
||||||
fmt = fmt.replace(RegExp("\\{" + arg + "\\}", "gi"), args[arg]);
|
|
||||||
}
|
|
||||||
|
|
||||||
return fmt;
|
|
||||||
}
|
|
|
@ -104,9 +104,8 @@ MessageAreaListModule.prototype.mciReady = function(mciData, cb) {
|
||||||
function populateAreaListView(callback) {
|
function populateAreaListView(callback) {
|
||||||
var areaListItems = [];
|
var areaListItems = [];
|
||||||
for(var i = 0; i < self.messageAreas.length; ++i) {
|
for(var i = 0; i < self.messageAreas.length; ++i) {
|
||||||
areaListItems.push(strUtil.format(
|
areaListItems.push(self.entryFormat.format(
|
||||||
self.entryFormat,
|
{ index : i, name : self.messageAreas[i].name, desc : self.messageAreas[i].desc } )
|
||||||
{ index : i, name : self.messageAreas[i].name, desc : self.messageAreas[i].desc })
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -13,12 +13,12 @@
|
||||||
"sqlite3" : "3.0.x",
|
"sqlite3" : "3.0.x",
|
||||||
"ssh2" : "0.4.x",
|
"ssh2" : "0.4.x",
|
||||||
"strip-json-comments" : "1.0.x",
|
"strip-json-comments" : "1.0.x",
|
||||||
"gapbuffer" : "0.0.2",
|
|
||||||
"node-uuid" : "1.4.x",
|
"node-uuid" : "1.4.x",
|
||||||
"moment" : "2.10.x",
|
"moment" : "2.10.x",
|
||||||
"gaze" : "0.5.x",
|
"gaze" : "0.5.x",
|
||||||
"mkdirp" : "0.5.x",
|
"mkdirp" : "0.5.x",
|
||||||
"pty.js" : "0.2.x"
|
"pty.js" : "0.2.x",
|
||||||
|
"string-format" : "0.5.x"
|
||||||
},
|
},
|
||||||
"engine" : "node >= 0.12.2"
|
"engine" : "node >= 0.12.2"
|
||||||
}
|
}
|
Loading…
Add table
Add a link
Reference in a new issue