All pastes #405853 Raw Edit

Miscellany

public text v1 · immutable
·published 2007-03-21 23:53 UTC
rendered paste body
; ******************************************************************* 
; * Setup on load                                                   * 
; ******************************************************************* 
on *:load: { 
  echo -a *** Successfuly loaded Morse/Binary/Hex translation script by Urza 
  echo -a *** Usage: 
  echo -a *** /Morse, /Hex, /Oct and /Bin to send text publicly to the channel 
  echo -a *** /DeMorse, /DeHex, /DeOct and /DeBin To Decode privately 
  echo -a *** /ToMorse, /ToHex, /ToOct and /ToBin To Encode privately 
} 
; ******************************************************************* 
; * Switch between display styles                                   * 
; ******************************************************************* 
menu channel { 
  Morse/Binary/Hex 
  .Talk In 
  ..Morse: Morse $$?="What do you want to say?" 
  ..Binary: Bin $$?="What do you want to say?" 
  ..Octal: Oct $$?="What do you want to say?" 
  ..Hex: Hex $$?="What do you want to say?" 
  .Private Translation 
  ..To Morse: Tomorse $$?="What do you want to translate?" 
  ..From Morse: Demorse $$?="What do you want to translate?" 
  ..- 
  ..To Binary: Tobin $$?="What do you want to translate?" 
  ..From Binary: Debin $$?="What do you want to translate?" 
  ..- 
  ..To Octal: Tooct $$?="What do you want to translate?" 
  ..From Octal: Deoct $$?="What do you want to translate?" 
  ..- 
  ..To Hex: Tohex $$?="What do you want to translate?" 
  ..From Hex: Dehex $$?="What do you want to translate?" 
  .Use Prefix when sending.. 
  .. $iif($readini(settings.ini,Decodes,PrefixMsg) == on,$style(1)) Messages: { 
    writeini settings.ini Decodes PrefixMsg $iif($readini(settings.ini,Decodes,PrefixMsg) == on,off,on) 
    if ($readini(settings.ini,Decodes,PrefixMsg) == on) echo -a *** Encoded messages will now be prefixed with MORSE-, HEX-, OCT- and BIN-  
    else echo -a *** Encoded messages will no longer be prefixed  
  } 
  .. $iif($readini(settings.ini,Decodes,PrefixAct) == on,$style(1)) Actions: { 
    writeini settings.ini Decodes PrefixAct $iif($readini(settings.ini,Decodes,PrefixAct) == on,off,on) 
    if ($readini(settings.ini,Decodes,PrefixAct) == on) echo -a *** Encoded Actions will now be prefixed with MORSE-, HEX-, OCT- and BIN-  
    else echo -a *** Encoded Actions will no longer be prefixed. 
  } 
} 
alias formatnick return $iif($left($nick($chan,$nick).pnick,1) isin ~&@%+,$left($nick($chan,$nick).pnick,1) $+ $nick,$nick) 
alias formatme return $iif($left($nick($chan,$me).pnick,1) isin ~&@%+,$left($nick($chan,$me).pnick,1) $+ $me,$me) 
; ******************************************************************* 
; * Text/Action events - output translation                         * 
; ******************************************************************* 
on ^*:text:*:*: if ($check4decode($1-)) output Text $1- 
on ^*:action:*:*: if ($check4decode($1-)) output Action $1- 

alias -l TextPref return $color(normal) -gtli2 $iif($chan,$chan,$nick) $+(<,$iif($chan,$formatnick,$nick),>) 
alias -l ActPref return $color(action) -gtli2 $iif($chan,$chan,$nick) * $iif($chan,$formatnick,$nick) 

alias -l Output { 
  var %style = $1 | tokenize 32 $2- 

  window -g1 $iif($chan,$chan,$nick) 
  goto $check4decode($1-) 
  haltdef 

  :Morse 
  var %m = $iif($1 == MORSE-,$2-,$1-) 
  echo $iif(%style == text,$TextPref,$actpref) $1- $+(,$chr(40),Morse: $iif(%style == action,* $nick) $DecodeMorse(%m),$chr(41)) 
  halt 

  :Binary 
  var %b = $iif($1 == BIN-,$2-,$1-) 
  echo $iif(%style == text,$TextPref,$actpref) $1- $+(,$chr(40),Binary: $iif(%style == action,* $nick) $DecodeBase(2,8,%b),$chr(41))  
  halt 

  :Octal 
  var %o = $iif($1 == OCT-,$2-,$1-) 
  if ($DecodeBase(8,3,%o) == -INVALID-) goto Hex 
  echo $iif(%style == text,$TextPref,$actpref) $1- $+(,$chr(40),Octal: $iif(%style == action,* $nick) $DecodeBase(8,3,%o),$chr(41)) 
  halt 

  :Hex 
  var %h = $iif($1 == HEX-,$2-,$1-) 
  if ($DecodeBase(16,2,%h) == -INVALID-) return 
  echo $iif(%style == text,$TextPref,$actpref) $1- $+(,$chr(40),Hex: $iif(%style == action,* $nick) $DecodeBase(16,2,%h),$chr(41)) 
  halt 
} 


