kodi addon - 在主页上打印结果

时间:2017-04-30 14:49:55

标签: python kodi

首先,这是一个非常基本的插件,以及我对kodi的第一个插件。

我只是克隆了hello world示例并将addon.py文件更改为:

import xbmcaddon
import xbmcgui
import subprocess
import urllib
import requests
import json

addon       = xbmcaddon.Addon()
addonname   = addon.getAddonInfo('name')


def check_location():
    send_url = 'http://freegeoip.net/json'
    r = requests.get(send_url)
    j = json.loads(r.text)
    city = j['city']
    return "Currently connected from: " + city;

def check_ip():
    public_ip = subprocess.check_output(["ifconfig `ip route get 8.8.8.8 | grep 8.8.8.8 | cut -d' ' -f5` | grep \'inet \' | awk -F'[: ]+' '{ print $4 }'"], shell=True);
    result = ("Your IP is : %s " % public_ip);
    return result;

xbmcgui.Dialog().ok("Check IP and Location", check_ip(), check_location())

这个简单的脚本,获取外部Ip和位置,并在运行时以模态打印它们。

我想做的是将这些结果打印在主页上(如果有任何帮助,我正在使用泰坦皮肤)但我不知道从哪里开始,因为谷歌没有&#39 ; t真的很有帮助。

我不在乎是否必须创建两个新的菜单条目,或者我要更改一些皮肤文件,但我的想法是保持IP和位置始终在主页,因为我需要立即检查我的VPN是否断开连接以便我可以重新连接(或者至少我知道我已经不再连接了)

提前感谢您提供任何帮助

1 个答案:

答案 0 :(得分:1)

可能可以通过操作皮肤XML文件来完成,但我对Kodi皮肤没有任何了解。

xbmcgui.Window类可用于将各种xbmcgui控件附加到现有的Kodi窗口。下面是我在其中一个插件中使用的修改后的代码:

window = xbmcgui.Window(10000)
label = xbmcgui.ControlLabel(10, 10, 1000, 50, 'Some label text')
window.addControl(label)

10000是主窗口的数字ID。窗口ID列表可以在Kodi Wiki中找到。

附加说明:

  • 使用从左上角开始的像素坐标将控件放置在窗口中。但是,不同的皮肤具有不同的像素分辨率,因此控件的可视放置可能会因不同的皮肤而异。
  • 虽然在Kodi运行时控件已附加到窗口,但您需要使用某种长时间运行的循环来更新屏幕上的信息(请参阅setLabel方法)。为此,您可能希望将您的插件整理为service addon