20 Kasım 2007, 22:47 | #1 | |
Çevrimdışı
Kullanıcıların profil bilgileri misafirlere kapatılmıştır.
IF Ticaret Sayısı: (0) | DB'den search yapabilen bot tcl'si ################################################## ############# ### ## ## dbsearch.tcl - (C) SevenRains (Corcalciuc V. Horia) ## Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir. ## ## A tcl script for eggdrop bots to search a specified ## MySQL database by some fields. ## Requires libmysqltcl.so!! ## ## Inspired from QuoteEngine. ### ################################################## ############ # define database parameters set dbhost "database_hostname_or_ip" set dbuser "database_user" set dbpass "database_password" set dbname "database_name" # set-up the columns and the # table of the database we will # be searching. set parameter_1 "first_column" set parameter_2 "second_column" set table_name "table_name" # set dbsearch to the flag you want channels # to have that allow searching your database # then use .chanset #channel [+/-] dbsearch to # enable or disable individual channels. set chanflag "dbsearch" # bind commands are by default !db_search # and respectively !db_version in channel # window to search the database. users with # flags m, o and v are allowed to search. # set to "-|-" to allow everybody. bind pub "m|ov" !db_search db_search bind pub "m|ov" !db_version fl_version set help_search "!db_search" # a user with this flag(s) can't use the script set quote_noflags "B|B" # maximum number of matches sent to channel before # sending the rest to the nick via /msg. set quote_chanmax 5 ### code starts here (no need to edit stuff below currently) set fl_version "0.1" set db_handle [mysqlconnect -host $dbhost -user $dbuser -password $dbpass -db $dbname] setudef flag $chanflag ################################################## ############################## # db_search # Searches the database by two parameters, like this: # !db_search <parameter_1> [parameter_2] using SQL wildcards. ################################################## ############################## proc db_search { nick host handle channel text} { global db_handle php_page quote_noflags quote_chanmax chanflag parameter_1 parameter_2 table_name set sub1 "" set sub2 "" set sub3 "" if {![channel get $channel $chanflag]} { return 0 } if [matchattr $handle $quote_noflags] { return 0 } if {$text == ""} { puthelp "PRIVMSG $nick :Use: !db_search <parameter_1> \[parameter_2\]" return 0 } regexp -- {([A-Za-z]+) +([A-Za-z]+)} $text sub1 sub2 sub3 if {$sub3 != ""} { set where_clause "AND $parameter_2 LIKE '%[mysqlescape $sub3]%'" } if {$sub1 == ""} { set sql "SELECT * FROM $table_name WHERE $parameter_1 LIKE '%[mysqlescape $text]%' ORDER BY RAND()" } else { set sql "SELECT * FROM $table_name WHERE $parameter_1 LIKE '%[mysqlescape $sub2]%' $where_clause ORDER BY RAND()" } putlog "Query: $sql" putloglev d * "QuoteEngine: executing $sql" if {[mysqlsel $db_handle $sql] > 0} { set count 0 mysqlmap $db_handle {cnp name surname street streetnr block scara etaj apartament sector} { if {$count == $quote_chanmax} { puthelp "PRIVMSG $nick :Rest of matches for your search '$text' follow in private:" } if {$count < 5} { puthelp "PRIVMSG $channel :\[$cnp] Nume: $name Prenume: $surname Strada: $street Nr.: $streetnr Bl.: $block Sc.: $scara Etaj: $etaj Ap.: $apartament Sector: $sector" } else { puthelp "PRIVMSG $nick :\[$cnp] Nume: $name Prenume: $surname Strada: $street Nr.: $streetnr Bl.: $block Sc.: $scara Etaj: $etaj Ap.: $apartament Sector: $sector" } incr count } set remaining [mysqlresult $db_handle rows?] if {$remaining > 0} { regsub "#" $channel "" chan puthelp "PRIVMSG $nick :Plus $remaining other matches" } else { if {$count == 1} { puthelp "PRIVMSG $nick Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir. All of 1 match)" } else { puthelp "PRIVMSG $nick Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir. All of $count matches)" } } } else { puthelp "PRIVMSG $nick :No matches" } } ################################################## ############################## ## fl_version ## Gives the version of the script ################################################## ############################## proc fl_version { nick host handle channel text } { global fl_version quote_noflags if [matchattr $handle $quote_noflags] { return 0 } puthelp "PRIVMSG $nick Bu forumdaki linkleri ve resimleri görebilmek için en az 25 mesajınız olması gerekir. atabase search version $fl_version by SevenRains" return 0 } Konu meftun1 tarafından (20 Kasım 2007 Saat 22:50 ) değiştirilmiştir. Sebep: baslık | |
|
Etiketler |
bot, dbden, search, tcli, tclsi, yapabilen |
Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir) | |
| |
Benzer Konular | ||||
Konu | Konuyu Başlatan | Forum | Cevaplar | Son Mesaj |
20 kat yakınlaştırma yapabilen Oppo Reno 2 yolda! | Coder | Cep Telefonlar | 0 | 17 Ağustos 2019 12:11 |
Pc takibi yapabilen güvenlik yazılımları DeskGate | afrin | Ağ, Network ve Networking | 2 | 18 Haziran 2018 12:13 |
LG'den eşzamanlı çekim yapabilen 'dev'! | Zen | Cep Telefonlar | 0 | 19 Şubat 2013 21:00 |
1500 bilgisayarın işini yapabilen bilgisayar | Heidi | Bilgisayar Donanımı | 0 | 06 Mayıs 2008 11:39 |