kodi 插件 - 在主页上打印结果

kodi addon - print result on home page

首先,这是一个非常基本的插件,也是我的第一个 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  }'"], shell=True);
    result = ("Your IP is : %s " % public_ip);
    return result;

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

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

我想做的是将此结果打印在主页上(如果这有任何帮助,我正在使用泰坦皮肤)但我不知道从哪里开始,因为 google 也没什么用。

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

在此先感谢您的帮助

可能,它可以通过操纵皮肤 XML 文件来完成,但我对 Kodi 皮肤的了解为零。

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

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

10000 是家庭 window 的数字 ID。 window ID 列表可以在 Kodi Wiki 中找到。

补充说明:

  • 控件使用从左上角开始的像素坐标放置在 window 中。但是,不同的皮肤具有不同的像素分辨率,因此控件的视觉位置可能因不同的皮肤而异。
  • 虽然 Control 附加到 window 而 Kodi 是 运行,但您需要使用某种长 运行 循环来更新屏幕上的信息(请参阅setLabel method). For that you might want to organize your addon as a service addon.