]> git.99rst.org Git - irssi-scripts.irssi.org.git/commitdiff
Display remaining time for attention span match
authormartin f. krafft <redacted>
Fri, 17 Sep 2021 05:22:32 +0000 (07:22 +0200)
committermartin f. krafft <redacted>
Fri, 17 Sep 2021 21:41:58 +0000 (23:41 +0200)
If a rule matches within the attention span (i.e. within a certain
period following one's own engagement), then display how long this rule
will continue to match (remaining time).

Signed-off-by: martin f. krafft <redacted>
scripts/ctrlact.pl

index cba76971f826e92597fddf49113ea23acdce9401..4d85caa0c18f1cc32721bb69caf040a34d5e9ec1 100644 (file)
 ### To-do:
 #
 # - figure out interplay with activity_hide_level
-# - "/ctrlact query" should include attention span left
 # - use Irssi formats
 #
 use strict;
@@ -311,8 +310,11 @@ sub walk_match_array {
                next unless $netpat and $namepat;
 
                my $own = $OWN_ACTIVITY{($net, $name)} // 0;
+               my $time = time();
                my $span = ($rule->[3] eq '∞') ? 0 : $rule->[3];
-               if ($span > 0 and time() > ($own + $span)) {
+               my $remaining = $own + $span - $time;
+
+               if ($span > 0 and $remaining <= 0) {
                        delete $OWN_ACTIVITY{($net, $name)};
                        next;
                }
@@ -321,7 +323,8 @@ sub walk_match_array {
                my $tresult = from_data_level($result);
                $name = '(unnamed)' unless length $name;
                my $match = sprintf('%s = net:%s name:%s span:%s',
-                       $rule->[4], $netpat, $namepat, $rule->[3]);
+                       $rule->[4], $netpat, $namepat,
+                       ($remaining < 0) ? $rule->[3] : $remaining.'s remain');
                return ($result, $tresult, $match);
        }
        return -1;
git clone https://git.99rst.org/PROJECT