All pastes #38070 Raw Edit

Anonymous

public text v1 · immutable
#38070 ·published 2006-01-22 20:44 UTC
rendered paste body
#sqlite_debug_dll off
; For testing your own Compiled Version
alias -l SQLite return $shortfn($+($scriptdir,src\Debug\sqlite.dll))
#sqlite_debug_dll end
alias -l SQLite return $shortfn($+($scriptdir,sqlite.dll))

#sqlite_debug off
; To Make debugging Clearer :D
alias SQLiteDll {
  var %x = $dll($SQLite,$1,$iif($2- != $null,$2-,_))
  if (E_* iswm %x) {
    echo -a SQLiteDll:7 $+($1,:6) $+($2,:12) $3- $+(:4,%x)
    return %x
  }
  echo -a SQLiteDll:7 $+($1,:6) $+($2,:12) $3- $+(:3,%x)
  return %x
}
#sqlite_debug end

alias SQLiteDLL return $dll($SQLite,$1,$iif($2- != $null,$2-,_))

on *:load:{
  .disable #sqlite_debug_dll
  .disable #sqlite_debug
  echo $color(info) -a * Loaded $SQLiteDLL(DllInfo)
}

alias sqlite {
  var %dll_old
  if ($1 == debug) %dll_old = $group(#sqlite_debug_dll)
  var %old = $group(#sqlite_debug)
  if (%dll_old && %dll_old != on) .enable #sqlite_debug_dll
  if (%old != on) .enable #sqlite_debug
  testdb
  if (%old != on) .disable #sqlite_debug
  if (%dll_old && %dll_old != on) .disable #sqlite_debug_dll
}

;________________________________________________
;
;  Auto Debug Calling Code...
;________________________________________________
;
on *:start:if (SQLITE_AUTO_*_TEST iswm $cmdline) .timersqlite_test 1 3 sqlite_auto_test
alias -l sqlite_auto_test {
  var %old_dll = $group(#sqlite_debug_dll)
  var %old     = $group(#sqlite_debug    )
  if (RELEASE isin $cmdline) .disable #sqlite_debug_dll
  if (DEBUG   isin $cmdline) .enable #sqlite_debug_dll
  if (%old != on) .enable #sqlite_debug

  sqlite_test

  if (%old != on) .disable #sqlite_debug
  $iif(%old_dll == on,.enable,.disable) #sqlite_debug_dll
}
alias addpre {
  var %section = $1
  var %release = $2
  var %pretime = $ctime
  var %group = $gettok(%release, -1, 45)
  
  if ($rowexists(%release) = 1) { halt }
  
  SQLiteDLL Open dupedb dupedb.db
  SQLiteDLL Query dupedb INSERT INTO dupedb (release, time, section, group) VALUES (' $+ %release $+ ', ' $+ %pretime $+ ', ' $+ %section $+ ', ' $+ %group $+ ')
  SQLiteDLL Close dupedb
}

alias rowexists {
  var %release = $1-
  var %query = SELECT * FROM dupedb WHERE release=' $+ %release $+ ' LIMIT 1
  SQLiteDLL Open dupedb dupedb.db
  SQLiteDLL Query dupedb %query
  var %rows = $gettok($SQLiteDLL(Rows, dupedb), -1, 32)
  SQLiteDLL Close dupedb
  if (%rows > 0) { return 1 }
  return 0
}

alias pt {
  var %release = $replace($1-,$chr(32),$chr(37))
  var %query = SELECT * FROM dupedb WHERE release LIKE ' $+ $chr(37) $+ %release $+ $chr(37) $+ ' ORDER BY id DESC
  SQLiteDLL Open dupedb dupedb.db
  SQLiteDLL Query dupedb %query
  var %rows = $SQLiteDLL(Rows, dupedb)
  if (%rows > 0) {
    var %rowdata = $SQLiteDLL(Fetch, dupedb, 1)
    var %rlstime = $gettok(%rowdata,3,9)
    var %preage = $calc($ctime - %rlstime)
    return %preage
  }
  SQLiteDLL Close dupedb
}
alias find {
  if ($chr(33) !isin $1-) {
    var %query = SELECT * FROM dupedb WHERE release LIKE $+($chr(39),$chr(37),$replace($1-,$chr(32),$chr(37)),$chr(37),$chr(39)) ORDER BY time DESC
  }
  else { 
    set -u0 %pre.test.search.string.base SELECT * FROM dupedb WHERE release LIKE $+($chr(39),$chr(37),$replace($deltok($1-,-1,32),$chr(32),$chr(37)),$chr(37),$chr(39))
    set -u0 %pre.test.filter.string $replace($gettok($1-,-1,32),$chr(33),$chr(32))
    set -u0 %pre.test.filter.string.total $numtok(%pre.test.filter.string,32)
    set -u0 %pre.test.filter.string.counter 1
    while (%pre.test.filter.string.counter <= %pre.test.filter.string.total) {
      set -u0 %pre.test.filter.output %pre.test.filter.output AND release NOT LIKE $+($chr(39),$chr(37),$gettok(%pre.test.filter.string,%pre.test.filter.string.counter,32),$chr(37),$chr(39))
      inc %pre.test.filter.string.counter 1
    }
    var %query = %pre.test.search.string.base %pre.test.filter.output ORDER BY time DESC
  }
  sqlitedll Open dupedb dupedb.db
  sqlitedll Query predb %query
  var %rows = $gettok($SQLiteDLL(Rows, dupedb), -1, 32)
  if (%rows > 0) {
    var %i = 1
    var %maxrows = 10
    if (%rows < 10) { %maxrows = %rows }
    echo -a %rows match(s) found. Sending the last %maxrows $+ .
    while (%i <= %maxrows) {
      var %rowdata = $sqlitedll(Fetch, dupedb, %i)
      var %release = $gettok(%rowdata,2,9)
      var %matches = $gettok(%rowdata,2,32)
      var %pretime = $duration($calc($ctime - $gettok(%rowdata,3,9)))
      echo -a [4Pretime1] %release  %pretime
      inc %i
    }
    SQLiteDLL Close dupedb
  }
}