Community Website

Around this idea

Pida need to have a community for new Plugins and Snippets. Community website is born.

He provide :

  • User registration
  • Upload plugins/snippets
  • Moderate (Accept/Refuse) new plugins/snippets
  • Browse/search through database
  • RSS of last news plugins/snippets
  • RSS of last modified plugins/snippets

And give some service method for :

  • List all plugins/snippets
  • Search through database
  • Download plugins/snippets

Available plugin category :

  • documentation -- Add documentation helpers
  • bugs -- Handle new bug system
  • ...

Plugin package

Content of plugin package

A plugin package is named pida-NAME-VERSION.tgz and contain at least a tree like this :

NAME
NAME/uidef
NAME/locale
NAME/pixmaps
NAME/data
NAME/glade
NAME/NAME.py
NAME/__init__.py
NAME/plugin.pida

An example of RFC plugin package :

rfc
rfc/uidef
rfc/locale
rfc/pixmaps
rfc/data
rfc/glade
rfc/test_rfc.py
rfc/rfc.py
rfc/__init__.py
rfc/plugin.pida
rfc/locale/fr_FR
rfc/locale/fr_FR/LC_MESSAGES
rfc/locale/fr_FR/LC_MESSAGES/rfc.po
rfc/locale/fr_FR/LC_MESSAGES/rfc.mo
rfc/uidef/rfc-toolbar.xml
rfc/uidef/rfc.xml

Files informations

plugin.pida

This file handle some informations about plugin :

plugin * technical name of plugin (only [a-z0-9_] name) rfc
name * long name of plugin RFC Viewer
version * version of plugin 0.1
author * name of author <email> Mathieu Virbel <test@…>
require_pida * version of pida 0.5
category * category of plugins documentation
depends list of depends os,re,urllib,gtk
lastupdate date of last update
website website of plugin

* This fields are mandatory

RPC functions

URL : http://pida.co.uk/community/RPC2

plugins.list()

Get plugins list

Return an array(plugin1, plugin2. ...) with plugin defined by an array of key/value.

Example :

[
  {
    'description': 'Search man pages with pattern, and browse it inside PIDA',
    'depends': 'os,gtk,commands,re,cgi',
    'author': 'Mathieu Virbel <tito@bankiz.org>',
    'plugin': 'man',
    'version': '0.5',
    'require_pida': '0.5',
    'name': 'Man Viewer',
    'url': 'http://pida.co.uk/community/files/plugins/pida-man-0.5.tgz',
  }, 
  ...
]

snippets

Rapid documentation :

  • snippet.push(login, password, title, meta, data, [tag1, tag2...])
  • snippet.get([id1, id2...])
  • snippet.get_by_tag(tag)
  • snippet.tag.list()

TODO