From a684ecaa1e663d07906edb113adf323f96dc04f0 Mon Sep 17 00:00:00 2001 From: Tim Bentley Date: Wed, 12 Aug 2009 17:29:00 +0100 Subject: [PATCH] More remote fixes --- openlp/plugins/remotes/remoteclient-cli.py | 69 +++++++++++++--------- openlp/plugins/remotes/remoteplugin.py | 6 +- 2 files changed, 46 insertions(+), 29 deletions(-) diff --git a/openlp/plugins/remotes/remoteclient-cli.py b/openlp/plugins/remotes/remoteclient-cli.py index a21687d60..7228d1d0a 100755 --- a/openlp/plugins/remotes/remoteclient-cli.py +++ b/openlp/plugins/remotes/remoteclient-cli.py @@ -18,39 +18,54 @@ You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA """ -import sys -import logging import socket +import sys +from optparse import OptionParser -logging.basicConfig(level=logging.DEBUG, - format=u'%(asctime)s:%(msecs)3d %(name)-15s %(levelname)-8s %(message)s', - datefmt=u'%m-%d %H:%M:%S', filename=u'remoteclient-cli.log', filemode=u'w') -class OpenLPRemoteCli(): - global log - log = logging.getLogger(u'OpenLP Remote Application') +def sendData(options, message): + addr = (options.address, options.port) + try: + UDPSock = socket.socket(socket.AF_INET,socket.SOCK_DGRAM) + UDPSock.sendto(message, addr) + print u'message sent ', message , addr + except: + print u'Errow thrown ', sys.exc_info()[1] - def __init__(self, argv): - log.debug(u'Initialising') - host = u'localhost' - port = 4316 - self.addr = (host, port) - try: - self.UDPSock = socket.socket(socket.AF_INET,socket.SOCK_DGRAM) - self.sendData() - except: - log.error(u'Errow thrown %s', sys.exc_info()[1]) - print u'Errow thrown ', sys.exc_info()[1] +def format_message(options): + return u'%s:%s' % (options.event, options.message) - def sendData(self): - text = "Alert:Wave to Zak, Superfly" - print self.UDPSock - print self.UDPSock.sendto(text, self.addr) +def main(): + usage = "usage: %prog [options] arg1 arg2" + parser = OptionParser(usage=usage) + parser.add_option("-v", "--verbose", + action="store_true", dest="verbose", default=True, + help="make lots of noise [%default]") + parser.add_option("-p", "--port", + default=4316, + help="IP Port number %default ") + parser.add_option("-a", "--address", + help="Recipient address ") + parser.add_option("-e", "--event", + default=u'Alert', + help="Action to be undertaken") + parser.add_option("-m", "--message", + help="Message to be passed for the action") - def run(self): - pass + (options, args) = parser.parse_args() + if len(args) > 0: + parser.print_help() + parser.error("incorrect number of arguments") + elif options.message is None: + parser.print_help() + parser.error("No message passed") + elif options.address is None: + parser.print_help() + parser.error("IP address missing") + else: + text = format_message(options) + sendData(options, text) if __name__ == u'__main__': - app = OpenLPRemoteCli(sys.argv) - app.run() + main() diff --git a/openlp/plugins/remotes/remoteplugin.py b/openlp/plugins/remotes/remoteplugin.py index bd062ca71..1c37c3c2c 100644 --- a/openlp/plugins/remotes/remoteplugin.py +++ b/openlp/plugins/remotes/remoteplugin.py @@ -40,15 +40,17 @@ class RemotesPlugin(Plugin): QtCore.SIGNAL(u'readyRead()'), self.readData) def readData(self): + log.info(u'Remoted data has arrived') while self.server.hasPendingDatagrams(): datagram, host, port = self.server.readDatagram(self.server.pendingDatagramSize()) self.handle_datagram(datagram) def handle_datagram(self, datagram): + log.info(u'Sending event %s ', datagram) pos = datagram.find(u':') - event = unicode(datagram[:pos]) + event = unicode(datagram[:pos].lower()) payload = unicode(datagram[pos + 1:]) - if event == u'Alert': + if event == u'alert': self.event_manager.post_event(Event(EventType.TriggerAlert, u'RemotePlugin', payload))