; ******************************************************************* 
; * Process text - Check if if decoding is required                 * 
; ******************************************************************* 
alias -l Check4Decode { 
  tokenize 32 $1- 
  var %whole = $len($1-) 
  ;*** Check For Morse ***  
  var %nonmorse = $len($remove($1-,.,-,/,$chr(32))) | var %morsepercent = $calc(100 - %nonmorse / %whole * 100) 
  ;*** Check For Binary *** 
  var %binary = $calc(%whole - $len($remove($1-,1,0))) | var %binPercent = $calc(%binary / %whole * 100) 
  ;*** Check For Octal *** 
  var %nonoctal = $len($remove($1-,0,1,2,3,4,5,6,7)) | var %octpercent = $calc(100 - %nonoctal / %whole * 100) 
  ;*** Check For hex *** 
  var %nonhex = $len($remove($1-,1,2,3,4,5,6,7,8,9,0,A,B,C,D,E,F)) | var %hexPercent = $calc(100 - %nonhex / %whole * 100) 

  if ($1 == MORSE-) || ((%morsepercent > 75) && ($DecodeMorse($1-) != $1-)) return Morse 
  elseif ($1 == BIN-) || ((%binpercent > 99) && ($len($1-) >= 8)) return Binary 
  elseif ($1 == OCT-) || ((%octpercent > 99) && ($len($1-) >= 3)) return Octal 
  elseif ($1 == HEX-) || ((%hexpercent > 99) && ($len($1-) >= 2)) return Hex 
} 

; ******************************************************************* 
; * Base X Encryption/Decryption Aliases                            * 
; ******************************************************************* 
alias -l DecodeBase { 
  var %base = $1 | var %charlength = $2 | var %Original = $remove($3-,$chr(32)) 
  while (%Original) { 
    var %translatechar = $base($left(%Original,%charlength),%base,10) 
    if ((%translatechar > 126) || (%translatechar < 32)) && (!%noinvalid) return -INVALID- 
    var %translate = $chr(%translatechar) 
    if (%translatechar = 32) var %message = %message %translate 
    else var %message = %message $+ %translate 
    var %Original = $right(%Original,- $+ %charlength) 
  } 
  unset %noinvalid 
  return %message 
} 

alias EncodeBase { 
  var %base = $1 | var %charlength = $2 | var %msg = $3- 
  while (%msg) { 
    var %basechar = $asc($left(%msg,1)) 
    var %Encoded = %Encoded $+ $+($str(0,$calc(%charlength - $len($base(%basechar,10,%base)))),$base(%basechar,10,%base)) 
    var %msg = $right(%msg,-1) 
    inc %x 
  } 
  return %Encoded 
} 


; ******************************************************************* 
; * Binary Send/Translate aliases                                   * 
; ******************************************************************* 
alias debin { set %noinvalid on | echo 10 -ai2 Binary Translation: $DecodeBase(2,8,$1-) } 
alias tobin echo 10 -ai2 Binary: $EncodeBase(2,8,$1-) 
alias binary { bin $1- } 
alias bin { 
  .msg $active $iif($readini(settings.ini,Decodes,PrefixMsg) == on,BIN-) $EncodeBase(2,8,$1-) 
  echo $color(own) -ai2 $timestamp $+(<,$iif($chan,$formatme,$me),>) $iif($readini(settings.ini,Decodes,PrefixMsg) == on,BIN-) $EncodeBase(2,8,$1-) $+($chr(40),Binary: $1-,$chr(41)) 
} 
alias binme { 
  .describe $active $iif($readini(settings.ini,Decodes,PrefixAct) == on,BIN-) $EncodeBase(2,8,$1-) 
  echo $color(action) -ai2 $timestamp * $iif($chan,$formatme,$me) $iif($readini(settings.ini,Decodes,PrefixAct) == on,BIN-) $EncodeBase(2,8,$1-) $+($chr(40),Binary: * $me $1-,$chr(41)) 
} 

