Представляю вам скрипт, который позволит измерить ценность и достоверность вашей информации. Теперь вы с гордостью сможете сказать - инфа 100%.
Пример работы:
<%username%> !инфа черепашки ниндзя зеленые
<%botname%> Инфа, что черепашки ниндзя зеленые - 6%!
Чтобы никто не смог назвать вас лжецом, бот услужливо хранит всю проверенную информацию, чтобы при необходимости подтвердить ее!
Пример работы:
<%username1%> кстати, черепашки ниндзя не зеленые
<%username2%> да как ты смеешь, я тебя накажу, во имя луны!!!!!11
<%username1%> !инфа черепашки ниндзя зеленые
<%botname%> Инфа, что черепашки ниндзя зеленые - 6%
<%username2%> и вправду! процент ничтожно мал! извини, брат, прими этот мерседес в знак примерения
Все это доступно только здесь и только сейчас!
Не забудьте для начала создать таблицу! В корневой папке с ботом введите:
- Код: Выделить всё
$ sqlite3 infa.db
sqlite> CREATE TABLE main(a int, b text, nick text, chan text, date text);
sqlite> .quit
А вот и он!
bind pub - !infa infa
bind pub - !инфа infa
# показывать ли, кто, где и когда проверял эту информацию
# 0 - нет, 1 - да
set infa_full 0
package require sqlite3
sqlite3 db infa.db
proc infa {nick host handle chan text} {
variable infa_full;
regsub -all -- {\'} $text {} text;
regsub -all -- {\"} $text {} text;
regsub -all -- {\$} $text {} text;
if {[string length $text] > 0} {
set result [db eval {SELECT a from main WHERE b = $text}]
if {[string length $result] > 0} {
if {$infa_full == 1} {
set auser [infa_clear [db eval {SELECT nick from main WHERE b = $text}]]
set adate [infa_clear [db eval {SELECT date from main WHERE b = $text}]]
set achan [infa_clear [db eval {SELECT chan from main WHERE b = $text}]]
putserv "PRIVMSG $chan :\00303Инфа, что $text - \00304$result\%! \00303Инфу уже проверил \00304$auser \00303на канале \00304$achan $adate\00303."
} else {
putserv "PRIVMSG $chan :\00303Инфа, что $text - \00304$result\%!"
}
} else {
set num [random_int 101]
set systemTime [clock seconds]
set date [clock format $systemTime -format {%d.%m.%Y %H:%M:%S}]
db eval {INSERT INTO main VALUES($num,$text,$nick,$chan,$date)}
putserv "PRIVMSG $chan :\00303Инфа, что $text - \00304$num\%!"
}
}
}
proc random_int {upper_limit} {
global myrand
set myrand [expr int(rand() * $upper_limit + 1)]
return $myrand
}
proc infa_clear {t} {
regsub -all -- {\{} $t {} t;
regsub -all -- {\}} $t {} t;
return $t
}
bind pub - !инфа infa
# показывать ли, кто, где и когда проверял эту информацию
# 0 - нет, 1 - да
set infa_full 0
package require sqlite3
sqlite3 db infa.db
proc infa {nick host handle chan text} {
variable infa_full;
regsub -all -- {\'} $text {} text;
regsub -all -- {\"} $text {} text;
regsub -all -- {\$} $text {} text;
if {[string length $text] > 0} {
set result [db eval {SELECT a from main WHERE b = $text}]
if {[string length $result] > 0} {
if {$infa_full == 1} {
set auser [infa_clear [db eval {SELECT nick from main WHERE b = $text}]]
set adate [infa_clear [db eval {SELECT date from main WHERE b = $text}]]
set achan [infa_clear [db eval {SELECT chan from main WHERE b = $text}]]
putserv "PRIVMSG $chan :\00303Инфа, что $text - \00304$result\%! \00303Инфу уже проверил \00304$auser \00303на канале \00304$achan $adate\00303."
} else {
putserv "PRIVMSG $chan :\00303Инфа, что $text - \00304$result\%!"
}
} else {
set num [random_int 101]
set systemTime [clock seconds]
set date [clock format $systemTime -format {%d.%m.%Y %H:%M:%S}]
db eval {INSERT INTO main VALUES($num,$text,$nick,$chan,$date)}
putserv "PRIVMSG $chan :\00303Инфа, что $text - \00304$num\%!"
}
}
}
proc random_int {upper_limit} {
global myrand
set myrand [expr int(rand() * $upper_limit + 1)]
return $myrand
}
proc infa_clear {t} {
regsub -all -- {\{} $t {} t;
regsub -all -- {\}} $t {} t;
return $t
}