summaryrefslogtreecommitdiff
path: root/rhnop-server/qlistener.lua
diff options
context:
space:
mode:
Diffstat (limited to 'rhnop-server/qlistener.lua')
-rw-r--r--rhnop-server/qlistener.lua98
1 files changed, 0 insertions, 98 deletions
diff --git a/rhnop-server/qlistener.lua b/rhnop-server/qlistener.lua
deleted file mode 100644
index b41e2a7..0000000
--- a/rhnop-server/qlistener.lua
+++ /dev/null
@@ -1,98 +0,0 @@
---
--- rhnop
---
--- Copyright (C) 2011-2014 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
-
-require "posix"
-mq = require "mq"
-
-package.path = package.path .. ";" .. rhnoplibdir .. "/?.lua"
-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")
--- TODO: this error shouldn't be ignored!!!!
- 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
- nowcart = tonumber(nowcart)
- nowlen = tonumber(nowlen)
- if last_cart ~= nowcart and nowcart >= conf.music_carts_lo and nowcart <= conf.music_carts_hi and nowlen > 0 then
- last_cart = nowcart
- handle_now(timestamp, nowcart, nowlen)
- end
- -- TODO handle next info
- end
-end
-
-function main_loop()
- posix.umask("rwxrwxr-x")
- local q, err = mq.create(conf.queue_name, "ro", "rw-rw----")
- if q == nil then
- q, err = mq.open(conf.queue_name, "wo")
- if q == nil then
- io.stderr:write("creation of message queue failed: " .. err .. "\n")
- os.exit(1)
- end
- 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