Recent menu

Recent menu

Meniu ce afiseaza cele mai recente aplicatii deschise in mirc

Postat de Copyright Categorie Review user Vizualizari Data
BLKoldSUN Racoon activity Cod testat 389 2023-12-03 19:07:06

; Recent Menu by Raccoon Jan 2015

MENU Status,Channel,Query,Menubar,@* {
  -
  $menuspeedtest
  Recently
  .Opened
  ..$submenu($recent_menu($1,opened))
  .Viewed
  ..$submenu($recent_menu($1,viewed))
  .Typed
  ..$submenu($recent_menu($1,typed))
  .Spoken
  ..$submenu($recent_menu($1,spoken))
  .Highlighted
  ..$submenu($recent_menu($1,highlighted))
  $menuspeedtest
}

ALIAS -l menuspeedtest {
  if (!%_menuspeedtest) set -u2 %_menuspeedtest $ticks
  if ($mouse.key & 4) return $calc(($ticks - %_menuspeedtest) /1000) sec
}

ALIAS -l recent_menu { ; by Raccoon 2015
  if ($1 == begin) set -u %_menu_recent $hget(recent,$2)
  if ($1 isnum 1-35) {
    var %a = $gettok(%_menu_recent,$1,32), %wid = $gettok(%a,1,58), %ticks = $gettok(%a,2,58)
    var %win = $window(%wid), %dur = $dur($calc(($ticks - %ticks)/1000),2)
    var %net = $iif(!$window(%wid).anysc,$scid($window(%wid).cid).network $(|))
    if (%win) return %net %win $+ $chr(9) $+ %dur $+ : window -a %wid
    ;if (%a) return --- (window closed) --- $+ $chr(9) $+ %dur $+ : noop
    if (%a) return :
  }
  if ($1 isnum) && (!%_menu_recent.done) { set -u %_menu_recent.done $true | return - }
  if ($1 == end) return Clear: hdel recent $2
}
ALIAS -l dur { return $regsubex($gettok($duration($1),1- $+ $2,32),/(d+w)D*/g,	) } ; by Raccoon

On *:ACTIVE:*:  recent_add viewed $activewid
On *:INPUT:*:   recent_add typed $activewid
On *:OPEN:*:    recent_add opened $window($target).wid
On me:*:JOIN:*: recent_add opened $chan($chan).wid
ALIAS -l recent_add { ; by Raccoon 2015
  var %a = $hget(recent,$$1), %wid = @ $+ $$2
  var %a = %wid $+ : $+ $ticks $regsubex(%a,/ %wid :d+/xg,)
  if ($len(%a) > 4000) var %a = $deltok(%a,-1,32)
  hadd -m recent $1 %a
}

On *:TEXT:*:*:   recent_spoke $1-
On *:ACTION:*:*: recent_spoke $1-
On *:NOTICE:*:#: recent_spoke $1-
ALIAS -l recent_spoke { ; by Raccoon 2015
  if ($1- !isnum) && ($highlight($1-)) recent_add highlighted $window($target).wid
  recent_add spoken $window($target).wid
}