MyPixmania

Introduction

MyPixmania is a software that eases the use of the MyPixmania.com website. This website allows to store picture albums, and sells to customers the ability to send printed versions of these pictures. Initially, to ease the uploading of pictures, the website offered specialized softwares only for the Microsoft Windows and Apple OS X operating systems. Nothing was available for users of other operating systems, particularly free systems like GNU/Linux. The user of these systems was limited to a Web form on the MyPixmania.com website, which makes its use impractical, particularly when it comes to uploading a large number of pictures. The MyPixmania software fills this gap, and while it was initially developed for the GNU/Linux system, it's also perfectly usable with other operating systems.

Nowadays, the MyPixmania.com website allows to upload pictures through a Java applet, usable of more platforms. However, the free software user may not be satisfied by the usage of the Java applet, and may find convenient the command-line interface offered by MyPixmania.

Technically, MyPixmania is a set of Python scripts, that interacts with the MyPixmania website using the Curl library.

Currently, the supported operations are :

Today, MyPixmania has three different interfaces :

Note: the authors of this software are in no way related to the MyPixmania.com website or to the FotoVista company. The availability of this script is not a promotion for this company.

Usage

Configuration

Before using one one the interfaces of MyPixmania, you have to create a configuration file that contains your identification informations for the MyPixmania.com website. This file must be named .mypixmania.cfg, must be located in your home directory, and must look like the following :

[account]
login = myogin@mydomain.org
password = mypassword

The lines that start with # are ignored.

Text interface

The text interface of MyPixmania is easy to use. Its documentation is available through a manual page, or through the help option :

$ mypixmania help
Usage: mypixmania command [files]
 Commands:
  - list    : Lists all albums
  - add     : Adds one or more pictures to a new or already existing album
  - fetch   : Fetch thumbnails or pictures from an album
  - delete  : Remove an album
  - help    : Displays this help
  - version : Displays version and authors

 Examples:
  - mypixmania.py list
  - mypixmania.py add Holidays2004 pic1.jpg pic2.jpg pic3.jpg
  - mypixmania.py fetch full AlbumName dest-dir/
  - mypixmania.py fetch thumb AlbumName dest-dir/

To begin, it's possible to list all available albums :

$ mypixmania list
Album list:
 - HolidaysSummer2004
 - HolidaysSummer2005
 - WeekEndSophie
 - House

To add pictures to an existing album, simply use the following command :

$ mypixmania add HolidaysSummer2004 ~/pics/photo[1-3].jpg
[ 1/ 3] Adding picture '/home/thomas/pics/photo1.jpg' to album 'HolidaysSummer2004'
 Uploading   114035 /   114035 bytes
[ 2/ 3] Adding picture '/home/thomas/pics/photo2.jpg' to album 'HolidaysSummer2004'
 Uploading   100835 /   100835 bytes
[ 3/ 3] Adding picture '/home/thomas/pics/photo3.jpg' to album 'HolidaysSummer2004'
 Uploading   108408 /   108408 bytes

To create an album, one simply has to add pictures to a non-existing album. MyPixmania will then ask you whether you want to create the new album or not :

$ mypixmania add HolidaysSummer2004 ~/pics/skimboard.jpg
Album HolidaysSummer2004 does not exist, do you want to create it ? [Y/n] Y
[ 1/ 1] Adding picture '/home/thomas/pics/skimboard.jpg' to album 'HolidaysSummer2004'
 Uploading   776055 /   776055 bytes

To remove an album and all its pictures, use the delete command :

$ mypixmania delete HolidaysSummer2004
Album 'HolidaysSummer2004' deleted successfully.

Finally, to fetch the pictures of a previously uploaded album, you can use the fetch command. This command allows to fetch either thumbnails (thumb format) or larger pictures (full format). However, it is not possible to fetch the pictures in their original size: le MyPixmania.com website doesn't offer this functionnality.

After downloading, the pictures of format full will have the name they had when they had been uploaded. The pictures of format thumb will have the same name, suffixed with -thumb. The thumb picture corresponding to the picture picture12.jpg will be named picture12-thumb.jpg.

$ mkdir HolidaysSummer2004
$ mypixmania fetch full HolidaysSummer2004 HolidaysSummer2004/
photo1.jpg
photo2.jpg
photo3.jpg
$ ls HolidaysSummer2004/
photo1.jpg  photo2.jpg  photo3.jpg
$ mypixmania fetch thumb HolidaysSummer2004 HolidaysSummer2004/
photo1.jpg
photo2.jpg
photo3.jpg
$ ls HolidaysSummer2004/
photo1.jpg  photo2.jpg  photo3.jpg  thumb-photo1.jpg  thumb-photo2.jpg  thumb-photo3.jpg

Graphical interface

The graphical interface uses the Gtk 2 library, and doesn't offert all the functionalities available through the command-line interface (particularly picture fetching). It is still in intensive development, and you can take part.

Main window
The main window, that allows to list albums, and delete them.

Album visualization
The visualization window, with a thumbnail for each picture.

Add an album
The album addition window.

Developer interface

MyPixmania is made of three parts: a pixmania.py library that allows to interact with the MyPixmania.com website, a text interface and a graphical interface. The two last interfaces have been described in the previous sections. In this section, we present the pixmania.py library, which might be interesting for the developer who wants to write new scripts that interact with the MyPixmania.com website.

The pixmania.py librarby is documented using epydoc (python-epydoc Debian package). To generate the documentation in the PDF format, simply issue :

$ mkdir doc/
$ epydoc --pdf -o doc/ pixmania.py

This documentation gives all the necessary informations on the internal working of this librarby.

Download

The latest version of MyPixmania is 1.0.5, released on July, 29th 2006. A tarball is available here. The code source is available under the termes of the GNU General Public License.

Installation

To use the text interface, your system must have a Python interpreter installed (python2.3 or python2.4 packages for the Debian distribution) and the Python interface for the Curl library, called PyCurl (python2.3-pycurl or python2.4-pycurl for the Debian distribution).

To use the graphical interface, you also need to install the Python interface for the Gtk 2 library (python2.3-gtk2 or python2.4-gtk2 packages in the Debian distribution).

Package

A package for Mandriva 2006 is available.

Packages for Debian Sarge, Debian Etch, Debian Sid, Ubuntu Breezy and Ubuntu Dapper are available. To use them, simply add one of the following line to your /etc/apt/sources.list file :

From the tarball

Once you have downloaded the tarball, simply uncompress it somewhere in your home directory. You have two choices :

Take part

You can take part in the development and the improvement of MyPixmania by sending your suggestions, remarks and bug reports to the authors.

You can also take part by sending patches to the authors. To do this, you must work with the latest version of MyPixmania available in a Subversion repository at the URL https://ssl.bulix.org/svn/thomas/mypixmania/trunk/.

To fetch MyPixmania (must be done only once) :

$ svn checkout https://ssl.bulix.org/svn/thomas/mypixmania/trunk mypixmania

To update to the latest version :

$ svn update

To generate a patch :

$ svn diff -u > ~/mypixmania-foo-bar.patch

Amongst the various things to do, there are ;

Contact

The authors of these scripts are Thomas Petazzoni and Christophe Lucas.