]> git.99rst.org Git - irssi-scripts.irssi.org.git/commitdiff
Update sping.pl to do hires timing
authorDavid Leadbeater <redacted>
Sun, 15 Jun 2014 18:18:39 +0000 (19:18 +0100)
committerDavid Leadbeater <redacted>
Sun, 15 Jun 2014 18:18:39 +0000 (19:18 +0100)
_data/scripts.yaml
scripts/sping.pl

index 8e8907554535da6516ca2723882a21df14672545..c18a447cac0b3103f8c33d62df6674df27df4fa8 100644 (file)
   version: "0.3"
 
 - authors: "Maciek fahren Freudenheim"
-  changed: "Fri Mar 15 15:09:42 CET 2002"
+  changed: "Sun Jun 15 19:11:55 BST 2014"
   contact: "fahren@bochnia.pl"
   description: "/SPING [server] - checks latency between current server and [server]"
   filename: "sping.pl"
   modified: "2008-05-17 17:39:09"
   license: "GNU GPLv2 or later"
   name: "Server Ping"
-  version: "0.9"
+  version: "1.0"
 
 - authors: "Bjoern fuchs Krombholz"
   changed: "Wed Jun 25 00:17:00 CET 2003"
index 49d8d782a50ca5abb4825656fdd52fc72b8d974c..484245499260b5ac7fb0ab40ccbdb7773eae91f6 100644 (file)
@@ -3,33 +3,38 @@ use Irssi::Irc;
 use strict;
 
 use vars qw($VERSION %IRSSI);
-$VERSION = "0.9";
+$VERSION = "1.0";
 %IRSSI = (
-        authors         => "Maciek \'fahren\' Freudenheim",
+        authors         => "Maciek \'fahren\' Freudenheim, David Leadbeater",
         contact         => "fahren\@bochnia.pl",
         name            => "Server Ping",
         description     => "/SPING [server] - checks latency between current server and [server]",
         license         => "GNU GPLv2 or later",
-        changed         => "Fri Mar 15 15:09:42 CET 2002"
+        changed         => "Sun 15 Jun 18:56:52 BST 2014",
 );
 
+# us. /SPING [server]
+
+use Time::HiRes qw(gettimeofday);
+
 my %askping;
 
 sub cmd_sping {
        my ($target, $server, $winit) = @_;
-       
+
        $target = $server->{address} unless $target;
-       $askping{$target} = time();
-       $server->send_raw("PING $server->{address} $target");   
+       $askping{$target} = gettimeofday();
+       # using nickname rather than server seems to work better here
+       $server->send_raw("PING $server->{nick} $target");
 }
 
 sub event_pong {
        my ($server, $args, $sname) = @_;
-       
-       Irssi::signal_stop() if ($askping{$sname});
+       return unless exists $askping{$sname};
 
-       Irssi::print(">> $sname latency: " . (time() - $askping{$sname}) . "s");
-       undef $askping{$sname};
+       Irssi::signal_stop();
+       Irssi::print(">> $sname latency: " .  sprintf("%0.3f",gettimeofday() - $askping{$sname}) . "s");
+       delete $askping{$sname};
 }
 
 Irssi::signal_add("event pong", "event_pong");
git clone https://git.99rst.org/PROJECT