summaryrefslogtreecommitdiffstatshomepage
path: root/plugins
diff options
context:
space:
mode:
author cracyc <cracyc@users.noreply.github.com>2018-01-14 08:39:37 -0600
committer cracyc <cracyc@users.noreply.github.com>2018-01-14 08:39:37 -0600
commit380bff22029f3088e026687df2a0d39c4915f58b (patch)
treeecf7526030ad1645398b99d00c3cebe79a93f99d /plugins
parentcea7ff08ace1cadc22d80074c6c734568a2ad93e (diff)
plugins/data: don't pollute the namespace and use emu.print_error (nw)
Diffstat (limited to 'plugins')
-rw-r--r--plugins/data/data_marp.lua32
-rw-r--r--plugins/data/database.lua11
-rw-r--r--plugins/data/load_dat.lua58
3 files changed, 51 insertions, 50 deletions
diff --git a/plugins/data/data_marp.lua b/plugins/data/data_marp.lua
index 0919683d3e6..f74e098226b 100644
--- a/plugins/data/data_marp.lua
+++ b/plugins/data/data_marp.lua
@@ -1,6 +1,6 @@
-- get marp high score file from http://replay.marpirc.net/txt/scores3.htm
local dat = {}
-local db, sql = require("data/database")()
+local db = require("data/database")
local ver, info
local function init()
@@ -17,9 +17,9 @@ local function init()
end
end
- local stmt = db:prepare("SELECT version FROM version WHERE datfile = ?")
+ local stmt = db.prepare("SELECT version FROM version WHERE datfile = ?")
stmt:bind_values(file)
- if stmt:step() == sql.ROW then
+ if stmt:step() == db.ROW then
dbver = stmt:get_value(0)
end
stmt:finalize()
@@ -31,10 +31,10 @@ local function init()
elseif not fh then
return
elseif not dbver then
- db:exec("CREATE TABLE \"" .. file .. [[" (
+ db.exec("CREATE TABLE \"" .. file .. [[" (
romset VARCHAR NOT NULL,
data CLOB NOT NULL)]])
- db:exec("CREATE INDEX \"romset_" .. file .. "\" ON \"" .. file .. "_idx\"(romset)")
+ db.exec("CREATE INDEX \"romset_" .. file .. "\" ON \"" .. file .. "_idx\"(romset)")
end
for line in fh:lines() do
@@ -56,11 +56,11 @@ local function init()
end
if dbver then
- db:exec("DELETE FROM \"" .. file .. "\"")
- db:exec("DELETE FROM \"" .. file .. "_idx\"")
- stmt = db:prepare("UPDATE version SET version = ? WHERE datfile = ?")
+ db.exec("DELETE FROM \"" .. file .. "\"")
+ db.exec("DELETE FROM \"" .. file .. "_idx\"")
+ stmt = db.prepare("UPDATE version SET version = ? WHERE datfile = ?")
else
- stmt = db:prepare("INSERT INTO version VALUES (?, ?)")
+ stmt = db.prepare("INSERT INTO version VALUES (?, ?)")
end
stmt:bind_values(ver, file)
stmt:step()
@@ -68,7 +68,7 @@ local function init()
fh:seek("set")
local buffer = fh:read("a")
- db:exec("BEGIN TRANSACTION")
+ db.exec("BEGIN TRANSACTION")
local function gmatchpos()
local pos = 1
@@ -102,25 +102,23 @@ local function init()
end
for set, data in gmatchpos() do
- stmt = db:prepare("INSERT INTO \"" .. file .. "\" VALUES (?, ?)")
+ stmt = db.prepare("INSERT INTO \"" .. file .. "\" VALUES (?, ?)")
stmt:bind_values(set, data)
stmt:step()
stmt:finalize()
end
fh:close()
- db:exec("END TRANSACTION")
+ db.exec("END TRANSACTION")
end
-if db then
- init()
-end
+init()
function dat.check(set, softlist)
- if softlist or not ver or not db then
+ if softlist or not ver then
return nil
end
info = nil
- local stmt = db:prepare("SELECT data FROM \"scores3.htm\" AS f WHERE romset = ?")
+ local stmt = db.prepare("SELECT data FROM \"scores3.htm\" AS f WHERE romset = ?")
stmt:bind_values(set)
if stmt:step() == sql.ROW then
info = "#j2\n" .. stmt:get_value(0)
diff --git a/plugins/data/database.lua b/plugins/data/database.lua
index 9e1fd7ae855..aff74c9bc87 100644
--- a/plugins/data/database.lua
+++ b/plugins/data/database.lua
@@ -2,9 +2,9 @@ local sql = require("lsqlite3")
local datfile = {}
local db
-function check_db(msg)
- if db:errcode() > sqlite3.OK then
- io.stderr:write("Error: " .. msg .. " (" .. db:errcode() .. " - " .. db:errmsg() .. ")\n")
+local function check_db(msg)
+ if db:errcode() > sql.OK then
+ emu.print_error("Error: " .. msg .. " (" .. db:errcode() .. " - " .. db:errmsg() .. ")\n")
end
end
@@ -31,4 +31,7 @@ if db then
end
end
-return function() return db, sql end
+local dbtable = { prepare = function(...) return db:prepare(...) end,
+ exec = function(...) return db:exec(...) end, ROW = sql.ROW, check = check_db }
+
+return db and dbtable or nil
diff --git a/plugins/data/load_dat.lua b/plugins/data/load_dat.lua
index 9f365921328..3521820f078 100644
--- a/plugins/data/load_dat.lua
+++ b/plugins/data/load_dat.lua
@@ -1,5 +1,5 @@
local datfile = {}
-local db, sql = require("data/database")()
+local db = require("data/database")
function datfile.open(file, vertag, fixupcb)
if not db then
@@ -7,11 +7,11 @@ function datfile.open(file, vertag, fixupcb)
end
local function read(tag1, tag2, set)
local data
- local stmt = db:prepare("SELECT f.data FROM \"" .. file .. "_idx\" AS fi, \"" .. file .. [["
+ local stmt = db.prepare("SELECT f.data FROM \"" .. file .. "_idx\" AS fi, \"" .. file .. [["
AS f WHERE fi.type = ? AND fi.val = ? AND fi.romset = ? AND f.rowid = fi.data]])
- check_db("reading " .. tag1 .. " - " .. tag2 .. " - " .. set)
+ db.check("reading " .. tag1 .. " - " .. tag2 .. " - " .. set)
stmt:bind_values(tag1, tag2, set)
- if stmt:step() == sql.ROW then
+ if stmt:step() == db.ROW then
data = stmt:get_value(0)
end
stmt:finalize()
@@ -32,10 +32,10 @@ function datfile.open(file, vertag, fixupcb)
-- remove unsafe chars from file for use in sql statement
file = file:gsub("[^%w%._]", "")
- local stmt = db:prepare("SELECT version FROM version WHERE datfile = ?")
- check_db("reading version")
+ local stmt = db.prepare("SELECT version FROM version WHERE datfile = ?")
+ db.check("reading version")
stmt:bind_values(file)
- if stmt:step() == sql.ROW then
+ if stmt:step() == db.ROW then
dbver = stmt:get_value(0)
end
stmt:finalize()
@@ -46,16 +46,16 @@ function datfile.open(file, vertag, fixupcb)
elseif not fh then
return nil
elseif not dbver then
- db:exec("CREATE TABLE \"" .. file .. [[_idx" (
+ db.exec("CREATE TABLE \"" .. file .. [[_idx" (
type VARCHAR NOT NULL,
val VARCHAR NOT NULL,
romset VARCHAR NOT NULL,
data INTEGER NOT NULL)]])
- check_db("creating index")
- db:exec("CREATE TABLE \"" .. file .. "\" (data CLOB NOT NULL)")
- check_db("creating table")
- db:exec("CREATE INDEX \"typeval_" .. file .. "\" ON \"" .. file .. "_idx\"(type, val)")
- check_db("creating typeval index")
+ db.check("creating index")
+ db.exec("CREATE TABLE \"" .. file .. "\" (data CLOB NOT NULL)")
+ db.check("creating table")
+ db.exec("CREATE INDEX \"typeval_" .. file .. "\" ON \"" .. file .. "_idx\"(type, val)")
+ db.check("creating typeval index")
end
if vertag then
@@ -76,15 +76,15 @@ function datfile.open(file, vertag, fixupcb)
end
if dbver then
- db:exec("DELETE FROM \"" .. file .. "\"")
- check_db("deleting")
- db:exec("DELETE FROM \"" .. file .. "_idx\"")
- check_db("deleting index")
- stmt = db:prepare("UPDATE version SET version = ? WHERE datfile = ?")
- check_db("updating version")
+ db.exec("DELETE FROM \"" .. file .. "\"")
+ db.check("deleting")
+ db.exec("DELETE FROM \"" .. file .. "_idx\"")
+ db.check("deleting index")
+ stmt = db.prepare("UPDATE version SET version = ? WHERE datfile = ?")
+ db.check("updating version")
else
- stmt = db:prepare("INSERT INTO version VALUES (?, ?)")
- check_db("inserting version")
+ stmt = db.prepare("INSERT INTO version VALUES (?, ?)")
+ db.check("inserting version")
end
stmt:bind_values(ver, file)
stmt:step()
@@ -94,8 +94,8 @@ function datfile.open(file, vertag, fixupcb)
local inblock = false
fh:seek("set")
local buffer = fh:read("a")
- db:exec("BEGIN TRANSACTION")
- check_db("beginning transaction")
+ db.exec("BEGIN TRANSACTION")
+ db.check("beginning transaction")
local function gmatchpos()
local pos = 1
local function iter()
@@ -136,8 +136,8 @@ function datfile.open(file, vertag, fixupcb)
if fixupcb then
data = fixupcb(data)
end
- stmt = db:prepare("INSERT INTO \"" .. file .. "\" VALUES (?)")
- check_db("inserting values")
+ stmt = db.prepare("INSERT INTO \"" .. file .. "\" VALUES (?)")
+ db.check("inserting values")
stmt:bind_values(data)
stmt:step()
local row = stmt:last_insert_rowid()
@@ -147,8 +147,8 @@ function datfile.open(file, vertag, fixupcb)
if fixupcb then
fixupcb(data)
end
- stmt = db:prepare("INSERT INTO \"" .. file .. "_idx\" VALUES (?, ?, ?, ?)")
- check_db("inserting into index")
+ stmt = db.prepare("INSERT INTO \"" .. file .. "_idx\" VALUES (?, ?, ?, ?)")
+ db.check("inserting into index")
stmt:bind_values(tag1, tag2, set, row)
stmt:step()
stmt:finalize()
@@ -157,8 +157,8 @@ function datfile.open(file, vertag, fixupcb)
end
end
end
- db:exec("END TRANSACTION")
- check_db("ending transaction")
+ db.exec("END TRANSACTION")
+ db.check("ending transaction")
end
fh:close()