aboutsummaryrefslogtreecommitdiff
path: root/plugins/coin
diff options
context:
space:
mode:
authorPřemysl Janouch <p.janouch@gmail.com>2015-11-21 22:47:52 +0100
committerPřemysl Janouch <p.janouch@gmail.com>2015-11-21 22:47:52 +0100
commit71f3532e04e5c76327363a3fd36b506f54e5043d (patch)
tree8ed10c749ba0b9a3db62e0150e739dfacddc811c /plugins/coin
parentd135728424dad963f789f2362f794ee393a11823 (diff)
downloadxK-71f3532e04e5c76327363a3fd36b506f54e5043d.tar.gz
xK-71f3532e04e5c76327363a3fd36b506f54e5043d.tar.xz
xK-71f3532e04e5c76327363a3fd36b506f54e5043d.zip
degesch: add the first Lua plugin to distribution
This required separate plugin directories for both pluginized executables.
Diffstat (limited to 'plugins/coin')
-rwxr-xr-xplugins/coin128
1 files changed, 0 insertions, 128 deletions
diff --git a/plugins/coin b/plugins/coin
deleted file mode 100755
index 65967ad..0000000
--- a/plugins/coin
+++ /dev/null
@@ -1,128 +0,0 @@
-#!/usr/bin/env tclsh
-#
-# ZyklonB coin plugin, random number-based utilities
-#
-# Copyright 2012, 2014 Přemysl Janouch
-# See the file LICENSE for licensing information.
-#
-
-# This is a terrible excuse for a programming language and I feel dirty.
-
-proc parse {line} {
- global msg
- unset -nocomplain msg
-
- if [regexp {^:([^ ]*) *(.*)} $line -> prefix rest] {
- set msg(prefix) $prefix
- set line $rest
- }
- if [regexp {^([^ ]*) *(.*)} $line -> command rest] {
- set msg(command) $command
- set line $rest
- }
- while {1} {
- set line [string trimleft $line " "]
- set i [string first " " $line]
- if {$i == -1} { set i [string length $line] }
- if {$i == 0} { break }
-
- if {[string index $line 0] == ":"} {
- lappend msg(param) [string range $line 1 end]
- break
- }
- lappend msg(param) [string range $line 0 [expr $i - 1]]
- set line [string range $line $i end]
- }
-}
-
-proc get_config {key} {
- global msg
- puts "ZYKLONB get_config :$key"
- gets stdin line
- parse $line
- return [lindex $msg(param) 0]
-}
-
-proc pmrespond {text} {
- global ctx
- global ctx_quote
- puts "PRIVMSG $ctx :$ctx_quote$text"
-}
-
-fconfigure stdin -translation crlf -encoding iso8859-1
-fconfigure stdout -translation crlf -encoding iso8859-1
-
-set prefix [get_config prefix]
-puts "ZYKLONB register"
-
-set eightball [list \
- "It is certain" \
- "It is decidedly so" \
- "Without a doubt" \
- "Yes - definitely" \
- "You may rely on it" \
- "As I see it, yes" \
- "Most likely" \
- "Outlook good" \
- "Yes" \
- "Signs point to yes" \
- "Reply hazy, try again" \
- "Ask again later" \
- "Better not tell you now" \
- "Cannot predict now" \
- "Concentrate and ask again" \
- "Don't count on it" \
- "My reply is no" \
- "My sources say no" \
- "Outlook not so good" \
- "Very doubtful"]
-
-while {[gets stdin line] != -1} {
- parse $line
-
- if {! [info exists msg(prefix)] || ! [info exists msg(command)]
- || $msg(command) != "PRIVMSG" || ! [info exists msg(param)]
- || [llength $msg(param)] < 2} { continue }
-
- regexp {^[^!]*} $msg(prefix) ctx
- if [regexp {^[#&+!]} [lindex $msg(param) 0]] {
- set ctx_quote "$ctx: "
- set ctx [lindex $msg(param) 0]
- } else { set ctx_quote "" }
-
- set input [lindex $msg(param) 1]
- set first_chars [string range $input 0 \
- [expr [string length $prefix] - 1]]
- if {$first_chars != $prefix} { continue }
- set input [string range $input [string length $prefix] end]
-
- if {$input == "coin"} {
- if {rand() < 0.5} {
- pmrespond "Heads."
- } else {
- pmrespond "Tails."
- }
- } elseif {[regexp {^dice( +|$)(.*)} $input -> _ args]} {
- if {! [string is integer -strict $args] || $args <= 0} {
- pmrespond "Invalid or missing number."
- } else {
- pmrespond [expr {int($args * rand()) + 1}]
- }
- } elseif {[regexp {^(choose|\?)( +|$)(.*)} $input -> _ _ args]} {
- if {$args == ""} {
- pmrespond "Nothing to choose from."
- } else {
- set c [split $args ",|"]
- pmrespond [string trim [lindex $c \
- [expr {int([llength $c] * rand())}]]]
- }
- } elseif {[regexp {^eightball( +|$)(.*)} $input -> _ args]} {
- if {$args == ""} {
- pmrespond "You should, you know, ask something."
- } else {
- pmrespond [lindex $eightball \
- [expr {int([llength $eightball] * rand())}]].
- }
- }
-}
-