aboutsummaryrefslogtreecommitdiff
path: root/tools/EventClients/Clients/Kodi Send/kodi-send.py
diff options
context:
space:
mode:
Diffstat (limited to 'tools/EventClients/Clients/Kodi Send/kodi-send.py')
-rwxr-xr-xtools/EventClients/Clients/Kodi Send/kodi-send.py80
1 files changed, 80 insertions, 0 deletions
diff --git a/tools/EventClients/Clients/Kodi Send/kodi-send.py b/tools/EventClients/Clients/Kodi Send/kodi-send.py
new file mode 100755
index 0000000000..a49a4db0c1
--- /dev/null
+++ b/tools/EventClients/Clients/Kodi Send/kodi-send.py
@@ -0,0 +1,80 @@
+#!/usr/bin/python
+#
+# XBMC Media Center
+# XBMC Send
+# Copyright (c) 2009 team-xbmc
+#
+# This program 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 2 of the License, or
+# (at your option) any later version.
+#
+# This program 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 this program; if not, write to the Free Software
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+#
+
+import sys
+import getopt
+from socket import *
+try:
+ from kodi.xbmcclient import *
+except:
+ sys.path.append('../../lib/python')
+ from xbmcclient import *
+
+def usage():
+ print "kodi-send [OPTION] --action=ACTION"
+ print 'Example'
+ print '\tkodi-send --host=192.168.0.1 --port=9777 --action="XBMC.Quit"'
+ print "Options"
+ print "\t-?, --help\t\t\tWill bring up this message"
+ print "\t--host=HOST\t\t\tChoose what HOST to connect to (default=localhost)"
+ print "\t--port=PORT\t\t\tChoose what PORT to connect to (default=9777)"
+ print '\t--action=ACTION\t\t\tSends an action to XBMC, this option can be added multiple times to create a macro'
+ pass
+
+def main():
+ try:
+ opts, args = getopt.getopt(sys.argv[1:], "?pa:v", ["help", "host=", "port=", "action="])
+ except getopt.GetoptError, err:
+ # print help information and exit:
+ print str(err) # will print something like "option -a not recognized"
+ usage()
+ sys.exit(2)
+ ip = "localhost"
+ port = 9777
+ actions = []
+ verbose = False
+ for o, a in opts:
+ if o in ("-?", "--help"):
+ usage()
+ sys.exit()
+ elif o == "--host":
+ ip = a
+ elif o == "--port":
+ port = int(a)
+ elif o in ("-a", "--action"):
+ actions.append(a)
+ else:
+ assert False, "unhandled option"
+
+ addr = (ip, port)
+ sock = socket(AF_INET,SOCK_DGRAM)
+
+ if len(actions) is 0:
+ usage()
+ sys.exit(0)
+
+ for action in actions:
+ print 'Sending action:', action
+ packet = PacketACTION(actionmessage=action, actiontype=ACTION_BUTTON)
+ packet.send(sock, addr)
+
+if __name__=="__main__":
+ main()