Merge branch 'master' of ssh://numinibsd/git/base/enigma-bbs
This commit is contained in:
@@ -177,12 +177,6 @@ function AbracadabraModule(options) {
|
||||
|
||||
require('util').inherits(AbracadabraModule, MenuModule);
|
||||
|
||||
/*
|
||||
AbracadabraModule.prototype.enter = function(client) {
|
||||
AbracadabraModule.super_.prototype.enter.call(this, client);
|
||||
};
|
||||
*/
|
||||
|
||||
AbracadabraModule.prototype.leave = function() {
|
||||
AbracadabraModule.super_.prototype.leave.call(this);
|
||||
|
||||
|
||||
Binary file not shown.
Binary file not shown.
@@ -1,19 +1,19 @@
|
||||
[0m[1m [0;31mーーーーーーーーー[37m[7C[1mワイワワ[0m[16C[1m [0m[15C[1;30m [33mー[30m [37m [0m[7C[1mワワ[0m[4C[1m [0m
|
||||
[1m [0;31mーーー[1;37;41mー[0;31mーー [37m[3C[1mワワ゚ロロロイ[47mロ[41mロロ[40mロロ゚ [0m[7C ーー[8C[1;33m [0m [1;33mーーー[37m [33mーーーー ー[0m [1mワワワ゚゚゚ワワイロロロロロ゚[0m
|
||||
[31mー[37m[4C[1mワワワ゚゚[0m[3C[1m゙ロ[47mロロロ[41mイイ[40mロン[0m[3C[1;30m [0mーー[1;30m [0m[3C[1m ワワワ [0m[4C[1mワワ[0m[6C[1m [33mー[37mワワワ゚゚[0m[8C[1mロ[41mイイ[40mロロン[0m
|
||||
[1m゚ワワワロ[47mロロ[40mイロ [0;31m ー[37m[3C[1mロ[47mロロイイイアア[0m[8C[1mワワワ゚゚ロロロロ[41mイロ[40m゚[0m[3C[1mロイ[47mイイイア[40mワワワイ[47mイイイ[40mーー[0m [1mーー[0m[5C[1m゙ロロロロロイ[0m
|
||||
[1m ゙[47mロ[41mイイ[47mロロロ[40mン[0m[5C[1m゙ロ[47mイイアアアー[40mン [47mイア[40mワワ[47mーア[40m゚ [0m[4C[1m゙[47mイイイイロ[40mン ゙[47mイイアアアアアイイイアアア[0m[10C[1m゙[47mイイ[40mロ[41mロ[40mロン[0m
|
||||
[1;47mロロロロイイ゚[0m [1m [0m [1m [0m [1;47mイイアアーーー[0mロロ[1;47mー ーーー[30mー[0mン[6C[1;30m [47m [37mアアアイイ[30;40m [37;47mイイアアーー[30m [37mーアアアーーー[0m[10C[1;47mーアアイイロ[40mン[0m [1m [0m
|
||||
[1mーーイロ[47mイイアーー[40mーー ー [0m ゚゚゚[1;47mーー[0mロロヷ[1;47mーー[30mーーアア[37;40mーー[0m [1mーー[0m [1mー[47mー[30m [37mーーアア[30m [0m゙[1;47m ーアー[30mーーー[0m゙[1;47m ーー[30mーーー[37;40mーー[0m [1mーー ー ーー[47mーーーアアイ[40mーー[0m [1m [0m [1mー゙[47mイアアーー[0;47m [40mワワ [1m [0m [1;30m [0m[9C[1;30;47mーーアアイ[40mロ [0m[4C[1;30m ゙[47mアアーー[37mー [30m ー[37mー[30mーアア[40m [0m゙[1;47mー[30mーーーア[40mン[0m[3C[34m ワ[37m ゙ロ[1;47m ーーアア[0m[3C[1m [0m
|
||||
[34mワ[1;30m [0m゙[1;47mアーー[30m ーー[40mン [0;34m ワ[1;30m ワロロワワワ ワロ[47mイイイ[40mロロン[0;34m゙ワイ゚[1;30m ゙ロ[47mイイアーー ーーアアアア[0m [34mワ[37m [1;30;47mアアアアイ[40mロ[0m [34m゙ロワロロイロ[37m ゙ロロロロ[1;47mー [0m [34m゙ワ [37m
|
||||
[1;34;44mー[0;34mン[37m [1;47mー [30mーーアイ[40mン [34;44mーー[0;34mロワ[37m [1;30mロロ[47mイイ[40mロロロロロロ[47mイ[40mロロイン[0;34m [1;44mーー[0m [1;30m゚゚゚゚ロ[47mイアア[40m゚゙[47mアアイイ[40m [0;34m゙[1;44mー[0;34mン[37m [1;30mロ[47mイイロ[40mロン[0m [34mロ[1;44mーー[0;34mロロン[37m [1;30;47mーーーー[0mロロン[34m ロロ[1;44mー[0m
|
||||
[34m゚ [37m [1;30;47mーーーアアイイ[40m [0;34m゚゚イ゚[37m [1;30m゙ロロ[47mロロ[40mロロイロロロロロロイ [0;34m゚゚゚イ ゚[37m[4C[1;30m゚ [47mイイ[40mロン[0m [34m゚イ゚[37m [1;30m゙ロイロイイ ワワワ [0;34m゚[1;30m ゙[47mアアーーー[0mン[1;30m [0;34m゚イ゚[37m
|
||||
[3C[1;30m゙[47mアアアイイ[40mロン [0m[3C[1;30m ロロロロロロロロロロロロロロ゚゚[0m[12C[1;30mロロイ[0m[6C[1;30mロ゚゚ ゚゚゚[0m[3C[1;30m゚゚ ロ[47mイイアアアア[0m
|
||||
[4C[1;30mロ[47mイイロロロ[40mロ ゙ロロロロロイロ ロ゚゚ [0m[11C[1;30m゙イ[0m[14C[1;30mワ[0m[6C[1;30mロロ[47mイイイ[40mロン[0m
|
||||
[1;30m ワワ゚゚ ゚゚゚ワワワ ロロロロイ゚[0m[30C[1;30m ワワロロロロ[0m[6C[1;30m゙ロ[47mロイ[40mロロ [0m
|
||||
[4C[31m [1;30mーー ゚゚゚゚゚[0m[4C[1;31mーーー[30m [31mーー[30m [37meni[41mg[40mmaォ[0m[3Cbbs soft[6C[1;30mロロロ[47mイイ[40mロン[0m[4C[31mー[1;30m ゙ロロロロイ [0;31mーー[37m
|
||||
[1;30mdangermouse ーー[0m[42C[1;30mロイロロロロ[0m[7C[1;30mロ[47mイロ[40mイロ [0;31mー[37m
|
||||
[12C[1;30m [0m[37C[1;30m ーー[0m [1;30m ロイロロロロワワワワ゚゚゚゚゚゚゚゚ワワワ[0m
|
||||
[57C[1;30m゙ロロ゚゚[0m[7C[31mー[1;37;41mー[0;31mーーー[37m
|
||||
[53C[1;30m ー[0m [1;30m゚[0m[5C[31m ーーーーーーーーーー[37m
|
||||
[0m[1m [0;31mーーーーーーーーー[37m[7C[1mワイワワ[0m[16C[1m [0m[15C[1;30m [33mー[30m [37m [0m[7C[1mワワ[0m[4C[1m [0m
|
||||
[1m [0;31mーーー[1;37;41mー[0;31mーー [37m[3C[1mワワ゚ロロロイ[47mロ[41mロロ[40mロロ゚ [0m[7C ーー[8C[1;33m [0m [1;33mーーー[37m [33mーーーー ー[0m [1mワワワ゚゚゚ワワイロロロロロ゚[0m
|
||||
[31mー[37m[4C[1mワワワ゚゚[0m[3C[1m゙ロ[47mロロロ[41mイイ[40mロン[0m[3C[1;30m [0mーー[1;30m [0m[3C[1m ワワワ [0m[4C[1mワワ[0m[6C[1m [33mー[37mワワワ゚゚[0m[8C[1mロ[41mイイ[40mロロン[0m
|
||||
[1m゚ワワワロ[47mロロ[40mイロ [0;31m ー[37m[3C[1mロ[47mロロイイイアア[0m[8C[1mワワワ゚゚ロロロロ[41mイロ[40m゚[0m[3C[1mロイ[47mイイイア[40mワワワイ[47mイイイ[40mーー[0m [1mーー[0m[5C[1m゙ロロロロロイ[0m
|
||||
[1m ゙[47mロ[41mイイ[47mロロロ[40mン[0m[5C[1m゙ロ[47mイイアアアー[40mン [47mイア[40mワワ[47mーア[40m゚ [0m[4C[1m゙[47mイイイイロ[40mン ゙[47mイイアアアアアイイイアアア[0m[10C[1m゙[47mイイ[40mロ[41mロ[40mロン[0m
|
||||
[1;47mロロロロイイ゚[0m [1m [0m [1m [0m [1;47mイイアアーーー[0mロロ[1;47mー ーーー[30mー[0mン[6C[1;30m [47m [37mアアアイイ[30;40m [37;47mイイアアーー[30m [37mーアアアーーー[0m[10C[1;47mーアアイイロ[40mン[0m [1m [0m
|
||||
[1mーーイロ[47mイイアーー[40mーー ー [0m ゚゚゚[1;47mーー[0mロロヷ[1;47mーー[30mーーアア[37;40mーー[0m [1mーー[0m [1mー[47mー[30m [37mーーアア[30m [0m゙[1;47m ーアー[30mーーー[0m゙[1;47m ーー[30mーーー[37;40mーー[0m [1mーー ー ーー[47mーーーアアイ[40mーー[0m [1m [0m [1mー゙[47mイアアーー[0;47m [40mワワ [1m [0m [1;30m [0m[9C[1;30;47mーーアアイ[40mロ [0m[4C[1;30m ゙[47mアアーー[37mー [30m ー[37mー[30mーアア[40m [0m゙[1;47mー[30mーーーア[40mン[0m[3C[34m ワ[37m ゙ロ[1;47m ーーアア[0m[3C[1m [0m
|
||||
[34mワ[1;30m [0m゙[1;47mアーー[30m ーー[40mン [0;34m ワ[1;30m ワロロワワワ ワロ[47mイイイ[40mロロン[0;34m゙ワイ゚[1;30m ゙ロ[47mイイアーー ーーアアアア[0m [34mワ[37m [1;30;47mアアアアイ[40mロ[0m [34m゙ロワロロイロ[37m ゙ロロロロ[1;47mー [0m [34m゙ワ [37m
|
||||
[1;34;44mー[0;34mン[37m [1;47mー [30mーーアイ[40mン [34;44mーー[0;34mロワ[37m [1;30mロロ[47mイイ[40mロロロロロロ[47mイ[40mロロイン[0;34m [1;44mーー[0m [1;30m゚゚゚゚ロ[47mイアア[40m゚゙[47mアアイイ[40m [0;34m゙[1;44mー[0;34mン[37m [1;30mロ[47mイイロ[40mロン[0m [34mロ[1;44mーー[0;34mロロン[37m [1;30;47mーーーー[0mロロン[34m ロロ[1;44mー[0m
|
||||
[34m゚ [37m [1;30;47mーーーアアイイ[40m [0;34m゚゚イ゚[37m [1;30m゙ロロ[47mロロ[40mロロイロロロロロロイ [0;34m゚゚゚イ ゚[37m[4C[1;30m゚ [47mイイ[40mロン[0m [34m゚イ゚[37m [1;30m゙ロイロイイ ワワワ [0;34m゚[1;30m ゙[47mアアーーー[0mン[1;30m [0;34m゚イ゚[37m
|
||||
[3C[1;30m゙[47mアアアイイ[40mロン [0m[3C[1;30m ロロロロロロロロロロロロロロ゚゚[0m[12C[1;30mロロイ[0m[6C[1;30mロ゚゚ ゚゚゚[0m[3C[1;30m゚゚ ロ[47mイイアアアア[0m
|
||||
[4C[1;30mロ[47mイイロロロ[40mロ ゙ロロロロロイロ ロ゚゚ [0m[11C[1;30m゙イ[0m[14C[1;30mワ[0m[6C[1;30mロロ[47mイイイ[40mロン[0m
|
||||
[1;30m ワワ゚゚ ゚゚゚ワワワ ロロロロイ゚[0m[30C[1;30m ワワロロロロ[0m[6C[1;30m゙ロ[47mロイ[40mロロ [0m
|
||||
[4C[31m [1;30mーー ゚゚゚゚゚[0m[4C[1;31mーーー[30m [31mーー[30m [37meni[41mg[40mmaォ[0m[3Cbbs soft[6C[1;30mロロロ[47mイイ[40mロン[0m[4C[31mー[1;30m ゙ロロロロイ [0;31mーー[37m
|
||||
[1;30mdangermouse ーー[0m[42C[1;30mロイロロロロ[0m[7C[1;30mロ[47mイロ[40mイロ [0;31mー[37m
|
||||
[12C[1;30m [0m[37C[1;30m ーー[0m [1;30m ロイロロロロワワワワ゚゚゚゚゚゚゚゚ワワワ[0m
|
||||
[57C[1;30m゙ロロ゚゚[0m[7C[31mー[1;37;41mー[0;31mーーー[37m
|
||||
[53C[1;30m ー[0m [1;30m゚[0m[5C[31m ーーーーーーーーーー[37m
|
||||
[0m
|
||||
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,52 +1,52 @@
|
||||
You should never see this!
|
||||
|
||||
|
||||
... nor this
|
||||
[2J[0m[?33h
|
||||
[1;31m fONT tEST[0m
|
||||
[1;30m ~~~~~~~~~[0m
|
||||
|
||||
|[1;33m 0[0m |[1;33m 1[0m |[1;33m 2[0m |[1;33m 3[0m |[1;33m 4[0m |[1;33m 5[0m |[1;33m 6[0m |[1;33m 7[0m |[1;33m 8[0m |[1;33m 9[0m |[1;33m A[0m |[1;33m B[0m |[1;33m C[0m |[1;33m D[0m |[1;33m E[0m |[1;33m F[0m
|
||||
---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---
|
||||
[1;33m0 [0m|[1;36mNUL[0m|[1;37m [0m|[1;37m [0m|[1;37m [0m|[1;37m [0m|[1;37m [0m|[1;37m [0m|[1;37m [0m|[1;36mBS [0m|[1;36mHT [0m|[1;36mLF [0m|[1;37m [0m|[1;37m [0m|[1;36mCR [0m|[1;37m [0m|[1;37m [0m
|
||||
[1;33m1 [0m|[1;37m [0m|[1;37m [0m|[1;37m [0m|[1;37m [0m|[1;37m [0m|[1;37m [0m|[1;37m [0m|[1;37m [0m|[1;37m [0m|[1;37m [0m|[1;36mEOF[0m|[1;36mESC[0m|[1;37m [0m|[1;37m [0m|[1;37m [0m|[1;37m [0m
|
||||
[1;33m2 [0m|[1;37m [0m|[1;37m ! [0m|[1;37m " [0m|[1;37m # [0m|[1;37m $ [0m|[1;37m % [0m|[1;37m & [0m|[1;37m ' [0m|[1;37m ( [0m|[1;37m ) [0m|[1;37m * [0m|[1;37m + [0m|[1;37m , [0m|[1;37m - [0m|[1;37m . [0m|[1;37m / [0m
|
||||
[1;33m3 [0m|[1;37m 0 [0m|[1;37m 1 [0m|[1;37m 2 [0m|[1;37m 3 [0m|[1;37m 4 [0m|[1;37m 5 [0m|[1;37m 6 [0m|[1;37m 7 [0m|[1;37m 8 [0m|[1;37m 9 [0m|[1;37m : [0m|[1;37m ; [0m|[1;37m < [0m|[1;37m = [0m|[1;37m > [0m|[1;37m ? [0m
|
||||
---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---
|
||||
[1;33m4 [0m|[1;37m @ [0m|[1;37m A [0m|[1;37m B [0m|[1;37m C [0m|[1;37m D [0m|[1;37m E [0m|[1;37m F [0m|[1;37m G [0m|[1;37m H [0m|[1;37m I [0m|[1;37m J [0m|[1;37m K [0m|[1;37m L [0m|[1;37m M [0m|[1;37m N [0m|[1;37m O [0m
|
||||
[1;33m5 [0m|[1;37m P [0m|[1;37m Q [0m|[1;37m R [0m|[1;37m S [0m|[1;37m T [0m|[1;37m U [0m|[1;37m V [0m|[1;37m W [0m|[1;37m X [0m|[1;37m Y [0m|[1;37m Z [0m|[1;37m [ [0m|[1;37m \ [0m|[1;37m ] [0m|[1;37m ^ [0m|[1;37m _ [0m
|
||||
[1;33m6 [0m|[1;37m ` [0m|[1;37m a [0m|[1;37m b [0m|[1;37m c [0m|[1;37m d [0m|[1;37m e [0m|[1;37m f [0m|[1;37m g [0m|[1;37m h [0m|[1;37m i [0m|[1;37m j [0m|[1;37m k [0m|[1;37m l [0m|[1;37m m [0m|[1;37m n [0m|[1;37m o [0m
|
||||
[1;33m7 [0m|[1;37m p [0m|[1;37m q [0m|[1;37m r [0m|[1;37m s [0m|[1;37m t [0m|[1;37m u [0m|[1;37m v [0m|[1;37m w [0m|[1;37m x [0m|[1;37m y [0m|[1;37m z [0m|[1;37m { [0m|[1;37m | [0m|[1;37m } [0m|[1;37m ~ [0m|[1;37m [0m
|
||||
---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---
|
||||
[1;33m8 [0m|[1;37m € [0m|[1;37m <20> [0m|[1;37m ‚ [0m|[1;37m ƒ [0m|[1;37m „ [0m|[1;37m … [0m|[1;37m † [0m|[1;37m ‡ [0m|[1;37m ˆ [0m|[1;37m ‰ [0m|[1;37m Š [0m|[1;37m ‹ [0m|[1;37m Œ [0m|[1;37m <20> [0m|[1;37m Ž [0m|[1;37m <20> [0m
|
||||
[1;33m9 [0m|[1;37m <20> [0m|[1;37m ‘ [0m|[1;37m ’ [0m|[1;37m “ [0m|[1;37m ” [0m|[1;37m • [0m|[1;37m – [0m|[1;37m — [0m|[1;37m ˜ [0m|[1;37m ™ [0m|[1;37m š [0m|[1;37m › [0m|[1;37m œ [0m|[1;37m <20> [0m|[1;37m ž [0m|[1;37m Ÿ [0m
|
||||
[1;33mA [0m|[1;37m [0m|[1;37m ¡ [0m|[1;37m ¢ [0m|[1;37m £ [0m|[1;37m ¤ [0m|[1;37m ¥ [0m|[1;37m ¦ [0m|[1;37m § [0m|[1;37m ¨ [0m|[1;37m © [0m|[1;37m ª [0m|[1;37m « [0m|[1;37m ¬ [0m|[1;37m [0m|[1;37m ® [0m|[1;37m ¯ [0m
|
||||
[1;33mB [0m|[1;37m ° [0m|[1;37m ± [0m|[1;37m ² [0m|[1;37m ³ [0m|[1;37m ´ [0m|[1;37m µ [0m|[1;37m ¶ [0m|[1;37m · [0m|[1;37m ¸ [0m|[1;37m ¹ [0m|[1;37m º [0m|[1;37m » [0m|[1;37m ¼ [0m|[1;37m ½ [0m|[1;37m ¾ [0m|[1;37m ¿ [0m
|
||||
---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---
|
||||
[1;33mC [0m|[1;37m À [0m|[1;37m Á [0m|[1;37m  [0m|[1;37m à [0m|[1;37m Ä [0m|[1;37m Å [0m|[1;37m Æ [0m|[1;37m Ç [0m|[1;37m È [0m|[1;37m É [0m|[1;37m Ê [0m|[1;37m Ë [0m|[1;37m Ì [0m|[1;37m Í [0m|[1;37m Î [0m|[1;37m Ï [0m
|
||||
[1;33mD [0m|[1;37m Ð [0m|[1;37m Ñ [0m|[1;37m Ò [0m|[1;37m Ó [0m|[1;37m Ô [0m|[1;37m Õ [0m|[1;37m Ö [0m|[1;37m × [0m|[1;37m Ø [0m|[1;37m Ù [0m|[1;37m Ú [0m|[1;37m Û [0m|[1;37m Ü [0m|[1;37m Ý [0m|[1;37m Þ [0m|[1;37m ß [0m
|
||||
[1;33mE [0m|[1;37m à [0m|[1;37m á [0m|[1;37m â [0m|[1;37m ã [0m|[1;37m ä [0m|[1;37m å [0m|[1;37m æ [0m|[1;37m ç [0m|[1;37m è [0m|[1;37m é [0m|[1;37m ê [0m|[1;37m ë [0m|[1;37m ì [0m|[1;37m í [0m|[1;37m î [0m|[1;37m ï [0m
|
||||
[1;33mF [0m|[1;37m ð [0m|[1;37m ñ [0m|[1;37m ò [0m|[1;37m ó [0m|[1;37m ô [0m|[1;37m õ [0m|[1;37m ö [0m|[1;37m ÷ [0m|[1;37m ø [0m|[1;37m ù [0m|[1;37m ú [0m|[1;37m û [0m|[1;37m ü [0m|[1;37m ý [0m|[1;37m þ [0m|[1;37m ÿ [0m
|
||||
|
||||
|
||||
[1;31m cOLOR tEST[0m
|
||||
[1;30m ~~~~~~~~~~[0m
|
||||
|
||||
[0;30;40m°±²Û[0;30;41m°±²Û[0;30;42m°±²Û[0;30;43m°±²Û[0;30;44m°±²Û[0;30;45m°±²Û[0;30;46m°±²Û[0;30;47m°±²Û[1;30;40m°±²Û[1;30;41m°±²Û[1;30;42m°±²Û[1;30;43m°±²Û[1;30;44m°±²Û[1;30;45m°±²Û[1;30;46m°±²Û[1;30;47m°±²Û[0m
|
||||
[0;31;40m°±²Û[0;31;41m°±²Û[0;31;42m°±²Û[0;31;43m°±²Û[0;31;44m°±²Û[0;31;45m°±²Û[0;31;46m°±²Û[0;31;47m°±²Û[1;31;40m°±²Û[1;31;41m°±²Û[1;31;42m°±²Û[1;31;43m°±²Û[1;31;44m°±²Û[1;31;45m°±²Û[1;31;46m°±²Û[1;31;47m°±²Û[0m
|
||||
[0;32;40m°±²Û[0;32;41m°±²Û[0;32;42m°±²Û[0;32;43m°±²Û[0;32;44m°±²Û[0;32;45m°±²Û[0;32;46m°±²Û[0;32;47m°±²Û[1;32;40m°±²Û[1;32;41m°±²Û[1;32;42m°±²Û[1;32;43m°±²Û[1;32;44m°±²Û[1;32;45m°±²Û[1;32;46m°±²Û[1;32;47m°±²Û[0m
|
||||
[0;33;40m°±²Û[0;33;41m°±²Û[0;33;42m°±²Û[0;33;43m°±²Û[0;33;44m°±²Û[0;33;45m°±²Û[0;33;46m°±²Û[0;33;47m°±²Û[1;33;40m°±²Û[1;33;41m°±²Û[1;33;42m°±²Û[1;33;43m°±²Û[1;33;44m°±²Û[1;33;45m°±²Û[1;33;46m°±²Û[1;33;47m°±²Û[0m
|
||||
[0;34;40m°±²Û[0;34;41m°±²Û[0;34;42m°±²Û[0;34;43m°±²Û[0;34;44m°±²Û[0;34;45m°±²Û[0;34;46m°±²Û[0;34;47m°±²Û[1;34;40m°±²Û[1;34;41m°±²Û[1;34;42m°±²Û[1;34;43m°±²Û[1;34;44m°±²Û[1;34;45m°±²Û[1;34;46m°±²Û[1;34;47m°±²Û[0m
|
||||
[0;35;40m°±²Û[0;35;41m°±²Û[0;35;42m°±²Û[0;35;43m°±²Û[0;35;44m°±²Û[0;35;45m°±²Û[0;35;46m°±²Û[0;35;47m°±²Û[1;35;40m°±²Û[1;35;41m°±²Û[1;35;42m°±²Û[1;35;43m°±²Û[1;35;44m°±²Û[1;35;45m°±²Û[1;35;46m°±²Û[1;35;47m°±²Û[0m
|
||||
[0;36;40m°±²Û[0;36;41m°±²Û[0;36;42m°±²Û[0;36;43m°±²Û[0;36;44m°±²Û[0;36;45m°±²Û[0;36;46m°±²Û[0;36;47m°±²Û[1;36;40m°±²Û[1;36;41m°±²Û[1;36;42m°±²Û[1;36;43m°±²Û[1;36;44m°±²Û[1;36;45m°±²Û[1;36;46m°±²Û[1;36;47m°±²Û[0m
|
||||
[0;37;40m°±²Û[0;37;41m°±²Û[0;37;42m°±²Û[0;37;43m°±²Û[0;37;44m°±²Û[0;37;45m°±²Û[0;37;46m°±²Û[0;37;47m°±²Û[1;37;40m°±²Û[1;37;41m°±²Û[1;37;42m°±²Û[1;37;43m°±²Û[1;37;44m°±²Û[1;37;45m°±²Û[1;37;46m°±²Û[1;37;47m°±²Û[0m
|
||||
[5;30;40m°±²Û[5;30;41m°±²Û[5;30;42m°±²Û[5;30;43m°±²Û[5;30;44m°±²Û[5;30;45m°±²Û[5;30;46m°±²Û[5;30;47m°±²Û[1;5;30;40m°±²Û[1;5;30;41m°±²Û[1;5;30;42m°±²Û[1;5;30;43m°±²Û[1;5;30;44m°±²Û[1;5;30;45m°±²Û[1;5;30;46m°±²Û[1;5;30;47m°±²Û[0m
|
||||
[5;31;40m°±²Û[5;31;41m°±²Û[5;31;42m°±²Û[5;31;43m°±²Û[5;31;44m°±²Û[5;31;45m°±²Û[5;31;46m°±²Û[5;31;47m°±²Û[1;5;31;40m°±²Û[1;5;31;41m°±²Û[1;5;31;42m°±²Û[1;5;31;43m°±²Û[1;5;31;44m°±²Û[1;5;31;45m°±²Û[1;5;31;46m°±²Û[1;5;31;47m°±²Û[0m
|
||||
[5;32;40m°±²Û[5;32;41m°±²Û[5;32;42m°±²Û[5;32;43m°±²Û[5;32;44m°±²Û[5;32;45m°±²Û[5;32;46m°±²Û[5;32;47m°±²Û[1;5;32;40m°±²Û[1;5;32;41m°±²Û[1;5;32;42m°±²Û[1;5;32;43m°±²Û[1;5;32;44m°±²Û[1;5;32;45m°±²Û[1;5;32;46m°±²Û[1;5;32;47m°±²Û[0m
|
||||
[5;33;40m°±²Û[5;33;41m°±²Û[5;33;42m°±²Û[5;33;43m°±²Û[5;33;44m°±²Û[5;33;45m°±²Û[5;33;46m°±²Û[5;33;47m°±²Û[1;5;33;40m°±²Û[1;5;33;41m°±²Û[1;5;33;42m°±²Û[1;5;33;43m°±²Û[1;5;33;44m°±²Û[1;5;33;45m°±²Û[1;5;33;46m°±²Û[1;5;33;47m°±²Û[0m
|
||||
[5;34;40m°±²Û[5;34;41m°±²Û[5;34;42m°±²Û[5;34;43m°±²Û[5;34;44m°±²Û[5;34;45m°±²Û[5;34;46m°±²Û[5;34;47m°±²Û[1;5;34;40m°±²Û[1;5;34;41m°±²Û[1;5;34;42m°±²Û[1;5;34;43m°±²Û[1;5;34;44m°±²Û[1;5;34;45m°±²Û[1;5;34;46m°±²Û[1;5;34;47m°±²Û[0m
|
||||
[5;35;40m°±²Û[5;35;41m°±²Û[5;35;42m°±²Û[5;35;43m°±²Û[5;35;44m°±²Û[5;35;45m°±²Û[5;35;46m°±²Û[5;35;47m°±²Û[1;5;35;40m°±²Û[1;5;35;41m°±²Û[1;5;35;42m°±²Û[1;5;35;43m°±²Û[1;5;35;44m°±²Û[1;5;35;45m°±²Û[1;5;35;46m°±²Û[1;5;35;47m°±²Û[0m
|
||||
[5;36;40m°±²Û[5;36;41m°±²Û[5;36;42m°±²Û[5;36;43m°±²Û[5;36;44m°±²Û[5;36;45m°±²Û[5;36;46m°±²Û[5;36;47m°±²Û[1;5;36;40m°±²Û[1;5;36;41m°±²Û[1;5;36;42m°±²Û[1;5;36;43m°±²Û[1;5;36;44m°±²Û[1;5;36;45m°±²Û[1;5;36;46m°±²Û[1;5;36;47m°±²Û[0m
|
||||
[5;37;40m°±²Û[5;37;41m°±²Û[5;37;42m°±²Û[5;37;43m°±²Û[5;37;44m°±²Û[5;37;45m°±²Û[5;37;46m°±²Û[5;37;47m°±²Û[1;5;37;40m°±²Û[1;5;37;41m°±²Û[1;5;37;42m°±²Û[1;5;37;43m°±²Û[1;5;37;44m°±²Û[1;5;37;45m°±²Û[1;5;37;46m°±²Û[1;5;37;47m°±²Û[0m
|
||||
|
||||
[0m
|
||||
You should never see this!
|
||||
|
||||
|
||||
... nor this
|
||||
[2J[0m[?33h
|
||||
[1;31m fONT tEST[0m
|
||||
[1;30m ~~~~~~~~~[0m
|
||||
|
||||
|[1;33m 0[0m |[1;33m 1[0m |[1;33m 2[0m |[1;33m 3[0m |[1;33m 4[0m |[1;33m 5[0m |[1;33m 6[0m |[1;33m 7[0m |[1;33m 8[0m |[1;33m 9[0m |[1;33m A[0m |[1;33m B[0m |[1;33m C[0m |[1;33m D[0m |[1;33m E[0m |[1;33m F[0m
|
||||
---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---
|
||||
[1;33m0 [0m|[1;36mNUL[0m|[1;37m [0m|[1;37m [0m|[1;37m [0m|[1;37m [0m|[1;37m [0m|[1;37m [0m|[1;37m [0m|[1;36mBS [0m|[1;36mHT [0m|[1;36mLF [0m|[1;37m [0m|[1;37m [0m|[1;36mCR [0m|[1;37m [0m|[1;37m [0m
|
||||
[1;33m1 [0m|[1;37m [0m|[1;37m [0m|[1;37m [0m|[1;37m [0m|[1;37m [0m|[1;37m [0m|[1;37m [0m|[1;37m [0m|[1;37m [0m|[1;37m [0m|[1;36mEOF[0m|[1;36mESC[0m|[1;37m [0m|[1;37m [0m|[1;37m [0m|[1;37m [0m
|
||||
[1;33m2 [0m|[1;37m [0m|[1;37m ! [0m|[1;37m " [0m|[1;37m # [0m|[1;37m $ [0m|[1;37m % [0m|[1;37m & [0m|[1;37m ' [0m|[1;37m ( [0m|[1;37m ) [0m|[1;37m * [0m|[1;37m + [0m|[1;37m , [0m|[1;37m - [0m|[1;37m . [0m|[1;37m / [0m
|
||||
[1;33m3 [0m|[1;37m 0 [0m|[1;37m 1 [0m|[1;37m 2 [0m|[1;37m 3 [0m|[1;37m 4 [0m|[1;37m 5 [0m|[1;37m 6 [0m|[1;37m 7 [0m|[1;37m 8 [0m|[1;37m 9 [0m|[1;37m : [0m|[1;37m ; [0m|[1;37m < [0m|[1;37m = [0m|[1;37m > [0m|[1;37m ? [0m
|
||||
---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---
|
||||
[1;33m4 [0m|[1;37m @ [0m|[1;37m A [0m|[1;37m B [0m|[1;37m C [0m|[1;37m D [0m|[1;37m E [0m|[1;37m F [0m|[1;37m G [0m|[1;37m H [0m|[1;37m I [0m|[1;37m J [0m|[1;37m K [0m|[1;37m L [0m|[1;37m M [0m|[1;37m N [0m|[1;37m O [0m
|
||||
[1;33m5 [0m|[1;37m P [0m|[1;37m Q [0m|[1;37m R [0m|[1;37m S [0m|[1;37m T [0m|[1;37m U [0m|[1;37m V [0m|[1;37m W [0m|[1;37m X [0m|[1;37m Y [0m|[1;37m Z [0m|[1;37m [ [0m|[1;37m \ [0m|[1;37m ] [0m|[1;37m ^ [0m|[1;37m _ [0m
|
||||
[1;33m6 [0m|[1;37m ` [0m|[1;37m a [0m|[1;37m b [0m|[1;37m c [0m|[1;37m d [0m|[1;37m e [0m|[1;37m f [0m|[1;37m g [0m|[1;37m h [0m|[1;37m i [0m|[1;37m j [0m|[1;37m k [0m|[1;37m l [0m|[1;37m m [0m|[1;37m n [0m|[1;37m o [0m
|
||||
[1;33m7 [0m|[1;37m p [0m|[1;37m q [0m|[1;37m r [0m|[1;37m s [0m|[1;37m t [0m|[1;37m u [0m|[1;37m v [0m|[1;37m w [0m|[1;37m x [0m|[1;37m y [0m|[1;37m z [0m|[1;37m { [0m|[1;37m | [0m|[1;37m } [0m|[1;37m ~ [0m|[1;37m [0m
|
||||
---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---
|
||||
[1;33m8 [0m|[1;37m € [0m|[1;37m <20> [0m|[1;37m ‚ [0m|[1;37m ƒ [0m|[1;37m „ [0m|[1;37m … [0m|[1;37m † [0m|[1;37m ‡ [0m|[1;37m ˆ [0m|[1;37m ‰ [0m|[1;37m Š [0m|[1;37m ‹ [0m|[1;37m Œ [0m|[1;37m <20> [0m|[1;37m Ž [0m|[1;37m <20> [0m
|
||||
[1;33m9 [0m|[1;37m <20> [0m|[1;37m ‘ [0m|[1;37m ’ [0m|[1;37m “ [0m|[1;37m ” [0m|[1;37m • [0m|[1;37m – [0m|[1;37m — [0m|[1;37m ˜ [0m|[1;37m ™ [0m|[1;37m š [0m|[1;37m › [0m|[1;37m œ [0m|[1;37m <20> [0m|[1;37m ž [0m|[1;37m Ÿ [0m
|
||||
[1;33mA [0m|[1;37m [0m|[1;37m ¡ [0m|[1;37m ¢ [0m|[1;37m £ [0m|[1;37m ¤ [0m|[1;37m ¥ [0m|[1;37m ¦ [0m|[1;37m § [0m|[1;37m ¨ [0m|[1;37m © [0m|[1;37m ª [0m|[1;37m « [0m|[1;37m ¬ [0m|[1;37m [0m|[1;37m ® [0m|[1;37m ¯ [0m
|
||||
[1;33mB [0m|[1;37m ° [0m|[1;37m ± [0m|[1;37m ² [0m|[1;37m ³ [0m|[1;37m ´ [0m|[1;37m µ [0m|[1;37m ¶ [0m|[1;37m · [0m|[1;37m ¸ [0m|[1;37m ¹ [0m|[1;37m º [0m|[1;37m » [0m|[1;37m ¼ [0m|[1;37m ½ [0m|[1;37m ¾ [0m|[1;37m ¿ [0m
|
||||
---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---
|
||||
[1;33mC [0m|[1;37m À [0m|[1;37m Á [0m|[1;37m  [0m|[1;37m à [0m|[1;37m Ä [0m|[1;37m Å [0m|[1;37m Æ [0m|[1;37m Ç [0m|[1;37m È [0m|[1;37m É [0m|[1;37m Ê [0m|[1;37m Ë [0m|[1;37m Ì [0m|[1;37m Í [0m|[1;37m Î [0m|[1;37m Ï [0m
|
||||
[1;33mD [0m|[1;37m Ð [0m|[1;37m Ñ [0m|[1;37m Ò [0m|[1;37m Ó [0m|[1;37m Ô [0m|[1;37m Õ [0m|[1;37m Ö [0m|[1;37m × [0m|[1;37m Ø [0m|[1;37m Ù [0m|[1;37m Ú [0m|[1;37m Û [0m|[1;37m Ü [0m|[1;37m Ý [0m|[1;37m Þ [0m|[1;37m ß [0m
|
||||
[1;33mE [0m|[1;37m à [0m|[1;37m á [0m|[1;37m â [0m|[1;37m ã [0m|[1;37m ä [0m|[1;37m å [0m|[1;37m æ [0m|[1;37m ç [0m|[1;37m è [0m|[1;37m é [0m|[1;37m ê [0m|[1;37m ë [0m|[1;37m ì [0m|[1;37m í [0m|[1;37m î [0m|[1;37m ï [0m
|
||||
[1;33mF [0m|[1;37m ð [0m|[1;37m ñ [0m|[1;37m ò [0m|[1;37m ó [0m|[1;37m ô [0m|[1;37m õ [0m|[1;37m ö [0m|[1;37m ÷ [0m|[1;37m ø [0m|[1;37m ù [0m|[1;37m ú [0m|[1;37m û [0m|[1;37m ü [0m|[1;37m ý [0m|[1;37m þ [0m|[1;37m ÿ [0m
|
||||
|
||||
|
||||
[1;31m cOLOR tEST[0m
|
||||
[1;30m ~~~~~~~~~~[0m
|
||||
|
||||
[0;30;40m°±²Û[0;30;41m°±²Û[0;30;42m°±²Û[0;30;43m°±²Û[0;30;44m°±²Û[0;30;45m°±²Û[0;30;46m°±²Û[0;30;47m°±²Û[1;30;40m°±²Û[1;30;41m°±²Û[1;30;42m°±²Û[1;30;43m°±²Û[1;30;44m°±²Û[1;30;45m°±²Û[1;30;46m°±²Û[1;30;47m°±²Û[0m
|
||||
[0;31;40m°±²Û[0;31;41m°±²Û[0;31;42m°±²Û[0;31;43m°±²Û[0;31;44m°±²Û[0;31;45m°±²Û[0;31;46m°±²Û[0;31;47m°±²Û[1;31;40m°±²Û[1;31;41m°±²Û[1;31;42m°±²Û[1;31;43m°±²Û[1;31;44m°±²Û[1;31;45m°±²Û[1;31;46m°±²Û[1;31;47m°±²Û[0m
|
||||
[0;32;40m°±²Û[0;32;41m°±²Û[0;32;42m°±²Û[0;32;43m°±²Û[0;32;44m°±²Û[0;32;45m°±²Û[0;32;46m°±²Û[0;32;47m°±²Û[1;32;40m°±²Û[1;32;41m°±²Û[1;32;42m°±²Û[1;32;43m°±²Û[1;32;44m°±²Û[1;32;45m°±²Û[1;32;46m°±²Û[1;32;47m°±²Û[0m
|
||||
[0;33;40m°±²Û[0;33;41m°±²Û[0;33;42m°±²Û[0;33;43m°±²Û[0;33;44m°±²Û[0;33;45m°±²Û[0;33;46m°±²Û[0;33;47m°±²Û[1;33;40m°±²Û[1;33;41m°±²Û[1;33;42m°±²Û[1;33;43m°±²Û[1;33;44m°±²Û[1;33;45m°±²Û[1;33;46m°±²Û[1;33;47m°±²Û[0m
|
||||
[0;34;40m°±²Û[0;34;41m°±²Û[0;34;42m°±²Û[0;34;43m°±²Û[0;34;44m°±²Û[0;34;45m°±²Û[0;34;46m°±²Û[0;34;47m°±²Û[1;34;40m°±²Û[1;34;41m°±²Û[1;34;42m°±²Û[1;34;43m°±²Û[1;34;44m°±²Û[1;34;45m°±²Û[1;34;46m°±²Û[1;34;47m°±²Û[0m
|
||||
[0;35;40m°±²Û[0;35;41m°±²Û[0;35;42m°±²Û[0;35;43m°±²Û[0;35;44m°±²Û[0;35;45m°±²Û[0;35;46m°±²Û[0;35;47m°±²Û[1;35;40m°±²Û[1;35;41m°±²Û[1;35;42m°±²Û[1;35;43m°±²Û[1;35;44m°±²Û[1;35;45m°±²Û[1;35;46m°±²Û[1;35;47m°±²Û[0m
|
||||
[0;36;40m°±²Û[0;36;41m°±²Û[0;36;42m°±²Û[0;36;43m°±²Û[0;36;44m°±²Û[0;36;45m°±²Û[0;36;46m°±²Û[0;36;47m°±²Û[1;36;40m°±²Û[1;36;41m°±²Û[1;36;42m°±²Û[1;36;43m°±²Û[1;36;44m°±²Û[1;36;45m°±²Û[1;36;46m°±²Û[1;36;47m°±²Û[0m
|
||||
[0;37;40m°±²Û[0;37;41m°±²Û[0;37;42m°±²Û[0;37;43m°±²Û[0;37;44m°±²Û[0;37;45m°±²Û[0;37;46m°±²Û[0;37;47m°±²Û[1;37;40m°±²Û[1;37;41m°±²Û[1;37;42m°±²Û[1;37;43m°±²Û[1;37;44m°±²Û[1;37;45m°±²Û[1;37;46m°±²Û[1;37;47m°±²Û[0m
|
||||
[5;30;40m°±²Û[5;30;41m°±²Û[5;30;42m°±²Û[5;30;43m°±²Û[5;30;44m°±²Û[5;30;45m°±²Û[5;30;46m°±²Û[5;30;47m°±²Û[1;5;30;40m°±²Û[1;5;30;41m°±²Û[1;5;30;42m°±²Û[1;5;30;43m°±²Û[1;5;30;44m°±²Û[1;5;30;45m°±²Û[1;5;30;46m°±²Û[1;5;30;47m°±²Û[0m
|
||||
[5;31;40m°±²Û[5;31;41m°±²Û[5;31;42m°±²Û[5;31;43m°±²Û[5;31;44m°±²Û[5;31;45m°±²Û[5;31;46m°±²Û[5;31;47m°±²Û[1;5;31;40m°±²Û[1;5;31;41m°±²Û[1;5;31;42m°±²Û[1;5;31;43m°±²Û[1;5;31;44m°±²Û[1;5;31;45m°±²Û[1;5;31;46m°±²Û[1;5;31;47m°±²Û[0m
|
||||
[5;32;40m°±²Û[5;32;41m°±²Û[5;32;42m°±²Û[5;32;43m°±²Û[5;32;44m°±²Û[5;32;45m°±²Û[5;32;46m°±²Û[5;32;47m°±²Û[1;5;32;40m°±²Û[1;5;32;41m°±²Û[1;5;32;42m°±²Û[1;5;32;43m°±²Û[1;5;32;44m°±²Û[1;5;32;45m°±²Û[1;5;32;46m°±²Û[1;5;32;47m°±²Û[0m
|
||||
[5;33;40m°±²Û[5;33;41m°±²Û[5;33;42m°±²Û[5;33;43m°±²Û[5;33;44m°±²Û[5;33;45m°±²Û[5;33;46m°±²Û[5;33;47m°±²Û[1;5;33;40m°±²Û[1;5;33;41m°±²Û[1;5;33;42m°±²Û[1;5;33;43m°±²Û[1;5;33;44m°±²Û[1;5;33;45m°±²Û[1;5;33;46m°±²Û[1;5;33;47m°±²Û[0m
|
||||
[5;34;40m°±²Û[5;34;41m°±²Û[5;34;42m°±²Û[5;34;43m°±²Û[5;34;44m°±²Û[5;34;45m°±²Û[5;34;46m°±²Û[5;34;47m°±²Û[1;5;34;40m°±²Û[1;5;34;41m°±²Û[1;5;34;42m°±²Û[1;5;34;43m°±²Û[1;5;34;44m°±²Û[1;5;34;45m°±²Û[1;5;34;46m°±²Û[1;5;34;47m°±²Û[0m
|
||||
[5;35;40m°±²Û[5;35;41m°±²Û[5;35;42m°±²Û[5;35;43m°±²Û[5;35;44m°±²Û[5;35;45m°±²Û[5;35;46m°±²Û[5;35;47m°±²Û[1;5;35;40m°±²Û[1;5;35;41m°±²Û[1;5;35;42m°±²Û[1;5;35;43m°±²Û[1;5;35;44m°±²Û[1;5;35;45m°±²Û[1;5;35;46m°±²Û[1;5;35;47m°±²Û[0m
|
||||
[5;36;40m°±²Û[5;36;41m°±²Û[5;36;42m°±²Û[5;36;43m°±²Û[5;36;44m°±²Û[5;36;45m°±²Û[5;36;46m°±²Û[5;36;47m°±²Û[1;5;36;40m°±²Û[1;5;36;41m°±²Û[1;5;36;42m°±²Û[1;5;36;43m°±²Û[1;5;36;44m°±²Û[1;5;36;45m°±²Û[1;5;36;46m°±²Û[1;5;36;47m°±²Û[0m
|
||||
[5;37;40m°±²Û[5;37;41m°±²Û[5;37;42m°±²Û[5;37;43m°±²Û[5;37;44m°±²Û[5;37;45m°±²Û[5;37;46m°±²Û[5;37;47m°±²Û[1;5;37;40m°±²Û[1;5;37;41m°±²Û[1;5;37;42m°±²Û[1;5;37;43m°±²Û[1;5;37;44m°±²Û[1;5;37;45m°±²Û[1;5;37;46m°±²Û[1;5;37;47m°±²Û[0m
|
||||
|
||||
[0m
|
||||
|
||||
@@ -393,7 +393,7 @@
|
||||
},
|
||||
editorMode: edit
|
||||
editorType: email
|
||||
messageAreaName: private_mail
|
||||
messageAreaTag: private_mail
|
||||
toUserId: 1 /* always to +op */
|
||||
}
|
||||
form: {
|
||||
@@ -806,7 +806,7 @@
|
||||
},
|
||||
editorMode: edit
|
||||
editorType: email
|
||||
messageAreaName: private_mail
|
||||
messageAreaTag: private_mail
|
||||
toUserId: 1 /* always to +op */
|
||||
}
|
||||
form: {
|
||||
@@ -1019,6 +1019,10 @@
|
||||
value: { command: "P" }
|
||||
action: @menu:messageAreaNewPost
|
||||
}
|
||||
{
|
||||
value: { command: "J" }
|
||||
action: @menu:messageAreaChangeCurrentConference
|
||||
}
|
||||
{
|
||||
value: { command: "C" }
|
||||
action: @menu:messageAreaChangeCurrentArea
|
||||
@@ -1041,7 +1045,39 @@
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
messageAreaChangeCurrentConference: {
|
||||
art: CCHANGE
|
||||
module: msg_conf_list
|
||||
form: {
|
||||
0: {
|
||||
mci: {
|
||||
VM1: {
|
||||
focus: true
|
||||
submit: true
|
||||
argName: conf
|
||||
}
|
||||
}
|
||||
submit: {
|
||||
*: [
|
||||
{
|
||||
value: { conf: null }
|
||||
action: @method:changeConference
|
||||
}
|
||||
]
|
||||
}
|
||||
actionKeys: [
|
||||
{
|
||||
keys: [ "escape", "q", "shift + q" ]
|
||||
action: @systemMethod:prevMenu
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
messageAreaChangeCurrentArea: {
|
||||
// :TODO: rename this art to ACHANGE
|
||||
art: CHANGE
|
||||
module: msg_area_list
|
||||
form: {
|
||||
@@ -1070,6 +1106,7 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
messageAreaMessageList: {
|
||||
module: msg_list
|
||||
art: MSGLIST
|
||||
@@ -1163,7 +1200,7 @@
|
||||
{
|
||||
value: { 1: 0 }
|
||||
action: @method:prevMessage
|
||||
}
|
||||
}
|
||||
{
|
||||
value: { 1: 1 }
|
||||
action: @method:nextMessage
|
||||
|
||||
@@ -5,7 +5,6 @@ var MenuModule = require('../core/menu_module.js').MenuModule;
|
||||
var ViewController = require('../core/view_controller.js').ViewController;
|
||||
var messageArea = require('../core/message_area.js');
|
||||
var strUtil = require('../core/string_util.js');
|
||||
//var msgDb = require('./database.js').dbs.message;
|
||||
|
||||
var async = require('async');
|
||||
var assert = require('assert');
|
||||
@@ -43,30 +42,33 @@ function MessageAreaListModule(options) {
|
||||
|
||||
var self = this;
|
||||
|
||||
this.messageAreas = messageArea.getAvailableMessageAreas();
|
||||
this.messageAreas = messageArea.getSortedAvailMessageAreasByConfTag(
|
||||
self.client.user.properties.message_conf_tag,
|
||||
{ client : self.client }
|
||||
);
|
||||
|
||||
this.menuMethods = {
|
||||
changeArea : function(formData, extraArgs) {
|
||||
if(1 === formData.submitId) {
|
||||
var areaName = self.messageAreas[formData.value.area].name;
|
||||
const areaTag = self.messageAreas[formData.value.area].areaTag;
|
||||
|
||||
messageArea.changeMessageArea(self.client, areaName, function areaChanged(err) {
|
||||
if(err) {
|
||||
self.client.term.pipeWrite('\n|00Cannot change area: ' + err.message + '\n');
|
||||
messageArea.changeMessageArea(self.client, areaTag, function areaChanged(err) {
|
||||
if(err) {
|
||||
self.client.term.pipeWrite('\n|00Cannot change area: ' + err.message + '\n');
|
||||
|
||||
setTimeout(function timeout() {
|
||||
self.prevMenu();
|
||||
}, 1000);
|
||||
} else {
|
||||
self.prevMenu();
|
||||
}
|
||||
});
|
||||
setTimeout(function timeout() {
|
||||
self.prevMenu();
|
||||
}, 1000);
|
||||
} else {
|
||||
self.prevMenu();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
this.setViewText = function(id, text) {
|
||||
var v = self.viewControllers.areaList.getView(id);
|
||||
const v = self.viewControllers.areaList.getView(id);
|
||||
if(v) {
|
||||
v.setText(text);
|
||||
}
|
||||
@@ -78,7 +80,7 @@ require('util').inherits(MessageAreaListModule, MenuModule);
|
||||
|
||||
MessageAreaListModule.prototype.mciReady = function(mciData, cb) {
|
||||
var self = this;
|
||||
var vc = self.viewControllers.areaList = new ViewController( { client : self.client } );
|
||||
const vc = self.viewControllers.areaList = new ViewController( { client : self.client } );
|
||||
|
||||
async.series(
|
||||
[
|
||||
@@ -99,26 +101,29 @@ MessageAreaListModule.prototype.mciReady = function(mciData, cb) {
|
||||
});
|
||||
},
|
||||
function populateAreaListView(callback) {
|
||||
var listFormat = self.menuConfig.config.listFormat || '{index} ) - {desc}';
|
||||
var focusListFormat = self.menuConfig.config.focusListFormat || listFormat;
|
||||
|
||||
var areaListItems = [];
|
||||
var focusListItems = [];
|
||||
|
||||
// :TODO: use _.map() here
|
||||
for(var i = 0; i < self.messageAreas.length; ++i) {
|
||||
areaListItems.push(listFormat.format(
|
||||
{ index : i, name : self.messageAreas[i].name, desc : self.messageAreas[i].desc } )
|
||||
);
|
||||
focusListItems.push(focusListFormat.format(
|
||||
{ index : i, name : self.messageAreas[i].name, desc : self.messageAreas[i].desc } )
|
||||
);
|
||||
}
|
||||
|
||||
var areaListView = vc.getView(1);
|
||||
|
||||
areaListView.setItems(areaListItems);
|
||||
areaListView.setFocusItems(focusListItems);
|
||||
const listFormat = self.menuConfig.config.listFormat || '{index} ) - {name}';
|
||||
const focusListFormat = self.menuConfig.config.focusListFormat || listFormat;
|
||||
|
||||
const areaListView = vc.getView(1);
|
||||
let i = 1;
|
||||
areaListView.setItems(_.map(self.messageAreas, v => {
|
||||
return listFormat.format({
|
||||
index : i++,
|
||||
areaTag : v.area.areaTag,
|
||||
name : v.area.name,
|
||||
desc : v.area.desc,
|
||||
});
|
||||
}));
|
||||
|
||||
i = 1;
|
||||
areaListView.setFocusItems(_.map(self.messageAreas, v => {
|
||||
return focusListFormat.format({
|
||||
index : i++,
|
||||
areaTag : v.area.areaTag,
|
||||
name : v.area.name,
|
||||
desc : v.area.desc,
|
||||
})
|
||||
}));
|
||||
|
||||
areaListView.redraw();
|
||||
|
||||
|
||||
@@ -1,12 +1,13 @@
|
||||
/* jslint node: true */
|
||||
'use strict';
|
||||
|
||||
var FullScreenEditorModule = require('../core/fse.js').FullScreenEditorModule;
|
||||
var Message = require('../core/message.js').Message;
|
||||
var user = require('../core/user.js');
|
||||
let FullScreenEditorModule = require('../core/fse.js').FullScreenEditorModule;
|
||||
//var Message = require('../core/message.js').Message;
|
||||
let persistMessage = require('../core/message_area.js').persistMessage;
|
||||
let user = require('../core/user.js');
|
||||
|
||||
var _ = require('lodash');
|
||||
var async = require('async');
|
||||
let _ = require('lodash');
|
||||
let async = require('async');
|
||||
|
||||
exports.getModule = AreaPostFSEModule;
|
||||
|
||||
@@ -24,7 +25,7 @@ function AreaPostFSEModule(options) {
|
||||
// we're posting, so always start with 'edit' mode
|
||||
this.editorMode = 'edit';
|
||||
|
||||
this.menuMethods.editModeMenuSave = function(formData, extraArgs) {
|
||||
this.menuMethods.editModeMenuSave = function() {
|
||||
|
||||
var msg;
|
||||
async.series(
|
||||
@@ -36,18 +37,25 @@ function AreaPostFSEModule(options) {
|
||||
});
|
||||
},
|
||||
function saveMessage(callback) {
|
||||
persistMessage(msg, callback);
|
||||
/*
|
||||
msg.persist(function persisted(err) {
|
||||
callback(err);
|
||||
});
|
||||
*/
|
||||
}
|
||||
],
|
||||
function complete(err) {
|
||||
if(err) {
|
||||
// :TODO:... sooooo now what?
|
||||
} else {
|
||||
console.log(msg); // :TODO: remove me -- probably log that one was saved, however.
|
||||
// note: not logging 'from' here as it's part of client.log.xxxx()
|
||||
self.client.log.info(
|
||||
{ to : msg.toUserName, subject : msg.subject, uuid : msg.uuid },
|
||||
'Message persisted'
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
self.nextMenu();
|
||||
}
|
||||
);
|
||||
@@ -56,11 +64,11 @@ function AreaPostFSEModule(options) {
|
||||
|
||||
require('util').inherits(AreaPostFSEModule, FullScreenEditorModule);
|
||||
|
||||
AreaPostFSEModule.prototype.enter = function(client) {
|
||||
AreaPostFSEModule.prototype.enter = function() {
|
||||
|
||||
if(_.isString(client.user.properties.message_area_name) && !_.isString(this.messageAreaName)) {
|
||||
this.messageAreaName = client.user.properties.message_area_name;
|
||||
if(_.isString(this.client.user.properties.message_area_tag) && !_.isString(this.messageAreaTag)) {
|
||||
this.messageAreaTag = this.client.user.properties.message_area_tag;
|
||||
}
|
||||
|
||||
AreaPostFSEModule.super_.prototype.enter.call(this, client);
|
||||
AreaPostFSEModule.super_.prototype.enter.call(this);
|
||||
};
|
||||
|
||||
@@ -72,7 +72,7 @@ function AreaViewFSEModule(options) {
|
||||
if(_.isString(extraArgs.menu)) {
|
||||
var modOpts = {
|
||||
extraArgs : {
|
||||
messageAreaName : self.messageAreaName,
|
||||
messageAreaTag : self.messageAreaTag,
|
||||
replyToMessage : self.message,
|
||||
}
|
||||
};
|
||||
|
||||
122
mods/msg_conf_list.js
Normal file
122
mods/msg_conf_list.js
Normal file
@@ -0,0 +1,122 @@
|
||||
/* jslint node: true */
|
||||
'use strict';
|
||||
|
||||
var MenuModule = require('../core/menu_module.js').MenuModule;
|
||||
var ViewController = require('../core/view_controller.js').ViewController;
|
||||
var messageArea = require('../core/message_area.js');
|
||||
|
||||
var async = require('async');
|
||||
var assert = require('assert');
|
||||
var _ = require('lodash');
|
||||
|
||||
exports.getModule = MessageConfListModule;
|
||||
|
||||
exports.moduleInfo = {
|
||||
name : 'Message Conference List',
|
||||
desc : 'Module for listing / choosing message conferences',
|
||||
author : 'NuSkooler',
|
||||
};
|
||||
|
||||
var MciCodesIds = {
|
||||
ConfList : 1,
|
||||
CurrentConf : 2,
|
||||
|
||||
// :TODO:
|
||||
// # areas in con
|
||||
//
|
||||
};
|
||||
|
||||
function MessageConfListModule(options) {
|
||||
MenuModule.call(this, options);
|
||||
|
||||
var self = this;
|
||||
|
||||
this.messageConfs = messageArea.getSortedAvailMessageConferences(self.client);
|
||||
|
||||
this.menuMethods = {
|
||||
changeConference : function(formData, extraArgs) {
|
||||
if(1 === formData.submitId) {
|
||||
const confTag = self.messageConfs[formData.value.conf].confTag;
|
||||
|
||||
messageArea.changeMessageConference(self.client, confTag, err => {
|
||||
if(err) {
|
||||
self.client.term.pipeWrite(`\n|00Cannot change conference: ${err.message}\n`);
|
||||
|
||||
setTimeout(function timeout() {
|
||||
self.prevMenu();
|
||||
}, 1000);
|
||||
} else {
|
||||
self.prevMenu();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
this.setViewText = function(id, text) {
|
||||
const v = self.viewControllers.areaList.getView(id);
|
||||
if(v) {
|
||||
v.setText(text);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
require('util').inherits(MessageConfListModule, MenuModule);
|
||||
|
||||
MessageConfListModule.prototype.mciReady = function(mciData, cb) {
|
||||
var self = this;
|
||||
const vc = self.viewControllers.areaList = new ViewController( { client : self.client } );
|
||||
|
||||
async.series(
|
||||
[
|
||||
function callParentMciReady(callback) {
|
||||
MessageConfListModule.super_.prototype.mciReady.call(this, mciData, callback);
|
||||
},
|
||||
function loadFromConfig(callback) {
|
||||
let loadOpts = {
|
||||
callingMenu : self,
|
||||
mciMap : mciData.menu,
|
||||
formId : 0,
|
||||
};
|
||||
|
||||
vc.loadFromMenuConfig(loadOpts, callback);
|
||||
},
|
||||
function populateConfListView(callback) {
|
||||
const listFormat = self.menuConfig.config.listFormat || '{index} ) - {name}';
|
||||
const focusListFormat = self.menuConfig.config.focusListFormat || listFormat;
|
||||
|
||||
const confListView = vc.getView(1);
|
||||
let i = 1;
|
||||
confListView.setItems(_.map(self.messageConfs, v => {
|
||||
return listFormat.format({
|
||||
index : i++,
|
||||
confTag : v.conf.confTag,
|
||||
name : v.conf.name,
|
||||
desc : v.conf.desc,
|
||||
});
|
||||
}));
|
||||
|
||||
i = 1;
|
||||
confListView.setFocusItems(_.map(self.messageConfs, v => {
|
||||
return focusListFormat.format({
|
||||
index : i++,
|
||||
confTag : v.conf.confTag,
|
||||
name : v.conf.name,
|
||||
desc : v.conf.desc,
|
||||
})
|
||||
}));
|
||||
|
||||
confListView.redraw();
|
||||
|
||||
callback(null);
|
||||
},
|
||||
function populateTextViews(callback) {
|
||||
// :TODO: populate other avail MCI, e.g. current conf name
|
||||
callback(null);
|
||||
}
|
||||
],
|
||||
function complete(err) {
|
||||
cb(err);
|
||||
}
|
||||
);
|
||||
};
|
||||
@@ -52,15 +52,15 @@ function MessageListModule(options) {
|
||||
var self = this;
|
||||
var config = this.menuConfig.config;
|
||||
|
||||
this.messageAreaName = config.messageAreaName;
|
||||
this.messageAreaTag = config.messageAreaTag;
|
||||
|
||||
if(options.extraArgs) {
|
||||
//
|
||||
// |extraArgs| can override |messageAreaName| provided by config
|
||||
// |extraArgs| can override |messageAreaTag| provided by config
|
||||
// as well as supply a pre-defined message list
|
||||
//
|
||||
if(options.extraArgs.messageAreaName) {
|
||||
this.messageAreaName = options.extraArgs.messageAreaName;
|
||||
if(options.extraArgs.messageAreaTag) {
|
||||
this.messageAreaTag = options.extraArgs.messageAreaTag;
|
||||
}
|
||||
|
||||
if(options.extraArgs.messageList) {
|
||||
@@ -73,7 +73,7 @@ function MessageListModule(options) {
|
||||
if(1 === formData.submitId) {
|
||||
var modOpts = {
|
||||
extraArgs : {
|
||||
messageAreaName : self.messageAreaName,
|
||||
messageAreaTag : self.messageAreaTag,
|
||||
messageList : self.messageList,
|
||||
messageIndex : formData.value.message,
|
||||
}
|
||||
@@ -94,15 +94,15 @@ function MessageListModule(options) {
|
||||
|
||||
require('util').inherits(MessageListModule, MenuModule);
|
||||
|
||||
MessageListModule.prototype.enter = function(client) {
|
||||
MessageListModule.super_.prototype.enter.call(this, client);
|
||||
MessageListModule.prototype.enter = function() {
|
||||
MessageListModule.super_.prototype.enter.call(this);
|
||||
|
||||
//
|
||||
// Config can specify |messageAreaName| else it comes from
|
||||
// Config can specify |messageAreaTag| else it comes from
|
||||
// the user's current area
|
||||
//
|
||||
if(!this.messageAreaName) {
|
||||
this.messageAreaName = client.user.properties.message_area_name;
|
||||
if(!this.messageAreaTag) {
|
||||
this.messageAreaTag = this.client.user.properties.message_area_tag;
|
||||
}
|
||||
};
|
||||
|
||||
@@ -110,6 +110,8 @@ MessageListModule.prototype.mciReady = function(mciData, cb) {
|
||||
var self = this;
|
||||
var vc = self.viewControllers.allViews = new ViewController( { client : self.client } );
|
||||
|
||||
var firstNewEntryIndex;
|
||||
|
||||
async.series(
|
||||
[
|
||||
function callParentMciReady(callback) {
|
||||
@@ -130,7 +132,7 @@ MessageListModule.prototype.mciReady = function(mciData, cb) {
|
||||
if(_.isArray(self.messageList)) {
|
||||
callback(0 === self.messageList.length ? new Error('No messages in area') : null);
|
||||
} else {
|
||||
messageArea.getMessageListForArea( { client : self.client }, self.messageAreaName, function msgs(err, msgList) {
|
||||
messageArea.getMessageListForArea( { client : self.client }, self.messageAreaTag, function msgs(err, msgList) {
|
||||
if(msgList && 0 === msgList.length) {
|
||||
callback(new Error('No messages in area'));
|
||||
} else {
|
||||
@@ -141,7 +143,7 @@ MessageListModule.prototype.mciReady = function(mciData, cb) {
|
||||
}
|
||||
},
|
||||
function getLastReadMesageId(callback) {
|
||||
messageArea.getMessageAreaLastReadId(self.client.user.userId, self.messageAreaName, function lastRead(err, lastReadId) {
|
||||
messageArea.getMessageAreaLastReadId(self.client.user.userId, self.messageAreaTag, function lastRead(err, lastReadId) {
|
||||
self.lastReadId = lastReadId || 0;
|
||||
callback(null); // ignore any errors, e.g. missing value
|
||||
});
|
||||
@@ -158,6 +160,13 @@ MessageListModule.prototype.mciReady = function(mciData, cb) {
|
||||
var msgNum = 1;
|
||||
|
||||
function getMsgFmtObj(mle) {
|
||||
|
||||
if(_.isUndefined(firstNewEntryIndex) &&
|
||||
mle.messageId > self.lastReadId)
|
||||
{
|
||||
firstNewEntryIndex = msgNum - 1;
|
||||
}
|
||||
|
||||
return {
|
||||
msgNum : msgNum++,
|
||||
subj : mle.subject,
|
||||
@@ -180,14 +189,18 @@ MessageListModule.prototype.mciReady = function(mciData, cb) {
|
||||
msgListView.on('index update', function indexUpdated(idx) {
|
||||
self.setViewText(MciCodesIds.MsgSelNum, (idx + 1).toString());
|
||||
});
|
||||
|
||||
|
||||
msgListView.redraw();
|
||||
|
||||
if(firstNewEntryIndex > 0) {
|
||||
msgListView.setFocusItemIndex(firstNewEntryIndex);
|
||||
}
|
||||
|
||||
callback(null);
|
||||
},
|
||||
function populateOtherMciViews(callback) {
|
||||
|
||||
self.setViewText(MciCodesIds.MsgAreaDesc, messageArea.getMessageAreaByName(self.messageAreaName).desc);
|
||||
self.setViewText(MciCodesIds.MsgAreaDesc, messageArea.getMessageAreaByTag(self.messageAreaTag).name);
|
||||
self.setViewText(MciCodesIds.MsgSelNum, (vc.getView(MciCodesIds.MsgList).getData() + 1).toString());
|
||||
self.setViewText(MciCodesIds.MsgTotal, self.messageList.length.toString());
|
||||
|
||||
|
||||
26
mods/nua.js
26
mods/nua.js
@@ -5,7 +5,7 @@ var user = require('../core/user.js');
|
||||
var theme = require('../core/theme.js');
|
||||
var login = require('../core/system_menu_method.js').login;
|
||||
var Config = require('../core/config.js').config;
|
||||
var getDefaultMessageArea = require('../core/message_area.js').getDefaultMessageArea;
|
||||
var messageArea = require('../core/message_area.js');
|
||||
|
||||
var async = require('async');
|
||||
|
||||
@@ -65,6 +65,16 @@ function NewUserAppModule(options) {
|
||||
|
||||
newUser.username = formData.value.username;
|
||||
|
||||
//
|
||||
// We have to disable ACS checks for initial default areas as the user is not yet ready
|
||||
//
|
||||
var confTag = messageArea.getDefaultMessageConferenceTag(self.client, true); // true=disableAcsCheck
|
||||
var areaTag = messageArea.getDefaultMessageAreaTagByConfTag(self.client, confTag, true); // true=disableAcsCheck
|
||||
|
||||
// can't store undefined!
|
||||
confTag = confTag || '';
|
||||
areaTag = areaTag || '';
|
||||
|
||||
newUser.properties = {
|
||||
real_name : formData.value.realName,
|
||||
birthdate : new Date(Date.parse(formData.value.birthdate)).toISOString(),
|
||||
@@ -74,14 +84,12 @@ function NewUserAppModule(options) {
|
||||
email_address : formData.value.email,
|
||||
web_address : formData.value.web,
|
||||
account_created : new Date().toISOString(),
|
||||
|
||||
message_area_name : getDefaultMessageArea().name,
|
||||
|
||||
message_conf_tag : confTag,
|
||||
message_area_tag : areaTag,
|
||||
|
||||
term_height : self.client.term.termHeight,
|
||||
term_width : self.client.term.termWidth,
|
||||
|
||||
// :TODO: This is set in User.create() -- proabbly don't need it here:
|
||||
//account_status : Config.users.requireActivation ? user.User.AccountStatus.inactive : user.User.AccountStatus.active,
|
||||
term_width : self.client.term.termWidth,
|
||||
|
||||
// :TODO: Other defaults
|
||||
// :TODO: should probably have a place to create defaults/etc.
|
||||
@@ -92,8 +100,8 @@ function NewUserAppModule(options) {
|
||||
} else {
|
||||
newUser.properties.theme_id = Config.defaults.theme;
|
||||
}
|
||||
|
||||
// :TODO: .create() should also validate email uniqueness!
|
||||
|
||||
// :TODO: User.create() should validate email uniqueness!
|
||||
newUser.create( { password : formData.value.password }, function created(err) {
|
||||
if(err) {
|
||||
self.client.log.info( { error : err, username : formData.value.username }, 'New user creation failed');
|
||||
|
||||
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.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -172,8 +172,8 @@
|
||||
|
||||
messageAreaChangeCurrentArea: {
|
||||
config: {
|
||||
listFormat: "|00|15{index} |07- |03{desc}"
|
||||
focusListFormat: "|00|19|15{index} - {desc}"
|
||||
listFormat: "|00|15{index} |07- |03{name}"
|
||||
focusListFormat: "|00|19|15{index} - {name}"
|
||||
}
|
||||
mci: {
|
||||
VM1: {
|
||||
@@ -310,6 +310,19 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
newScanMessageList: {
|
||||
config: {
|
||||
listFormat: "|00|15 {msgNum:<5.5}|03{subj:<29.29} |15{from:<20.20} {ts}"
|
||||
focusListFormat: "|00|19> |15{msgNum:<5.5}{subj:<29.29} {from:<20.20} {ts}"
|
||||
dateTimeFormat: ddd MMM Do
|
||||
}
|
||||
mci: {
|
||||
VM1: {
|
||||
height: 14
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2,7 +2,7 @@
|
||||
'use strict';
|
||||
|
||||
var MenuModule = require('../core/menu_module.js').MenuModule;
|
||||
var userDb = require('../core/database.js').dbs.user;
|
||||
//var userDb = require('../core/database.js').dbs.user;
|
||||
var getUserList = require('../core/user.js').getUserList;
|
||||
var ViewController = require('../core/view_controller.js').ViewController;
|
||||
|
||||
|
||||
@@ -84,7 +84,6 @@ WhosOnlineModule.prototype.mciReady = function(mciData, cb) {
|
||||
return listFormat.format(oe);
|
||||
}));
|
||||
|
||||
// :TODO: This is a hack until pipe codes are better implemented
|
||||
onlineListView.focusItems = onlineListView.items;
|
||||
|
||||
onlineListView.redraw();
|
||||
|
||||
Reference in New Issue
Block a user