#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
}
}