Add-on introduction: Difference between revisions

From Official Kodi Wiki
Jump to navigation Jump to search
>Martijn
>NedBot
m (Robot: Cosmetic changes)
Line 1: Line 1:
{{DevsHeader|'''XBMC Add-on development'''}}<br />
{{DevsHeader|'''XBMC Add-on development'''}}<br />


=Introduction=
= Introduction =


==Purpose==
== Purpose ==


• to provide a guide for would be XBMC Python plugin addon script developers
• to provide a guide for would be XBMC Python plugin addon script developers
Line 10: Line 10:




==Caveats==
== Caveats ==


• This document does not try to teach you how to program in Python
• This document does not try to teach you how to program in Python
Line 16: Line 16:




==Conventions==
== Conventions ==
Any commands that you need to type at a terminal are shown thus;
Any commands that you need to type at a terminal are shown thus;
sudo apt-get install xbmc
sudo apt-get install xbmc
Any program examples, i.e. code that you will type in is shown thus;
Any program examples, i.e. code that you will type in is shown thus;
import urllib,urllib2,re,xbmcplugin,xbmcgui
import urllib,urllib2,re,xbmcplugin,xbmcgui
#TV DASH - by You 2008.
# TV DASH - by You 2008.
def CATEGORIES():
def CATEGORIES():
addDir('','',1,'')
addDir('','',1,'')
Line 27: Line 27:




==Prerequisites==
== Prerequisites ==


The first two of these are really nice to haves. If you are not a programmer, there is nothing to stop
The first two of these are really nice to haves. If you are not a programmer, there is nothing to stop
Line 37: Line 37:




==First Steps==
== First Steps ==


The development user
The development user
Line 51: Line 51:




==Local working on your PC==
== Local working on your PC ==


Using a separate development environment is by far the easiest and preferred method of
Using a separate development environment is by far the easiest and preferred method of
Line 64: Line 64:




==Local working on the XBMC server==
== Local working on the XBMC server ==


This scenario is similar to working on a local machine except that you will need to install a
This scenario is similar to working on a local machine except that you will need to install a
Line 72: Line 72:




==Remote working to an XBMC server==
== Remote working to an XBMC server ==
In this scenario you are going to use your XBMC server to run your code on, but use another
In this scenario you are going to use your XBMC server to run your code on, but use another
machine to do the coding from. You need to be able to access the server from the local machine.
machine to do the coding from. You need to be able to access the server from the local machine.
Line 93: Line 93:




==IDE's==
== IDE's ==


An integrated development environment is a good place to start when coding in any language.
An integrated development environment is a good place to start when coding in any language.
Line 103: Line 103:
http://stackoverflow.com/questions/81584
http://stackoverflow.com/questions/81584


==Editors==
== Editors ==


If you don't/can't use an IDE, then check
If you don't/can't use an IDE, then check
Line 121: Line 121:




==Access to documentation==
== Access to documentation ==


It's a really good idea to have a web browser set up so that you have all the documentation you need
It's a really good idea to have a web browser set up so that you have all the documentation you need
Line 130: Line 130:




==See also==
== See also ==
* [[Add-ons]]
* [[Add-ons]]
* [[:Category:All add-ons]]
* [[:Category:All add-ons]]

Revision as of 14:38, 27 April 2013

Template:DevsHeader

Introduction

Purpose

• to provide a guide for would be XBMC Python plugin addon script developers • to provide the skeleton frameworks to enable script developers to get up and running quickly • to provide links to authoritative sources of information for script developers


Caveats

• This document does not try to teach you how to program in Python • This document does not cover developing for the core XBMC system


Conventions

Any commands that you need to type at a terminal are shown thus; sudo apt-get install xbmc Any program examples, i.e. code that you will type in is shown thus; import urllib,urllib2,re,xbmcplugin,xbmcgui

  1. TV DASH - by You 2008.

def CATEGORIES(): addDir(,,1,) addDir( ,,1,)


Prerequisites