; ******************************************************************* 
; * Octal Send/Translate aliases                                    * 
; ******************************************************************* 
alias deOct echo 10 -ai2 Octal Translation: $DecodeBase(8,3,$1-) 
alias toOct echo 10 -ai2 Octal: $EncodeBase(8,3,$1-) 
alias Octal { Oct $1- } 
alias Oct { 
  .msg $active $iif($readini(settings.ini,Decodes,PrefixMsg) == on,OCT-) $EncodeBase(8,3,$1-) 
  echo $color(own) -ai2 $timestamp $+(<,$iif($chan,$formatme,$me),>) $iif($readini(settings.ini,Decodes,PrefixMsg) == on,OCT-) $EncodeBase(8,3,$1-) $+($chr(40),Octal: $1-,$chr(41)) 
} 
alias octme { 
  .describe $active $iif($readini(settings.ini,Decodes,PrefixAct) == on,OCT-) $EncodeBase(8,3,$1-) 
  echo $color(action) -ai2 $timestamp * $iif($chan,$formatme,$me) $iif($readini(settings.ini,Decodes,PrefixAct) == on,OCT-) $EncodeBase(8,3,$1-) $+($chr(40),Octal: * $me $1-,$chr(41)) 
} 

; ******************************************************************* 
; * Hex Send/Translate aliases                                      * 
; ******************************************************************* 
alias dehex echo 10 -ai2 Hex Translation: $DecodeBase(16,2,$1-) 
alias tohex echo 10 -ai2 Hex: $EncodeBase(16,2,$1-) 
alias hex { 
  .msg $active $iif($readini(settings.ini,Decodes,PrefixMsg) == on,HEX-) $EncodeBase(16,2,$1-) 
  echo $color(own) -ai2 $timestamp $+(<,$iif($chan,$formatme,$me),>) $iif($readini(settings.ini,Decodes,PrefixMsg) == on,HEX-) $EncodeBase(16,2,$1-) $+($chr(40),Hex: $1-,$chr(41)) 
} 
alias hexme { 
  .describe $active $iif($readini(settings.ini,Decodes,PrefixAct) == on,HEX-) $EncodeBase(16,2,$1-) 
  echo $color(action) -ai2 $timestamp * $iif($chan,$formatme,$me) $iif($readini(settings.ini,Decodes,PrefixAct) == on,HEX-) $EncodeBase(16,2,$1-) $+($chr(40),Hex: * $me $1-,$chr(41)) 
} 

; ******************************************************************* 
; * Morse Send/Translate aliases                                    * 
; ******************************************************************* 
alias demorse { echo 10 -a Morse Code Translation: $DecodeMorse($1-) } 
alias tomorse { echo 10 -a Morse Code: $encodeMorse($1-) } 
alias morse { 
  .msg $active $iif($readini(settings.ini,Decodes,PrefixMsg) == on,MORSE-) $EncodeMorse($1-) 
  echo $color(own) -ai2 $timestamp $+(<,$iif($chan,$formatme,$me),>) $iif($readini(settings.ini,Decodes,PrefixMsg) == on,MORSE-) $EncodeMorse($1-) $+($chr(40),Morse: $1-,$chr(41)) 
} 
alias morseme { 
  .describe $active $iif($readini(settings.ini,Decodes,PrefixAct) == on,MORSE-) $EncodeMorse($1-) 
  echo $color(action) -ai2 $timestamp * $iif($chan,$formatme,$me) $iif($readini(settings.ini,Decodes,PrefixAct) == on,MORSE-) $EncodeMorse($1-) $+($chr(40),Morse: * $me $1-,$chr(41)) 
} 

; ******************************************************************* 
; * Morse Encryption/Decryption Aliases                             * 
; ******************************************************************* 
alias EncodeMorse { 
  var %msg = $1- 
  var %x = 1 
  while (%x <= $len(%msg)) { 
    var %morse = %morse $encmorse($mid(%msg,%x,1)) 
    inc %x 
  } 
  return %morse 
} 
alias DecodeMorse { 
  tokenize 32 $1- 
  var %x = 1 
  while (%x <= $0) { 
    var %morse = %morse $+ $decmorse($ [ $+ [ %x ] ]) 
    inc %x 
  } 
  var %morse = $replacecs(%morse,-SPACEHOLDER-,$chr(32)) 

  return %morse 
} 

