• Vítejte na XBMC-Kodi.cz
  • Česko-slovenská komunita fanoušků XBMC/Kodi
Vítejte návštevníku! Přihlášení Registrace


Hodnocení tématu:
  • 1 Hlas(ů) - 4 Průměr
  • 1
  • 2
  • 3
  • 4
  • 5
Zobrazení stavových infomací Kodi a addon
#2
Zobrazení počtu dní zaplaceného VIP přístupu Webshare

Řešení, které popíšu, je celkem triviální a nedokonalé a má jistá omezení. Ale pro začátek to myslím nevadí. Já to ostatně tak dělánm vždy, když něco potřebuji rychle, chci si to vyzkoušet a pak to, po nějaké době používání, realizovat nějakým dokonalejším způsobem.

Získání informace řeším načtením obsahu porměnné a parsováním hodnoty ze settings.xml doplňku SCC. Tady je to základní omezení. SCC hodnotu z WS načítá a ukládá do settings.xml pouze při přihlášení k WS, tedy typicky při startu addon, a pouze tehdy, pokud od posledního načtení uplynula nastavená doba (momentálně je to 1 den). Já si tedy ze settings.xml hodnotu načítám také jen při spuštění Kodi. Používám pro to service addon service.autoexec, ve které spuštím dále popsaný script. Znamená to, že ne vždy je zobrazená hodnota 100% aktuální (to je další daň jednoduchosti řešení), ale to se srovná vždy při dalším spuštění Kodi.

Načtení hodnot provádím pomocí sh scriptu. Za normálních okolností a v *ELEC systému bych pro to použil známý script oe_setup_addon, tomto případě to ale není možné. SCC bohužel používá v identifikátorech settings i znak "." (další drobný problém SCC) a s tím si tento script neumí poradit. Proto parsování provádím pomocí systémových příkazů grep a sed.
 
Kód:
#! /bin/sh
vip_check=$(grep "last_vip_check" /storage/.kodi/userdata/addon_data/plugin.video.stream-cinema-2-release/settings.xml | sed -re "s/.*>(.*)\..*<.*/\\1/")
kodi-send -a "SetProperty(vip_check,${vip_check},10000)"
vip_duration=$(grep "provider.vip_duration" /storage/.kodi/userdata/addon_data/plugin.video.stream-cinema-2-release/settings.xml | sed -re "s/.*>(.*)<.*/\\1/")
kodi-send -a "SetProperty(vip_duration,${vip_duration},10000)"
vip_days=$(echo ${vip_duration} | sed -re "s/.*\(Dny: ([0-9]*)\).*/\\1/")
if [ ${vip_days} -gt 14 ] ; then
    kodi-send -a "SetProperty(vip_days,[COLOR blue]${vip_days}[/COLOR],10000)"
elif [ ${vip_days} -gt 7 ] ; then
    kodi-send -a "SetProperty(vip_days,[COLOR yellow]${vip_days}[/COLOR],10000)"
else
    kodi-send -a "SetProperty(vip_days,[COLOR red]${vip_days}[/COLOR],10000)"
fi
Načítám proměnné vip_check a vip_duration. Z vip_duration pak parsuji vlastní hodnotu počtu dní a ukládám ji do proměnné vip_days. Všechny tři proměnné pak ukládám do Kodi properties se shodnými jmény. Při ukládání hodnoty počtu dní ji ještě doplním metakódy barev podle zbývajícího počtu dní (>14 blue, >7 & <=14 yellow, <=7 red). Pro ukládání používám v *ELEC dostupný příkaz kodi-send. Tady je tedy další omezení, jednak to lze použít právě jen u tohoto typu instalací a jednak každé použití tohoto příkazu deaktivuje případně spuštěný screen saver. Ale i to je daň za jednoduchost řešení. Jistě by místo kodi-send šlo použít i json-rpc příkaz, pak by to bylo obecnější.

Vlastní zobrazení ve skinu Kodi je pak celkem jednoduché. Použijeme k tomu např. toto:
 
Kód:
        <control type="label" id="1">  <!-- EASY+ SCC VIP days remains -->
            <width>auto</width>
            <aligny>center</aligny>
            <font>font_flag</font>
            <label>$INFO[Window(Home).Property(vip_days),VIP: ]</label>
        </control>
Finální řešení a umístěné kódu samozřejmě závisí na použitém skinu. Ale znalí skineři budou určitě vědět, jak na to. V Estuary Easy to pak vypadá nějak takto:
   
Abych měl přehled o tom, co se v settings.xml děje, tak jsem si ještě další dvě proměnné zobrazil v testovacím okně proměnných skinu. Testovací okno používám už dlouho, zobrazuji si tam vybrané veličiny pro potřeby ladění a testování a je to velmi produktivní a pomáhá mi to.
   
 
Citovat
  


Příspěvků v tématu
RE: Zobrazení stavových infomací Kodi a addon - od JiRo - 15.10.2022, 23:59

Přejít na fórum:


Prochází: 1 host(ů)