【问题标题】:kodi addon - print result on home pagekodi 插件 - 在主页上打印结果
【发布时间】:2017-05-03 00:20:18
【问题描述】:

首先,这是一个非常基本的插件,也是我第一个 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和位置,并在运行时以模态形式打印出来。

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

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

提前感谢您的帮助

【问题讨论】:

    标签: python kodi


    【解决方案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。可以在 Kodi Wiki 中找到窗口 ID 列表。

    补充说明:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-12-05
      • 2016-02-29
      • 1970-01-01
      • 2017-11-05
      • 1970-01-01
      • 1970-01-01
      • 2014-10-27
      相关资源
      最近更新 更多