diff options
Diffstat (limited to 'nopsyncd/qlistener.lua')
-rwxr-xr-x | nopsyncd/qlistener.lua | 89 |
1 files changed, 0 insertions, 89 deletions
diff --git a/nopsyncd/qlistener.lua b/nopsyncd/qlistener.lua deleted file mode 100755 index 8f2c0e2..0000000 --- a/nopsyncd/qlistener.lua +++ /dev/null @@ -1,89 +0,0 @@ --- --- rhnop --- --- Copyright (C) 2011 Christian Pointner <equinox@helsinki.at> --- --- 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 <http://www.gnu.org/licenses/>. --- - -local last_cart = nil - -mq = require "mq" -playlog = require "playlog" -rddb = require "rddb" -conf = require "conf" - -function handle_now(timestamp, nowcart, nowlen) - local results, err = rddb:getCartInfo(nowcart); - if results == nil then - 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 = playlog:insertNowMusic(timestamp, nowcart, nowlen, results.TITLE, results.ARTIST, results.ALBUM) - if ret == nil then - io.stderr:write("can't insert music info: " .. err .. "\n") - else - pipe.signal(timestamp) - end - end -end - -function handle_message(msg) - local timestamp, nowcart, nowlen, nextcart, nextlen = string.match(msg, "^(%d+) (%d+) (%d+) (%d+) (%d+)$"); - if not timestamp or not nowcart or not nowlen or not nextcart or not nextlen then - io.stderr:write("ignoring malformed message\n") - else - -- TODO better sanity checks: is now info new or just next? - if last_cart ~= nowcart then - last_cart = nowcart - handle_now(timestamp, nowcart, nowlen) - end - -- TODO handle next info - end -end - -function main_loop() - local q, err = mq.create(conf.queue_name, "ro") - if q == nil then - io.stderr:write("creation of message queue failed: " .. err .. "\n") - os.exit(1) - end - - local ret, err = playlog:init() - if ret == nil then - io.stderr:write("creation of playlog failed: " .. err .. "\n") - os.exit(1) - end - last_cart = assert(playlog:getLastCart()) - - local ret, err = rddb:init() - if ret == nil then - io.stderr:write("opening rivendell db failed: " .. err .. "\n") - playlog:close() - os.exit(1) - end - - while true do - local msg, prio = mq.receive(q) - if msg == nil then - io.stderr:write("recv error: " .. prio .. "\n") - rddb:close() - playlog:close() - os.exit(2) - end - handle_message(msg) - end -end
\ No newline at end of file |