The first two of these are really nice to haves. If you are not a programmer, there is nothing to stop you giving it a go, it'll just take a bit longer is all. • Some knowledge of application development, particularly in a GUI environment • Knowledge of Python scripting • Installed version of XBMC 10 (Dharma) minimum – you do not need the development source version


First Steps

The development user This document assumes for the purposes of illustration, that the user that you installed XBMC with is 'xbmc' and that that user has all rights to the /home/xbmc directory. Please bear this in mind if you installed under a different user name on your box. In addition you may want to set up another user on the XBMC server that you will use to login as the developer. This user should have sudo rights on a Linux based system. This is your development user. Your development environment You need to consider how you want to work whilst programming. Three options are given in order of preference.


Local working on your PC

Using a separate development environment is by far the easiest and preferred method of development. You will need to install XBMC on your local machine and run it there. In some senses this is not a bad idea as you can install a plain vanilla XBMC and concentrate on developing and testing your addon in isolation, moving it to your 'production' machine for final integration testing and thence on into the wild. In this case you can install XBMC1 as your normal logged on user and you shouldn't need to worry about file permissions etc. You can run XBMC in a window to see the results of your work. (Go to System Settings - System Settings – Video Output and set Display Mode to Windowed.) Having a dual screen set-up can be very beneficial in this scenario.


Local working on the XBMC server

This scenario is similar to working on a local machine except that you will need to install a window manager (Linux machines), run XBMC in a window and connect a keyboard and mouse to the machine (there are some nice wireless keyboards with touchpads about, Toshiba among others do one.) Otherwise the set-up is the same as for a local PC installation.


Remote working to an XBMC server

In this scenario you are going to use your XBMC server to run your code on, but use another machine to do the coding from. You need to be able to access the server from the local machine. Running XBMC under windows? - share the xbmc user directory and set permissions for your development user to read and write to the directory and its subdirectories Running XBMC under Linux? - Perhaps the easiest way to do this is to set the file permissions on /home/xbmc to allow the group to read and write, enrol your development user name in the xbmc group. Set the sticky bits for the xbmc user and group so that all new files are owned by the xbmc user /group irrespective of who creates them; sudo chmod -R u+s /home/xbmc/.xbmc 1 Fedora users can use a Dharma repository. See http://forums.fedoraforum.org/showthread.php?t=229121 sudo chmod -R g+rws /home/xbmc/.xbmc sudo useradd -G xbmc your_dev_user_name Then logon via ssh (or sftp) from your working machine. Alternatively, install Samba and set up the shares so that you can access your XBMC installation as any user. Ref to Samba docs In either OS, set up permanent mappings from your working machine to the XBMC server so that your editors etc, can see the files


IDE's

An integrated development environment is a good place to start when coding in any language. Check out the following link for a list of free and non free offerings. Look out for ones that support not only Python scripting, but also XML editing and in particular, local and remote debugging; as someone once said – Professional programmers use a debugger! http://wiki.python.org/moin/IntegratedDevelopmentEnvironments See what other people are using at http://stackoverflow.com/questions/81584

Editors

If you don't/can't use an IDE, then check http://wiki.python.org/moin/PythonEditors for a list of editors that support Python in some way. And don't forget you can use any simple editor such as Nano or Gedit in Linux, ? In Windows, ? In Mac to edit python source code Access to documentation It's a really good idea to have a web browser set up so that you have all the documentation you need at your finger tips. So go ahead and download another browser that is different to your normal one (e.g. I use Firefox for everyday stuff and Chrome as my Developers reference library,) or at least set up a group of tabs in your regular browser that you can fire up when you are developing. See the reference section at the end of this document for sites you will want to have at hand.

Notepad++ is a recommended editor.

Files should be saved as UTF-8 without BOM


Access to documentation

It's a really good idea to have a web browser set up so that you have all the documentation you need at your finger tips. So go ahead and download another browser that is different to your normal one (e.g. I use Firefox for everyday stuff and Chrome as my Developers reference library,) or at least set up a group of tabs in your regular browser that you can fire up when you are developing. See the reference section at the end of this document for sites you will want to have at hand.


See also

Development: