<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-gb">
	<link rel="self" type="application/atom+xml" href="https://forum.eggheads.org/app.php/feed/topic/19277" />

	<title>egghelp/eggheads community</title>
	<subtitle>Discussion of eggdrop bots, shell accounts and tcl scripts.</subtitle>
	<link href="https://forum.eggheads.org/index.php" />
	<updated>2013-01-21T13:52:14-04:00</updated>

	<author><name><![CDATA[egghelp/eggheads community]]></name></author>
	<id>https://forum.eggheads.org/app.php/feed/topic/19277</id>

		<entry>
		<author><name><![CDATA[SpiKe^^]]></name></author>
		<updated>2013-01-21T13:52:14-04:00</updated>

		<published>2013-01-21T13:52:14-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=100699#p100699</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=100699#p100699"/>
		<title type="html"><![CDATA[Help with seen.tcl error in blackseen]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=100699#p100699"><![CDATA[
Hmmm, looks like another sign the 1.6.21 egg doesn't always play well with the older sripts:)<br>Maybe you would be willing to just back up and run this script on the more script friendly 1.6.20 bot?<br><br>If not, try to get us some better error info to work with...<br>From the forum string:  <a href="http://forum.egghelp.org/viewtopic.php?t=10215" class="postlink">http://forum.egghelp.org/viewtopic.php?t=10215</a><blockquote class="uncited"><div>have your .tcl and .set commands enabled, meaning that you need to open your config and comment out (or remove) the following lines: <br>unbind dcc n tcl *dcc:tcl <br>unbind dcc n set *dcc:set <br>then save config and restart the bot <br><br>have full backtrace of the error; that means upon receiving Tcl error (you must be logged in), immediately type .set errorInfo and save the output <br><br>if the bot replies with `What? You need .help', you need to enable command .set (see above) <br></div></blockquote>Paste that returned error info here, so maybe we can see a little of what's going on when the error happens.<br>That is a very long proc, with some fairly odd/interresting math going on.<br><br>Since we now have 2 versions of the script posted on this forum string, which of these are you currently trying to run?<br>Need to make sure we are both working with the same script:)<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=7749">SpiKe^^</a> — Mon Jan 21, 2013 1:52 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[janii]]></name></author>
		<updated>2013-01-21T10:44:54-04:00</updated>

		<published>2013-01-21T10:44:54-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=100697#p100697</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=100697#p100697"/>
		<title type="html"><![CDATA[Help with seen.tcl error in blackseen]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=100697#p100697"><![CDATA[
well thnx for replies but m already using eggdrop1.6.21 with the patch u suggested .. so need sum1 else to help me on tht seen tcl n eggdrop1.6.21 ty<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=11746">janii</a> — Mon Jan 21, 2013 10:44 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[willyw]]></name></author>
		<updated>2013-01-21T09:21:55-04:00</updated>

		<published>2013-01-21T09:21:55-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=100696#p100696</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=100696#p100696"/>
		<title type="html"><![CDATA[Help with seen.tcl error in blackseen]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=100696#p100696"><![CDATA[
Check out:<br><a href="http://www.egghelp.org/files.htm#patches" class="postlink">http://www.egghelp.org/files.htm#patches</a><br><blockquote class="uncited"><div>For Eggdrop 1.6.21<br><br>timerworkaround.patch.gz by thommey New 25/5/12<br>Resolves a bug in Eggdrop 1.6.21's utimers command which could cause Tcl scripts not to function correctly,   ....</div></blockquote><a href="http://forum.egghelp.org/viewtopic.php?t=18760" class="postlink">http://forum.egghelp.org/viewtopic.php?t=18760</a><br><br><br>and decide if you think that might help.<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=10420">willyw</a> — Mon Jan 21, 2013 9:21 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[janii]]></name></author>
		<updated>2013-01-21T03:11:14-04:00</updated>

		<published>2013-01-21T03:11:14-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=100691#p100691</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=100691#p100691"/>
		<title type="html"><![CDATA[Help with seen.tcl error in blackseen]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=100691#p100691"><![CDATA[
same error in new version as well its sumthin to do with eggdrop1.6.21<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=11746">janii</a> — Mon Jan 21, 2013 3:11 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[Madalin]]></name></author>
		<updated>2013-01-19T08:29:50-04:00</updated>

		<published>2013-01-19T08:29:50-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=100639#p100639</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=100639#p100639"/>
		<title type="html"><![CDATA[Help with seen.tcl error in blackseen]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=100639#p100639"><![CDATA[
<div class="codebox"><p>Code: </p><pre><code>############################################################################                             BlackSeen 1.3###                                             BLaCkShaDoW ProductionS############################################################################-it`s a new type of seen#-it has a database foreach channel.#-tcl-ul logs where is activate.#-now it shows how much time the user stayed on chan.#-added a system to notify users on join, if they were searched with !seen#-added a timer to erase old records.##             To activate .chanset +blackseen##               .seen *!*@host | !seen &lt;nick&gt;############################################################################Set here the flag required to use the command ? ( -|- for everyone )set seen(flags) "-|-"#Set here the first char.set seen(chars) ". ! ` -"#Anti-Flood Protection (searches:seconds)set seen(flood) "4:5"#Set here 1 daca if you want the messages to be trough NOTICE or 0 if you want#to be trough PRIVMSG chan.set seen(how) "1"#After how many days the records will be deleted ?set seen(limittime) "90"#Timer-Time for checking ( hours )set seen(verifytime) "12"############################################################################                              There`s no END############################################################################foreach s(char) $seen(chars) {bind pub $seen(flags) $s(char)seen recordz:seen}bind join - * record:joinbind join - * record:seenedbind part - * record:partbind sign - * record:signbind kick - * record:kickbind splt - * record:splitbind nick - * record:changenicksetudef flag blackseenset dir "${username}.BlackSeen.db"set dir1 "${username}.seenrecord.db"if {![file exists $dir]} {set file [open $dir w]close $file}if {![file exists $dir1]} {set file [open $dir1 w]close $file}if {![info exists record:expire_running]} {timer [expr $seen(verifytime) * 60] record:expireset record:expire_running 1}proc record:join {nick host hand chan} {global dir botnickif {![channel get $chan blackseen]} {return 0}set lin 0set time [unixtime]set host "*!$host"if {[isbotnick $nick]} { return 0 }set who "JOIN $chan $nick $host $time 0"set file [open $dir "r"]set database [read -nonewline $file]close $fileset data [split $database "\n"]foreach line $data {set lin [expr $lin +1]set userentry [lindex [split $line] 2]set chanentry [lindex [split $line] 1]if {[string equal -nocase $userentry $nick] &amp;&amp; [string match -nocase $chanentry $chan]} {if {$line != ""} {set num [expr $lin - 1]set delete [lreplace $data $num $num]set files [open $dir "w"]puts $files [join $delete "\n"]close $files}}}set file [open $dir "r"]set data [read -nonewline $file]close $fileif {$data == ""} {set files [open $dir "w"]close $files}set file [open $dir "a"]puts $file "$who"close $file}proc record:part {nick host hand chan arg} {global dir botnickif {![channel get $chan blackseen]} {return 0}set lin 0set time [unixtime]set reason [join [lrange [split $arg] 0 end]]if {$reason == ""} { set reason "No Reason"}set host "*!$host"if {[isbotnick $nick]} { return 0 }set who "PART $chan $nick $host $time 0 $reason"set file [open $dir "r"]set database [read -nonewline $file]close $fileset data [split $database "\n"]foreach line $data {set lin [expr $lin +1]set userentry [lindex [split $line] 2]set chanentry [lindex [split $line] 1]if {[string equal -nocase $userentry $nick] &amp;&amp; [string match -nocase $chanentry $chan]} {set joined [lindex [split $line] 0]if {$joined == "JOIN"} {set j [lindex [split $line] 4]set who "PART $chan $nick $host $time $j $reason"}if {$line != ""} {set num [expr $lin - 1]set delete [lreplace $data $num $num]set files [open $dir "w"]puts $files [join $delete "\n"]close $files}}}set file [open $dir "r"]set data [read -nonewline $file]close $fileif {$data == ""} {set files [open $dir "w"]close $files}set file [open $dir "a"]puts $file "$who"close $file}proc record:sign {nick host hand chan arg} {global dir botnickif {![channel get $chan blackseen]} {return 0}set lin 0set time [unixtime]set host "*!$host"set reason [join [lrange [split $arg] 0 end]]if {$reason == ""} { set reason "No Reason"}if {[isbotnick $nick]} { return 0 }set who "SIGN $chan $nick $host $time 0 $reason"set file [open $dir "r"]set database [read -nonewline $file]close $fileset data [split $database "\n"]foreach line $data {set lin [expr $lin +1]set userentry [lindex [split $line] 2]set chanentry [lindex [split $line] 1]if {[string equal -nocase $userentry $nick] &amp;&amp; [string match -nocase $chanentry $chan]} {set joined [lindex [split $line] 0]if {$joined == "JOIN"} {set j [lindex [split $line] 4]set who "SIGN $chan $nick $host $time $j $reason"}if {$line != ""} {set num [expr $lin - 1]set delete [lreplace $data $num $num]set files [open $dir "w"]puts $files [join $delete "\n"]close $files}}}set file [open $dir "r"]set data [read -nonewline $file]close $fileif {$data == ""} {set files [open $dir "w"]close $files}set file [open $dir "a"]puts $file "$who"close $file}proc record:kick {nick host hand chan kicked reason} {global dir botnickif {![channel get $chan blackseen]} {return 0}set lin 0set time [unixtime]set hosted [getchanhost $kicked $chan]set hosted "*!$hosted"set reason [join [lrange [split $reason] 0 end]]if {[isbotnick $kicked]} { return 0 }set who "KICK $chan $kicked $hosted $time 0 $reason"set file [open $dir "r"]set database [read -nonewline $file]close $fileset data [split $database "\n"]foreach line $data {set lin [expr $lin +1]set userentry [lindex [split $line] 2]set chanentry [lindex [split $line] 1]if {[string equal -nocase $userentry $kicked] &amp;&amp; [string match -nocase $chanentry $chan]} {set joined [lindex [split $line] 0]if {$joined == "JOIN"} {set j [lindex [split $line] 4]set who "KICK $chan $kicked $hosted $time $j $reason"}if {$line != ""} {set num [expr $lin - 1]set delete [lreplace $data $num $num]set files [open $dir "w"]puts $files [join $delete "\n"]close $files}}}set file [open $dir "r"]set data [read -nonewline $file]close $fileif {$data == ""} {set files [open $dir "w"]close $files}set file [open $dir "a"]puts $file "$who"close $file}proc record:split {nick host hand chan args} {global dir botnickif {![channel get $chan blackseen]} {return 0}set lin 0set time [unixtime]set host "*!$host"if {[isbotnick $nick]} { return 0 }set who "SPLIT $chan $nick $host $time 0"set file [open $dir "r"]set database [read -nonewline $file]close $fileset data [split $database "\n"]foreach line $data {set lin [expr $lin +1]set userentry [lindex [split $line] 2]set chanentry [lindex [split $line] 1]if {[string equal -nocase $userentry $nick] &amp;&amp; [string match -nocase $chanentry $chan]} {set joined [lindex [split $line] 0]if {$joined == "JOIN"} {set j [lindex [split $line] 4]set who "SPLIT $chan $nick $host $time $j"}if {$line != ""} {set num [expr $lin - 1]set delete [lreplace $data $num $num]set files [open $dir "w"]puts $files [join $delete "\n"]close $files}}}set file [open $dir "r"]set data [read -nonewline $file]close $fileif {$data == ""} {set files [open $dir "w"]close $files}set file [open $dir "a"]puts $file "$who"close $file}proc record:changenick {nick host hand chan newnick} {global dir botnickif {![channel get $chan blackseen]} {return 0}set lin 0set time [unixtime]set host "*!$host"if {[isbotnick $nick]} { return 0 }set who "NICKCHANGE $chan $nick $host $time 0 $newnick"set file [open $dir "r"]set database [read -nonewline $file]close $fileset data [split $database "\n"]foreach line $data {set lin [expr $lin +1]set userentry [lindex [split $line] 2]set chanentry [lindex [split $line] 1]if {[string equal -nocase $userentry $nick] &amp;&amp; [string match -nocase $chanentry $chan]} {if {$line != ""} {set num [expr $lin - 1]set delete [lreplace $data $num $num]set files [open $dir "w"]puts $files [join $delete "\n"]close $files}}}set file [open $dir "r"]set data [read -nonewline $file]close $fileif {$data == ""} {set files [open $dir "w"]close $files}set file [open $dir "a"]puts $file "$who"close $file}proc recordz:seen {nick uhost hand chan arg} {global dir dir1 seen count botnickif {![channel get $chan blackseen]} {return 0}set i 0set what [lindex [split $arg] 0]set number [scan $seen(flood) %\[^:\]]set timer [scan $seen(flood) %*\[^:\]:%s]foreach tmr [utimers] {if {[string match "*count(flood:$uhost:$chan)*" [join [lindex $tmr 1]]]} {killutimer [lindex $tmr 2]}}if {![info exists count(flood:$uhost:$chan)]} {set count(flood:$uhost:$chan) 0}incr count(flood:$uhost:$chan)utimer $timer [list unset count(flood:$uhost:$chan)]if {$count(flood:$uhost:$chan) == "$number"} {puthelp "NOTICE $nick :Asteapta 1 minut inainte de a incepe cautarea."return 0}if {[string match -nocase $what $nick]} { puthelp "NOTICE $nick :$nick look in the mirror :)"return 0}if {[onchan $what $chan]} { puthelp "NOTICE $nick :$what is already on $chan :)"return 0}set file [open $dir "r"]set database [read -nonewline $file]close $fileif {$database == ""} { puthelp "NOTICE $nick :I dont have any record in my database."return 0}if {![string match -nocase "*!*" "$what"]} {set time [unixtime]set mask "$nick!$uhost"seen:rec $what $chan $time $mask}set data [split $database "\n"]foreach line $data {set how [lindex [split $line] 0]set userentry [lindex [split $line] 2]set chanentry [lindex [split $line] 1]set host [lindex [split $line] 3]set timer [lindex [split $line] 4]set jointime [lindex [split $line] 5]set reason [lrange [split $line] 6 end]set newnick [lindex [split $line] 6]set totalyear [expr [unixtime] - $timer]if {$totalyear &gt;= 31536000} {set yearsfull [expr $totalyear/31536000]set years [expr int($yearsfull)]set yearssub [expr 31536000*$years]set totalday [expr $totalyear - $yearssub]}if {$totalyear &lt; 31536000} {set totalday $totalyearset years 0}if {$totalday &gt;= 86400} {set daysfull [expr $totalday/86400]set days [expr int($daysfull)]set dayssub [expr 86400*$days]set totalhour [expr $totalday - $dayssub]}if {$totalday &lt; 86400} {set totalhour $totaldayset days 0}if {$totalhour &gt;= 3600} {set hoursfull [expr $totalhour/3600]set hours [expr int($hoursfull)]set hourssub [expr 3600*$hours]set totalmin [expr $totalhour - $hourssub]}if {$totalhour &lt; 3600} {set totalmin $totalhourset hours 0}if {$totalmin &gt;= 60} {set minsfull [expr $totalmin/60]set mins [expr int($minsfull)]}if {$totalmin &lt; 60} {set mins 0}if {$years &lt; 1} {set yearstext ""} elseif {$years == 1} {set yearstext "$years year, "} {set yearstext "$years years, "}if {$days &lt; 1} {set daystext ""} elseif {$days == 1} {set daystext "$days day, "} {set daystext "$days days, "}if {$hours &lt; 1} {set hourstext ""} elseif {$hours == 1} {set hourstext "$hours hour, "} {set hourstext "$hours hours, "}if {$mins &lt; 1} {set minstext ""} elseif {$mins == 1} {set minstext "$mins minute"} {set minstext "$mins minutes"}set output $yearstext$daystext$hourstext$minstextif {$totalyear &lt; 60} {set output "$totalyear seconds"}set staytime [expr [unixtime] - $jointime]set stayt [expr $timer - $jointime]if {$stayt &gt;= 31536000} {set yearsfull [expr $stayt/31536000]set years [expr int($yearsfull)]set yearssub [expr 31536000*$years]set totalday [expr $stayt - $yearssub]}if {$stayt &lt; 31536000} {set totalday $staytset years 0}if {$totalday &gt;= 86400} {set daysfull [expr $totalday/86400]set days [expr int($daysfull)]set dayssub [expr 86400*$days]set totalhour [expr $totalday - $dayssub]}if {$totalday &lt; 86400} {set totalhour $totaldayset days 0}if {$totalhour &gt;= 3600} {set hoursfull [expr $totalhour/3600]set hours [expr int($hoursfull)]set hourssub [expr 3600*$hours]set totalmin [expr $totalhour - $hourssub]}if {$totalhour &lt; 3600} {set totalmin $totalhourset hours 0}if {$totalmin &gt;= 60} {set minsfull [expr $totalmin/60]set mins [expr int($minsfull)]}if {$totalmin &lt; 60} {set mins 0}if {$years &lt; 1} {set yearstext ""} elseif {$years == 1} {set yearstext "$years year, "} {set yearstext "$years years, "}if {$days &lt; 1} {set daystext ""} elseif {$days == 1} {set daystext "$days day, "} {set daystext "$days days, "}if {$hours &lt; 1} {set hourstext ""} elseif {$hours == 1} {set hourstext "$hours hour, "} {set hourstext "$hours hours, "}if {$mins &lt; 1} {set minstext ""} elseif {$mins == 1} {set minstext "$mins minute"} {set minstext "$mins minutes"}set staytime $yearstext$daystext$hourstext$minstextif {$stayt &lt; 60} {set staytime "$stayt seconds"}set date  [clock format $timer -format %d.%m.]set hour  [clock format $timer -format %H:%M]if {$jointime == "0"} { set staymsg "I dont know how much he stayed."} else { set staymsg "after he stayed $staytime on $chan."}if {[string equal -nocase $userentry $what] &amp;&amp; [string match -nocase $chanentry $chan]} {set host [string trim $host "*!~"]set i [expr $i +1]if {$i &lt; 6} {lappend entry $userentry}set seenfound 1if {[lindex [split $line] 0] == "PART"} {set reply "[join $entry ","] ($host) left $chan about $output ($date $hour) stating: $reason, $staymsg"}if {[lindex [split $line] 0] == "SIGN"} {set reply "[join $entry ","] ($host) left IRC about $output ($date $hour) stating: $reason, $staymsg"}if {[lindex [split $line] 0] == "JOIN"} {if {[onchan $what $chan]} { set nowon "$what is stil here."} else { set nowon "I dont see $what on $chan" }set reply "[join $entry ","] ($host) joined $chan about $output ($date $hour).$nowon"}if {[lindex [split $line] 0] == "SPLIT"} {set reply "[join $entry ","] ($host) left in *.net *.split about $output ($date $hour), $staymsg"}if {[lindex [split $line] 0] == "KICK"} {set reply "[join $entry ","] ($host) was kicked on $chan about $output ($date $hour) with the reason ($reason), $staymsg"}if {[lindex [split $line] 0] == "NICKCHANGE"} {if {[onchan $newnick $chan]} { set nowon "$newnick is stil here." } else { set nowon "I dont see $newnick on $chan" }set reply "[join $entry ","] ($host) changed his NICK in $newnick about $output ($date $hour).$nowon"}}if {$what == "*!*@*"} { return 0 }if {[string match -nocase $what $host] &amp;&amp; [string match -nocase $chanentry $chan]} {set host [string trim $host "*!~"]set i [expr $i +1]if {$i &lt; 6} {lappend entry $userentry}set seenfound 1if {[lindex [split $line] 0] == "PART"} {set reply "[join $entry ","] ($host) left $chan about $output ($date $hour) stating: $reason, $staymsg"}if {[lindex [split $line] 0] == "SIGN"} {set reply "[join $entry ","] ($host) left IRC about $output ($date $hour) stating: $reason, $staymsg"}if {[lindex [split $line] 0] == "JOIN"} {if {[onchan $userentry $chan]} { set nowon "$userentry is stil here."} else { set nowon "I dont see $userentry on $chan" }set reply "[join $entry ","] ($host) joined $chan about $output ($date $hour).$nowon"}if {[lindex [split $line] 0] == "SPLIT"} {set reply "[join $entry ","] ($host) left in *.net *.split about $output ($date $hour), $staymsg"}if {[lindex [split $line] 0] == "KICK"} {set reply "[join $entry ","] ($host) was kicked on $chan about $output ($date $hour) with the reason ($reason), $staymsg"}if {[lindex [split $line] 0] == "NICKCHANGE"} {if {[onchan $newnick $chan]} { set nowon "$newnick is stil here." } else { set nowon "I dont see $newnick on $chan" }set reply "[join $entry ","] ($host) changed his NICK in $newnick about $output ($date $hour).$nowon"}}}if {[info exists reply]} {if {$seen(how) == "1"} {puthelp "NOTICE $nick :$reply"} else { puthelp "PRIVMSG $chan :$reply"}}if {![info exists seenfound]} {puthelp "NOTICE $nick :I dont remember $what."}}proc seen:rec {nick chan time who} {global dir1set lin 0set w "$nick $chan $time $who"if {[isbotnick $nick]} { return 0 }set filez [open $dir1 "r"]set databases [read -nonewline $filez]close $filezset datas [split $databases "\n"]foreach line $datas {set lin [expr $lin +1]set userentry [lindex [split $line] 0]set chanentry [lindex [split $line] 1]set inculpat [lindex [split $line] 3]if {[string equal -nocase $userentry $nick] &amp;&amp; [string match -nocase $chanentry $chan]} {set w "$nick $chan $time $who"if {![string match -nocase $inculpat $who]} {lappend wer $inculpat $whoset w "$nick $chan $time [join $wer " , "]"}if {$line != ""} {set num [expr $lin - 1]set delete [lreplace $datas $num $num]set files [open $dir1 "w"]puts $files [join $delete "\n"]close $files}}}set filez [open $dir1 "r"]set datas [read -nonewline $filez]close $filezif {$datas == ""} {set files [open $dir1 "w"]close $files}set filez [open $dir1 "a"]puts $filez "$w"close $filez}proc record:seened {nick host hand chan} {global dir1if {![channel get $chan blackseen]} {return 0}set lin 0set filez [open $dir1 "r"]set databases [read -nonewline $filez]close $filezset datas [split $databases "\n"]foreach line $datas {set lin [expr $lin +1]set userentry [lindex [split $line] 0]set chanentry [lindex [split $line] 1]if {[string equal -nocase $userentry $nick] &amp;&amp; [string match -nocase $chanentry $chan]} {set time [lindex [split $line] 2]set date  [clock format $time -format %d.%m.]set hour  [clock format $time -format %H:%M]set totalyear [expr [unixtime] - $time]if {$totalyear &gt;= 31536000} {set yearsfull [expr $totalyear/31536000]set years [expr int($yearsfull)]set yearssub [expr 31536000*$years]set totalday [expr $totalyear - $yearssub]}if {$totalyear &lt; 31536000} {set totalday $totalyearset years 0}if {$totalday &gt;= 86400} {set daysfull [expr $totalday/86400]set days [expr int($daysfull)]set dayssub [expr 86400*$days]set totalhour [expr $totalday - $dayssub]}if {$totalday &lt; 86400} {set totalhour $totaldayset days 0}if {$totalhour &gt;= 3600} {set hoursfull [expr $totalhour/3600]set hours [expr int($hoursfull)]set hourssub [expr 3600*$hours]set totalmin [expr $totalhour - $hourssub]}if {$totalhour &lt; 3600} {set totalmin $totalhourset hours 0}if {$totalmin &gt;= 60} {set minsfull [expr $totalmin/60]set mins [expr int($minsfull)]}if {$totalmin &lt; 60} {set mins 0}if {$years &lt; 1} {set yearstext ""} elseif {$years == 1} {set yearstext "$years an, "} {set yearstext "$years ani, "}if {$days &lt; 1} {set daystext ""} elseif {$days == 1} {set daystext "$days zi, "} {set daystext "$days zile, "}if {$hours &lt; 1} {set hourstext ""} elseif {$hours == 1} {set hourstext "$hours ora, "} {set hourstext "$hours ore, "}if {$mins &lt; 1} {set minstext ""} elseif {$mins == 1} {set minstext "$mins minut"} {set minstext "$mins minute"}set howmuch $yearstext$daystext$hourstext$minstextif {$totalyear &lt; 60} {set howmuch "$totalyear secunde"}set bywho [lrange [split $line] 3 end]puthelp "NOTICE $nick :$bywho looked for you with !seen on $chan about $howmuch ($date $hour)."if {$line != ""} {set num [expr $lin - 1]set delete [lreplace $datas $num $num]set files [open $dir1 "w"]puts $files [join $delete "\n"]close $files}}}}proc record:expire {} {global dir seenputlog "(BlackSeen) Checking informations..."set curtime [unixtime]set lin 0set countlin 0set day 86400set file [open $dir "r"]set database [read -nonewline $file]close $fileset data [split $database "\n"]foreach line $data {set lin [expr $lin +1]set lastseen [lindex [split $line] 4]set limitseen [expr ($curtime - $lastseen)/$day]if {$limitseen &gt; $seen(limittime)} {set countlin [expr $countlin +1]if {$line != ""} {set num [expr $lin - 1]set delete [lreplace $data $num $num]set files [open $dir "w"]puts $files [join $delete "\n"]close $files}}}putlog "(BlackSeen) Found $countlin expired information."timer [expr $seen(verifytime) * 60] record:expirereturn 1}putlog "BlackSeen 1.3 by BLaCkShaDoW Loaded"</code></pre></div>This is the latest version of this script you better try this one.<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=6396">Madalin</a> — Sat Jan 19, 2013 8:29 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[janii]]></name></author>
		<updated>2013-01-19T06:36:27-04:00</updated>

		<published>2013-01-19T06:36:27-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=100638#p100638</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=100638#p100638"/>
		<title type="html"><![CDATA[Help with seen.tcl error in blackseen]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=100638#p100638"><![CDATA[
this is the database file pasting few lines here<div class="codebox"><p>Code: </p><pre><code>JOIN #TriviaPoint KrazyKiller *!comp@flying.to.kyrgyzstan.kg 1358558954 0NICKCHANGE #TriviaPoint pamintangdurog *!~yami@49.144.134.218 1358559190 0 dibdibNICKCHANGE #TriviaPoint _Bourne *!duh@inva1id.h-o-s-t.name 1358559338 0 BourneNICKCHANGE #unopoint _Bourne *!duh@inva1id.h-o-s-t.name 1358559339 0 BourneNICKCHANGE #TriviaPoint Guest23870 *!duh@inva1id.h-o-s-t.name 1358559402 0 BourneNICKCHANGE #unopoint Guest23870 *!duh@inva1id.h-o-s-t.name 1358559403 0 BourneSIGN #TriviaPoint dibdib *!~yami@49.144.134.218 1358559847 0 Quit: JOIN #TriviaPoint |Sting| *!sheshi@h4ck3d.shell.la 1358560532 0JOIN #TriviaPoint JK- *!sheshi@inva1id.h-o-s-t.name 1358560593 0JOIN #TriviaPoint DualBase *!sheshi@burning.in.flamex.hm 1358560606 0SIGN #TriviaPoint Midas *!~Someone@64.62.201.6 1358561351 1358559446 Quit: Power Failure.. Sorry Peer Its Not Your Day Today !!JOIN #TriviaPoint BuRaQ *!BuRaQ@unity.lineux.net 1358562004 0JOIN #TriviaPoint SharkTech *!BuRaQ@ir.awan.uk.to 1358562094 0JOIN #TriviaPoint Gam3rs *!smiley@i.am.the.packet-lord.hm 1358562275 0JOIN #TriviaPoint ZaWiSh *!Panku@inva1id.h-o-s-t.name 1358562729 0JOIN #TriviaPoint DeadDeviL *!Panku@sh0vv.biz.tm 1358562769 0JOIN #TriviaPoint Nok|a *!Panku@BoUrJI.BoUrJI.Go.org.Ve 1358562783 0NICKCHANGE #TriviaPoint Guest31401 *!duh@inva1id.h-o-s-t.name 1358562843 0 BourneNICKCHANGE #unopoint Guest31401 *!duh@inva1id.h-o-s-t.name 1358562843 0 BourneJOIN #TriviaPoint Nickeon *!chicks@c0me.smoke.w33d.wid.us.to 1358562880 0NICKCHANGE #TriviaPoint Guest35768 *!duh@inva1id.h-o-s-t.name 1358562907 0 BourneNICKCHANGE #unopoint Guest35768 *!duh@inva1id.h-o-s-t.name 1358562907 0 BourneJOIN #TriviaPoint P0wer *!chicks@k1ng.0f.as1an.continent.kz 1358562924 0NICKCHANGE #TriviaPoint Bourne *!duh@inva1id.h-o-s-t.name 1358562972 0 Guest36211NICKCHANGE #unopoint Bourne *!duh@inva1id.h-o-s-t.name 1358562972 0 Guest36211NICKCHANGE #unopoint Kaye *!daemon@youre.th3.chickenkiller.com 1358563574 0 kaye^afkJOIN #TriviaPoint Fritter *!Tanu@burning.in.flamex.hm 1358563700 0JOIN #TriviaPoint Tsuname *!Tanu@burning.in.flamex.hm 1358563774 0JOIN #TriviaPoint XBase *!Tanu@inva1id.h-o-s-t.name 1358563790 0JOIN #TriviaPoint rDNs *!BuRaQ@want.sky-chat.net 1358563911 0SIGN #TriviaPoint Sinis_smooth *!panny@46-161-29.adsl.cyta.gr 1358564244 0 Ping timeoutJOIN #TriviaPoint JuR|St *!r00t@love.you.stes.fi 1358564256 0JOIN #unopoint JuR|St *!r00t@love.you.stes.fi 1358564272 0NICKCHANGE #unopoint kaye^afk *!daemon@youre.th3.chickenkiller.com 1358564493 0 KayeSIGN #TriviaPoint Tum *!~Tum@175.107.33.187 1358564831 1358564463 Quit: NICKCHANGE #TriviaPoint Sinis_green *!~panny@ppp-94-66-37-240.home.otenet.gr 1358565107 0 Sinis_smoothJOIN #TriviaPoint Rickey *!mulk@Ash3s.and.flamex.hm 1358565565 0JOIN #TriviaPoint Deccon *!mulk@gangsta.vlab.pp.ru 1358565595 0NICKCHANGE #unopoint Guest43178 *!bliss@204.188.223.35 1358566046 0 `RoGueNICKCHANGE #unopoint Guest10173 *!bliss@Theres.No.One.Else.Like.me.plc.com.pk 1358566914 0 `RoGueJOIN #unopoint `RoGue *!bliss@Theres.No.One.Else.Like.me.plc.com.pk 1358567248 0JOIN #TriviaPoint BugBunny *!Died@qaidi.number.4040.idv.tw 1358567881 0JOIN #TriviaPoint Crazy4u *!hiren@wtf.is-happening.arno.fi 1358567893 0JOIN #TriviaPoint Pr0grammer *!hiren@gu.labo.ch 1358567908 0JOIN #TriviaPoint BanGaLi-BaBa *!Died@killed.the.good.one.pl 1358567911 0JOIN #TriviaPoint Bangash *!daniya@love.you.stes.fi 1358567971 0JOIN #TriviaPoint Her0 *!hiren@an.armed.us 1358567985 0NICKCHANGE #TriviaPoint Guest67161 *!kuting@hunnie.bunnie.loves.fishy.kisses.uk.to 1358568021 0 ShugarJOIN #TriviaPoint mayyah *!daniya@wanted.by.nlpd.net.au 1358568090 0JOIN #TriviaPoint PkStud *!Chris@BoUrJI.BoUrJI.Go.org.Ve 1358568662 0JOIN #TriviaPoint Aron *!Chris@janec.modified.lukaret.kaye.ang.mga.maoy.sa.0x69.net 1358568706 0JOIN #TriviaPoint HunterAlpha *!Chris@wazzup.b.ro.lt 1358568722 0JOIN #TriviaPoint Excessive *!bakra@y0u.cant.h4ck.me 1358569874 0JOIN #TriviaPoint Mina *!bakra@having.dashing.eye.rs 1358569950 0JOIN #TriviaPoint H_P *!bakra@Fear.0f.Darkworlds.Org 1358570039 0JOIN #TriviaPoint Timwari *!CoolSpot@ma.cow.goes.mooo.com 1358570630 0PART #TriviaPoint Johnson77 *!Mibbit@39.54.23.124 1358571989 1358570525 No ReasonNICKCHANGE #TriviaPoint Yna *!barbie@im.really.sexy.shoow.us 1358572038 0 barbie^^NICKCHANGE #unopoint Yna *!barbie@im.really.sexy.shoow.us 1358572039 0 barbie^^NICKCHANGE #TriviaPoint barbie^^ *!barbie@im.really.sexy.shoow.us 1358572261 0 YnaNICKCHANGE #unopoint barbie^^ *!barbie@im.really.sexy.shoow.us 1358572262 0 YnaSIGN #TriviaPoint yci *!~opera@109.100.24.112 1358572679 1358565405 Quit: yciJOIN #TriviaPoint ThUnDeR_ *!~SToRMy@110.39.68.241 1358572935 0JOIN #TriviaPoint Madira *!thirsty@Fear.0f.Darkworlds.Org 1358574052 0JOIN #unopoint butchokoy *!~me2@112.198.82.3 1358574799 0JOIN #TriviaPoint Hylcon *!thirsty@y0u.cant.h4ck.me 1358575005 0PART #TriviaPoint petula *!~petula@78.133.15.126 1358575107 1358574917 No ReasonSIGN #TriviaPoint gparted *!~Arc0r@121.54.58.149 1358575166 1358571930 Quit: :/SIGN #TriviaPoint bugsbuddy *!bugs@39.54.91.39 1358576166 1358568737 Quit: </code></pre></div><p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=11746">janii</a> — Sat Jan 19, 2013 6:36 am</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[SpiKe^^]]></name></author>
		<updated>2013-01-16T21:53:17-04:00</updated>

		<published>2013-01-16T21:53:17-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=100619#p100619</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=100619#p100619"/>
		<title type="html"><![CDATA[Help with seen.tcl error in blackseen]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=100619#p100619"><![CDATA[
Seems like a database problem of some kind.<br><br>The code involved in the error is one of these expressions...<br><div class="codebox"><p>Code: </p><pre><code>set data [split $database "\n"] foreach line $data { set timer [lindex [split $line] 4] set jointime [lindex [split $line] 5] set totalyear [expr [unixtime] - $timer] set staytime [expr [unixtime] - $jointime] </code></pre></div>Look in the database file and see if the lines have numbers as the values for the 5th and 6th items in every line of data.<br><br>Paste a few lines from your database file here.<p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=7749">SpiKe^^</a> — Wed Jan 16, 2013 9:53 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[janii]]></name></author>
		<updated>2013-01-16T18:49:53-04:00</updated>

		<published>2013-01-16T18:49:53-04:00</published>
		<id>https://forum.eggheads.org/viewtopic.php?p=100617#p100617</id>
		<link href="https://forum.eggheads.org/viewtopic.php?p=100617#p100617"/>
		<title type="html"><![CDATA[Help with seen.tcl error in blackseen]]></title>

		
		<content type="html" xml:base="https://forum.eggheads.org/viewtopic.php?p=100617#p100617"><![CDATA[
Hello the best eggdrop community i need help with seen.tcl it gives me following error on eggdrop1.6.21 <br>it ws working fine with eggdrop1.6.20<br>when i type !seen janii <br>if nick is online it says janii look in the mirror <img class="smilies" src="https://forum.eggheads.org/images/smilies/icon_smile.gif" width="15" height="15" alt=":)" title="Smile">--&gt; its fine<br>but when i type !seen nick if its not on channel it does nothing and i get this error in ctcp<br>Tcl error [recordz:seen]: missing operand at _@_<br>in expression "1358360443 - _@_"<div class="codebox"><p>Code: </p><pre><code>##################################################################             To activate .chanset +blackseen ##               .seen *!*@host | !seen &lt;nick&gt;############################################################################Set here the flag required to use the command ? ( -|- for everyone )set seen(flags) "-|-"#Set here the first char.set seen(chars) ". ! ` -"#Anti-Flood Protection (searches:seconds)set seen(flood) "4:5"#Set here 1 daca if you want the messages to be trough NOTICE or 0 if you want#to be trough PRIVMSG chan.set seen(how) "0"#After how many days the records will be deleted ?set seen(limittime) "90"#Timer-Time for checking ( hours )set seen(verifytime) "12"############################################################################                              There`s no END############################################################################foreach s(char) $seen(chars) {bind pub $seen(flags) $s(char)seen recordz:seen}bind join - * record:joinbind join - * record:seenedbind part - * record:partbind sign - * record:signbind kick - * record:kickbind splt - * record:splitbind nick - * record:changenicksetudef flag blackseenset dir "${username}.BlackSeen.db"set dir1 "${username}.seenrecord.db"if {![file exists $dir]} {set file [open $dir w]close $file}if {![file exists $dir1]} {set file [open $dir1 w]close $file}if {![info exists record:expire_running]} {timer [expr $seen(verifytime) * 60] record:expireset record:expire_running 1}proc record:join {nick host hand chan} {global dir botnickif {![channel get $chan blackseen]} {return 0}set lin 0set time [unixtime]set host "*!$host"if {[isbotnick $nick]} { return 0 }set who "JOIN $chan $nick $host $time 0"set file [open $dir "r"]set database [read -nonewline $file]close $fileset data [split $database "\n"]foreach line $data {set lin [expr $lin +1]set userentry [lindex [split $line] 2]set chanentry [lindex [split $line] 1]if {[string equal -nocase $userentry $nick] &amp;&amp; [string match -nocase $chanentry $chan]} { if {$line != ""} {set num [expr $lin - 1]set delete [lreplace $data $num $num]set files [open $dir "w"]puts $files [join $delete "\n"]close $files}}}set file [open $dir "r"]set data [read -nonewline $file]close $fileif {$data == ""} {set files [open $dir "w"]close $files}set file [open $dir "a"]puts $file "$who"close $file}proc record:part {nick host hand chan arg} {global dir botnickif {![channel get $chan blackseen]} {return 0}set lin 0set time [unixtime]set reason [join [lrange [split $arg] 0 end]]if {$reason == ""} { set reason "No Reason"}set host "*!$host"if {[isbotnick $nick]} { return 0 }set who "PART $chan $nick $host $time 0 $reason"set file [open $dir "r"]set database [read -nonewline $file]close $fileset data [split $database "\n"]foreach line $data {set lin [expr $lin +1]set userentry [lindex [split $line] 2]set chanentry [lindex [split $line] 1]if {[string equal -nocase $userentry $nick] &amp;&amp; [string match -nocase $chanentry $chan]} { set joined [lindex [split $line] 0]if {$joined == "JOIN"} {set j [lindex [split $line] 4]set who "PART $chan $nick $host $time $j $reason"}if {$line != ""} {set num [expr $lin - 1]set delete [lreplace $data $num $num]set files [open $dir "w"]puts $files [join $delete "\n"]close $files}}}set file [open $dir "r"]set data [read -nonewline $file]close $fileif {$data == ""} {set files [open $dir "w"]close $files}set file [open $dir "a"]puts $file "$who"close $file}proc record:sign {nick host hand chan arg} {global dir botnickif {![channel get $chan blackseen]} {return 0}set lin 0set time [unixtime]set host "*!$host"set reason [join [lrange [split $arg] 0 end]]if {$reason == ""} { set reason "No Reason"}if {[isbotnick $nick]} { return 0 }set who "SIGN $chan $nick $host $time 0 $reason"set file [open $dir "r"]set database [read -nonewline $file]close $fileset data [split $database "\n"]foreach line $data {set lin [expr $lin +1]set userentry [lindex [split $line] 2]set chanentry [lindex [split $line] 1]if {[string equal -nocase $userentry $nick] &amp;&amp; [string match -nocase $chanentry $chan]} { set joined [lindex [split $line] 0]if {$joined == "JOIN"} {set j [lindex [split $line] 4]set who "SIGN $chan $nick $host $time $j $reason"}if {$line != ""} {set num [expr $lin - 1]set delete [lreplace $data $num $num]set files [open $dir "w"]puts $files [join $delete "\n"]close $files}}}set file [open $dir "r"]set data [read -nonewline $file]close $fileif {$data == ""} {set files [open $dir "w"]close $files}set file [open $dir "a"]puts $file "$who"close $file}proc record:kick {nick host hand chan kicked reason} {global dir botnickif {![channel get $chan blackseen]} {return 0}set lin 0set time [unixtime]set hosted [getchanhost $kicked $chan]set hosted "*!$hosted"set reason [join [lrange [split $reason] 0 end]]if {[isbotnick $kicked]} { return 0 }set who "KICK $chan $kicked $hosted $time 0 $reason"set file [open $dir "r"]set database [read -nonewline $file]close $fileset data [split $database "\n"]foreach line $data {set lin [expr $lin +1]set userentry [lindex [split $line] 2]set chanentry [lindex [split $line] 1]if {[string equal -nocase $userentry $kicked] &amp;&amp; [string match -nocase $chanentry $chan]} { set joined [lindex [split $line] 0]if {$joined == "JOIN"} {set j [lindex [split $line] 4]set who "KICK $chan $kicked $hosted $time $j $reason"}if {$line != ""} {set num [expr $lin - 1]set delete [lreplace $data $num $num]set files [open $dir "w"]puts $files [join $delete "\n"]close $files}}}set file [open $dir "r"]set data [read -nonewline $file]close $fileif {$data == ""} {set files [open $dir "w"]close $files}set file [open $dir "a"]puts $file "$who"close $file}proc record:split {nick host hand chan args} {global dir botnickif {![channel get $chan blackseen]} {return 0}set lin 0set time [unixtime]set host "*!$host"if {[isbotnick $nick]} { return 0 }set who "SPLIT $chan $nick $host $time 0"set file [open $dir "r"]set database [read -nonewline $file]close $fileset data [split $database "\n"]foreach line $data {set lin [expr $lin +1]set userentry [lindex [split $line] 2]set chanentry [lindex [split $line] 1]if {[string equal -nocase $userentry $nick] &amp;&amp; [string match -nocase $chanentry $chan]} { set joined [lindex [split $line] 0]if {$joined == "JOIN"} {set j [lindex [split $line] 4]set who "SPLIT $chan $nick $host $time $j"}if {$line != ""} {set num [expr $lin - 1]set delete [lreplace $data $num $num]set files [open $dir "w"]puts $files [join $delete "\n"]close $files}}}set file [open $dir "r"]set data [read -nonewline $file]close $fileif {$data == ""} {set files [open $dir "w"]close $files}set file [open $dir "a"]puts $file "$who"close $file}proc record:changenick {nick host hand chan newnick} {global dir botnickif {![channel get $chan blackseen]} {return 0}set lin 0set time [unixtime]set host "*!$host"if {[isbotnick $nick]} { return 0 }set who "NICKCHANGE $chan $nick $host $time 0 $newnick"set file [open $dir "r"]set database [read -nonewline $file]close $fileset data [split $database "\n"]foreach line $data {set lin [expr $lin +1]set userentry [lindex [split $line] 2]set chanentry [lindex [split $line] 1]if {[string equal -nocase $userentry $nick] &amp;&amp; [string match -nocase $chanentry $chan]} { if {$line != ""} {set num [expr $lin - 1]set delete [lreplace $data $num $num]set files [open $dir "w"]puts $files [join $delete "\n"]close $files}}}set file [open $dir "r"]set data [read -nonewline $file]close $fileif {$data == ""} {set files [open $dir "w"]close $files}set file [open $dir "a"]puts $file "$who"close $file}proc recordz:seen {nick uhost hand chan arg} {global dir dir1 seen count botnickif {![channel get $chan blackseen]} {return 0}set i 0set what [lindex [split $arg] 0]set number [scan $seen(flood) %\[^:\]]set timer [scan $seen(flood) %*\[^:\]:%s]foreach tmr [utimers] {if {[string match "*count(flood:$uhost:$chan)*" [join [lindex $tmr 1]]]} {killutimer [lindex $tmr 2]}}if {![info exists count(flood:$uhost:$chan)]} { set count(flood:$uhost:$chan) 0 }incr count(flood:$uhost:$chan)utimer $timer [list unset count(flood:$uhost:$chan)]if {$count(flood:$uhost:$chan) == "$number"} {puthelp "NOTICE $nick :Asteapta 1 minut inainte de a incepe cautarea."return 0}if {[string match -nocase $what $nick]} { puthelp "NOTICE $nick :5$nick look in the mirror :)"return 0}if {[onchan $what $chan]} { puthelp "NOTICE $nick :4$what 5is already on $chan :)"return 0}set file [open $dir "r"]set database [read -nonewline $file]close $fileif {$database == ""} { puthelp "NOTICE $nick :5I dont have any record in my database."return 0}if {![string match -nocase "*!*" "$what"]} {set time [unixtime]set mask "$nick!$uhost"seen:rec $what $chan $time $mask}set data [split $database "\n"]foreach line $data {set how [lindex [split $line] 0]set userentry [lindex [split $line] 2]set chanentry [lindex [split $line] 1]set host [lindex [split $line] 3]set timer [lindex [split $line] 4]set jointime [lindex [split $line] 5]set reason [lrange [split $line] 6 end]set newnick [lindex [split $line] 6]set totalyear [expr [unixtime] - $timer]if {$totalyear &gt;= 31536000} {set yearsfull [expr $totalyear/31536000]set years [expr int($yearsfull)]set yearssub [expr 31536000*$years]set totalday [expr $totalyear - $yearssub]}if {$totalyear &lt; 31536000} {set totalday $totalyearset years 0}if {$totalday &gt;= 86400} {set daysfull [expr $totalday/86400]set days [expr int($daysfull)]set dayssub [expr 86400*$days]set totalhour [expr $totalday - $dayssub]}if {$totalday &lt; 86400} {set totalhour $totaldayset days 0}if {$totalhour &gt;= 3600} {set hoursfull [expr $totalhour/3600]set hours [expr int($hoursfull)]set hourssub [expr 3600*$hours]set totalmin [expr $totalhour - $hourssub]}if {$totalhour &lt; 3600} {set totalmin $totalhourset hours 0}if {$totalmin &gt;= 60} {set minsfull [expr $totalmin/60]set mins [expr int($minsfull)]}if {$totalmin &lt; 60} {set mins 0}if {$years &lt; 1} {set yearstext ""} elseif {$years == 1} {set yearstext "$years year, "} {set yearstext "$years years, "}if {$days &lt; 1} {set daystext ""} elseif {$days == 1} {set daystext "$days day, "} {set daystext "$days days, "}if {$hours &lt; 1} {set hourstext ""} elseif {$hours == 1} {set hourstext "$hours hour, "} {set hourstext "$hours hours, "}if {$mins &lt; 1} {set minstext ""} elseif {$mins == 1} {set minstext "$mins minute"} {set minstext "$mins minutes"}set output $yearstext$daystext$hourstext$minstextif {$totalyear &lt; 60} {set output "$totalyear seconds"}set staytime [expr [unixtime] - $jointime]set stayt [expr $timer - $jointime]if {$stayt &gt;= 31536000} {set yearsfull [expr $stayt/31536000]set years [expr int($yearsfull)]set yearssub [expr 31536000*$years]set totalday [expr $stayt - $yearssub]}if {$stayt &lt; 31536000} {set totalday $staytset years 0}if {$totalday &gt;= 86400} {set daysfull [expr $totalday/86400]set days [expr int($daysfull)]set dayssub [expr 86400*$days]set totalhour [expr $totalday - $dayssub]}if {$totalday &lt; 86400} {set totalhour $totaldayset days 0}if {$totalhour &gt;= 3600} {set hoursfull [expr $totalhour/3600]set hours [expr int($hoursfull)]set hourssub [expr 3600*$hours]set totalmin [expr $totalhour - $hourssub]}if {$totalhour &lt; 3600} {set totalmin $totalhourset hours 0}if {$totalmin &gt;= 60} {set minsfull [expr $totalmin/60]set mins [expr int($minsfull)]}if {$totalmin &lt; 60} {set mins 0}if {$years &lt; 1} {set yearstext ""} elseif {$years == 1} {set yearstext "$years year, "} {set yearstext "$years years, "}if {$days &lt; 1} {set daystext ""} elseif {$days == 1} {set daystext "$days day, "} {set daystext "$days days, "}if {$hours &lt; 1} {set hourstext ""} elseif {$hours == 1} {set hourstext "$hours hour, "} {set hourstext "$hours hours, "}if {$mins &lt; 1} {set minstext ""} elseif {$mins == 1} {set minstext "$mins minute"} {set minstext "$mins minutes"}set staytime $yearstext$daystext$hourstext$minstextif {$stayt &lt; 60} {set staytime "$stayt seconds"}set date  [clock format $timer -format %d.%m.]set hour  [clock format $timer -format %H:%M]if {$jointime == "0"} { set staymsg "5I dont know how much he stayed."} else { set staymsg "5after staying $staytime on $chan."}if {[string equal -nocase $userentry $what] &amp;&amp; [string match -nocase $chanentry $chan]} { set host [string trim $host "*!~"]set i [expr $i +1]if {$i &lt; 6} {lappend entry $userentry}set seenfound 1if {[lindex [split $line] 0] == "PART"} {set reply "4[join $entry ","] 6($host) 5left $chan about $output ($date $hour) stating: $reason, $staymsg"}if {[lindex [split $line] 0] == "SIGN"} {set reply "4[join $entry ","] 6($host) 5left IRC about $output ($date $hour) stating: $reason, $staymsg"}if {[lindex [split $line] 0] == "JOIN"} {if {[onchan $what $chan]} { set nowon "$what 5is still here."} else { set nowon "5I dont see $what on $chan" }set reply "4[join $entry ","] 6($host) 5joined $chan about $output ($date $hour).$nowon"}if {[lindex [split $line] 0] == "SPLIT"} {set reply "4[join $entry ","] 6($host) 5left in *.net *.split about $output ($date $hour), $staymsg"}if {[lindex [split $line] 0] == "KICK"} {set reply "4[join $entry ","] 6($host) 5was kicked on $chan about $output ($date $hour) with the reason ($reason), $staymsg"}if {[lindex [split $line] 0] == "NICKCHANGE"} {if {[onchan $newnick $chan]} { set nowon "4$newnick 5is stil here." } else { set nowon "I dont see $newnick on $chan" }set reply "4[join $entry ","] 6($host) 5changed NICK to $newnick about $output ($date $hour).$nowon"}}if {$what == "*!*@*"} { return 0 }if {[string match -nocase $what $host] &amp;&amp; [string match -nocase $chanentry $chan]} {set host [string trim $host "*!~"]set i [expr $i +1]if {$i &lt; 6} {lappend entry $userentry}set seenfound 1if {[lindex [split $line] 0] == "PART"} {set reply "[join $entry ","] 4($host) 5left $chan about $output ($date $hour) stating: $reason, $staymsg"}if {[lindex [split $line] 0] == "SIGN"} {set reply "[join $entry ","] 4($host) 5left IRC about $output ($date $hour) stating: $reason, $staymsg"}if {[lindex [split $line] 0] == "JOIN"} {if {[onchan $userentry $chan]} { set nowon "$userentry is stil here."} else { set nowon "I dont see $userentry on $chan" }set reply "[join $entry ","] 4($host) 5joined $chan about $output ($date $hour).$nowon"}if {[lindex [split $line] 0] == "SPLIT"} {set reply "[join $entry ","] 4($host) 5left in *.net *.split about $output ($date $hour), $staymsg"}if {[lindex [split $line] 0] == "KICK"} {set reply "[join $entry ","] 4($host) 5was kicked on $chan about $output ($date $hour) with the reason ($reason), $staymsg"}if {[lindex [split $line] 0] == "NICKCHANGE"} {if {[onchan $newnick $chan]} { set nowon "$newnick 5is still here." } else { set nowon "I dont see $newnick on $chan" }set reply "[join $entry ","] 4($host) 5changed NICK to $newnick about $output ($date $hour).$nowon"}}}if {[info exists reply]} {if {$seen(how) == "1"} {puthelp "NOTICE $nick :$reply"} else { puthelp "PRIVMSG $chan :$reply"}}if {![info exists seenfound]} {puthelp "NOTICE $nick :I dont remember $what."}}proc seen:rec {nick chan time who} {global dir1set lin 0set w "$nick $chan $time $who"if {[isbotnick $nick]} { return 0 }set filez [open $dir1 "r"]set databases [read -nonewline $filez]close $filezset datas [split $databases "\n"]foreach line $datas {set lin [expr $lin +1]set userentry [lindex [split $line] 0]set chanentry [lindex [split $line] 1]set inculpat [lindex [split $line] 3]if {[string equal -nocase $userentry $nick] &amp;&amp; [string match -nocase $chanentry $chan]} { set w "$nick $chan $time $who"if {![string match -nocase $inculpat $who]} {lappend wer $inculpat $whoset w "$nick $chan $time [join $wer " , "]"}if {$line != ""} {set num [expr $lin - 1]set delete [lreplace $datas $num $num]set files [open $dir1 "w"]puts $files [join $delete "\n"]close $files}}}set filez [open $dir1 "r"]set datas [read -nonewline $filez]close $filezif {$datas == ""} {set files [open $dir1 "w"]close $files}set filez [open $dir1 "a"]puts $filez "$w"close $filez}proc record:seened {nick host hand chan} {global dir1if {![channel get $chan blackseen]} {return 0}set lin 0set filez [open $dir1 "r"]set databases [read -nonewline $filez]close $filezset datas [split $databases "\n"]foreach line $datas {set lin [expr $lin +1]set userentry [lindex [split $line] 0]set chanentry [lindex [split $line] 1]if {[string equal -nocase $userentry $nick] &amp;&amp; [string match -nocase $chanentry $chan]} { set time [lindex [split $line] 2]set date  [clock format $time -format %d.%m.]set hour  [clock format $time -format %H:%M]set totalyear [expr [unixtime] - $time]if {$totalyear &gt;= 31536000} {set yearsfull [expr $totalyear/31536000]set years [expr int($yearsfull)]set yearssub [expr 31536000*$years]set totalday [expr $totalyear - $yearssub]}if {$totalyear &lt; 31536000} {set totalday $totalyearset years 0}if {$totalday &gt;= 86400} {set daysfull [expr $totalday/86400]set days [expr int($daysfull)]set dayssub [expr 86400*$days]set totalhour [expr $totalday - $dayssub]}if {$totalday &lt; 86400} {set totalhour $totaldayset days 0}if {$totalhour &gt;= 3600} {set hoursfull [expr $totalhour/3600]set hours [expr int($hoursfull)]set hourssub [expr 3600*$hours]set totalmin [expr $totalhour - $hourssub]}if {$totalhour &lt; 3600} {set totalmin $totalhourset hours 0}if {$totalmin &gt;= 60} {set minsfull [expr $totalmin/60]set mins [expr int($minsfull)]}if {$totalmin &lt; 60} {set mins 0}if {$years &lt; 1} {set yearstext ""} elseif {$years == 1} {set yearstext "$years an, "} {set yearstext "$years ani, "}if {$days &lt; 1} {set daystext ""} elseif {$days == 1} {set daystext "$days zi, "} {set daystext "$days zile, "}if {$hours &lt; 1} {set hourstext ""} elseif {$hours == 1} {set hourstext "$hours ora, "} {set hourstext "$hours ore, "}if {$mins &lt; 1} {set minstext ""} elseif {$mins == 1} {set minstext "$mins minut"} {set minstext "$mins minute"}set howmuch $yearstext$daystext$hourstext$minstextif {$totalyear &lt; 60} {set howmuch "$totalyear secunde"}set bywho [lrange [split $line] 3 end]puthelp "NOTICE $nick :$bywho looked for you with !seen on $chan about $howmuch ($date $hour)."if {$line != ""} {set num [expr $lin - 1]set delete [lreplace $datas $num $num]set files [open $dir1 "w"]puts $files [join $delete "\n"]close $files}}}}proc record:expire {} {global dir seenputlog "(BlackSeen) Checking informations..."set curtime [unixtime]set lin 0set countlin 0set day 86400set file [open $dir "r"]set database [read -nonewline $file]close $fileset data [split $database "\n"]foreach line $data {set lin [expr $lin +1]set lastseen [lindex [split $line] 4]set limitseen [expr ($curtime - $lastseen)/$day]if {$limitseen &gt; $seen(limittime)} {set countlin [expr $countlin +1]if {$line != ""} {set num [expr $lin - 1]set delete [lreplace $data $num $num]set files [open $dir "w"]puts $files [join $delete "\n"]close $files}}}putlog "(BlackSeen) Found $countlin expired information."timer [expr $seen(verifytime) * 60] record:expirereturn 1}putlog "5 Seen.tcl by black Loaded "</code></pre></div><p>Statistics: Posted by <a href="https://forum.eggheads.org/memberlist.php?mode=viewprofile&amp;u=11746">janii</a> — Wed Jan 16, 2013 6:49 pm</p><hr />
]]></content>
	</entry>
	</feed>
