Добавление текста из пользовательского скрипта на домашнюю страницу Kodi через XML

Я предполагаю, что это довольно легко для тех, кто знает, что они делают. К сожалению, я этого не делаю, и столько, сколько я хотел бы потратить на поиски вещей в течение следующих трех дней, мой 4-летний получил много новых подарков на Рождество, и я действительно должен поиграть с ним, так что, возможно, кто-то может мне помочь.

Я хочу добавить свой внешний IP-адрес и географическое местоположение на домашнюю страницу Kodi.

Я взял копию обложки по умолчанию и нашел файл Home.xml, который используется для создания домашней страницы. Я добавил метку, но не знаю, как получить эту метку для отображения результатов скрипта.

Например, у меня есть скрипт bash getmyip.sh, который находится в /storage/downloads/ и выполняет простой фрагмент кода ниже.

curl -s http://whatismijnip.nl/ |cut -d " " -f 5

Это дает мне мой внешний IP.

Я добавил метку в файл home.xml, как показано ниже. Это было написано кем-то другим и дает мне мой внутренний IP.

Вопрос в том, как я могу изменить его, запустив свой сценарий (или какой-нибудь другой метод), чтобы получить внешний IP-адрес и гео-местоположение при подключении к VPN? Любые предложения с благодарностью принимаются. Я просто не знаю XML.

Спасибо!

    <control type="label">
            <description>IP Address</description>
            <left>200</left>
            <top>5</top>
            <height>49</height>
            <width min="200" max="300">auto</width>
            <label>IP: $INFO[Network.IPAddress]</label>
            <align>left</align>
            <aligny>center</aligny>
            <font>font12</font>
            <textcolor>white</textcolor>
            <shadowcolor>black</shadowcolor>
    </control> 

1 ответ

Решение

Вы должны настроить ваш getmyip.sh на следующий код:

#!/bin/sh
python getmyexternalip.py

Затем создайте файл python с именем getmyexternalip.py и добавьте следующий код:

import subprocess
import xbmcgui

output = subprocess.check_output("curl -s http://whatismijnip.nl |cut -d ' ' -f 5", shell=True)
output = output.rstrip('\n')

xbmcgui.Window(10000).getControl(32000).setLabel("IP: " + str(output))

Также вы должны настроить XML, чтобы иметь идентификатор для этого элемента управления:

<control type="label" id="32000">

Обратите внимание, что идентификатор должен быть таким же, как в параметре в функции xbmcgui.Window(10000).getControl.

Идентификатор 10000 в скрипте python для окна является идентификатором окна по умолчанию для Home.xml.

Другие вопросы по тегам