Versionscanner

By knoeki on Jul 15, 2009

Simple script that will version everyone in a channel to see which client is the most popular. Can also save the results to a file, if wanted.

just type /versionscan in the channel you want to scan... but not everyone likes to just be version'd like that... :_)

Okay, I just have to say: this thing does not always work completely, especially when the channel is too large CTCPs will get throttled, and some stuff might suddenly not work. I can't really be bothered to make it work properly on large channels because testing is a pain the butt... ;_)

alias versionscan {
   dialog -m versionscan versionscan
   set %vc.versionscan 1
   var %count 1
   set %vc.total $nick($chan, 0)
   while (%count <= %vc.total) {
      .timer 1 %count ctcp $nick($chan, %count) VERSION
      inc %count
   }
}

on *:CTCPREPLY:VERSION*: {
   if (%vc.versionscan == 1) {
      if ($2 != $chr(40)) {
         inc %vc.version. [ $+ [ $2 ] ]
      }
      else {
         inc %vc.version. [ $+ [ $3 ] ]
      }
      inc %vc.count
      if (%vc.count == %vc.total) {
         .timer 1 2 versionlist
      }
   }
}

alias versionlist {
   var %count 1
   var %total $var(%vc.version.*, 0)
   while (%count <= %total) {
      did -a versionscan 1 $strip($eval($var(%vc.version.*, %count), 2) $gettok($var(%vc.version.*, %count), -1, 46))
      inc %count
   }
   unset %vc.*
}

on *:DIALOG:versionscan:sclick:2: {
   var %filename $?="save to file..."
   did -b $dname 2
   var %count 1
   var %total $did(1).lines
   while (%count <= %total) {
      write $qt(%filename) $did(1, %count).text
      inc %count
   }
   did -e $dname 2
}

dialog versionscan {
  title "VersionScanner v1.0"
  size -1 -1 126 114
  option dbu
  list 1, 0 0 126 100, sort size
  button "Save results", 2, 78 101 47 12
}

Comments

Sign in to comment.
Cracker200   -  Oct 03, 2009

Nice.

 Respond  
Are you sure you want to unfollow this person?
Are you sure you want to delete this?
Click "Unsubscribe" to stop receiving notices pertaining to this post.
Click "Subscribe" to resume notices pertaining to this post.