For picurl 0.0.3 we plan the following new features (sorted by priority):
Preliminary Featurelist
- picurl Shell: similar to the trac shell, picurl will allow you to execute commands much like in an interactive interpreter. The typical workflow: you select some placeholder thumbnails you want to work on in a GUI environment (e.g. Windows Explorer), then right-click with your mouse and invoke the picurl shell. Now your commands work on the selected images.
- HTML Interface: allows you to conveniently watch your placeholder thumbnail collection in your webbrowser. You can sort the collection by stores or assigned tags.
- Picasa Plugin: allows you to access photo albums hosted on google picasa
- Metadata Search: you can search the metadata of your placeholder thumbnails and save the result as rss feed.
- Caching: To avoid unnecessary downloads of placeholder thumbnails, we will implement a caching algorithm based on Conditional HTTP Get-Requests
- Support for removeable stores: Our LocalStore-plugin will detect removeable stores (DVDs, USB-Harddisks,...) and prompt you for a "Friendly identifier" so that you enter the right media.
New Command Line Syntax
Currently, the command line is the only form of interaction with picurl. As the featureset of picurl steadily grows, we want to establish a consistent command line scheme that is easy to remember for our users. It should follow these principles:
- "write less, do more": short, yet descriptive commands and options.
- human-readable: even a non-picurl user should be able to explain what a picurl command line does by just reading it.
- actions should be described in verbs
- objects should be described by consistent nouns
- general syntax picurl <object> <action> <options>
STORE FUNCTIONS
store add <alias> <scheme>
-- invokes the interactive store configuration for the registered <scheme>
and saves the configuration under <alias>
store list
-- lists all configured stores and their aliases
store protocols
-- lists all supported store protocols
store edit <alias>
-- edits the configuration for the store saved under <alias>
store copy <source> <dest>
-- copies all images from source to dest. source and dest can either be urls or aliases.
store index <alias|url> [extract=link|thumb|metadata] [recursive=yes|no]
-- extracts thumbnails plus image metadata from all images retrieveable under the url/alias.
the optional extract parameter limits the retrieved information:
|-> extract=link only extracts the links of the images and creates a .rss album for it (fastest).
|-> extract=thumb extracts links+thumbnails, but no metadata
(makes sense for stores on photosharing sites, where metadata needs additional API calls)
|-> extract=metadata is the default and slowest behaviour.
the recursive parameter determines whether picurl should also index subdirectories
(default:no, ignored with stores that do not support this feature)
store remove <alias|url>
-- removes the store configuration for <alias> and deletes
all placeholder thumbnails downloaded from the store, but leaves the source images untouched.
store purge <alias|url>
-- deletes all images at store <alias|url> and
removes all indexed placeholder thumbnails from the store.
store fetch <alias|url>
-- directly downloads all source images from the store.
ALBUM FUNCTIONS
album add <alias> [title="Some long title"]
-- creates a new album with a shorthand alias.
Internally, a new .rss file named album.<alias>.rss is created.
album list
-- lists all available albums with their aliases and full titles.
album edit <alias>
-- allows the edition of the album
(internally, we could open the .rss file in a text editor)
album insert <alias> [thumbexpr]
-- inserts the placeholder thumbnails matched by thumbexpr (fnmatch) into the album.
album sort <alias> [by=date,filename,store] [order=asc|desc]
-- changes the order of the placeholder thumbnails in the album .rss file.
[by] specifies the sorting parameter (default=date), [order] the sorting order
(default=asc).
album merge <newalias> <alias1> <alias2> <alias3> ... <alias n>
-- merges the albums referenced by <alias1> to <aliasn> to an album referenced by <newalias>.
The source albums are not deleted.
album fetch <alias>
-- downloads all source images that are referenced in the album <alias>.
album delete <alias>
-- deletes the album <alias> (and its .rss file)
album rename <alias>
-- changes the name of the album alias (but not the title).
album show <alias>
-- opens the .rss-File within a nice HTML interface in the browser of the user.
PLACEHOLDER THUMBNAILS FUNCTIONS
thumbs fetch [thumbexpr]
-- downloads the source images of all placeholder thumbnails,
with the optional thumbexpr (fnmatch-style) the download can be restricted to certain filenames.
thumbs list [thumbexpr] [display=metadata]
-- lists all placeholder thumbnails and the urls of the source images they are referencing.
for the thumbexpr parameter see above. display=metadata outputs all metadata in the thumbnails
thumbs validate [verify=link]
-- scans all thumbnails for the presence of essential metadata (actually the url of the source image)
and warns if a thumbnail is corrupted. with the optional verify parameter one can also verify if the
link to the source image is still valid.
thumbs detect-versions
-- detects possible image versions and generates a .rss report
TAG FUNCTIONS
tag add "a tag label"
-- creates a new tag with the given label (if it contains spaces/special chars, it will be converted internally
to a friendly alias). Internally, an exiv2 command file named tag.alias.cmd
is created (http://exiv2.org/sample.html#modify)
tag list
-- lists all tags aliases with their tag labels
tag apply [to=thumb|album|store][identifiers]
-- applies the tag either directly to placeholder thumbnails
(identifiers are filenames or fnmatch expressions in this case),
the default value of to=thumb
or to the placeholder thumbnails of an album or store
(here the identifier is an album or store alias)
tag remove <alias>
-- deletes the tag <alias> (the tag.alias.cmd file gets deleted)
tag edit <alias>
-- will open the exiv2 command file in an editor
tag insert <alias> [attribute1=value1] [attribute2=value2]
-- inserts the attributes attribute1..attributeN into the tag <alias>.
valid attributes are EXIF and IPTC tags recognized by picurl.
Internally, the corresponding exiv2 commands are added to tag.alias.cmd
For some keywords also urls can be stated.
e.g.
tag insert mytag keywords=http://de.wikipedia.org/wiki/Berner_Sennenhund
would set the IPTC Keyword tag to
Bernese Mountain dog, Bouvier bernois, Berner Sennenhund, Berner Sennenhond
(picurl extracted translations from wikipedia)
