diff options
author | Christian Pointner <equinox@helsinki.at> | 2011-03-21 15:27:07 (GMT) |
---|---|---|
committer | Christian Pointner <equinox@helsinki.at> | 2011-03-21 15:27:07 (GMT) |
commit | 46348e1cd2782a701134b030be7452910ba2c46e (patch) | |
tree | db5dad68ca369d55380b4dc4a59ebc0ba223b3bb /nopsyncd | |
parent | a57ad1b134763b55f9dcc0a63e6995a66bcc2a7d (diff) |
moved sqlite based tempstorage to mysql based playlog
Diffstat (limited to 'nopsyncd')
-rw-r--r-- | nopsyncd/playlog.lua (renamed from nopsyncd/tempstorage.lua) | 31 | ||||
-rwxr-xr-x | nopsyncd/qlistener.lua | 14 | ||||
-rw-r--r-- | nopsyncd/rddb.lua | 2 | ||||
-rwxr-xr-x | nopsyncd/tcpserver.lua | 8 |
4 files changed, 27 insertions, 28 deletions
diff --git a/nopsyncd/tempstorage.lua b/nopsyncd/playlog.lua index 4ae437a..3aa0361 100644 --- a/nopsyncd/tempstorage.lua +++ b/nopsyncd/playlog.lua @@ -19,38 +19,37 @@ -- along with rhnop. If not, see <http://www.gnu.org/licenses/>. -- -require "luasql.sqlite3" +require "luasql.mysql" -local tempstorage = {} +-- CREATE DATABASE rhnop +-- GRANT select,insert,update ON rhnop.* TO 'nopsyncd' IDENTIFIED BY '123456'; +-- CREATE TABLE IF NOT EXISTS now (timestamp VARCHAR(16) PRIMARY KEY NOT NULL, cart INT NOT NULL, len INT, showtitle VARCHAR(255), title VARCHAR(255), artist VARCHAR(255), album VARCHAR(255), ismusic BOOLEAN) -function tempstorage:init() +local playlog = {} + +function playlog:init() local err - self.env, err = luasql.sqlite3() + self.env, err = luasql.mysql() if self.env == nil then return nil, err end - self.con, err = self.env:connect("nopsync.db") + self.con, err = self.env:connect("rhnop", "nopsyncd", "123456", "127.0.0.1") if self.con == nil then return nil, err end - + local ret, err = self.con:setautocommit(true) if ret == nil then return nil, err end - local rows, err = self.con:execute("CREATE TABLE IF NOT EXISTS now (timestamp VARCHAR(16) PRIMARY KEY ASC NOT NULL, cart INT NOT NULL, len INT, showtitle VARCHAR(255), title VARCHAR(255), artist VARCHAR(255), album VARCHAR(255), ismusic BOOLEAN)") - if rows == nil then - return nil, err - end - return true end -function tempstorage:getLastCart() - local cur, err = self.con:execute("SELECT cart from (SELECT cart,timestamp,MAX(timestamp) AS tsmax FROM now) where timestamp = tsmax") +function playlog:getLastCart() + local cur, err = self.con:execute("SELECT cart FROM now WHERE timestamp = (SELECT MAX(timestamp) FROM now)") if cur == nil then return nil, err end @@ -60,7 +59,7 @@ function tempstorage:getLastCart() return cart end -function tempstorage:insertMusic(timestamp, cart, len, title, artist, album) +function playlog:insertMusic(timestamp, cart, len, title, artist, album) cart = tonumber(cart) len = tonumber(len) if cart < 400000 or cart > 450000 then @@ -77,7 +76,7 @@ function tempstorage:insertMusic(timestamp, cart, len, title, artist, album) return true end -function tempstorage:close() +function playlog:close() if self.con then self.con:close() end @@ -87,4 +86,4 @@ function tempstorage:close() end end -return tempstorage +return playlog diff --git a/nopsyncd/qlistener.lua b/nopsyncd/qlistener.lua index 1e02df2..753902d 100755 --- a/nopsyncd/qlistener.lua +++ b/nopsyncd/qlistener.lua @@ -23,7 +23,7 @@ local queue_name = "/rhnop" local last_cart = nil mq = require "luamq" -tempstorage = require "tempstorage" +playlog = require "playlog" rddb = require "rddb" function handle_now(timestamp, nowcart, nowlen) @@ -32,7 +32,7 @@ function handle_now(timestamp, nowcart, nowlen) io.stderr:write("can't fetch cart info: " .. err .. "\n") else -- print(timestamp .. " Info: '" .. results.TITLE .. "' von '" .. results.ARTIST .. "' aus '" .. results.ALBUM .. "'") - local ret, err = tempstorage:insertMusic(timestamp, nowcart, nowlen, results.TITLE, results.ARTIST, results.ALBUM) + local ret, err = playlog:insertMusic(timestamp, nowcart, nowlen, results.TITLE, results.ARTIST, results.ALBUM) if ret == nil then io.stderr:write("can't insert music info: " .. err .. "\n") else @@ -62,17 +62,17 @@ function main_loop() os.exit(1) end - local ret, err = tempstorage:init() + local ret, err = playlog:init() if ret == nil then - io.stderr:write("creation of tempstorage failed: " .. err .. "\n") + io.stderr:write("creation of playlog failed: " .. err .. "\n") os.exit(1) end - last_cart = assert(tempstorage:getLastCart()) + last_cart = assert(playlog:getLastCart()) local ret, err = rddb:init() if ret == nil then io.stderr:write("opening rivendell db failed: " .. err .. "\n") - tempstorage:close() + playlog:close() os.exit(1) end @@ -81,7 +81,7 @@ function main_loop() if msg == nil then io.stderr:write("recv error: " .. prio .. "\n") rddb:close() - tempstorage:close() + playlog:close() os.exit(2) end handle_message(msg) diff --git a/nopsyncd/rddb.lua b/nopsyncd/rddb.lua index 56c73b7..e7ed14e 100644 --- a/nopsyncd/rddb.lua +++ b/nopsyncd/rddb.lua @@ -32,7 +32,7 @@ function rddb:init() end -- TODO: read /etc/rd.conf for connection info - self.con, err = self.env:connect("rivendell", "rivendellro", "lldrivenro", "192.168.1.16") + self.con, err = self.env:connect("rivendell", "rivendellro", "lldrivenro", "127.0.0.1") if self.con == nil then return nil, err end diff --git a/nopsyncd/tcpserver.lua b/nopsyncd/tcpserver.lua index 3f7c70a..7530ff2 100755 --- a/nopsyncd/tcpserver.lua +++ b/nopsyncd/tcpserver.lua @@ -20,7 +20,7 @@ -- require "socket" -tempstorage = require "tempstorage" +playlog = require "playlog" function init_server() local server = assert(socket.tcp()) @@ -86,9 +86,9 @@ end function main_loop() local pipefd = pipe.getreadfd() - local ret, err = tempstorage:init() + local ret, err = playlog:init() if ret == nil then - io.stderr:write("creation of tempstorage failed: " .. err .. "\n") + io.stderr:write("creation of playlog failed: " .. err .. "\n") os.exit(1) end @@ -133,7 +133,7 @@ function main_loop() end end - tempstorage:close() + playlog:close() server:close() cleanup_clients() |