; ******************************************************************* 
; * Mose Code Character translation aliases                         * 
; ******************************************************************* 
alias encmorse { 
  if ($1 == a) return .- 
  elseif ($1 == b) return -... 
  elseif ($1 == c) return -.-. 
  elseif ($1 == d) return -.. 
  elseif ($1 == e) return . 
  elseif ($1 == f) return ..-. 
  elseif ($1 == g) return --. 
  elseif ($1 == h) return .... 
  elseif ($1 == i) return .. 
  elseif ($1 == j) return .--- 
  elseif ($1 == k) return -.- 
  elseif ($1 == l) return .-.. 
  elseif ($1 == m) return -- 
  elseif ($1 == n) return -. 
  elseif ($1 == o) return --- 
  elseif ($1 == p) return .--. 
  elseif ($1 == q) return --.- 
  elseif ($1 == r) return .-. 
  elseif ($1 == s) return ... 
  elseif ($1 == t) return - 
  elseif ($1 == u) return ..- 
  elseif ($1 == v) return ...- 
  elseif ($1 == w) return .-- 
  elseif ($1 == x) return -..- 
  elseif ($1 == y) return -.-- 
  elseif ($1 == z) return --.. 
  elseif ($1 == 0) return ----- 
  elseif ($1 == 1) return .---- 
  elseif ($1 == 2) return ..--- 
  elseif ($1 == 3) return ...-- 
  elseif ($1 == 4) return ....- 
  elseif ($1 == 5) return ..... 
  elseif ($1 == 6) return -.... 
  elseif ($1 == 7) return --... 
  elseif ($1 == 8) return ---.. 
  elseif ($1 == 9) return ----. 
  elseif ($1 == .) return .-.-.- 
  elseif ($1 == ,) return --..-- 
  elseif ($1 == :) return ---... 
  elseif ($1 == ?) return ..--.. 
  elseif ($1 == ') return .----. 
  elseif ($1 == -) return -....- 
  elseif ($1 == /) return -..-. 
  elseif ($1 == ") return .-..-. 
  elseif ($1 == @) return .--.-. 
  elseif ($1 == =) return -...- 
  elseif ($1 == $chr(32)) return $chr(32) $+ / $+ $chr(32) 
  else return $1 
} 
alias decmorse { 
  if ($1 == .- ) return  a 
  elseif ($1 == -... ) return  b 
  elseif ($1 == -.-. ) return  c 
  elseif ($1 == -.. ) return  d 
  elseif ($1 == . ) return  e 
  elseif ($1 == ..-. ) return  f 
  elseif ($1 == --. ) return  g 
  elseif ($1 == .... ) return  h 
  elseif ($1 == .. ) return  i 
  elseif ($1 == .--- ) return  j 
  elseif ($1 == -.- ) return  k 
  elseif ($1 == .-.. ) return  l 
  elseif ($1 == -- ) return  m 
  elseif ($1 == -. ) return  n 
  elseif ($1 == --- ) return  o 
  elseif ($1 == .--. ) return  p 
  elseif ($1 == --.- ) return  q 
  elseif ($1 == .-. ) return  r 
  elseif ($1 == ... ) return  s 
  elseif ($1 == - ) return  t 
  elseif ($1 == ..- ) return  u 
  elseif ($1 == ...- ) return  v 
  elseif ($1 == .-- ) return  w 
  elseif ($1 == -..- ) return  x 
  elseif ($1 == -.-- ) return  y 
  elseif ($1 == --.. ) return  z 
  elseif ($1 == ----- ) return  0 
  elseif ($1 == .---- ) return  1 
  elseif ($1 == ..--- ) return  2 
  elseif ($1 == ...-- ) return  3 
  elseif ($1 == ....- ) return  4 
  elseif ($1 == ..... ) return  5 
  elseif ($1 == -.... ) return  6 
  elseif ($1 == --... ) return  7 
  elseif ($1 == ---.. ) return  8 
  elseif ($1 == ----. ) return  9 
  elseif ($1 == .-.-.- ) return  . 
  elseif ($1 == --..-- ) return  , 
  elseif ($1 == ---... ) return  : 
  elseif ($1 == ..--.. ) return  ? 
  elseif ($1 == .----. ) return  ' 
  elseif ($1 == -....- ) return  - 
  elseif ($1 == -..-. ) return  / 
  elseif ($1 == .-..-. ) return  " 
  elseif ($1 == .--.-. ) return  @ 
  elseif ($1 == -...- ) return  = 
  elseif ($1 == /) return -SPACEHOLDER- 
  else return $1 
}