summaryrefslogtreecommitdiff
path: root/nopsyncd/qlistener.lua
diff options
context:
space:
mode:
Diffstat (limited to 'nopsyncd/qlistener.lua')
-rwxr-xr-xnopsyncd/qlistener.lua89
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