Loading

bigtext

  1. alias mt {
  2.   if ($bigtext.unsupp($1-)) {
  3.     echo -ac info * Characters not supported by Big Text present in your message: $bigtext.unsupp($1-)
  4.     return
  5.   }
  6.   var %lia, %lib, %lic, %lid, %lie, %i 1, %text $strip($1-, bur), %colregex /^(\d\d?(?:,\d\d?)?)/
  7.  
  8.   var %regex = /(?<= $+ $chr(3) $+ [0-9]| $+ $chr(3) $+ [0-9][0-9]) $+ $chr(44) $+ \d\d?/g, %res, %dummy = $regsub(%text, %regex, $null, %text)
  9.  
  10.   while (%i <= $len(%text)) {
  11.     if ($mid(%text, %i, 1) == $chr(3)) {
  12.       var %lia $+(%lia, $chr(3)), %lib $+(%lib, $chr(3)), %lic $+(%lic, $chr(3)), %lid $+(%lid, $chr(3)), %lie $+(%lie, $chr(3))
  13.       if ($mid(%text, $calc(%i + 1), 1) != $chr(32)) && ($regex(mtcol, $mid(%text, $calc(%i + 1), $mid(%text, $calc(%i + 1), 0)), %colregex)) {
  14.         var %m $regml(mtcol, 1)
  15.         var %lia %lia $+ %m, %lib %lib $+ %m, %lic %lic $+ %m, %lid %lid $+ %m, %lie %lie $+ %m
  16.         inc %i $len(%m)
  17.       }
  18.     }
  19.     else {
  20.       tokenize 32 $bigtext.char($mid(%text, %i, 1))
  21.       var %lia $+(%lia, $1), %lib $+(%lib, $2), %lic $+(%lic, $3), %lid $+(%lid, $4), %lie $+(%lie, $5)
  22.       ; if ($bigtext.kern($mid(%text, %i, 2))) {
  23.       var %lia $+(%lia, .), %lib $+(%lib, .), %lic $+(%lic, .), %lid $+(%lid, .), %lie $+(%lie, .)
  24.       ; }
  25.     }
  26.     inc %i
  27.   }
  28.   say $bigtext.format(%lia)
  29.   say $bigtext.format(%lib)
  30.   say $bigtext.format(%lic)
  31.   say $bigtext.format(%lid)
  32.   say $bigtext.format(%lie)
  33. }
  34.  
  35. ; You may customize this alias however you want to.
  36. ; It is Big Text's font, used above.
  37. ; The return value consists of dots and X's, to denote
  38. ;   unlit and lit points in the font, respectively;
  39. ;   there are 5 tokens of the same length, each
  40. ;   corresponding to a line in the 5-line output.
  41. ; Note how the . and X's look like the characters;
  42. ;   you can use this to your advantage!
  43. alias -l bigtext.char {
  44.   if ($1 === $chr(32)) || ($1 === $null) return $&
  45.     ... $&
  46.     ... $&
  47.     ... $&
  48.     ... $&
  49.     ...
  50.   if ($1 === $chr(160)) return $&
  51.     ..... $&
  52.     ..... $&
  53.     ..... $&
  54.     ..... $&
  55.     .....
  56.   elseif ($1 == 0) return $&
  57.     .XXXX. $&
  58.     XX..XX $&
  59.     XX.XXX $&
  60.     XXX.XX $&
  61.     .XXXX.
  62.   elseif ($1 == 1) return $&
  63.     .XXXX $&
  64.     XX.XX $&
  65.     ...XX $&
  66.     ...XX $&
  67.     ...XX
  68.   elseif ($1 == 2) return $&
  69.     XXXXX. $&
  70.     ....XX $&
  71.     ..XX.. $&
  72.     XX.... $&
  73.     XXXXXX
  74.   elseif ($1 == 3) return $&
  75.     XXXXX. $&
  76.     ....XX $&
  77.     .XXXX. $&
  78.     ....XX $&
  79.     XXXXX.
  80.   elseif ($1 == 4) return $&
  81.     .....XXX. $&
  82.     ...XX.XX. $&
  83.     .XX...XX. $&
  84.     XXXXXXXXX $&
  85.     ......XX.
  86.   elseif ($1 == 5) return $&
  87.     XXXXX $&
  88.     XX... $&
  89.     XXXX. $&
  90.     ...XX $&
  91.     XXXX.
  92.   elseif ($1 == 6) return $&
  93.     .XXXX. $&
  94.     XX.... $&
  95.     XXXXX. $&
  96.     XX..XX $&
  97.     .XXXX.
  98.   elseif ($1 == 7) return $&
  99.     XXXXXX $&
  100.     ...XX. $&
  101.     ..XX.. $&
  102.     .XX... $&
  103.     XX....
  104.   elseif ($1 == 8) return $&
  105.     .XXXX. $&
  106.     XX..XX $&
  107.     .XXXX. $&
  108.     XX..XX $&
  109.     .XXXX.
  110.   elseif ($1 == 9) return $&
  111.     .XXXX. $&
  112.     XX..XX $&
  113.     .XXXXX $&
  114.     ....XX $&
  115.     .XXXX.
  116.   elseif ($1 == A) return $&
  117.     .XXXX. $&
  118.     XX..XX $&
  119.     XXXXXX $&
  120.     XX..XX $&
  121.     XX..XX
  122.   elseif ($1 == B) return $&
  123.     XXXXX. $&
  124.     XX..XX $&
  125.     XXXXX. $&
  126.     XX..XX $&
  127.     XXXXX.
  128.   elseif ($1 == C) return $&
  129.     .XXXX. $&
  130.     XX..XX $&
  131.     XX.... $&
  132.     XX..XX $&
  133.     .XXXX.
  134.   elseif ($1 == D) return $&
  135.     XXXX.. $&
  136.     XX.XX. $&
  137.     XX..XX $&
  138.     XX..XX $&
  139.     XXXXX.
  140.   elseif ($1 == E) return $&
  141.     XXXXX $&
  142.     XX... $&
  143.     XXXX. $&
  144.     XX... $&
  145.     XXXXX
  146.   elseif ($1 == F) return $&
  147.     XXXXX $&
  148.     XX... $&
  149.     XXXX. $&
  150.     XX... $&
  151.     XX...
  152.   elseif ($1 == G) return $&
  153.     .XXXX. $&
  154.     XX.... $&
  155.     XX.XXX $&
  156.     XX..XX $&
  157.     .XXXXX
  158.   elseif ($1 == H) return $&
  159.     XX...XX $&
  160.     XX...XX $&
  161.     XXXXXXX $&
  162.     XX...XX $&
  163.     XX...XX
  164.   elseif ($1 == I) return $&
  165.     XXXX $&
  166.     .XX. $&
  167.     .XX. $&
  168.     .XX. $&
  169.     XXXX
  170.   elseif ($1 == J) return $&
  171.     ....XX $&
  172.     ....XX $&
  173.     ....XX $&
  174.     XX..XX $&
  175.     .XXXX.
  176.   elseif ($1 == K) return $&
  177.     XX..XX $&
  178.     XX.XX. $&
  179.     XXXX.. $&
  180.     XX.XX. $&
  181.     XX..XX
  182.   elseif ($1 == L) return $&
  183.     XX... $&
  184.     XX... $&
  185.     XX... $&
  186.     XX... $&
  187.     XXXXX
  188.   elseif ($1 == M) return $&
  189.     XX....XX $&
  190.     XXX..XXX $&
  191.     XXXXXXXX $&
  192.     XX.XX.XX $&
  193.     XX....XX
  194.   elseif ($1 == N) return $&
  195.     XX..XX $&
  196.     XXX.XX $&
  197.     XXXXXX $&
  198.     XX.XXX $&
  199.     XX..XX
  200.   elseif ($1 == O) return $&
  201.     .XXXX. $&
  202.     XX..XX $&
  203.     XX..XX $&
  204.     XX..XX $&
  205.     .XXXX.
  206.   elseif ($1 == P) return $&
  207.     XXXXX. $&
  208.     XX..XX $&
  209.     XXXXX. $&
  210.     XX.... $&
  211.     XX....
  212.   elseif ($1 == Q) return $&
  213.     .XXXX.. $&
  214.     XX..XX. $&
  215.     XX..XX. $&
  216.     XX..XX. $&
  217.     .XXXXXX
  218.   elseif ($1 == R) return $&
  219.     XXXXX. $&
  220.     XX..XX $&
  221.     XXXXX. $&
  222.     XX..XX $&
  223.     XX..XX
  224.   elseif ($1 == S) return $&
  225.     .XXXX. $&
  226.     XX.... $&
  227.     .XXXX. $&
  228.     ....XX $&
  229.     XXXXX.
  230.   elseif ($1 == T) return $&
  231.     XXXXXX $&
  232.     ..XX.. $&
  233.     ..XX.. $&
  234.     ..XX.. $&
  235.     ..XX..
  236.   elseif ($1 == U) return $&
  237.     XX..XX $&
  238.     XX..XX $&
  239.     XX..XX $&
  240.     XX..XX $&
  241.     .XXXX.
  242.   elseif ($1 == V) return $&
  243.     XX....XX $&
  244.     XX....XX $&
  245.     .XX..XX. $&
  246.     ..XXXX.. $&
  247.     ...XX...
  248.   elseif ($1 == W) return $&
  249.     XX...XX $&
  250.     XX...XX $&
  251.     XX.X.XX $&
  252.     XXXXXXX $&
  253.     .XX.XX.
  254.   elseif ($1 == X) return $&
  255.     XX...XX $&
  256.     .XX.XX. $&
  257.     ..XXX.. $&
  258.     .XX.XX. $&
  259.     XX...XX
  260.   elseif ($1 == Y) return $&
  261.     XX..XX $&
  262.     XX..XX $&
  263.     .XXXX. $&
  264.     ..XX.. $&
  265.     ..XX..
  266.   elseif ($1 == Z) return $&
  267.     XXXXXX $&
  268.     ...XX. $&
  269.     ..XX.. $&
  270.     .XX... $&
  271.     XXXXXX
  272.   elseif ($1 == $chr(35)) return $&
  273.     .XX..XX. $&
  274.     XXXXXXXX $&
  275.     .XX..XX. $&
  276.     XXXXXXXX $&
  277.     .XX..XX.
  278.   elseif ($1 == ') return $&
  279.     .XX $&
  280.     XX. $&
  281.     ... $&
  282.     ... $&
  283.     ...
  284.   elseif ($1 == ") return $&
  285.     XX..XX $&
  286.     XX..XX $&
  287.     ...... $&
  288.     ...... $&
  289.     ......
  290.   elseif ($1 == +) return $&
  291.     ...... $&
  292.     ..XX.. $&
  293.     XXXXXX $&
  294.     ..XX.. $&
  295.     ......
  296.   elseif ($1 == =) return $&
  297.     ...... $&
  298.     XXXXXX $&
  299.     ...... $&
  300.     XXXXXX $&
  301.     ......
  302.   elseif ($1 == -) return $&
  303.     ...... $&
  304.     ...... $&
  305.     XXXXXX $&
  306.     ...... $&
  307.     ......
  308.   elseif ($1 == _) return $&
  309.     ...... $&
  310.     ...... $&
  311.     ...... $&
  312.     ...... $&
  313.     XXXXXX
  314.   elseif ($1 == ?) return $&
  315.     XXXXX $&
  316.     ...XX $&
  317.     ..XX.. $&
  318.     ...... $&
  319.     ..XX..
  320.   elseif ($1 == :) return $&
  321.     .. $&
  322.     XX $&
  323.     .. $&
  324.     XX $&
  325.     ..
  326.   elseif ($1 == !) return $&
  327.     XX $&
  328.     XX $&
  329.     XX $&
  330.     .. $&
  331.     XX
  332.   elseif ($1 == ?) return $&
  333.     XXX. $&
  334.     ..XX $&
  335.     .XX. $&
  336.     .... $&
  337.     .XX.
  338.   elseif ($1 == .) return $&
  339.     .. $&
  340.     .. $&
  341.     .. $&
  342.     .. $&
  343.     XX
  344.   elseif ($1 == /) return $&
  345.     ....XX $&
  346.     ...XX. $&
  347.     ..XX.. $&
  348.     .XX... $&
  349.     XX....
  350.   elseif ($1 == \) return $&
  351.     XX.... $&
  352.     .XX... $&
  353.     ..XX.. $&
  354.     ...XX. $&
  355.     ....XX
  356.   elseif ($1 == $chr(40)) return $&
  357.     ...XX $&
  358.     .XX.. $&
  359.     XX... $&
  360.     .XX.. $&
  361.     ...XX
  362.   elseif ($1 == $chr(41)) return $&
  363.     XX... $&
  364.     ..XX. $&
  365.     ...XX $&
  366.     ..XX. $&
  367.     XX...
  368.   elseif ($1 == $chr(37)) return $&
  369.     XX..XX $&
  370.     ...XX. $&
  371.     ..XX.. $&
  372.     .XX... $&
  373.     XX..XX
  374.   elseif ($1 == [) return $&
  375.     XXXXX $&
  376.     XX... $&
  377.     XX... $&
  378.     XX... $&
  379.     XXXXX
  380.   elseif ($1 == ]) return $&
  381.     XXXXX $&
  382.     ...XX $&
  383.     ...XX $&
  384.     ...XX $&
  385.     XXXXX
  386.   elseif ($1 == |) return $&
  387.     .XX. $&
  388.     .XX. $&
  389.     .XX. $&
  390.     .XX. $&
  391.     .XX.
  392.   elseif ($1 == <) return $&
  393.     ....XX $&
  394.     ..XX.. $&
  395.     XX.... $&
  396.     ..XX.. $&
  397.     ....XX
  398.   elseif ($1 == >) return $&
  399.     XX.... $&
  400.     ..XX.. $&
  401.     ....XX $&
  402.     ..XX.. $&
  403.     XX....
  404.   elseif ($1 == ?) return $&
  405.     .... $&
  406.     .... $&
  407.     .XX. $&
  408.     ..XX $&
  409.     XXX.
  410.   elseif ($1 == ,) return $&
  411.     ... $&
  412.     ... $&
  413.     XXX $&
  414.     .XX $&
  415.     XX.
  416.   elseif ($1 == $chr(42)) return $&
  417.     .XXXX.. $&
  418.     XX..XX. $&
  419.     XX..XX. $&
  420.     XX..XX. $&
  421.     .XXXXXX
  422. }
  423.  
  424. ; Returns all unsupported characters within a Big Text message
  425. ; Supported characters are a-z, space, digits, #'"+=?:!?./\()%-[]<>|?,
  426. alias bigtext.unsupp {
  427.   var %res, %dummy = $regsub($1-, /[]a-z  0-9# $+ $chr(44) $+ '+=?:!?./\\()%[|<>_?"?-]/igS, $null, %res)
  428.   return %res
  429. }
  430.  
  431. ; Returns $true if a space should be added between two characters,
  432. ;   or $false if not.
  433. ; Note: This is here only for aesthetic purposes. :)
  434. alias bigtext.kern {
  435.   var %res $true
  436.   if ($regex($1-, /^(.|[_GDSQL-]T|[TPFVY7/"]J|T\.|L[1Y\\"]|[LTK<[]-|-[]>%\\]|S1|T4|\?\.|\.\?|[467L\\]?|?[J/]|L'|\/\/|\\\\|?J|[_?]?|[?T_]_|>\.|\.<)$/i)) %res = $false
  437.   return %res
  438. }
  439.  
  440. ; Takes an input string of the form:
  441. ; .XX..XX....XX.XX.XXXXX
  442. ; And formats it for display.
  443. alias bigtext.format {
  444.   var %res, %i 1, %previous 0, %current, %curcolor, %colregex /^(\d\d?(?:,\d\d?)?)/
  445.   while (%i <= $len($1-)) {
  446.     if ($mid($1-, %i, 1) == $chr(3)) {
  447.       if ($regex(mtcol, $mid($1-, $calc(%i + 1), $mid($1-, $calc(%i + 1), 0)), %colregex)) {
  448.         if ($gettok($regml(mtcol, 1), 1, 44) != %curcolor) {
  449.           %curcolor = $gettok($regml(mtcol, 1), 1, 44)
  450.           if (%i != 1) && ($mid($1-, $calc(%i - 1), 1) == X) %res = %res $+ $chr(15)
  451.         }
  452.         inc %i $len($regml(mtcol, 1))
  453.       }
  454.       elseif (%curcolor) {
  455.         %curcolor =
  456.         if (%i != 1) && ($mid($1-, $calc(%i - 1), 1) == X) %res = %res $+ $chr(15)
  457.       }
  458.     }
  459.     else {
  460.       %current = $iif($mid($1-, %i, 1) == ., 0, 1)
  461.       if (%previous != %current) {
  462.         %previous = %current
  463.         if (%curcolor) {
  464.           if (%current) %res = %res $+ $chr(3) $+ %curcolor $+ , $+ %curcolor
  465.           else %res = %res $+ $chr(3)
  466.         }
  467.         else %res = %res $+ $chr(22)
  468.       }
  469.       %res = %res $+ $chr(160)
  470.     }
  471.     inc %i
  472.   }
  473.   return %res
  474. }

Comments