mirror of
https://github.com/NuSkooler/enigma-bbs.git
synced 2025-07-23 19:20:41 +02:00
Merge branch 'master' of ssh://numinibsd/git/base/enigma-bbs
This commit is contained in:
commit
49d3bdf08c
28 changed files with 57 additions and 171 deletions
|
@ -159,7 +159,7 @@ ClientTerminal.prototype.rawWrite = function(s) {
|
|||
};
|
||||
|
||||
ClientTerminal.prototype.pipeWrite = function(s, spec) {
|
||||
spec = spec || 'enigma';
|
||||
spec = spec || 'renegade';
|
||||
|
||||
var conv = {
|
||||
enigma : enigmaToAnsi,
|
||||
|
|
|
@ -7,10 +7,10 @@ var getPredefinedMCIValue = require('./predefined_mci.js').getPredefinedMCIValue
|
|||
var assert = require('assert');
|
||||
var _ = require('lodash');
|
||||
|
||||
exports.pipeToAnsi = exports.enigmaToAnsi = enigmaToAnsi;
|
||||
exports.enigmaToAnsi = enigmaToAnsi;
|
||||
exports.stripPipeCodes = exports.stripEnigmaCodes = stripEnigmaCodes;
|
||||
exports.pipeStrLen = exports.enigmaStrLen = enigmaStrLen;
|
||||
exports.renegadeToAnsi = renegadeToAnsi;
|
||||
exports.pipeToAnsi = exports.renegadeToAnsi = renegadeToAnsi;
|
||||
|
||||
// :TODO: Not really happy with the module name of "color_codes". Would like something better
|
||||
|
||||
|
@ -83,13 +83,13 @@ function enigmaStrLen(s) {
|
|||
return stripEnigmaCodes(s).length;
|
||||
}
|
||||
|
||||
function renegadeToAnsi(s) {
|
||||
if(-1 == s.indexOf('|')) {
|
||||
function renegadeToAnsi(s, client) {
|
||||
if(-1 == s.indexOf('|')) {
|
||||
return s; // no pipe codes present
|
||||
}
|
||||
|
||||
var result = '';
|
||||
var re = /\|(\d{2}|\|)/g;
|
||||
var re = /\|([A-Z\d]{2}|\|)/g;
|
||||
var m;
|
||||
var lastIndex = 0;
|
||||
while((m = re.exec(s))) {
|
||||
|
@ -101,42 +101,46 @@ if(-1 == s.indexOf('|')) {
|
|||
}
|
||||
|
||||
// convert to number
|
||||
val = parseInt(val, 10);
|
||||
val = parseInt(val, 10);
|
||||
if(isNaN(val)) {
|
||||
val = 0;
|
||||
val = getPredefinedMCIValue(client, m[1]) || ('|' + m[1]); // value itself or literal
|
||||
}
|
||||
assert(val >= 0 && val <= 23);
|
||||
|
||||
var attr = ansi.sgr({
|
||||
0 : [ 'reset', 'black' ],
|
||||
1 : [ 'reset', 'blue' ],
|
||||
2 : [ 'reset', 'green' ],
|
||||
3 : [ 'reset', 'cyan' ],
|
||||
4 : [ 'reset', 'red' ],
|
||||
5 : [ 'reset', 'magenta' ],
|
||||
6 : [ 'reset', 'yellow' ],
|
||||
7 : [ 'reset', 'white' ],
|
||||
if(_.isString(val)) {
|
||||
result += s.substr(lastIndex, m.index - lastIndex) + val;
|
||||
} else {
|
||||
var attr = ansi.sgr({
|
||||
0 : [ 'reset', 'black' ],
|
||||
1 : [ 'reset', 'blue' ],
|
||||
2 : [ 'reset', 'green' ],
|
||||
3 : [ 'reset', 'cyan' ],
|
||||
4 : [ 'reset', 'red' ],
|
||||
5 : [ 'reset', 'magenta' ],
|
||||
6 : [ 'reset', 'yellow' ],
|
||||
7 : [ 'reset', 'white' ],
|
||||
|
||||
8 : [ 'bold', 'black' ],
|
||||
9 : [ 'bold', 'blue' ],
|
||||
10 : [ 'bold', 'green' ],
|
||||
11 : [ 'bold', 'cyan' ],
|
||||
12 : [ 'bold', 'red' ],
|
||||
13 : [ 'bold', 'magenta' ],
|
||||
14 : [ 'bold', 'yellow' ],
|
||||
15 : [ 'bold', 'white' ],
|
||||
8 : [ 'bold', 'black' ],
|
||||
9 : [ 'bold', 'blue' ],
|
||||
10 : [ 'bold', 'green' ],
|
||||
11 : [ 'bold', 'cyan' ],
|
||||
12 : [ 'bold', 'red' ],
|
||||
13 : [ 'bold', 'magenta' ],
|
||||
14 : [ 'bold', 'yellow' ],
|
||||
15 : [ 'bold', 'white' ],
|
||||
|
||||
16 : [ 'blackBG' ],
|
||||
17 : [ 'blueBG' ],
|
||||
18 : [ 'greenBG' ],
|
||||
19 : [ 'cyanBG' ],
|
||||
20 : [ 'redBG' ],
|
||||
21 : [ 'magentaBG' ],
|
||||
22 : [ 'yellowBG' ],
|
||||
23 : [ 'whiteBG' ],
|
||||
}[val] || 'normal');
|
||||
16 : [ 'blackBG' ],
|
||||
17 : [ 'blueBG' ],
|
||||
18 : [ 'greenBG' ],
|
||||
19 : [ 'cyanBG' ],
|
||||
20 : [ 'redBG' ],
|
||||
21 : [ 'magentaBG' ],
|
||||
22 : [ 'yellowBG' ],
|
||||
23 : [ 'whiteBG' ],
|
||||
}[val] || 'normal');
|
||||
|
||||
result += s.substr(lastIndex, m.index - lastIndex) + attr;
|
||||
}
|
||||
|
||||
result += s.substr(lastIndex, m.index - lastIndex) + attr;
|
||||
lastIndex = re.lastIndex;
|
||||
}
|
||||
|
||||
|
|
|
@ -78,9 +78,9 @@ function prepareTerminal(term) {
|
|||
|
||||
function displayBanner(term) {
|
||||
term.pipeWrite(
|
||||
'|33Conected to |32EN|33|01i|00|32|22GMA|32|01½|00 |33BBS version|31|01 |VN\n' +
|
||||
'|00|33Copyright (c) 2014-2015 Bryan Ashby |33|01- |31|01http://l33t.codes/\n' +
|
||||
'|00|33Updates & source |01- |31|01https://github.com/NuSkooler/enigma-bbs/\n' +
|
||||
'|06Conected to |02EN|10i|02GMA|10½ |06BBS version |12|VN\n' +
|
||||
'|06Copyright (c) 2014-2015 Bryan Ashby |14- |12http://l33t.codes/\n' +
|
||||
'|06Updates & source |14- |12https://github.com/NuSkooler/enigma-bbs/\n' +
|
||||
'|00');
|
||||
}
|
||||
|
||||
|
|
|
@ -89,8 +89,8 @@ function VerticalMenuView(options) {
|
|||
// :TODO: Need to support pad()
|
||||
// :TODO: shoudl we detect if pipe codes are used?
|
||||
self.client.term.write(
|
||||
ansi.goto(item.row, self.position.col) +
|
||||
colorCodes.enigmaToAnsi(text)
|
||||
ansi.goto(item.row, self.position.col) +
|
||||
colorCodes.pipeToAnsi(text, self.client)
|
||||
);
|
||||
|
||||
} else {
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -1,119 +0,0 @@
|
|||
{
|
||||
info: {
|
||||
name: Nu Mayan
|
||||
author: NuSkooler
|
||||
}
|
||||
|
||||
customization: {
|
||||
|
||||
defaults: {
|
||||
general: {
|
||||
passwordChar: φ
|
||||
}
|
||||
|
||||
dateFormat: {
|
||||
short: YYYY-MMM-DD
|
||||
}
|
||||
|
||||
timeFormat: {
|
||||
short: h:mm:ss a
|
||||
}
|
||||
|
||||
mci: {
|
||||
TM: {
|
||||
styleSGR1: |00|30|01
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
menus: {
|
||||
matrix: {
|
||||
VM1: {
|
||||
itemSpacing: 1
|
||||
justify: center
|
||||
width: 12
|
||||
focusTextStyle: l33t
|
||||
}
|
||||
}
|
||||
|
||||
apply: {
|
||||
ET1: { width: 21 }
|
||||
|
||||
ET2: { width: 21 }
|
||||
|
||||
ME3: {
|
||||
styleSGR1: |00|30|01
|
||||
styleSGR2: |00|37
|
||||
fillChar: "#"
|
||||
}
|
||||
|
||||
ET4: { width: 1 }
|
||||
ET5: { width: 21 }
|
||||
ET6: { width: 21 }
|
||||
ET7: { width: 21 }
|
||||
ET8: { width: 21 }
|
||||
ET9: { width: 21 }
|
||||
ET10: { width: 21 }
|
||||
}
|
||||
|
||||
newUserApplication: {
|
||||
ET1: { width: 38 }
|
||||
|
||||
ET2: { width: 38 }
|
||||
|
||||
/*ME3: {
|
||||
styleSGR1: |00|30|01
|
||||
styleSGR2: |00|37
|
||||
fillChar: "#"
|
||||
}*/
|
||||
|
||||
//ET4: { width: 1 }
|
||||
ET5: { width: 38 }
|
||||
ET6: { width: 38 }
|
||||
ET7: { width: 38 }
|
||||
ET8: { width: 38 }
|
||||
ET9: { width: 38 }
|
||||
ET10: { width: 38 }
|
||||
TM12: {
|
||||
focusTextStyle: first lower
|
||||
}
|
||||
}
|
||||
|
||||
lastCallers: {
|
||||
TL1: {
|
||||
resizable: false
|
||||
width: 16
|
||||
textOverflow: ...
|
||||
}
|
||||
|
||||
TL2: {
|
||||
resizable: false
|
||||
width: 19
|
||||
textOverflow: ...
|
||||
}
|
||||
|
||||
TL3: {
|
||||
resizable: false
|
||||
width: 17
|
||||
textOverflow: ...
|
||||
}
|
||||
}
|
||||
|
||||
messageAreaViewPost: {
|
||||
0: {
|
||||
TL3: {
|
||||
width: 27
|
||||
textOverflow: ...
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
prompts: {
|
||||
userCredentials: {
|
||||
ET1: { width: 21 }
|
||||
ET2: { width: 21 }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -114,7 +114,7 @@
|
|||
|
||||
mainMenuLastCallers: {
|
||||
config: {
|
||||
listFormat: "|00|01|36{userName:<17.17}{location:<20.20}{affils:<17.17}{ts:<15}"
|
||||
listFormat: "|00|11{userName:<17.17}|03{location:<20.20}|11{affils:<17.17}|03{ts:<15}"
|
||||
dateTimeFormat: MMM Do h:mma
|
||||
}
|
||||
mci: {
|
||||
|
@ -124,8 +124,8 @@
|
|||
|
||||
mainMenuUserList: {
|
||||
config: {
|
||||
listFormat: "|00|01|36{userName:<17.17}{affils:<21.21}{note:<19.19}{lastLoginTs}"
|
||||
focusListFormat: "|00|42|30{userName:<17.17}{affils:<21.21}{note:<19.19}{lastLoginTs}"
|
||||
listFormat: "|00|11{userName:<17.17}|03{affils:<21.21}|11{note:<19.19}|03{lastLoginTs}"
|
||||
focusListFormat: "|00|19|15{userName:<17.17}{affils:<21.21}{note:<19.19}{lastLoginTs}"
|
||||
dateTimeFormat: MMM Do h:mma
|
||||
}
|
||||
mci: {
|
||||
|
@ -135,7 +135,7 @@
|
|||
|
||||
mainMenuWhosOnline: {
|
||||
config: {
|
||||
listFormat: "|00|01|36{node:<6.6}{userName:<17.17}{affils:<19.19}{action:<20.20}{timeOn:<8}"
|
||||
listFormat: "|00|03{node:<6.6}|11{userName:<17.17}|03{affils:<19.19}|11{action:<20.20}|03{timeOn:<8}"
|
||||
}
|
||||
mci: {
|
||||
VM1: { height: 10 }
|
||||
|
@ -144,8 +144,8 @@
|
|||
|
||||
messageAreaMessageList: {
|
||||
config: {
|
||||
listFormat: "|00|01|37{msgNum:>4} |00|37- |36{subj:<29.29} {from:<20.20} {ts} |01|31{newIndicator}"
|
||||
focusListFormat: "|00|42|30{msgNum:>4} - {subj:<29.29} {from:<20.20} {ts} {newIndicator}"
|
||||
listFormat: "|00|15{msgNum:>4} |03{subj:<29.29} |11{from:<20.20} |03{ts} |01|31{newIndicator}"
|
||||
focusListFormat: "|00|19|15{msgNum:>4} {subj:<29.29} {from:<20.20} {ts} {newIndicator}"
|
||||
dateTimeFormat: ddd MMM Do
|
||||
}
|
||||
mci: {
|
||||
|
@ -157,8 +157,8 @@
|
|||
|
||||
messageAreaChangeCurrentArea: {
|
||||
config: {
|
||||
listFormat: "|00|01|37{index} |00|37- |36{desc}"
|
||||
focusListFormat: "|00|42|30{index} - {desc}"
|
||||
listFormat: "|00|15{index} |07- |03{desc}"
|
||||
focusListFormat: "|00|19|15{index} - {desc}"
|
||||
}
|
||||
mci: {
|
||||
VM1: {
|
||||
|
@ -240,7 +240,7 @@
|
|||
|
||||
fullLoginSequenceLastCallers: {
|
||||
config: {
|
||||
listFormat: "|00|01|36{userName:<17.17}{location:<20.20}{affils:<17.17}{ts:<15}"
|
||||
listFormat: "|00|11{userName:<17.17}|03{location:<20.20}|11{affils:<17.17}|03{ts:<15}"
|
||||
dateTimeFormat: MMM Do h:mma
|
||||
}
|
||||
mci: {
|
||||
|
@ -250,7 +250,7 @@
|
|||
|
||||
fullLoginSequenceWhosOnline: {
|
||||
config: {
|
||||
listFormat: "|00|01|36{node:<6.6}{userName:<17.17}{affils:<19.19}{action:<20.20}{timeOn:<8}"
|
||||
listFormat: "|00|03{node:<6.6}|11{userName:<17.17}|03{affils:<19.19}|11{action:<20.20}|03{timeOn:<8}"
|
||||
}
|
||||
mci: {
|
||||
VM1: { height: 10 }
|
||||
|
|
|
@ -84,10 +84,11 @@ UserListModule.prototype.mciReady = function(mciData, cb) {
|
|||
userId : ue.userId,
|
||||
userName : ue.userName,
|
||||
affils : ue.affiliation,
|
||||
location : ue.location,
|
||||
// :TODO: the rest!
|
||||
note : ue.note || '',
|
||||
lastLoginTs : moment(ue.last_login_timestamp).format(dateTimeFormat),
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
userListView.setItems(_.map(userList, function formatUserEntry(ue) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue