2015-11-18, 12:46
Hi,
Im new to python/kodi i have this main.py code where i creat a "server socket" to get some data from a external app.
My main problem is to send data (conn.send("xxx")) from main.py ("server socket") to the external app from a script or some thing else triggered by a button at Home.xml (<onclick>RunScript("special://skin/scripts/xxxxx.py")</onclick>).
Please give me a hand on this, many thanks
Cam
Im new to python/kodi i have this main.py code where i creat a "server socket" to get some data from a external app.
My main problem is to send data (conn.send("xxx")) from main.py ("server socket") to the external app from a script or some thing else triggered by a button at Home.xml (<onclick>RunScript("special://skin/scripts/xxxxx.py")</onclick>).
Please give me a hand on this, many thanks
Cam
Code:
# -*- coding: utf-8 -*-
"""
mod time lable
"""
import os
import datetime
import threading
import time
import sys
from traceback import print_exc
import re
try:
import xbmc
import xbmcgui
import xbmcplugin
except:
pass
import socket
class SecThread (threading.Thread):
def __init__(self, threadID, sleeptime, sock=None):
self.threadID = threadID
self.sleeptime = sleeptime
threading.Thread.__init__(self)
self.secst = 1
self.cc = 1
self.loop = 1
def run(self):
try:
HOST = '' # It means the local host
PORT = 5000 # the port port
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((HOST, PORT))
#s.close()
s.listen(12)
except:
pass
while self.loop ==1:
try:
conn, addr = s.accept()
except:
paulo6 = ( xbmcgui.Window( 10000 ).getProperty( 'sec.conn' ) )
paulo6 = "except"
xbmcgui.Window( 10000 ).setProperty( 'sec.conn', paulo6 )
try:
data = conn.recv(1024)
#conn.send(data)
except:
hhhh = ( xbmcgui.Window( 10000 ).getProperty( 'sec.data' ) )
hhhh = "except"
xbmcgui.Window( 10000 ).setProperty( 'sec.data', hhhh )
counter = int( xbmcgui.Window( 10000 ).getProperty( 'sec.counter' ) )
counter += 1
xbmcgui.Window( 10000 ).setProperty( 'sec.counter' , str(counter) )
# pc
try:
f = open("C:\kodi_camolas\sec.txt", "r")
except:
pass
# phone
try:
f = open ("/sdcard/Android/data/org.xbmc.kodi/files/.kodi/addons/skin.Camolas/scripts/sec.ini", "r")
except:
pass
# tablet
try:
f = open ("/storage/sdcard1/Link2SD/bind/data/org.xbmc.kodi/files/.kodi/addons/skin.Camolas/scripts/sec.ini", "r")
except:
pass
try:
f_array = []
for line in f:
f_array.append(line.strip("\n"))
f.close()
sec_string =(str(f_array[0]))
fc_string =(str(f_array[1]))
if data == "azs":
paulo = ( xbmcgui.Window( 10000 ).getProperty( 'sec.sec' ) )
paulo = "OFhhjF"
xbmcgui.Window( 10000 ).setProperty( 'sec.sec', paulo )
#conn.send("sec")
elif data == "12":
paulo = ( xbmcgui.Window( 10000 ).getProperty( 'sec.sec' ) )
paulo = "ON"
xbmcgui.Window( 10000 ).setProperty( 'sec.sec', paulo )
if fc_string == '0':
paulo = ( xbmcgui.Window( 10000 ).getProperty( 'sec.fc' ) )
paulo = "ABERTO"
xbmcgui.Window( 10000 ).setProperty( 'sec.fc', paulo )
paulo2 = ( xbmcgui.Window( 10000 ).getProperty( 'sec.fc_img' ) )
paulo2 = "120.png"
xbmcgui.Window( 10000 ).setProperty( 'sec.fc_img', paulo2 )
elif fc_string == '1':
paulo1 = ( xbmcgui.Window( 10000 ).getProperty( 'sec.fc' ) )
paulo1 = "FECHADO"
xbmcgui.Window( 10000 ).setProperty( 'sec.fc', paulo1 )
else:
paulo = ( xbmcgui.Window( 10000 ).getProperty( 'sec.fc' ) )
paulo = erro_fc.png
xbmcgui.Window( 10000 ).setProperty( 'sec.fc', paulo )
"""
elif sec_string[0] == "?":
xbmc.executebuiltin('XBMC.RunScript(/sdcard/Android/data/org.xbmc.kodi/files/.kodi/addons/skin.Camolas/scripts/close_kodi.py)')
"""
except:
pass
#time.sleep(3)
HomeWindow = xbmcgui.Window( 10000 )
HomeWindow.setProperty( 'sec.counter' , str(0) )
HomeWindow.setProperty( 'sec.fc' , str(0) )
HomeWindow.setProperty( 'sec.fc_img' , str(0) )
HomeWindow.setProperty( 'sec.sec' , str(0) )
pollingthread = SecThread(0, 2)
pollingthread.start()