<?sphp $this->text('pagetitle') ?>
 
Home of the Squeezebox™ & Transporter® network music players.

SqueezeCenter Repositories Developers

From SqueezeboxWiki

Jump to: navigation, search


7.3 includes a plugin which enables extensions to be downloaded to SqueezeCenter and Jive. 3rd party authors may host their own content for download and define a repository xml file which refers to it.

The xml format is:

 <?xml version="1.0"?>
 <extensions>
   <details>
     <title lang="EN">The Repository's Title</title>
   </details>
   <applets>
     <applet name="AppletName" version="1.0" target="jive" minTarget="7.3" maxTarget="7.3">
       <title lang="EN">English Title</title>
       <title lang="DE">German Title</title>
       <desc lang="EN">English description</desc>
       <desc lang="DE">German description</desc>
       <changes lang="EN">English change log</changes>
       <changes lang="DE">German change log</changes>
       <creator>Name of Author</creator>
       <email>email of Author</email>
       <url>url for zip file</url>
       <sha>digest of zip</sha>
     </applet>
   </applets>
   <plugins>
     <plugin name="PluginName" version="1.0" target="windows" minTarget="7.3" maxTarget="7.3">
       <title lang="EN">English Title</title>
       <title lang="DE">German Title</title>
       <desc lang="EN">English description</desc>
       <desc lang="DE">German description</desc>
       <changes lang="EN">English change log</changes>
       <changes lang="DE">German change log</changes>
       <creator>Name of Author</creator>
       <email>email of Author</email>
       <url>url for zip file</url>
       <sha>digest of zip</sha>
     </plugin>
   </plugins>
   <wallpapers>
     <wallpaper name="WallpaperName" url="url for wallpaper file" />
   </wallpapers>
   <sounds>
     <sound name="SoundName"     url="url for sound file"     />
   </sounds>
 </extensions>
  • name - the name of the applet/plugin - must match the file naming of the lua/perl packages
  • version - the version of the applet/plugin (used to decide if a newer version should be installed)
  • target - string defining the target, you can specify multiple target by separating them by '|'.
    For applets you can use 'jive' (=SB-Controller), 'fab4' (=SB-Touch) or 'baby' (=SB-Radio). Omit the target attribute if you want your applet to be available for all devices, otherwise set to one or more targets (split by |).
    For plugins if set this specfies the target architecture and may include multiple strings from "windows|mac|unix"
  • minTarget - min version of the target software
  • maxTarget - max version of the target software
  • title - contains localisations for the title of the applet (optional - uses name if not defined)
  • desc - localised description of the applet or plugin (optional)
  • changes - localised change log of the applet or plugin (optional)
  • link - (plugin only) url for web page describing the plugin in more detail
  • creator - name of author(s) (optional)
  • email - email of authors(s) (optional)
  • url - url for the applet/plugin itself, this sould be a zip file
  • sha - (plugin and applet only) sha1 digest of the zip file which is verifed before the zip is extracted

Further details are available in the comments of the Slim::Plugins::Extensions::Plugin source file.

A Perl script for creating repository XML files is available on the PluginDevTools wiki page.

SqueezeCenter Plugins

Authors should create their plugins in the standard way with packages named as Plugins::<name>:: where <name> is reused for the name of the plugin in the repository.

Plugins may be packaged into a zip file using PluginBuilder or by manually zipping the contents of the directory into a zip file. A sha1 checksum of the zip file should also be created. The zip file should then be hosted at a url which is defined in the url element of the plugin xml entry with the sha1 element containing its sha1 checksum.

Hashing Files

A good small freeware utility for windows to produce a sha1 hash can be found at Nirsoft - HashMyFiles