DataAgent v1.3: Terminal Edition — File Browser

DataAgentv1.3TerminalEditionv1.3 / DataAgentv1.3TerminalEditionv1.3 / da13 / dataagent.mrc

dataagent.mrc — 17.34 KB — Download this file

; DataAgent v1.3:  Terminal Edition
; File/memory utility for mIRC
; By Alchem^st

on *:load:{ da.chk | da.cmd }

alias da.cmd { if $dialog(ÐÂ) { dialog -x ÐÂ } | dialog -m ÐÂ ÐÂ }

dialog ÐÂ {
  title $chr(32)
  size -1 -1 250 124
  icon 1,0 0 250 90,$scriptdirDataAgent.bmp
  icon 2,0 0 250 214,$scriptdirClose.bmp
  button "N/A" 3,0 0 0 0,ok
  button "N/A" 4,0 0 0 0,cancel
}

on *:dialog:ÐÂ:init:*:{
  set %da.char#
  .timerda.cmd.scroll -cmo 32 50 tb
}

alias -l tb {
  inc %da.char#
  dialog -t ÐÂ $left(DataAgent v1.3:TE ¦ mIRC32 v [ $+ [ $version ] ] ,%da.char#)
  if (%da.char# == 32) { unset %da.char# }
}

on *:dialog:ÐÂ:sclick:3:{ .timerda.cmd.scroll off | cmds }

on *:dialog:ÐÂ:sclick:4:{ .timerda.cmd.scroll off }

on *:dialog:ÐÂ:sclick:2:{ .timerda.cmd.scroll off | cmds | dialog -x ÐÂ }

alias -l cmds {
  echo $colour(highlight) -a ______________________
  echo $colour(highlight) -a ° DATAAGENT COMMANDS °
  echo -a 
  echo $colour(info2) -a 14/datacon    -opens the main console
  echo $colour(info2) -a 14/filespecs  -retrieves size & mod. date
  echo $colour(info2) -a 14/drivescan  -performs disk analysis
  echo $colour(info2) -a 14/memstats   -returns memory stats
  echo $colour(info2) -a 14/attrib     -opens attributes dialog
  echo $colour(info2) -a 14/scripts    -lists loaded scripts
  echo $colour(info2) -a 14/exp <path> -launches explorer (<> optnl)
  echo $colour(info2) -a 14/loadfile   -gui for loading scripts
  echo -a 
  echo $colour(info2) -a 14/dcback     -changes datacon's backdrop
  echo $colour(info2) -a 14/da.sv      -outputs version data
  echo $colour(info2) -a 14/da.cmd     -lists commands
}

alias -l da.chk {
  unset %da.dll | set %da.dll " $+ $scriptdirfsmem.dll $+ "
  if ($version < 5.81) { eai You must be using mIRC 5.81 or greater to run this addon. | ücode } | elseif ($bits != 32) { eai You must be using the 32-bit version of mIRC to run this addon. | ücode }
  elseif (($exists(%da.dll) != $true)) {
    eai Fsmem.dll must be placed in $+ $colour(info2) $cap($scriptdir)  $+ $colour(info) $+ for DataAgent to function. | ücode
  }
  elseif (($exists($scriptdirdataagent.bmp) != $true)) {
    eai DataAgent.bmp must be placed in $+ $colour(info2) $cap($scriptdir)  $+ $colour(info) $+ for DataAgent to function. | ücode
  }
  elseif (($exists($scriptdirclose.bmp) != $true)) {
    eai Close.bmp must be placed in $+ $colour(info2) $cap($scriptdir)  $+ $colour(info) $+ for DataAgent to function. | ücode
  } 
  elseif (($exists($scriptdirdcb-st.bmp) != $true)) {
    eai DCB-ST.bmp must be placed in $+ $colour(info2) $cap($scriptdir)  $+ $colour(info) $+ for DataAgent to function. | ücode
  }
  elseif (($exists($scriptdirdcb-mt.bmp) != $true)) {
    eai DCB-MT.bmp must be placed in $+ $colour(info2) $cap($scriptdir)  $+ $colour(info) $+ for DataAgent to function. | ücode
  }
  elseif ($lock(dll) == $true) && ($lock(run) == $true) { 
    eai You must remove the lock on /run and /dll in order to run DataAgent.  To do so, hit Alt + O and go down to "General".  Once there, go to "Lock" and uncheck "/run" and "/dll". | ücode
  }
  elseif ($lock(dll) == $true) {
    eai You must remove the lock on /dll in order to run DataAgent.  To do so, hit Alt + O and go down to "General".  Once there, go to "Lock" and uncheck "/dll". | ücode
  }
  elseif ($lock(run) == $true) {
    eai You must remove the lock on /run in order to run DataAgent.  To do so, hit Alt + O and go down to "General".  Once there, go to "Lock" and uncheck "/run". | ücode
  }
}

on *:start:{ da.chk }

alias -l cap { return $upper($mid($1-,1,1)) $+ $right($1-,-1) }

alias -l eai { echo -a 2±12±± $+ $colour(info) $1- }

alias da.sv { $iif($active == status window,echo,say) { DataAgent v1.3:TE ¦ mIRC32 v $+ $version } }

menu menubar {
  &DataAgent
  .Co&nsole
  ..Ope&n:{ datacon }
  ..&Backdrop
  ...$+ $iif(%da.dcback == $scriptdirdcb-st.bmp || %da.dcback == $null,ø, $+ ) &Spotlight Theater:{
    if (%da.dcback == $scriptdirdcb-st.bmp) { halt }
    set %da.dcback $scriptdirdcb-st.bmp
    eai Spotlight Theater [DACon backdrop] set.
    if $dialog(datacon) { dialog -x datacon | dialog -mod datacon datacon }
    if $dialog(datacon.nb) { dialog -x datacon.nb | dialog -mod datacon datacon }
  }
  ...$+ $iif(%da.dcback == $scriptdirdcb-mt.bmp,ø, $+ ) &Monochrome Tech:{
    if (%da.dcback == $scriptdirdcb-mt.bmp) { halt }
    set %da.dcback $scriptdirdcb-mt.bmp
    eai Monochrome Tech [DACon backdrop] set.
    if $dialog(datacon) { dialog -x datacon | dialog -mod datacon datacon }
    if $dialog(datacon.nb) { dialog -x datacon.nb | dialog -mod datacon datacon }
  }
  ...-
  ...$+ $iif((%da.dcback != $scriptdirdcb-st.bmp) && (%da.dcback != $scriptdirdcb-mt.bmp) && (%da.dcback != nil) && (%da.dcback != $null),ø, $+ ) &Custom:{ dcback }
  ...-
  ...$+ $iif(%da.dcback == nil,ø, $+ ) &None:{ 
    if (%da.dcback == nil) { halt }    
    set %da.dcback nil
    eai DACon backdrop cleared.
    if $dialog(datacon) { 
      dialog -x datacon
      dialog -mod datacon.nb datacon.nb 
    } 
  }
  .&Content
  ..&File Specs:{ filespecs }
  ..&Drive Specs:{ drivescan }
  ..&Mem Stats:{ memstats }
  ..&Attributes:{ attrib }
  ..&Scripts:{ scripts }
  ..&Explorer:{ exp }
  ..-
  ..&Load File:{ loadfile }
  ..-
  ..&Commands:{ da.cmd }
  .-
  .Unload:{ ünload }
}

alias dcback {
  var %dc.cbf = $?="Specify the name of the bitmap (e.g. fire)"
  if (%dc.cbf == $null) { halt }
  var %dc.cbf = %dc.cbf $+ .bmp
  if ($isfile($scriptdir [ $+ [ %dc.cbf ] ] ) == $true) {
    set %da.dcback $scriptdir $+ [ %dc.cbf ]
    eai DACon backdrop set to %dc.cbf $+ . 
    if $dialog(datacon) { dialog -x datacon | dialog -mod datacon datacon }
    if $dialog(datacon.nb) { dialog -x datacon.nb | dialog -mod datacon datacon }
  }
  else { eai Invalid backdrop file. }
}

alias loadfile { load -rs " $+ $$dir="Select a file to load into mIRC" *.mrc;*.ini $+ " }

alias exp { run explorer.exe $1- }

alias -l ß× {
  if ($1 == $null) return N/A
  if ($1 < 1024) return $1 B
  if ($1 < $calc(1024^2)) return $round($calc($1 / 1024),2) KB
  if ($1 < $calc(1024^3)) return $round($calc($1 / 1024^2),2) MB
  if ($1 < $calc(1024^4)) return $round($calc($1 / 1024^3),2) GB
}

alias datacon {
  if ($dialog(datacon)) { dialog -x datacon }
  if (%da.dcback == $null) { set %da.dcback $scriptdirdcb-st.bmp }
  if (%da.dcback == nil) {
    if ($dialog(datacon.nb)) { dialog -x datacon.nb }
    dialog -mod datacon.nb datacon.nb
  }
  else { dialog -mod datacon datacon }
}

dialog datacon.nb {
  title "DataAgent Console"
  size 333 68 406 50
  button "&File Specs" 1, 4 14 78 31
  button "&Drive Specs" 2, 84 14 78 31
  button "&Mem Stats" 3, 164 14 78 31
  button "&Attributes" 4, 244 14 78 31
  button "&Scripts" 5, 324 14 78 31
  button "N/A", 6, 0 0 0 0,ok
  button "N/A", 7, 0 0 0 0,cancel
  box "", 8, -2 1 410 49
}

dialog datacon {
  title "DataAgent Console"
  size 334 68 405 67
  button "&File Specs" 1,4 19 78 31
  button "&Drive Specs" 2,84 19 78 31
  button "&Mem Stats" 3,164 19 78 31
  button "&Attributes" 4,244 19 78 31
  button "&Scripts" 5,324 19 78 31
  button "N/A",6,0 0 0 0,ok
  button "N/A",7,0 0 0 0,cancel
  icon 8,0 0 405 67,%da.dcback
}

on *:dialog:datacon.nb:init:*:{
  if ((%da.dcnb.x == $null) || (%da.dc.y == $null)) {
    if ($calc($window(-1).w * 0.59995) >= 614) { var %dc.w = $ifmatch | var %dc.h = $calc($window(-1).h / 2 * 0.247) | goto lset }  
    else { var %dc.w = $calc($window(-1).w / 2.78) | var %dc.h = $calc($window(-1).h / 6.38) | goto lset }
    :lset
    dialog -s datacon.nb %dc.w %dc.h 406 50
  }
  else { dialog -s datacon.nb %da.dcnb.x %da.dc.y 406 50 }
}

on *:dialog:datacon.nb:sclick:1:{ .timer 1 0 filespecs }

on *:dialog:datacon.nb:sclick:5:{ scripts }

on *:dialog:datacon.nb:sclick:7:{ set %da.dcnb.x $dialog($dname).x | set %da.dc.y $dialog($dname).y }

on *:dialog:datacon.nb:sclick:2:{ drivescan }

on *:dialog:datacon.nb:sclick:3:{ memstats }

on *:dialog:datacon.nb:sclick:4:{ attrib }

on *:dialog:datacon:init:*:{
  if ((%da.dc.x == $null) || (%da.dc.y == $null)) {
    if ($calc($window(-1).w * 0.6009) >= 614) { var %dc.w = $ifmatch | var %dc.h = $calc($window(-1).h / 2 * 0.247) | goto lset }  
    else { var %dc.w = $calc($window(-1).w / 2.77) | var %dc.h = $calc($window(-1).h / 6.38) | goto lset }
    :lset
    dialog -s datacon %dc.w %dc.h 405 67
  }
  else { dialog -s datacon %da.dc.x %da.dc.y 405 67 }
}

on *:dialog:datacon:sclick:1:{ .timer 1 0 filespecs }

on *:dialog:datacon:sclick:5:{ scripts }

on *:dialog:datacon:sclick:7:{ set %da.dc.x $dialog($dname).x | set %da.dc.y $dialog($dname).y }

alias filespecs { if (%da.file == $null) set %da.file $mircdir | file.select }  

alias -l file.select { {
    %da.file = $dir="Exploring - ( $+ $cap($nofile(%da.file)) $+ )" $nofile(%da.file)
  }
  if (%da.file == $null) { halt }  
  window -ka @Results 0 0 333 94 Terminal 12
  aline @Results 12----------·
  aline @Results FILE SPECS
  aline @Results 2----------½
  aline -p @Results  $+ $colour(info) $+  $+ $nopath(%da.file)  $+  $ß×($file(%da.file).size)
  aline $colour(info2) @Results Modified $asctime($file(%da.file).mtime)
}

on *:dialog:datacon:sclick:2:{ drivescan }

on *:dialog:datacon:sclick:3:{ memstats }

alias memstats { if (%da.dll == $null) {
    { set %da.dll " $+ $scriptdirfsmem.dll $+ " }
  }
  window -ka @Results 0 0 333 133 Terminal 12
  aline @Results 12------------·
  aline @Results MEMORY STATS
  aline @Results 2------------½
  aline @Results  $+ $colour(info) $+ Current Load    $+  $dll(%da.dll,GetMemInfo,memoryload) $+ % | aline @Results  $+ $colour(info) $+ Total Physical  $+  $ß×($dll(%da.dll,GetMemInfo,totalphys)) | aline @Results  $+ $colour(info) $+ Free Physical   $ß×($dll(%da.dll,GetMemInfo,freephys)) | aline @Results  $+ $colour(info) $+ Total Virtual   $ß×($dll(%da.dll,GetMemInfo,totalvirtual)) | aline @Results  $+ $colour(info) $+ Free Virtual    $ß×($dll(%da.dll,GetMemInfo,freevirtual))
}

alias -l letrsufx {
  if ($len(%da.dletr) == 1) { set %da.dletr %da.dletr $+ : }
  if ($right(%da.dletr,1) != \) { set %da.dletr %da.dletr $+ \ }
}

alias drivescan {
  if (%da.dll == $null) { set %da.dll " $+ $scriptdirfsmem.dll $+ " }
  if $dialog(drive.sel) { dialog -x drive.sel } | dialog -m drive.sel drive.sel 
}

dialog drive.sel {
  title "Select a drive letter to scan"
  size 333 148 204 71
  button "&Scan",1,5 37 194 32,ok
  radio "A",2,15 10 50 17
  radio "C",3,65 10 50 17
  radio "D",4,115 10 50 17
  edit "",6,165 7 21 21,autohs
}

on *:dialog:drive.sel:init:*:{
  %da.dletr = C
  did -c $dname 3
}

on *:dialog:drive.sel:sclick:2:%da.dletr = A

on *:dialog:drive.sel:sclick:3:%da.dletr = C

on *:dialog:drive.sel:sclick:4:%da.dletr = D

on *:dialog:drive.sel:edit:6: { did -u drive.sel 3 | %da.dletr = $did(drive.sel,6).text }

on *:dialog:drive.sel:sclick:1:{
  letrsufx
  if ($disk(%da.dletr).label == $null) { var %disk.label = None }
  else { var %disk.label = $cap($disk(%da.dletr).label) }
  if ($disk(%da.dletr).type == $null) { var %disk.type = N/A }
  elseif ($disk(%da.dletr).type == cdrom) { var %disk.type = CD-ROM }
  else { var %disk.type = $cap($disk(%da.dletr).type) }
  if (%disk.type == Fixed) {
    window -ka @Results 0 0 333 146 Terminal 12
    aline @Results 12-------·
    aline @Results DRIVE $cap($remove(%da.dletr,:\))
    aline @Results 2-------½
    aline @Results  $+ $colour(info) $+ Total Space    $ß×($dll(%da.dll,GetSpaceInfo,total [ %da.dletr ] )) | aline @Results  $+ $colour(info) $+ Free Space     $ß×($dll(%da.dll,GetSpaceInfo,free [ %da.dletr ] )) | aline @Results  $+ $colour(info) $+ Type           %disk.type | aline @Results  $+ $colour(info) $+ Label          %disk.label
  aline @Results  $+ $colour(info) $+ File System    $dll(%da.dll,GetVolumeInfo,fstype [ %da.dletr ] ) | aline @Results  $+ $colour(info) $+ Serial Number  $dll(%da.dll,GetVolumeInfo,serial [ %da.dletr ] ) }
  else {
    window -ka @Results 0 0 333 120 Terminal 12
    aline @Results 12-------·
    aline @Results DRIVE $cap($remove(%da.dletr,:\))
    aline @Results 2-------½
  aline @Results  $+ $colour(info) $+ Total Space  $ß×($dll(%da.dll,GetSpaceInfo,total [ %da.dletr ] )) | aline @Results  $+ $colour(info) $+ Free Space   $ß×($dll(%da.dll,GetSpaceInfo,free [ %da.dletr ] )) | aline @Results  $+ $colour(info) $+ Type         %disk.type | aline @Results  $+ $colour(info) $+ Label        %disk.label }
}

menu @Results {
  &Close:{ window -c @Results }
}

on *:dialog:datacon:sclick:4:{ attrib }

alias attrib { if $dialog(attrib) { dialog -x attrib } | dialog -m attrib attrib }

dialog attrib {
  size 333 148 207 150
  edit "",1,5 5 197 22,autohs
  text "Path && file/dir" 2,69 29 120 22
  button "&View" 3,107 114 95 32
  button "A&pply" 4,5 114 95 32
  title "Modify/view attributes"
  check " &r ",5,10 70 31 17
  check  " &h ",6,10 90 31 17
  check " &s ",7,55 70 31 17
  check " &a ",8,55 90 31 17
  box "",9,1 52 103 98
  box "",10,103 52 103 98
  button "",11,0 0 0 0,ok
}

on *:dialog:attrib:edit:1:{ %da.attfoc = $did(attrib,1).text }

on *:dialog:attrib:sclick:11:{ if ($isdir(%da.attfoc)) {
    if (%da.attfoc == $null) { set %da.attfoc $mircdir } | if (%da.dll == $null) { set %da.dll " $+ $scriptdirfsmem.dll $+ " } | if ($isdir(%da.attfoc) == $true) { listattrib %da.attfoc } | else { eai You must specify a directory. }
  }
  else {
    if (%da.dll == $null) { set %da.dll " $+ $scriptdirfsmem.dll $+ " }
    set %da.attr $iif($did(5).state == 1,r) $+ $iif($did(6).state == 1,h) $+ $iif($did(7).state == 1,s) $+ $iif($did(8).state == 1,a)
    if (%da.attr == $null) { set %da.attr n }
    if (%da.attr != $null) && (%da.attfoc != $null) {
      if ($isfile(%da.attfoc) == $true) || ($isdir(%da.attfoc) == $true) {
        dll %da.dll SetFileAttr %da.attr %da.attfoc
      eai $cap(%da.attfoc) set to $atsy(%da.attr) $+ . }
      else { eai Invalid file/directory. }
    }
  }
}

alias -l atsy {
  if (%da.attr == h) { return hidden } | if (%da.attr == a) { return archive } | if (%da.attr == n) { return normal } | if (%da.attr == r) { return read-only } | if (%da.attr == s) { return system }
  else { return %da.attr }
}

on *:dialog:attrib:sclick:3:{
  if (%da.attfoc == $null) { set %da.attfoc $mircdir } | if (%da.dll == $null) { set %da.dll " $+ $scriptdirfsmem.dll $+ " } | if ($isdir(%da.attfoc) == $true) { listattrib %da.attfoc } | else { eai You must specify a directory. }
}

on *:dialog:attrib:sclick:4:{
  if (%da.dll == $null) { set %da.dll " $+ $scriptdirfsmem.dll $+ " }
  set %da.attr $iif($did(5).state == 1,r) $+ $iif($did(6).state == 1,h) $+ $iif($did(7).state == 1,s) $+ $iif($did(8).state == 1,a)
  if (%da.attr == $null) { set %da.attr n }
  if (%da.attr != $null) && (%da.attfoc != $null) {
    if ($isfile(%da.attfoc) == $true) || ($isdir(%da.attfoc) == $true) {
      dll %da.dll SetFileAttr %da.attr %da.attfoc
    eai $cap(%da.attfoc) set to $atsy(%da.attr) $+ . }
    else { eai Invalid file/directory. } 
  }
}

alias -l listattrib {
  window -c @Attributes
  if ($isdir($$1-) == $false) { return }
  window -lak -t8 @Attributes 0 0 333 361 Terminal 12
  titlebar @Attributes - ( $+ $cap($1-) $+ )
  Ñ $finddir($1-,*.*,0,1,showattrib $1-)
  Ñ $findfile($1-,*.*,0,1,showattrib $1-)
  aline $colour(back) @Attributes 2°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
  aline @Attributes 3 $+ Double-click a file to open it
}

alias -l Ñ { return $1- }

alias -l showattrib { if (%da.dll == $null) { set %da.dll " $+ $scriptdirfsmem.dll $+ " } | aline @Attributes $dll(%da.dll,GetFileAttr,$1-) $+ $chr(9) $+  $+ $right(00 [ $+ [ $colour(info) ] ] ,2) $+ $nopath($1-) }

menu @Attributes {
  dclick:{ if ($right($right($left($gettok($window(@Attributes).title,1,45),-1),-2),1) == \) { var %file = $right($left($gettok($window(@Attributes).title,1,45),-1),-2)) $+ $gettok($strip($line($active,$1)),2,9)) }
    else { var %file = $right($left($gettok($window(@Attributes).title,1,45),-1),-2)) $+ \ $+ $gettok($strip($line($active,$1)),2,9)) } 
  if ($isfile(%file) == $true) { run %file } }
  &Close:{ window -c @Attributes } 
}

alias scripts {
  window -c @(
  var %scripts# = $script(0)
  window -lak -t20 @( 0 0 333 361 Terminal 12
  if (%scripts# == 1) { var %f.sop = file }
  else { var %f.sop = files }
  titlebar @( $script(0) script %f.sop loaded )
  :loop
  if (%scripts# != 0) {
  aline $colour(info) @( 1 $+ $cap($shortfn($script(%scripts#))) | dec %scripts# | goto loop }
  aline $colour(back) @( 2°°°°°°°°°°°°°°°°°°°°°°°°°°°°°°
  aline @( 3 $+ Double-click a file to open it
}

menu @( {
  dclick:{ if ($isfile($strip($sline($active,1)))) { run $strip($sline($active,1)) } }
  &Close:{ window -c @( } 
}

alias -l ünload {
  if ($?!="Unload DataAgent?") { ücode } 
}

alias -l ücode {
  if ($dialog(datacon)) { dialog -x datacon }
  if ($dialog(datacon.nb)) { dialog -x datacon.nb }
  if ($dialog(ÐÂ)) { dialog -x ÐÂ }
  if ($dialog(drive.sel)) { dialog -x drive.sel }
  if ($dialog(attrib)) { dialog -x attrib }
  window -c @Results
  window -c @Attributes
  window -c @(
  eai DataAgent has been unloaded. | unset %da.* | .unload -rs " $+ $script $+ "
}

; EoF