forked from openlp/openlp
More remote fixes
This commit is contained in:
parent
46cf6c763c
commit
a684ecaa1e
@ -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
|
this program; if not, write to the Free Software Foundation, Inc., 59 Temple
|
||||||
Place, Suite 330, Boston, MA 02111-1307 USA
|
Place, Suite 330, Boston, MA 02111-1307 USA
|
||||||
"""
|
"""
|
||||||
import sys
|
|
||||||
import logging
|
|
||||||
import socket
|
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():
|
def sendData(options, message):
|
||||||
global log
|
addr = (options.address, options.port)
|
||||||
log = logging.getLogger(u'OpenLP Remote Application')
|
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):
|
def format_message(options):
|
||||||
log.debug(u'Initialising')
|
return u'%s:%s' % (options.event, options.message)
|
||||||
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 sendData(self):
|
def main():
|
||||||
text = "Alert:Wave to Zak, Superfly"
|
usage = "usage: %prog [options] arg1 arg2"
|
||||||
print self.UDPSock
|
parser = OptionParser(usage=usage)
|
||||||
print self.UDPSock.sendto(text, self.addr)
|
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):
|
(options, args) = parser.parse_args()
|
||||||
pass
|
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__':
|
if __name__ == u'__main__':
|
||||||
app = OpenLPRemoteCli(sys.argv)
|
main()
|
||||||
app.run()
|
|
||||||
|
|
||||||
|
@ -40,15 +40,17 @@ class RemotesPlugin(Plugin):
|
|||||||
QtCore.SIGNAL(u'readyRead()'), self.readData)
|
QtCore.SIGNAL(u'readyRead()'), self.readData)
|
||||||
|
|
||||||
def readData(self):
|
def readData(self):
|
||||||
|
log.info(u'Remoted data has arrived')
|
||||||
while self.server.hasPendingDatagrams():
|
while self.server.hasPendingDatagrams():
|
||||||
datagram, host, port = self.server.readDatagram(self.server.pendingDatagramSize())
|
datagram, host, port = self.server.readDatagram(self.server.pendingDatagramSize())
|
||||||
self.handle_datagram(datagram)
|
self.handle_datagram(datagram)
|
||||||
|
|
||||||
def handle_datagram(self, datagram):
|
def handle_datagram(self, datagram):
|
||||||
|
log.info(u'Sending event %s ', datagram)
|
||||||
pos = datagram.find(u':')
|
pos = datagram.find(u':')
|
||||||
event = unicode(datagram[:pos])
|
event = unicode(datagram[:pos].lower())
|
||||||
payload = unicode(datagram[pos + 1:])
|
payload = unicode(datagram[pos + 1:])
|
||||||
if event == u'Alert':
|
if event == u'alert':
|
||||||
self.event_manager.post_event(Event(EventType.TriggerAlert, u'RemotePlugin', payload))
|
self.event_manager.post_event(Event(EventType.TriggerAlert, u'RemotePlugin', payload))
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user