SaNCaK

miRC Seen System

Mar 17th, 2026 (edited)
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
mIRC 10.87 KB | None | 0 0
  1. menu menubar,channel {
  2.   • Ayar
  3.   .Seen System {
  4.     seen
  5.   }
  6. }
  7.  
  8. alias 'sw .writeini -n seen.ini $$1 $$2 $3-
  9. alias ´sr return $readini seen.ini $$1 $$2
  10. alias _chans return $´sr(seen,channels)
  11. alias chans_ return $´sr(seen,ignore_chans)
  12. alias seen.user {
  13.   if ($1 != $null) {
  14.     if ($1 ison $3) && ($1 != $me) { _xmsg.c (Seen System) $2 $+ , the user you looking for ( $+ $1 $+ ) is in $3 right now - %name | goto end }
  15.     if ($me == $1) { _xmsg.c (Seen System) $2 $+ , i'm here.. what do you need? - %name | goto end }
  16.     if ($´sr($1, [ part_ $+ [ $3 ] ] ) != $null) { var %part.time = $´sr($1, [ part_ $+ [ $3 ] ] ) }
  17.     if ($´sr($1,quit_time) != $null) { var %quit.time = $´sr($1,quit_time) }
  18.     if (%quit.time >= %part.time) && (%quit.time != $null) { var %seen.result = quitting at %quit.time from $gettok($´sr($1,quit),1,32) stating: $chr(34) $+ $gettok($´sr($1,quit),2-,32) $+ $chr(34) }
  19.     if (%quit.time < %part.time) && (%part.time != $null) { var %seen.result = parting from $3 at %part.time }
  20.     if (%seen.result != $null) { _xmsg.c (Seen System) $2 $+ , $´sr($1,address) last seen was %seen.result - %name }
  21.     if (%seen.result == $null) { _xmsg.c (Seen System) $2 $+ , sorry i can't remember seeing $1 - %name }
  22.   }
  23.   :end
  24. }
  25. #seen on
  26. on ^1:JOIN:*:if ($chan isin $_chans) || ($_chans == $chr(42)) && ($nick != $me) && ($chan !isin $chans_) { 'sw $nick join_ $+ [ $chan ] $time(HH:nn:ss (dd/mm/yyyy)) | 'sw $nick address $gettok($address($nick,5),1,33) ( $+ $gettok($address($nick,5),2,33) $+ ) }
  27. on ^1:PART:*:if ($chan isin $_chans) || ($_chans == $chr(42)) && ($nick != $me) && ($chan !isin $chans_) { 'sw $nick part_ $+ [ $chan ] $time(HH:nn:ss (dd/mm/yyyy)) | 'sw $nick address $gettok($address($nick,5),1,33) ( $+ $gettok($address($nick,5),2,33) $+ ) }
  28. on ^1:TEXT:*:*:if ($1 != $null) && ($2 != $null) && ($1 == $´sr(seen,trigger)) { if ($chan !isin $chans_) && ($chan isin $_chans) || ($_chans == $chr(42)) { { seen.user $2 $nick $chan } } }
  29. on ^1:QUIT:{
  30.   var %temp.seen.comchans = $comchan($nick,0)
  31.   if (%temp.seen.comchans != $null) {
  32.     var %seen.c 1
  33.     while (%seen.c <= %temp.seen.comchans) {
  34.       if ($comchan($nick,%seen.c) isin $_chans) || ($_chans == $chr(42)) { var %total.seen.comchans = %total.seen.comchans $+ $iif(%total.seen.comchans != $null, $+ $chr(44)) $+ $comchan($nick,%seen.c) }
  35.       inc %seen.c
  36.     }
  37.   }
  38.   'sw $nick quit %total.seen.comchans $1- | 'sw $nick quit_time $time(HH:nn:ss (dd/mm/yyyy))
  39. }
  40. #seen end
  41. alias seen if ($dialog(seen)) dialog -v seen | else dialog -m seen seen
  42. dialog seen {
  43.   title "Seen System"
  44.   size -1 -1 130 115
  45.   option dbu
  46.   icon graph/seen.ico, 0
  47.   box "Seen setup", 1, 5 2 120 109
  48.   check "Enable", 2, 10 12 60 7, flat
  49.   check "On start clear seen list", 3, 10 22 70 7, flat
  50.   text "Use", 4, 10 37 10 7
  51.   edit "", 5, 21 35 50 10, autohs
  52.   text "as seen trigger", 6, 73 37 50 7
  53.   check "Respond only in these channels:", 7, 10 52 90 7, flat
  54.   edit "", 8, 10 62 110 10, autohs
  55.   check "Ignore all these channels:", 9, 10 75 90 7, flat
  56.   edit "", 10, 10 85 110 10, autohs
  57.   button "Save", 11, 90 98 30 10, flat ok
  58.   button "Open list", 13, 90 10 30 10, flat
  59.   button "Clear list", 14, 90 20 30 10, flat
  60.   button "Ara", 15, 11 97 30 10, flat
  61. }
  62.  
  63. on *:dialog:seen:init:*: {
  64.   ; yes... this is NOT a bug! ignored channels must be != $null otherwise.... you know...
  65.   if ($´sr(seen,ignore_chans) == $null) { 'sw seen ignore 0 }
  66.   ; end of statement! =)
  67.   if ($´sr(seen,inuse) == 1) { did -c seen 2 | if ($group(#seen) == off) { .enable #seen } } | else { did -b seen 5,7,8,9,10 }
  68.   if ($´sr(seen,startup) == 1) { did -c seen 3 }
  69.   if ($´sr(seen,only) == 1) { did -c seen 7 | if ($´sr(seen,channels) != $null) { did -ra seen 8 $´sr(seen,channels) } } | else { did -b seen 8 | if ($´sr(seen,channels) != $null) && ($´sr(seen,channels) != $chr(42)) { did -ra seen 8 $´sr(seen,channels) } }
  70.   if ($´sr(seen,ignore) == 1) { did -c seen 9 | if ($´sr(seen,ignore_chans) != $null) { did -ra seen 10 $´sr(seen,ignore_chans) } } | else { did -b seen 10 | if ($´sr(seen,ignore_chans) != $null) { did -ra seen 10 $´sr(seen,ignore_chans) } }
  71.   if ($´sr(seen,trigger) == $null) { 'sw seen trigger !seen } | if ($´sr(seen,trigger) != $null) { did -ra seen 5 $´sr(seen,trigger) }
  72. }
  73. on *:dialog:seen:sclick:*: {
  74.   if ($did == 2) { if ($´sr(seen,inuse) == 1) { .disable #seen | 'sw seen inuse 0 | did -b seen 5,7,8,9,10 } | else { .enable #seen | 'sw seen inuse 1 | did -e seen 5,7,9 | if ($´sr(seen,channels) != $null) && ($´sr(seen,channels) != $chr(42)) && ($´sr(seen,only) == 1) { did -e seen 8 } | if ($´sr(seen,ignore) == 1) && ($´sr(seen,ignore_chans) != $null) { did -e seen 10 } } }
  75.   if ($did == 3) { if ($´sr(seen,startup) == 1) { 'sw seen startup 0 } | else { 'sw seen startup 1 } }
  76.   if ($did == 7) { if ($´sr(seen,only) == 1) { 'sw seen only 0 | did -b seen 8 | 'sw seen channels * } | else { 'sw seen only 1 | did -e seen 8 | if ($did(8).text != $null) { 'sw seen channels $did(8).text } } }
  77.   if ($did == 9) { if ($´sr(seen,ignore) == 1) { 'sw seen ignore 0 | .remini seen.ini seen ignore_chans | did -b seen 10 } | else { 'sw seen ignore 1 | did -e seen 10 | if ($did(10).text != $null) { 'sw seen ignore_chans $did(10).text } } }
  78.   if ($did == 11) { if ($´sr(seen,trigger) == $null) { 'sw seen trigger !seen } }
  79.   if ($did == 12) { run readme.txt }
  80.   if ($did == 13) { run seen.ini }
  81.   if ($did == 14) { clear.seen.list }
  82.   if ($did == 15) { search }
  83. }
  84.  
  85. on *:dialog:seen:edit:*: {
  86.   if ($did == 5) && ($did(5).text != $null) { 'sw seen trigger $did(5).text } | if ($did(5).text == $null) { .remini seen.ini seen trigger }
  87.   if ($did == 8) && ($did(8).text != $null) { 'sw seen channels $did(8).text } | if ($did(8).text == $null) { .remini seen.ini seen channels }
  88.   if ($did == 10) && ($did(10).text != $null) { 'sw seen ignore_chans $did(10).text } | if ($did(10).text == $null) { .remini seen.ini seen ignore_chans }
  89. }
  90. alias clear.seen.list {
  91.   .write -c seen.ini
  92.   if ($did(seen,2).state == 1) || (%inuse == 1) { 'sw seen inuse 1 | .enable seen } | else { 'sw seen inuse 0 | .disable seen }
  93.   if ($did(seen,3).state == 1) || (%startup == 1) { 'sw seen startup 1 } | else { 'sw seen startup 0 }
  94.   if ($did(seen,5).text != $null) || (%trigger == 1) { 'sw seen trigger $did(seen,5).text } | else { 'sw seen trigger !seen }
  95.   if ($did(seen,7).state == 1) || (%only == 1) { 'sw seen only 1 } | else { 'sw seen only 0 }
  96.   if ($did(seen,8).text != $null) && ($´sr(seen,only) == 1) { 'sw seen channels $did(seen,8).text } | else { 'sw seen channels * | 'sw seen only 0 | did -u seen 7 | did -b seen 8 }
  97.   if ($did(seen,9).state == 1) || (%ignore == 1) { 'sw seen ignore 1 } | else { 'sw seen ignore 0 }
  98.   if ($did(seen,10).text != $null) && ($´sr(seen,ignore) == 1) { 'sw seen ignore_chans $did(seen,10).text }
  99. }
  100. alias clear.seen.list_ {
  101.   if ($´sr(seen,inuse) == 1) { var %inuse 1 }
  102.   if ($´sr(seen,startup) == 1) { var %startup 1 }
  103.   if ($´sr(seen,trigger) != $null) { var %trigger = $´sr(seen,trigger) }
  104.   if ($´sr(seen,only) == 1) { var %only 1 }
  105.   if ($´sr(seen,channels) != $null) { var %channels = $´sr(seen,channels) }
  106.   if ($´sr(seen,ignore) == 1) { var %ignore 1 }
  107.   if ($´sr(seen,ignore_chans) != $null) { var %ignore_chans = $´sr(seen,ignore_chans) }
  108.   if (%inuse == 1) { 'sw seen inuse 1 | .enable seen } | else { 'sw seen inuse 0 | .disable seen }
  109.   if (%startup == 1) { 'sw seen startup 1 } | else { 'sw seen startup 0 }
  110.   if (%trigger == 1) { 'sw seen trigger $did(seen,5).text } | else { 'sw seen trigger !seen }
  111.   if (%only == 1) { 'sw seen only 1 } | else { 'sw seen only 0 }
  112.   if (%channels != $null) && ($´sr(seen,only) == 1) { 'sw seen channels %channels }
  113.   if (%ignore == 1) { 'sw seen ignore 1 } | else { 'sw seen ignore 0 }
  114.   if (%ignore_chans != $null) && ($´sr(seen,ignore) == 1) { 'sw seen ignore_chans %ignore_chans }
  115. }
  116. alias search if ($dialog(search)) dialog -v search | else dialog -m search search
  117. dialog search {
  118.   title "Seen Search"
  119.   icon graph/seen.ico
  120.   size -1 -1 130 123
  121.   option dbu
  122.   button "Ok",999,0 0 0 0,ok
  123.   box "Seen search",1,5 2 120 48
  124.   text "Nickname:",2,10 13 25 7
  125.   edit "",3,45 11 75 10,autohs
  126.   text "On channels:",4,10 23 35 7
  127.   edit "",5,45 21 75 10,autohs
  128.   button "Search",6,58 35 30 10
  129.   button "Clear",7,90 35 30 10
  130.   box "Search results",8,5 53 120 65
  131.   text "Address:",9,10 64 25 7
  132.   edit "",10,37 62 83 10,autohs read
  133.   text "Join time:",11,10 74 25 7
  134.   edit "",12,37 72 83 10,autohs read
  135.   text "Part time:",13,10 84 25 7
  136.   edit "",14,37 82 83 10,autohs read
  137.   text "Quit time:",15,10 94 25 7
  138.   edit "",16,37 92 83 10,autohs read
  139.   text "Quit state:",17,10 104 25 7
  140.   edit "",18,37 102 83 10,autohs read
  141. }
  142. on *:dialog:search:init:*:did -b search 6,7
  143. on *:dialog:search:sclick:*:{
  144.   if ($did == 6) { seen.search }
  145.   if ($did == 7) { did -r search 3,5,10,12,14,16,18 | did -b search 6,7 }
  146. }
  147. on *:dialog:search:edit:*:{
  148.   if ($did(search,3).text == $null) || ($did(search,5).text == $null) { did -b search 6,7 }
  149.   if ($did(search,3).text != $null) || ($did(search,5).text != $null) { did -e search  7 }
  150.   if ($did(search,3).text != $null) && ($did(search,5).text != $null) { did -e search 6,7 }
  151. }
  152. alias seen.search {
  153.   if ($did(search,3).text != $null) && ($did(search,5).text != $null) {
  154.     var %seen.search.nick = $did(search,3).text | var %seen.search.chan $did(search,5).text
  155.     if ($´sr(%seen.search.nick, [ join_ $+ [ %seen.search.chan ] ] ) != $null) || ($´sr(%seen.search.nick, [ part_ $+ [ %seen.search.chan ] ] ) != $null) || ($´sr(%seen.search.nick,quit) != $null) {
  156.       if ($´sr(%seen.search.nick,address) != $null) { did -ra search 10 $´sr(%seen.search.nick,address) }
  157.       if ($´sr(%seen.search.nick, [ join_ $+ [ %seen.search.chan ] ] ) != $null) { did -ra search 12 $´sr(%seen.search.nick, [ join_ $+ [ %seen.search.chan ] ] ) } | else { did -ra search 12 n/a }
  158.       if ($´sr(%seen.search.nick, [ part_ $+ [ %seen.search.chan ] ] ) != $null) { did -ra search 14 $´sr(%seen.search.nick, [ part_ $+ [ %seen.search.chan ] ] ) } | else { did -ra search 14 n/a }
  159.       if ($´sr(%seen.search.nick,quit_time) != $null) { did -ra search 16 $´sr(%seen.search.nick,quit_time) } | else { did -ra search 16 n/a }
  160.       if ($´sr(%seen.search.nick,quit) != $null) && (%seen.search.chan isin $gettok($´sr(%seen.search.nick,quit),1,32)) { did -ra search 18 $gettok($´sr(%seen.search.nick,quit),2-,32) } | else { did -ra search 18 n/a }
  161.       goto end
  162.     }
  163.   }
  164.   if ($´sr(%seen.search.nick, [ join_ $+ [ %seen.search.chan ] ] ) == $null) && ($´sr(%seen.search.nick, [ part_ $+ [ %seen.search.chan ] ] ) == $null) && ($´sr(%seen.search.nick,quit) == $null) { did -ra search 10,12,14,16,18 no matches found! | goto end }
  165.   did -ra search 10,12,14,16,18 error: parameters missing!
  166.   :end
  167. }
  168. on *:start:if ($´sr(seen,startup) == 1) { clear.seen.list_ } | if ($exists(seen.ini) == $false) { 'sw seen inuse 0 | 'sw seen startup 0 }
  169.  
Tags: #mIRC #seen
Advertisement
Add Comment
Please, Sign In to add comment