-- -- rhnop -- -- Copyright (C) 2011-2016 Christian Pointner -- -- This file is part of rhnop. -- -- rhnop is free software: you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by -- the Free Software Foundation, either version 3 of the License, or -- any later version. -- -- rhnop is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- GNU General Public License for more details. -- -- You should have received a copy of the GNU General Public License -- along with rhnop. If not, see . -- luasql = require "luasql.mysql" local rddb = {} function rddb:init(cnf) local err self.env, err = luasql.mysql() if self.env == nil then return nil, err end self.con, err = self.env:connect(cnf.rddb_db, cnf.rddb_user, cnf.rddb_pwd, cnf.rddb_host, cnf.rddb_port) if self.con == nil then return nil, err end local ret, err = self.con:execute("SET CHARACTER SET utf8") if ret == nil then return nil, err end return true end function rddb:getCartInfo(cartnum) local cur, err = self.con:execute("select TITLE,ARTIST,ALBUM from CART where NUMBER = " .. self.con:escape(cartnum)) if cur == nil then return nil, err end if cur:numrows() ~= 1 then return nil, "nothing found in rivendell db" end local results = {} results, err = cur:fetch(results, "a") cur:close() if results.TITLE == nil then results.TITLE = "" end if results.ARTIST == nil then results.ARTIST = "" end if results.ALBUM == nil then results.ALBUM = "" end return results, err end function rddb:getCartShowName(cartnum) --TODO: implement this return "unknown", true, nil end function rddb:close() if self.con then self.con:close() end if self.env then self.env:close() end end return rddb