Créer une extension de type service pour KODI

Créer une extension de type service pour KODI

Dans KODI il est possible de déclarer des extensions persos pour tout type d’usage. Dans le cadre de mon projet d’afficheur LCD pour KODI, j’ai décidé de créer un service qui affiche l’heure en mode passif et le timecode en mode lecture de média.
Pour créer une extension sous KODI, il faut créer une arborescence de fichier qui respecte ce schéma (d – dossier, f – fichier) :

nom de l'addon (d)
|-> resources (d)
|   |-> settings.xml (f)
|   |-> language (d)
|       |-> English (d)
|           |-> strings.po (f)
|       |-> French (d)
|           |-> strings.po (f)
|-> addon.py (f)
|-> addon.xml (f)
|-> icon.png (f)

Le dossier qui contient l’ensemble des éléments de votre addon doit porter le nom suivant : script.service.<nom_de_l’addon>

Vous l’aurez deviné, le fichier icon.png sert à spécifier un logo pour votre addon… 😀


Fichier addon.py

C’est le script de votre service, c’est ici que vous écrirez les tâches à accomplir par celui-ci.

En fonction des éléments de KODI avec lesquels on veut intéragir dans le script, il faut ajouter une ou plusieurs des lignes suivantes :

import xbmc
import xbmcaddon
import xbmcgui
import xbmcplugin
import xbmcvfs

Fichier addon.xml

C’est le fichier de metadata de votre addon. En voici un exemple :

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<addon id="script.service.lcddisplay" name="LcdDisplay" version="2.0.9" provider-name="Heavyrage">
  <requires>
    <import addon="xbmc.gui" version="5.3.0"/>
    <import addon="xbmc.python" version="2.19.0"/>
    <import addon="xbmc.metadata" version="2.1.0"/>
    <import addon="xbmc.addon" version="14.0.0"/>
       <import addon="script.module.pil" version="1.1.7"/>
  </requires>
  <extension point="xbmc.service" library="addon.py" start="startup">
  </extension>
  <extension point="xbmc.addon.metadata">




<br />
<summary lang="en">MyLCD display client</summary>
<p>








<br />
<summary lang="fr">MyLCD client d'affichage</summary>
<p>




       <description lang="en">Client service for displaying currently played media's tags</description>
       <description lang="fr">Service client d'affichage des informations du contenu visionné</description>
    <platform>all</platform>
  </extension>
</addon>

Le bloc require sert à préciser les modules python qui doivent être chargés pour l’exécution de l’addon.

Vous noterez la présence de la ligne 10, qui spécifie le type du script à exécuter dans KODI (le script addon.py en tant que service). C’est celle-ci qui permet de lancer le script en tant que service au démarrage de KODI.


Dossier resources

C’est le dossier qui contient les éléments tierces de votre addon, comme les paramètres généraux de celui-ci ou encore les traductions. Il ne peut pas être nommé autrement!

Dans ce dossier, il est nécessaire d’avoir au moins un fichier settings.xml. On peut y créer autant de dossier que l’on veut.


Fichier settings.xml

C’est le fichier de configuration de votre addon. Il sert à spécifier des options modifiables dans l’écran de configuration. De nombreux types de paramètres sont disponibles comme par exemple une chaîne de caractères, un entier, une adresse IP, une heure, une liste ou encore un bouton radio.

Voici un exemple de fichier :

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<settings>
    <category label="32020">
        <setting label="32021" type="bool" id="myscrypt_enabled" default="false"/>
        <setting label="32025" type="number" id="disp_width" default="200"/>
        <setting label="32026" type="number" id="disp_height" default="64"/>
        <setting label="32030" type="labelenum" id="displayFont" values="data-latin|helvetica"/>
        <setting label="32027" type="number" id="fontsize" default="22"/>
        <setting label="32028" type="time" id="maxHourOn" default="23:59"/>
        <setting label="32029" type="time" id="minHourOn" default="5:50"/>
    </category>
</settings>

 

Dossier language et fichier strings.po

Dans ce dossier se trouvent les traductions de l’addon. Il faut y créer un dossier par langue. chaque dossier, va contenir un fichier strings.po où on y écrit les label ainsi que les traductions associées.

  • blié le octobre 26, 2015 - 4:49
  • r lourderadj
  • blié dans

No comments yet

isser un commentaire



Tweets
    Optimization WordPress Plugins & Solutions by W3 EDGE