view laske.tcl @ 0:1c4e2814cd41

Initial import.
author Matti Hamalainen <ccr@tnsp.org>
date Tue, 21 Sep 2010 13:12:49 +0300
parents
children 47c73165754b
line wrap: on
line source

############################################################################
#
# Laske v0.2 by ccr/TNSP <ccr@tnsp.org>
# (C) Copyright 2008 Tecnic Software productions (TNSP) 
#
# This script is freely distributable under GNU GPL (version 2) license.
#
############################################################################

set laske_preferredmsg "PRIVMSG"


############################################################################
# No need to look below this line
############################################################################
set laske_message "Laske v0.2 by ccr/TNSP"
set laske_reps [split "\$|| ||^|**|pi|3.14159265|e|2.71828183" "|"]

putlog "$laske_message"
bind pub - !laske laske_pubmsg
bind msg - laske laske_msg


# -------------------------------------------------------------------------
proc laske_smsg {udest umsg} {
  global laske_preferredmsg
  putserv "$laske_preferredmsg $udest :$umsg"
}

# -------------------------------------------------------------------------  
proc laske_do {args} {
  global laske_reps

# Tama on jotain ihan uskomattoman perverssia
  set lasku [join [join [string map $laske_reps $args] ""] ""]

#  putlog "Laske: $args :: $lasku"
  if {[catch { set res [expr $lasku] } errmsg]} {
  	return $errmsg
  } else {
  	return "$lasku = $res"
  }
}

# -------------------------------------------------------------------------  
proc laske_pubmsg {nick uhost hand chan args} {
  if {$args == {} || $args == ""} {
  	laske_smsg $chan "Laa laalis paski."
  	return 1
  }

  set result [laske_do $args]
  laske_smsg $chan "$nick, $result"
  return 1
}

# -------------------------------------------------------------------------  
proc laske_msg {nick uhost hand args} {
  if {$args == {} || $args == ""} {
  	laske_smsg $nick "Laa laalis paski."
  	return 1
  }
  
  set result [laske_do $args]
  laske_smsg $nick "$result"
  return 1
}

# -------------------------------------------------------------------------