Script lyrics

From Official Kodi Wiki
Revision as of 06:25, 30 June 2010 by >Amet (Created page with '==What XBMC requires for your addon== For XBMC to know what to do with your addon, we require your script, and an addon.xml file. See here for more informati…')
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

What XBMC requires for your addon

For XBMC to know what to do with your addon, we require your script, and an addon.xml file. See here for more information on addon.xml, including how you add descriptions to your addon for users. A plugin source extends XBMC via the xbmc.python.lyrics extension point. The layout of the XML describing this extension point is as follows:

  <extension point="xbmc.python.lyrics"
             library="default.py" />

list of extension points and their explanation:

  "xbmc.python.script"          This is the standard Script extension point

below listed extensions will not appear in the Scripts/Programs window and can only be run via skin shortcuts

  "xbmc.python.weather"        Used for weather scripts
  "xbmc.python.subtitles"      Used for subtitle scripts
  "xbmc.python.lyrics"         Used for lyrics scripts
  "xbmc.python.library"        Used for skin dependent scripts (e.g. recently added script)


Example of "xbmc.python.lyrics":

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<addon id="script.cu.lyrics"
       name="CU Lyrics"
       version="0.8.6"
       provider-name="Amet">
  <requires>
    <import addon="xbmc.python" version="1.0"/>
  </requires>
  <extension point="xbmc.python.lyrics"
             library="default.py" />
  <extension point="xbmc.addon.metadata">
    <summary lang="en">CU Lyrics</summary>
    <description lang="en">Search, download and display lyrics from LyricWIKI.org. Downloaded lyrics will be saved in userdata/addon_data.Lyrics button on OSD needs to be activated and path set to CU Lyrics under Settings-> Skin-> Scripts </description>
    <platform>all</platform>
  </extension>
</addon>

Interacting with XBMC

Given that your script can return information to the user, you may wish to allow some (or all) of the information you provide to be translatable. You do this by providing a strings.xml file (in resources/language/<name_of_language>/strings.xml) which associates integer id's with each label. XBMC then handles loading these string files and ensuring that the users' locale information is taken into account. To display strings you use the getString function in the xbmcaddon module.

The xbmcaddon module

The documentation for the xbmcaddon module may be found here <linky to auto-gen'd python docs>. The getSetting and setSetting commands may be used to store state information between calls, in addition to accessing configuration information. openSettings pops up the configuration dialog allowing the user to change the configuration of your plugin source. getLocalizedString retrieves translated strings, and getAddonInfo returns pertinent information about your pluginsource should you want to display this via some other means.

 import xbmcaddon
 __settings__ = xbmcaddon.Addon(id='<your addons ID>')
 __language__ = __settings__.getLocalizedString
 __language__(30204)              # this will return localized string from resources/language/<name_of_language>/strings.xml
 __settings__.getSetting( "foo" ) # this will return "foo" setting value 
 __settings__.setSetting( "foo" ) # this will set "foo" setting value
 __settings__.openSettings()      # this will open settings window

please note that <your addons ID> mentioned above must be the same as addon id="<your addons ID> in addons.xml