Quellcode durchsuchen

created helper and utilities library putils.tcl

Paul Klumpp vor 13 Jahren
Ursprung
Commit
d47fc1fe89
1 geänderte Dateien mit 110 neuen und 0 gelöschten Zeilen
  1. 110 0
      putils.tcl

+ 110 - 0
putils.tcl

@@ -0,0 +1,110 @@
+# putils
+
+
+
+namespace eval ::putils {
+  ## some internal variables for messaging and stuff :) not your business after all.
+  set putils(version) "0.3"
+  putlog "::putils:: paul utils for eggdrop bots in tcl $putils(version) loading..."
+}
+
+
+# gets botnick, truncates it and lowercases it.
+proc ::putils::proper_botnick {botnick} {
+
+  set temp [string tolower $botnick]
+  # abfrage ob zu lang, dann fixen
+  #	putlog "::putils:: $botnick lowercase: $temp"
+  if {[string length $botnick] > 9} {
+    set temp [string range $temp 0 8 ]
+    #		putlog "::putils:: botnickname $botnick too long: capping to: $temp"
+  }
+  return $temp
+
+}
+
+
+proc ::putils::proper_channelname {channelname} {
+	# channel names ARE NOT and SHOULD NOT BE CASE SENSITIVE!
+	set temp [string tolower $channelname]
+	set temp [::putils::umlauts $temp]
+#	putlog "::putils:: $channelname lowercase: $temp"
+
+	return $temp
+}
+
+
+proc ::putils::put_local_msg {chan text} {
+  variable mnet_colors 
+  variable mnet_freqs_onoff
+
+	putserv "PRIVMSG $chan :$text"
+	putlog "::putils:: + normal message: ${chan} => '$text'"
+
+}
+
+
+proc ::putils::kill_spaces {text} {
+  regsub -all "\\s+" $text "" text 
+  return $text
+}
+
+
+
+
+proc ::putils::clean_txt {text} {
+
+  #putlog "filter_A: ${text}"
+  #regsub -all "\\" $text "\\\\" text
+
+  # fixes many whitespace between words down to one space between words
+  regsub -all "\\s+" $text " " text 
+
+  # filtering out all colorcodes (works well)
+  regsub -all "\003\[0-9\]\{1,2\},\[0-9\]\{1,2\}" $text "" text
+  regsub -all "\003\[0-9\]\{1,2\}" $text "" text
+  regsub -all "\003" $text "" text
+
+  # filtering out BOLD text
+  regsub -all "\002" $text "" text
+
+  # underline gets filtered too. (since +c on quakenet would suppress it ...)
+  regsub -all "\037" $text "" text
+
+
+  # replacing like !!!!!!!!!!!!! with !!!!! (5 letters)
+  # s/(.?)\1{4,}/\1\1\1\1\1/g;
+  # - max 5 same chars in a row
+  regsub -all -nocase -expanded {(.)\1\1\1\1+} $text {\1\1\1\1\1} text
+  #putlog "test: $text"
+
+
+  set text [string trim $text]
+  #	putlog "filter_B: ${text}"
+  return $text
+
+}
+
+proc ::putils::umlauts {text} {
+  # A REAL STRANGE BUG WORKAROUND WITH UMLAUTS
+  regsub -all "Ä" ${text} "Ä" text
+  regsub -all "Ü" ${text} "Ü" text
+  regsub -all "Ö" ${text} "Ö" text
+
+  regsub -all "ä" ${text} "ä" text
+  regsub -all "ü" ${text} "ü" text
+  regsub -all "ö" ${text} "ö" text
+
+  return ${text}
+}
+
+
+# safe "bot-knows-the-channel-and-is-in-there"-function
+proc ::putils::botonchannel {chan} { 
+  if {[validchan $chan] == 1 && [botonchan $chan] == 1} {
+    return 1
+  } else {
+    return 0
+  }
+}
+