seen - need com chan, help? - 05/09/22 02:42 PM
I have a neat script that I stumbled here in the forums and it's working but I'd like to add common channels, if possible.
Script to return which common channel it last saw the user.
For example, I did !seen <nick> in channel #1, and the script would return which last common channel it last saw the nick (in case the user did not join #channel 1, but happened to actually join channel#2 and parted/quitted there, kinda thing, if that makes sense, heh).
Can someone help me with this?
Script to return which common channel it last saw the user.
For example, I did !seen <nick> in channel #1, and the script would return which last common channel it last saw the nick (in case the user did not join #channel 1, but happened to actually join channel#2 and parted/quitted there, kinda thing, if that makes sense, heh).
Can someone help me with this?
Code
seen script-- alias seenstart { hfree -w seen hmake seen 500 if (!$isfile(Seen.db)) write Seen.db hload -b seen Seen.db } alias -l seentime return $asctime($gmt,yyyy-mm-dd HH:nn:ss) UTC. alias -l seenshort if ($len($1) > $2) return $left($1,$2) $+ ... | else return $1 on *:start:seenstart on *:exit:hsave -b seen Seen.db on *:join:#:hadd seen $nick $gmt $nick joining # channel at $seentime on *:part:#:hadd seen $nick $gmt $nick leaving # channel $iif($1-,with $qt($seenshort($strip($1-),300)) message,without a message) at $seentime on *:quit:hadd seen $nick $gmt $nick quitting $iif($1-,with $qt($seenshort($strip($1-),300)) message,without a message) at $seentime on *:kick:#: { hadd seen $knick $gmt $knick getting kicked from # channel by $nick $iif($1-,with $qt($seenshort($strip($1-),300)) message,without a message) at $seentime hadd seen $nick $gmt $nick kicking $knick from # channel $iif($1-,with $qt($seenshort($strip($1-),300)) message,without a message) at $seentime } on *:nick: { hadd seen $nick $gmt $nick changing their name to $newnick at $seentime hadd seen $newnick $gmt $nick changing their name to $newnick at $seentime } on *:topic:#:hadd seen $nick $gmt $nick changing the topic of # channel to $qt($seenshort($strip($1-),300)) at $seentime on *:notice:*:#:hadd seen $nick $gmt $nick saying $qt($seenshort($strip($1-),300)) on # at $seentime ctcp *:*:#:hadd seen $nick $gmt $nick sending $qt($seenshort($strip($1-),300)) CTCP message on # at $seentime on *:action:*:#:hadd seen $nick $gmt $nick saying $qt($seenshort($strip($1-),300)) on # at $seentime on *:text:*:#: { hadd seen $nick $gmt $nick saying $qt($seenshort($strip($1-),300)) on # at $seentime if ($istok(! . @ $ ,$left($1,1),32)) && ($istok(seen s,$mid($1,2-),32)) { var %m = .msg # if (!$2) %m Error: invalid parameters. Usage: $upper($1) <NAME> elseif ($2 == $me) %m I believe I'm right here, although I might be wrong. Maybe I'm just the product of your imagination. elseif ($2 == $nick) %m $replacex($gettok(<nick>? Never heard. <44> @.@ |I heard <nick> is somewhere in the mirror<44> go and take look.|<nick probably is on a date!|<nick> is behind you... awooo.,$rand(1,10),124),<nick>,$nick,<44>,$chr(44)) elseif ($hget(seen,$2)) { tokenize 32 $v1 | %m I last saw $2- $b($duration($calc($gmt -$1)) ago) } elseif ($hget(seen,$hfind(seen,$2,1,w).item)) { var %n = $2 tokenize 32 $v1 %m I last saw $2- $b($duration($calc($gmt -$1)) ago) if ($hfind(seen,%n,0,w) > 1) %m There are also $bytes($calc($v1 -1),b) other(s) whose name matches to $qt(%n) $+ : $seenlistnames(%n) } else %m I don't think I know who $2 is or seen lately. } } alias -l seenlistnames { var %x = 2,%n while ($hfind(seen,$1,%x,w)) { var %n = %n $v1 if (%x >= 10) return $replace(%n,$chr(32),$chr(44) $+ $chr(32)) $+ ... inc %x } return $replace(%n,$chr(32),$chr(44) $+ $chr(32)) }