我相信eggdrop是最活跃/最受欢迎的机器人,它用tcl编写(根据wiki,核心是C,但我还没有确认).
我想知道在node.js或Python中重新编码它的功能是否有任何性能优势,除了使它更易于访问,因为Python和JS可以说是更流行的语言而且很少有人熟悉tcl.
那么,他们如何在整体上以性能方式与tcl进行叠加?
set botlisten(port) "3333"
set botlisten(password) "123456"
set botlisten(channel) "#chan"
listen $botlisten(port) script botlisten
proc botlisten {idx} {
control $idx botlisten2
}
proc botlisten2 {idx args} {
global botlisten newTorrentChannel
set args [join $args]
set botlisten(pass) [lindex [split $args] 0]
set botlisten(message) [join [lrange [split $args] 1 end]]
if {[string match $botlisten(pass) $botlisten(password)]} then {
putquick "PRIVMSG $botlisten(channel) :$botlisten(message)"
} else {
putlog "Unauthorized person tried to connect to the bot"
}
}
Run Code Online (Sandbox Code Playgroud)
让我们说消息有这些字符:ąčęėįšųūž所以机器人输出奇怪的字符.所以,在我看来,解决方案是添加utf-8支持.
我试图只显示if语句的内容,如果if里面是if,则返回所需的值.但是这不起作用,所以我想你不是在TCL中这样做的.任何意见,将不胜感激.
if {$firstq == 1} {
set sql "SELECT * FROM users WHERE username='$text' AND ircban='yes' LIMIT 1"
set result [mysqlsel $db_handle $sql]
if{$result == 1} {
putquick "NOTICE $nick :User is banned."
} elseif{$result == 0} {
putquick "NOTICE $nick :User is not banned."
}
Run Code Online (Sandbox Code Playgroud)