multistockphoto

Get Version

0.8.1

→ ‘multistockphoto’

What

This program is intended to work with the german versions of the photo sites fotolia.de, zoonar.de and dreamstime.de.
Photographers can upload their photos to this sites.
Currently it works only with the german version. If you’re interested to adapt
it to other languages please email me.

Dieses Programm bietet bequemen Upload von eigenen Photos zu Photo-Seiten wie
fotolia.de, zoonar.de oder anderen, bei denen man eigene Bilder zum Verkauf
anbieten kann.
Neue Photos werden automatisch zu allen Seiten hochgeladen, bei denen man
registriert ist.

Supporting this project

Die Programme dieses Projekts sind kostenlos erhältlich und verwendbar.
Du kannst jedoch die weitere Entwicklung dieses Projekts mit einer finanziellen
Zuwendung unterstützen (ansonsten müßte ich mich verstärkt anderen Projekten
widmen, die mehr finanziellen Ertrag einbringen, damit ich auch morgen noch
für meine Katzen das Futter kaufen kann :-)).

Am bequemsten kannst du per Paypal an die Email-Adresse thopre@gmail.com
bezahlen.
Falls du per Überweisung zahlen willst, frage bitte nach meiner Kontoverbindung!

Ich werde, aufteilt pro Quartal, eine Liste der Spender mit Namen und Betrag,
sortiert nach Spendenhöhe hier veröffenlichen. Wenn von dir nichts anderes
mitgeteilt, werde ich dich nach deinem Namen, soweit aus der Email-Adresse
ersichtlich, in der Liste veröffenlichen. Falls etwas anderes gewünscht wird,
z. B. “Firma ABC GmbH” oder anonym, dann teile mir dies bitte mit!

Spender

Juli-September 2008

Betrag Name

April-Juni 2008

Betrag Name
1,00 € Testspender

Installing

sudo gem install multistockphoto

The basics

Nach der Installation lege irgendwo einen Ordner namens ‘multistockphoto’ an!
Innerhalb dieses Ordners lege bitte einen weiteren Ordner namens ‘upload’ an!

Du benötigst jetzt noch eine Datei namens ‘config.yaml’ mit folgendem Inhalt:

--- 
:active_sites:
- :fotolia
- :zoonar
- :photocase
:zoonar: 
  :password: 'lalala'
  :user: 'hugo'
  :total_per_day: 10
:fotolia: 
  :user: 'hugo'
  :password: 'lalal9589'
  :ftp_user: '34567798'
  :ftp_password: 'hugolala19589'
:photocase:
  :user: 'hugo'
  :password: 'geheim'

Trage dort deine Zugangsdaten ein! Achtung: Die Einrückung links ist wichtig.
Der Abschnitt ‘:active_sites:’ bezeichnet die Sites, mit denen du arbeiten
willst. Falls du nicht alle verwenden willst, lösche einfach die entsprechende
Zeile.

Ebenso kannst du, falls du eine Site vorübergehend nicht verwenden willst, auch
einfach die entsprechende Zeile löschen (die eigentlichen Login-Daten weiter
unter können aber unverändert bleiben).

Im Gem-Directory ist eine Vorlage, die du kopieren kannst.
Wenn du nicht bei allen aufgelisteten Sites Mitglied bist oder die Bilder dort
hochladen möchtest, dann lösche einfach
die entsprechenden Abschnitte – du ersparst dir und den jeweiligen Servern
unnötige Last, die bei fehlerhaften Einloggversuchen vergeudet wird.

Wenn du eines oder mehrere neue Bilder hochladen willst, kopiere die Bilddateien
in den upload-Ordner!
Dann rufe (innerhalb des multistockphoto-Ordners) das Kommando

multistockphoto --send-all

oder

multistockphoto --send-all --verbose

auf! Dieses erledigt den Upload aller neuen Photos zu allen definierten
Photo-Sites.

Dies ist der wohl am häufigsten verwendete Befehl. Mit der weiteren Option ‘—verbose’
wird nach jedem Einzelupload noch zusätzlich ausgegeben, wieviel Dateien je
Seite in schon hochgeladen wurden.

Die Photo-Dateien im upload-Ordner müssen nach dem Upload nicht gelöscht
werden – bei einem weiteren Aufruf werden bereits gesendete Photos nicht noch
einmal gesendet.

Grundsätzlich werden alle Dateien mit den Endungen
.PNG|.JPG|.GIF|.JPEG|.EPS|.AI|.PSD|.PDF|.TIF|.TIFF
von diesem Programm berücksichtigt und hochgeladen.
Groß- oder Kleinschreibung ist egal. Es gibt jedoch pro Photo-Site
Einschränkungen, welche Formate diese Site verarbeiten kann. Es kann also sein,
daß eine Site .PSD Dateien verarbeiten kann, die andere jedoch nur mit .JPG
Dateien etwas anfangen kann.
Eine automatische Konvertierung von einem ins andere Format wird von diesem
Programm nicht vorgenommen – du bist also selbst dafür verantwortlich,
daß ein Bild im richtigen Format an die richtige Site gelangt.

TODO: Hier fällt mir ein: es ist etwas problematisch, wenn man an eine Site
eine PSD-Datei schickt und diese auch an andere Sites hochladen will, die
dieses Format nicht akzeptieren und daraufhin diese Datei in eine JPG-Datei
manuell konvertiert. Die Folge wäre, daß andere Sites zwar die JPG-Datei akzeptieren,
aber daß auch eine Dublette nochmal an die PSD-akzeptierende Site gesendet wird,
diesmal im JPG-Format. Hier muß ich mir noch eine clevere Lösung einfallen lassen.
Am geschicktesten wäre es momentan noch, z.B. nur mit JPG-Dateien zu arbeiten,
so wie ich das tue.

Das Programm kann Photos, die im Hochformat aufgenommen wurden, automatisch
drehen, falls die Kamera dies erkennen kann und in den Photo-Dateien speichert.
In diesem Fall wird das Photo zuerst gedreht und dann auf die entsprechende Site
hochgeladen. Hierbei werden Dateien in diesem Directory erzeugt, die mit ‘rot_’
(für rotiert, wer hätte es gedacht?) beginnen.

Achtung: Beim normalen Hochladen werden diese Dateien nicht berücksichtigt,
du solltest also möglichst keine echten Photo hochladen wollen, die mit ‘rot_’
beginnen. In der Praxis dürfte dies kein großes Problem sein. Falls der Dateiname
doch mit ‘rot_’ (die Farbe) beginnen sollte, benenne sie einfach in ‘Rot_…’ um,
dann wird diese Datei auch hochgeladen. Die rotierten
Dateien dürfen gefahrlos gelöscht werden, ist aber im normalen Betrieb für die
Funktionsweise dieses Programm nicht notwendig, da die gedrehten Dateien bei
Bedarf einfach neu angelegt werden.

Ab dem Release 0.6.2 weiß jede der Site-Klassen, ob ein Drehen des Bildes vorab
nötig ist, oder ob die Site das Drehen selbständig erkennen kann. Falls eine
Site das Drehen beherrscht, wird nicht von diesem Programm vorab gedreht, sondern
es wird die originale Datei hochgeladen. Zum jetzigen Zeitpunkt beherrscht
jedoch keine der bisher realisierten Sites das Drehen von sich aus.

Das Programm erstellt (im Directory multistockphoto) eine Datei namens
‘sendeliste.dat’, in der die erfolgreichen Uploads mit Site, Dateiname und
Datum/Uhrzeit protokolliert werden. Diese Datei darf nicht gelöscht werden,
da diese Datei auch dazu dient, festzustellen, ob eine Datei schon gesendet
wurde.
Kurz: falls eine Photo-Datei in dieser Datei noch nicht auftaucht, wird
sie an die betreffende Seit gesendet. Bei Problemen bei einzelnen Uploads kann
man aber in dieser Datei z.B. eine Zeile löschen, was zur Folge hat, daß
diese Datei beim nächsten Aufruf erneut hochgeladen wird.

Es schadet nicht, von Zeit zu Zeit ein Backup dieser Datei anzulegen, so daß
bei einem eventuellem Schadensfall bei dieser Datei eine Backup-Datei existiert,
die man ggf. wieder in die Original-Datei umbenennen kann.

Je nach Photo-Site mußt du dann dort online noch Stichworte und ggf. andere
Daten zu den einzelnen Bildern eintragen.

Einzelne Sites handhaben dies unterschiedlich.

Das Setzen von Schlüsselworten kann mittels diesen Programms bereits erledigt
werden. Dazu später mehr.
Derzeit müssen auf den einzelnen Sites neben den Schlüsselworten noch einige
andere Daten eingegeben werden. Diese Nachbearbeitung auf der jeweiligen Seite
ist derzeit noch nötig, es ist aber
geplant, daß auch weitere Daten von diesem Programm schon gesetzt werden
können.

Desweiteren können Kriterien, z. B. Mindestauflösung eines Bildes in Zukunft
schon vor des Hochladen überprüft werden. Dies ist jedoch noch nicht implementiert.

Demonstration of usage

Wechseln in Arbeitsdirectory:

$ cd multistockphoto
 
$ multistockphoto --help
Usage: multistockphoto [-vayntscrxlpoq]
Options:
        --help                       Show this message
    -v, --version                    Show version
    -a, --send-all                   Send all files
    -y, --verbose                    Verbose output
    -n, --not-sent                   Count not sent files per site
    -t, --total-transfers            Dont't send more than N photos in total
    -s, --total-per-site             Send no more than N photos per site
    -c, --check-orientation          Displays the orientiation of photo files
    -r, --rotate file [file2 ...]    Rotate a photo file 90 degrees to the left
    -x, --stats                      Displays statistics
    -l, --list-done                  List photos sent to all sites
    -p, --purge-done                 Purge photos sent to all sites
    -o, --ordered                    Send/List files in alphabetical order
    -q, --no-tags                    List photos without tags file
        --dont-send                  
        --dont-log                   

Senden aller noch nicht hochgeladenen Photos:

$ multistockphoto --send-all
send-all
upload/img_2746.jpg
fotolia:upload/img_2746.jpg
zoonar:upload/img_2746.jpg

Du kannst den Upload-Prozeß an jeder Stelle abbrechen. Beim nächsten Start
werden die noch nicht gesendeten Photos hochgeladen.

Bitte beachte auch, daß es bei einigen Photo-Sites Beschränkungen für den Upload
von Photos gibt (z.B. zoonar.de erlaubt bei mir derzeit 10 Photos pro Tag). In diesem Fall
würdest du eine Fehlermeldung bekommen, daß das Photo nicht hochgeladen werden
konnte. Dies ist dann kein Fehler dieses Programms.
Starte dann einfach das Programm am nächsten Tag noch einmal, um den Rest der
Photos hochzuladen!

Falls es bei einer Site dreimal hintereinander Fehler beim Hochladen gibt, wird
diese Site im weiteren Programmablauf nicht mehr berücksichtigt. Damit wird
vermieden, daß trotz eines maximalen Upload-Limits oder weil diese Site temporär
nicht erreichbar ist, immer wieder vergeblich versucht wird, Photos an diese
Site zu senden.

Weitere Beispiele:

multistockphoto --send-all --verbose --tags-only --count=10 --shuffle

Senden aller noch nicht gesendeten Photos, ausführliche Ausgabe, nur Photos mit
Tags-Files senden, nur senden, wenn mindestens 10 Tags in der Tags-Datei vorhanden
sind, in zufälliger Reihenfolge senden.

Diesen Aufruf könnte man sich in einem Shell-Skript/Batch-Datei speichern, so
daß man ihn bei jedem regulären Hochladen von Photos bequem aufrufen kann.

multistockphoto --send-all --verbose --tags-only --count=10 --ordered

Wie zuvor, jedoch wird in alphabetischer Sortierung der Bilddateien gesendet.

multistockphoto --send-all --verbose --tags-only --count=10

Wie zuvor, jedoch ist keine Sortierung vorgegeben. Das Senden erfolgt in der
Reihenfolge, wie die Dateien im Filesystem gefunden werden.

multistockphoto --send-all --total-transfers=7

Senden von noch nicht gesendeten Photos. Das Hochladen, wird aber beendet,
wenn insgesamt 7 Photos hochgeladen wurden.

multistockphoto --send-all --total-per-site=5

Senden von noch nicht gesendeten Photos. Das Hochladen, wird aber beendet,
wenn an jede aktive Site 5 Photos hochgeladen wurden.

multistockphoto --not-sent

Gibt aus, wieviele Photo pro Site noch nicht gesendet wurden.

multistockphoto --no-tags

Listet Photo-Dateien auf, die noch keine zugehörige .tags-Datei haben.

multistockphoto --no-tags --count=10

Listet Photo-Dateien auf, die noch keine zugehörige .tags-Datei haben oder deren
.tags-Datei weniger als 10 Keywords enthält.

Bei den beiden letzten Beispielen kann zusätzlich noch der Parameter —ordered
angegeben werden, um die Datei alphabetisch aufsteigend auszugeben.

Photo-Titel und Stichworte

Bei jeder Photo-Site ist es notwendig, hochgeladene Photos mit einem Titel und
Stichworten (auch Keywords genannt) zu versehen, damit diese Photos leichter
von Suchenden gefunden werden können.

Dies geschieht bei verschiedenen Site auf unterschiedliche Weise. Bei Zoonar kann
man Photos erstmal hochladen, ohne daß Stichworte vorhanden sind (es dürfen aber
auch schon Stichworte in den IPTC-Daten vorhanden sein). Nachdem ein Bild
akzeptiert wurde, muß es aber auf der Seite mit Titel und Stichworten versehen
werden, ansonsten wird es nach 30 Tagen gelöscht.
Bei fotolia wiederum ist es so, daß ein hochgeladenes Bild mit Stichworten
versehen sein muß, bevor es überhaupt begutachtet wird (ist natürlich dumm,
wenn man sich die Arbeit macht und das Bild wird dann doch abgelehnt – ist
aber nun mal so).

Je nach Site kann die Site bereits von sich aus IPTC-Daten der Bilder auswerten
und die Stichworte automatisch daraus extrahieren, falls diese in den Bildern
vorhanden sind.

Es gibt jetzt verschiedene Möglichkeiten:

  1. Nachträgliche manuelle Bearbeitung der Bilder auf der jeweiligen Web-Seite
  2. Versorgung mit Keywords mit beliebigem externem Programm vor dem Upload

    Um unabhängig von einem externen Programm zu sein und eine für alle Betriebssysteme
    passende Lösung zu ermöglichen, habe ich eine dritte Möglichkeit für dieses
    Programm zur Verfügung gestellt.

Zu jeder Bilddatei kann eine zusätzliche Textdatei erstellt werden (bitte nicht mit
mit Word oder ähnlichen Programmen erstellen, sondern wirklich nur eine einfache
Textdatei), die die Stichworte zu einem Bild enthält. Beispiel: die Bilddatei
heißt IMG_1234.JPG dann muß der Name der Keywords-Datei IMG_1234.tags lauten.

Der Inhalt dieser Textdatei enthält die Keywords entweder durch Komma oder Leerzeichen
getrennt oder je Zeile ein Keyword (auch gemischt möglich).

Beispiel:


Baum,Pflanze
Rose rot weiß
Garten
Park


Falls nun beim Hochladen der Photos zu einem Photo eine tags-Datei gefunden wird,
so werden die darin enthaltenen Keywords in die Photodatei geschrieben und diese
dann hochgeladen, so daß bei Sites, die diese auswerten, die Keywords nicht mehr
manuell gesetzt werden müssen.

Obwohl es nicht zwingend notwendig ist, empfiehlt es sich, für jedes Bild eine
tags-Datei zu erstellen, wenn man mit mehreren Sites arbeitet, die diese
Daten automatisch auswerten können, da man die Arbeit dann nur einmal erledigen
muß.

Ich selbst verwende die tags-Dateien derzeit nicht, weil ich z.B. bei Zoonar
sowieso nur die akzeptierten Photos verschlagworten muß, was weniger Aufwand
ist, als wenn ich alle vorab mit tags-Dateien versorge
immer mehr, weil
es mir Aufwand spart, wenn ich Keywords nicht bei jeder Site einzeln online
erfassen muß.
Bei fotolia allerdings muß vor der Freigabe jedes Bild mit Keywords versorgt
werden (auch wenn es dann abgelehnt wird). Ich bin nicht sicher, ob fotolia
das macht, aber falls fotolia die Keywords in der Datei auswerten kann, wäre
es weniger Aufwand, mit Tags-Dateien zu arbeiten.
Ich habe bei fotolia noch mal nachgesehen: Fotolia unterstützt Keywords in den
Photo-Dateien – also werde ich in Zukunft auch die Tags-Dateien pflegen, weil
ich die Keywords ja sowieso mindestens bei fotolia eingeben muß. Mal schauen,
ob die von mir gepflegten Keywords in nächster Zeit auch bei fotolia korrekt
ankommen …

Aber das muß jeder für sich abschätzen, was für die eigenen Sites praktikabler
ist. Außerdem ist das schöne an tags-Dateien ja auch, daß man sie nicht unbedingt
verwenden muß.

Ein weiterer Vorteil bei der Verwendung von tags-Dateien ist, daß du bei ähnlichen
Photos, für die die gleichen Keywords verwendet werden können, einfach die tags-Dateien
kopieren kannst und nicht mit einem anderen Programm immer die gleichen Keywords
eingeben mußt.

Beachte bitte auch, daß, wenn du den Namen der Photo-Datei änderst, zum Beispiel
von IMG_1234.JPG nach IMG_1234_bearbeitet.JPG, daß dann auch der Name einer
eventuell vorhandenen tags-Datei nach IMG_1234_bearbeitet.tags geändert werden
muß!

Derzeit werden tags-Dateien nur beim erstmaligen Hochladen eines Photos zur
entsprechenden Site verwendet. Falls du tags-Dateien nachträglich erstellst
oder änderst, werden diese Änderungen für bereits gesendete Photos nicht mehr
berücksichtigt.
Denkbar wäre, bei Sites, die das auch unterstützen, daß eine Änderung an den
tags-Dateien auch bei der jeweiligen Site nachgezogen wird. Dies ist aber derzeit
nicht implementiert.

Der Titel eines Photos wird derzeit mit diesem Programm noch nicht unterstützt.
Das ist aber in einer der nächsten Versionen geplant.

Ich persönlich gehe bei der Erstellung der tags-Dateien folgendermaßen vor:
Ich arbeite unter Linux, für andere Betriebssysteme kann man das aber sich ähnlich
lösen.

Als erstes öffne ich ein Dateifenster des upload-Ordners um eine Thumbnail-Übersicht,
aller hochzuladenden Bilder zu sehen.
Dann öffne ich ein Text-Shell, gehe ins multistockphoto-Arbeitsverzeichnis und
gebe dort die Kommandos

while true; do multistockphoto —no-tags|sort -r; date; sleep 60; done

oder

while true; do multistockphoto --no-tags --count 10|sort -r; date; sleep 60; done

wenn ich mindestens 10 Keywords haben will, ein. Das ist die Syntax von
Bourne-Shell oder Bash. Falls du eine andere Shell
verwendest, könnte das Kommando leicht unterschiedlich sein. Sinn der Sache
ist jedenfalls, eine sortierte Übersicht aller Photos ohne tags-Datei zu erhalten,
eine Minute zu pausieren, und dann das gleiche, bis man das Kommando abbricht.

Dann öffne ich eine weitere Shell, gehe innerhalb es multistockphoto-Verzeichnisses
ins upload-Verzeichnis, suche mir aus der Liste ein Photo nach dem anderen heraus
und erstelle mit einem beliebigen Texteditor (ich verwende ‘vi’, auch als ‘vim’
bekannt) z.B. die Datei IMG_5434.tags.

Dann suche ich mir das nächste Bild aus der Liste aus, usw.
Bei Bildern, die das gleiche Motiv haben und die gleichen Keywords bekommen sollen,
kann ich dann auch einfach die tags-Dateien kopieren:

cp IMG_1234.tags IMG_1235.tags

Optionen der Kommandozeile im Einzelnen

Folgende Optionen können dem Programm multistockphoto übergeben werden:

—version

gibt die aktuelle Versionsnummer von multistockphotos bzw. des gesamten Gems
aus:

$ multistockphoto --version
multistockphoto 0.6.0

—verbose

gibt mehr und ausführlichere Informationen als im Normalfall aus. Dies wird z. Z.
hauptsächlich in Verbindung mit dem Kommando —send-all, aber auch bei
anderen Optionen, soweit sinnvoll, verwendet.

—not-sent

Gibt aus, wieviele Bilder pro Site noch zum Hochladen ausstehen. Z. B.:

$ multistockphoto --not-sent
not sent photos:
{"fotolia"=>822, "photocase"=>823, "zoonar"=>1006}

heißt, bei fotolia stehen noch 822 Photos, bei photocase 823 und bei zoonar
noch 1006 Photos zum Senden aus.

—total-transfers N

Es werden bei diesem Programmdurchlauf nicht mehr als insgesamt ‘N’ Photos
hochgeladen. Wie diese ‘N’ Photos auf die einzelnen Sites aufgeteilt werden, ist
nicht vorhersehbar, und hängt davon ab, welche Bilder bereits an welche Sites
hochgeladen wurden.

Beispiel ‘multistockphoto —total-transfers 10’ lädt insgesamt 10 Bilder hoch.

—total-per-site N

Es werden pro Site nicht mehr als ‘N’ Photos hochgeladen. Sobald an jede Site
‘N’ Photos hochgeladen wurden, wird das Programm beendet.

Beispiel ‘multistockphoto —total-transfers 3’ lädt Bilder hoch, bis jede der
aktiven Sites 3 Bilder bekommen hat.

—stats

Statistik über gesendete Photos

Der Schalter —stats zeigt eine Statistik über die Anzahl der gesendeten Photos
innerhalb der letzten 10 Tage, aufgeteilt nach Site.
Außerdem eine Summenzeile über alle bisher gesendeten Photos. Achtung: Diese
Summen beziehen sich nicht auf die letzen zuvor aufgelisteten Tage sondern auf
sämtliche bisher gesendeten Photos.

$ multistockphoto --stats
Statistics
           | fotolia | zoonar | photocase | total
2008-05-23 |       0 |      0 |         0 |      0
2008-05-22 |       7 |      7 |         7 |     21
2008-05-21 |       4 |      4 |         3 |     11
2008-05-20 |       7 |      6 |         6 |     19
2008-05-19 |       5 |      9 |         5 |     19
2008-05-18 |       6 |      6 |         6 |     18
2008-05-17 |       7 |      7 |         7 |     21
2008-05-16 |       7 |      7 |         6 |     20
2008-05-15 |       6 |      6 |         6 |     18
2008-05-14 |       0 |      1 |         1 |      2

total      |     251 |    174 |       250 |    675

—list-done

Auflisten aller komplett gesendeten Photos

Um Photos aufzulisten, die bereits an alle Photo-Sites gesendet wurden, gibt
es den Schalter —list-done

—purge-done

Verschieben aller komplett gesendeten Photos ins done-Directory

Falls du Photos aus dem Arbeitsdirectory löschen möchtest (aus Platzgründen oder
weil du alte Dateien dort nicht mehr haben willst), die bereits an alle
definierten Sites gesendet wurden, rufe

multistockphoto --purge-done

auf!

Daraufhin werden alle komplett gesendeten Photos ins Directory ‘done’ verschoben.
Das done-Directory wird automatisch angelegt, falls es noch nicht existiert.

Die Dateien im done-Directory kannst du nun entweder löschen oder, je nach
Bedarf irgendwie archivieren.

Ich lasse die Bilder im done-Directory aber einfach erstmal dort stehen, damit
das upload-Directory übersichtlicher bleibt und nur die noch nicht vollständig
gesendeten Bilder enthält.

Bitte beachte aber, daß, falls du später eine weitere Photo-Site definierst,
diese alten Bilder nicht mehr an die neue Photo-Site geschickt werden. Falls
du sie jedoch im Arbeitsverzeichnis beläßt, werden auch diese alten Bilder
an eventuelle neue Photo-Sites versendet.
Du kannst aber jederzeit die verschobenen oder archivierten Bilder wieder ins
Arbeitsverzeichnis kopieren. Bereits erfolgte Uploads werden davon nicht beeinflußt.

—ordered

Die Reihenfolge bei —send-all ist davon abhängig, in welcher Reihenfolge die
Photos im upload-Directory angelegt wurden. Dies ist nicht unbedingt die
alphabetische Reihenfolge der Dateien.

Normalerweise ist dies nicht relevant, da früher oder später doch jede noch nicht
gesendetet Datei an die einzelnen Sites hochgeladen wird. Wenn du jedoch möchtest,
daß die Dateien in alphabetischer Reihenfolge (also die ältesten Dateien zuerst)
hochgeladen werden sollen, dann rufe das Programm mit dem zusätzlichen Parameter
—ordered auf. Die Photos werden dann in alphabetischer Reihenfolge hochgeladen.

—check-orientation Bild1.jpg Bild2.jpg

Listet die Orientation der angegebenen Bilder auf.

—rotate bild1.jpg [bild2.jpg ..]

Rotiert alle angegebenen Bilder um 90 Grad. Die Originaldatei wird dabei durch
die gedrehte Datei ersetzt.

—no-tags

Ein Aufruf mit dieser Option, auch in Verbindung mit —ordered, listet alle
Photo-Dateien auf, für die keine tags-Datei exisitiert.

Es gibt zwei Möglichkeiten, diese Option zu verwenden.

--no-tags
listet die Bilddateien auf, für die keine Tags-Datei

existiert.

Bei der zweiten Form mit

multistockphoto —no-tags —count N
mit einem
zusätzlichen numerischen
Argument werden nicht nur Photos ohne Tags-Datei aufgelistet, sondern auch
Tags-Dateien, die weniger als die hier angegebene Anzahl von Keywords besitzen.

Angenommen, du arbeitest mit den Sites fotolia und zoonar. Fotolia will mindestens
sieben Keywords haben, bevor eine Datei begutachtet wird. Wenn du die Keywords
nicht online auf der Fotolia Seite eingeben willst, empfiehlt es sich, die
Dateien mit

multistockphoto —no-tags —count 7
zu testen um ggf. Keywords zu ergänzen.
Bei einer Annahme eines Bildes bei zoonar, müssen mindestens 10 Keywords angegeben
sein. Wenn du auch diesen Fall abdecken willst, gib
multistockphoto —no-tags —count 10
an -
damit sind dann alle Sites zufrieden.

Achtung: die zweite Form dauert wesentlich länger, wenn du mit vielen Dateien
im Upload-Directory arbeitest (ca. ab 500-1000).

Zeiten bei mir (1550 Bilddateien)

1. ohne —count Parameter: 6 Sekunden
2. mit —count Parameter: 6 Minuten, 12 Sekunden

Ist mindestens seit dem Release 0.8.0 annähernd gleich schnell.

—tags-only

Diese Option, in Verbindung mit dem Aufrufparameter —send-all sendet nur Photos,
für die eine zugehörige .tags Datei existiert.
Diese Option ist arbeitstechnisch nützlich, wenn du mindestens eine Site verwendest,
bei der das Vergeben von Keywords obligatorisch ist, bevor ein Bild begutachtet
wird (z. B. fotolia). Denn in diesem Fall mußt du die Keywords so oder so (entweder
offline oder online) erfassen.
Solltest du jedoch z. B. nur zoonar und photocase verwenden, kannst du auf das
Erfassen von Keywords vorab gut verzichten, da du nur für die angenommenen
Photos Keywords erfassen mußt, was wahrscheinlich weniger Aufwand
bedeutet.

—plist

Diese Option listet alle Datein im Upload-Directory auf und kennzeichnet, an
welche Sites diese bisher gesendet wurden.

                                      fotolia   zoonar    photocase dreamstime
upload/IMG_6379.JPG            (t 11) +                   +         +         
upload/IMG_5606.JPG                   +         +         +                   
upload/IMG_4980.JPG                   +         +         +                   
upload/IMG_6038.JPG                   +         +         +                   
upload/IMG_4003.JPG                   +         +         +                   
upload/IMG_5523.JPG                   +         +         +                   
upload/IMG_6085.JPG                                                           
upload/IMG_5698.JPG                   +         +         +                   
upload/IMG_5728.JPG                   +         +         +            
...

Ein ‘+’ heißt, daß das Photo an diese Site schon gesendet wurde.
Ein ‘(t xx)’ (xx ist eine Zahl) nach dem Dateinamen kennzeichnet, daß für diese
Datei eine tags-Datei existiert sowie die Anzahl von Keywords beinhaltet, die
nach dem ‘t’ steht. Im obigen Beispiel hat die Tags-Datei 11 Keywords.

Bei diesem Befehl kann auch zusätzlich die Option —ordered angegeben werden,
um die Dateien sortiert nach dem Dateinamen auszugeben.

—count N

Diese Option kann in Verbindung mit —send-all oder —no-tags verwendet werden
und bedeutet, daß mindestens N Keywords zu einer Datei vorhanden sein müssen.
Alleine für sich kann diese Option nicht verwendet werden.

In Verbindung mit —send-all werden nur solche Photos gesendet, die die
angegebene Anzahl von Tags aufweisen.
In Verbindung mit —no-tags werden auch solche Photos aufgelistet bei denen
nicht nur die Tags-Datei fehlt sondern bei denen sie existiert, aber zu wenige
Tags enthält.

—shuffle

Dieser Schalter dient, in Verbindung mit —send-all oder ähnlichen Befehlen, dazu,
nicht in der Reihenfolge wie sie durch das Dateisystem oder durch alphabetische
Sortierung vorgegeben ist, zu senden, sondern (ähnlich wie bei einem MP3-Player)
die Photos in zufälliger Reihenfolge zu senden.

Die Schalter —ordered und —shuffle schließen sich gegenseitig aus. Falls beide
angegeben werden, ist nicht definiert, in welcher Reihenfolge die Abarbeitung
erfolgt.

h3. —dont-send und —dont-log

Diese beiden Optionen sind eigentlich nur für interne Unit-Tests der Programme
gedacht und sollten nicht für den produktiven Einsatz verwendet werden, bzw.
sind dort nicht sinnvoll.

—dont-send sendet eine Datei nicht wirklich an die betreffende Site.

—dont-log schreibt keinen Eintrag in die Sendeliste-Datei

Optionen im Konfigurations-File

total_per_day

Wenn eine Site pro Tag nur eine bestimmte Anzahl von Uploads erlaubt oder wenn
du für eine Seite nur eine bestimme Anzahl von Photos pro Tag hochladen willst,
gibt es die Möglichkeit, im Konfigurationsfile bei dieser Site die Uploads pro
Kalendertag zu begrenzen. Dabei wird dann überprüft, wieviele Photos für diese
Site heute schon hochgeladen wurden und wenn die maximale Anzahl erreicht wurde,
wird nichts mehr hochgeladen. Diese Anzahl kann pro Site individuell gesetzt
werden.

Hoch- und Querformat

Einige Digitalkameras können erkennen, ob ein Bild im Hoch- oder Querformat
aufgenommmen wurde.
Falls dieses Programm erkennt, daß die Kamera ins Hochformat gedreht wurde,
so wird automatisch ein um 90 Grad nach links gedrehtes Bild erzeugt und dieses
hochgeladen. Du mußt ein Bild also nicht manuell drehen.

Da die Photosites dies theoretisch auch anhand der Exif-Daten in
der Bilddatei erkennen und das Bild automatisch drehen könnten, wird es in Zukunft
auch einen Schalter geben, um die automatische Drehung im Programm auszuschalten,
da dies dann nicht notwendig ist.

Die Photo-Sites, mit denen ich bis jetzt zu tun hatte, ignorieren dies aber
anscheinend bis jetzt.

Um dieses Verhalten in der Digitalkamera einzuschalten, mußte ich bei der Canon
EOS 400 D die Einstellung ‘automatisch rotieren’ aktivieren. Bei anderen Kameras
mag dies ähnlich sein. Bei der EOS 400 D kann man wählen, ob automatisch
für nur im Display der Kamera, im Display und auf dem PC oder überhaupt nicht
gedreht werden soll. Relevant ist hier die Einstellung ‘auf dem PC drehen’. Wenn
man zusätzlich noch ‘auf dem Display drehen’ anwählt, heißt dies, daß zusätzlich
auch auf dem Display der Kamera das Bild gedreht angezeigt werden soll.

Um zu testen, in welcher ‘orientation’ ein Bild vorliegt kannst du das Programm
mit dem Schalter ‘—check-orientation Bild1.jpg Bild2.jpg ..’ aufrufen.

Falls ein Bild mit der falsche Orientation vorliegt, kannst du das Bild mit
dem Schalter ‘—rotate bild1.jpg [bild2.jpg ..]’ um 90 Grad nach links drehen.
Achtung: dabei wird die Originaldatei mit dem gedrehten Bild überschrieben – falls
du das nicht willst, lege vorher eine Kopie an!

Wenn deine Kamera nicht erkennen kann, ob ein Photo im Hochformat aufgenommen
wurde, dann drehe das Bild vor dem Hochladen mit dem Schalter ‘—rotate’ oder
einen anderen Programm, welches Bilder drehen kann!

Übrigens: Photos im Hochformat nimmt man folgendermaßen auf Bild richtige Kamerahaltung bei Hochformat,
und
nicht so wie man es von besonders cool wirkend wollenden Digicam-Knipsern des
öfteren sieht, mit der auslösenden Hand nach unten. Der Grund ist einfach der,
daß die Verwacklungsgefahr wesentlich größer ist, als wenn die auslösenden Hand
oben ist.
Stelle dir einfach vor, du würdest einen kurzen Stock mit den Fingern an deiner
Stirn fixieren der vor dem Gesicht herunterhängt. Jemand anderer kann nun mit
wesentlich geringerem Kraftaufwand den unteren Teil des Stocks bewegen, als
es bei dem oberen Ende möglich wäre – genauso ist es auch bei der Kamera.

Bisher realisierte Sites

Diese Programm arbeitet zum gegenwärtigen Zeitpunkt mit den im folgenden
beschriebenen Photo-Sites zusammen. Weitere sind geplant. Wenn du weitere Sites
realisiert haben möchtest, schreib mir!

Ebenso bin ich auch bereit (exklusive) kommerzielle Entwicklung für weitere Sites
anzubieten.

Meine eigenen Bilder scheinen bei Zoonar am besten anzukommen. Dort habe ich bereits
über 40 akzeptiert Bildere, danach kommt Fotolia mit immerhin schon vier Bildern.
Bei Photocase und Dreamstime ist es mir aber bis heute nicht gelungen, auch nur
ein einziges Bild unterzubringen (nein, an meinem Programm liegt das nicht :-) ).

fotolia.de

Homepage: http://www.fotolia.de

Bei fotolia.de lädst du deine Fotos hoch. Anschließend mußt du noch Stichworte
vergeben und zu jedem Bild angeben, mit welcher Lizenz dieses angeboten werden
soll. Erst dann werden deine Bilder begutachtet und entweder angenommen oder
abgelehnt.

Unterstützte Dateitypen: JPEG, SVG

Site unterstützt Keywords in IPTC-Header: Ja

Site unterstützt Hoch-/Querformat: Nein

Übertragen der Keywords funktoniert: Ja

zoonar.de

Homepage: www.zoonar.de

Bei zoonar.de wiederum läuft es so, daß du zuerst nur die Bilder hochlädst, dann
werden sie begutachtet; angenommen oder abgelehnt und erst wenn sie
angenommen wurden, kannst du Schlagworte vergeben. Dies hat natürlich den
Vorteil, daß man für abgelehnte Photos erst gar keine Schlagworte vergeben muß
(kann).
Mein Shop bei Zoonar ist übrigens unter Zoonar Shop thopre zu
zu erreichen. Kauft fleißig bei mir ein! ;-)

Unterstützte Dateitypen: ???

Site unterstützt Keywords in IPTC-Header: Ja

Site unterstützt Hoch-/Querformat: Nein

Übertragen der Keywords funktoniert: Ja

photocase.de

Homepage: www.photocase.de

Bei photocase.de lädst du ebenfalls zuerst deine Photos hoch, diese werden
dann entweder angenommen oder abgelehnt. Bei angenommenen Bilder bearbeitest
du diese auf deren Seite weiter (eigentlich wie bei zoonar.de). Als nettes
Gimmick bei photocase kannst du bei deinen Photos sehen, an welchem Platz
sie sich aktuell in der Warteschlage der zu begutachtenden Photos befinden.

Wie es dann weitergeht, kann ich noch sagen, da es mir bei photocase trotz
inzwischen 736 hochgeladenen Photos bis heute nicht gelungen ist, daß auch nur
ein einziges angenommen wurde, welches ich dann weiter bearbeiten könnte.

Unterstützte Dateitypen: ???

Site unterstützt Keywords in IPTC-Header: ? noch mal nachschauen! TODO:

Site unterstützt Hoch-/Querformat: Nein

Übertragen der Keywords funktoniert: ???

dreamstime.de

Homepage: http://www.fotolia.de TODO:

Bei dreamstime funktioniert es ähnlich wie bei Zoonar. Man lädt zuerste einfach
nur die Bilder hoch und diese werden dann begutachtet und angenommen oder abgelehnt.

Wie es dann weitergeht, kann ich noch sagen, da es mir bei dreamstime trotz
inzwischen 257 hochgeladenen Photos bis heute nicht gelungen ist, daß auch nur
ein einziges angenommen wurde, welches ich dann weiter bearbeiten könnte.

Use the following form to upload your image. Only JPG files, RGB, at least 3 Megapixels, saved at the maximum quality will be accepted. Your image will be added to the queue and as soon as it is reviewed, you will receive an email of acceptance or rejection.

Use our FTP upload for faster and easier submission of more images!

The system supports automated EXIF/IPTC data retrieval. Use software programs to edit the EXIF/IPTC data before submitting it (i.e. File/ File info in Photoshop CS, or in Win XP right click the file, click Properties Summary tab).

The EXIF/IPTC data should contain title, description (subject) and keywords. If no data is added or the system cannot retrieve it, the fields will be left empty. The files will be placed in your “Unfinished files” section, from where you will be able to continue the submission process by uploading a Model Release (if the image contains recognizable faces).

Unterstützte Dateitypen: JPG

Site unterstützt Keywords in IPTC-Header: Ja

Site unterstützt Hoch-/Querformat: ??? TODO:

Übertragen der Keywords funktoniert: ???

bigstockphoto.com

Homepage: http://www.fotolia.de TODO:

Bei Bigstockphoto lädst du auch zuerst deinen Photos hoch. Eine direkte
Übernahme der Keywords scheint bei mir nicht geklappt zu haben. Das muß
ich noch einmal überprüfen. TODO:

Desweiteren ist dies die erste realisierte Photo-Site, bei der sich die Oberfläche
nicht auf deutschsprachig umschalten lassen kann. Dies bedeutet unter anderem,
daß die Keywords in englischer Sprache vorhanden sein müssen. Bisher bin ich
in meinem Programm nur von deutschsprachingen Keywords (in den .tags-Dateien)
ausgegangen. Falls du nur mit englischsprachigen Seiten/Oberflächen arbeiten
willst, kannst du natürlich einfach in den .tags Dateien englische Keywords
eingeben. Bei gemischtsprachiger Verwendung funktioniert dies aber nicht mehr.
Ich denke, ich werde einen Konfigurationsschalter einführen, der angibt, welche
Sprache und oder ggf. eine unterschiedliche .tags Datei zu verwenden ist.
Dies ist aber derzeit noch nicht implementiert.

Außerdem will diese Site zwingend auch eine Bildbeschreibung haben.

Diese Site ist funktionsfähig (bis auf diese Sprachproblematik), ich persönlich
werde die bei mir aber erstmal deaktivieren. U. a. auch weil es mir zu aufwendig
ist, auch noch englische Keywords auszusuchen und ein Beschreibung zu
jedem Photo zu schreiben.

Eine andere Möglichkeit, die mir hier noch einfällt, wäre eine automatische
Übersetzung der Keywords.
Die automatische Übersetzung baue ich gerade ein – dies wird in einem
der nächsten Releases möglich sein. Du hast dann eine Textdatei, die
du mit jeweils dem deutschen Stichwort und der Übersetzung ins Englische (oder später noch weitere Sprachen) versorgst. Aus dieser Datei wird dann die
Übersetzung ermittelt. Da muß man übrigens aufpassen, weil manche Stichworte mehrdeuting sein können (z. B. ‘rasen’, je nachdem, ob es bei einem Bild
aus dem eigenen Garten oder einem Bild einer Autobahn erscheint). Hier
werde ich prüfen, ob gewisse andere, anzugebende, Stichworte ebenfalls
für das Bild vergeben wurden ( z.B. “Blumen” oder “Auto”) und dann das
passende englische Keyword auswählen.

Unterstützte Dateitypen: ???

Site unterstützt Keywords in IPTC-Header: ??? TODO:

Site unterstützt Hoch-/Querformat: ??? TODO:

Übertragen der Keywords funktoniert: ???

Panthermedia

Homepage: www.panthermedia.net

Bei Pantermedia lädst du deine Bilder per ftp hoch. Vor der Begutachtung mußt
du in deinem sogenannten ftp-Bereich bei Panthermedia zu jedem Bild noch diverse
Angaben in einem Formula ergänzen.
Leider auch wieder vorab, so daß die Arbeit ggf. umsonst war, falls das
Bild nicht angenommen wird. Ich finde, da sollte auch wieder eher z. B. an
Zoonar orientieren und diese Daten erst anfordern, falls ein Bild angenommen
wird – so wie es jetzt ist, klaut man wieder die Zeit des Users/Fotografen.

Folgendes schreiben sie:

Wichtig:
- Umlaute und Sonderzeichen im Dateinamen vermeiden
- Bitte nur JPG-Dateien (max. Größe: 12 MB) hochladen
- Bilder im FTP-Ordner nach spätestens 7 Tagen bearbeiten/entfernen
- Ihr verfügbarer FTP-Speicher: 150 MB (bitte nicht überschreiten)
- Bitte keine Verzeichnisse im FTP-Ordner anlegen
Unterstützte Dateitypen: JPG, JPEG

Site unterstützt Keywords in IPTC-Header: Ja

Site unterstützt Hoch-/Querformat: ??? TODO:

Übertragen der Keywords funktoniert: Ja

Paralleles Hochladen zu mehreren Sites gleichzeitig

Ich habe begonnen, eine Methode zu schreiben, die es ermöglicht, Bilder zu allen
Sites gleichzeitig hochzuladen.
Dies ist zwar natürlich möglich, obwohl es einiges mehr an Programmieraufwand
bedeutet, weil der ganze Ablauf mit mehreren Threads ganz anders organisiert
werden muß.

Ich bin jedoch zum Schluß gekommen, daß es den Aufwand eigentlich nicht lohnt.
Begründung: Es wäre zwar wahrscheinlich möglich, in der gleichen Zeit ca. 5 mal
oder mehr Bilder gleichzeitig hochzuladen. Allerdings ist es damit ja nicht getan,
weil fast auf jeder Site noch einiges an Nachbearbeitung für jedes Bild nötig
ist. Bei meiner jetzigen Situation habe ich z.B. bei fotolia noch jede Menge
Photos in der Warteschlange, die ich mit Stichworten (als das Verschlagworten
mit diesem Programm noch nicht automatisch erledigt wurde), und Kategorien
versehen muß. Auch bei Photocase habe ich eine Warteschlagen von einigen Bildern,
die dort bestätigt oder abgelehnt werden müssen. Diese beiden Sachen werden um
keinen Deut schneller, selbst wenn ich fünfmal so viele Dateien in der gleichen
Zeit hochladen kann. Der Flaschenhals liegt also ganz wo anders.

Ich werde deshalb den parallelen Ansatz erstmal wieder fallen lassen. Falls mir
allerdings jemand triftige Gründe für parallelen Upload nennen
kann, werde ich gerne noch mal darüber nachdenken.

File-Typen bei verschiedenen Photo-Sites

Verschiedene Sites akzeptieren verschiedene Dateitypen. Wenn du nur JPG-Dateien
verwendest, kann du den Rest des Abschnitts überspringen, da JPG-Dateien von
jeder (bisher realisierten) Site akzeptiert werden.

Falls du jedoch mit .TIFF oder .PSD Dateien arbeiten willst, so ist zu beachten,
daß die eine Site vielleicht JPG + TIFF annimmt, während die andere JPG + PSD
Dateien annimmt. Ich habe deshalb in die einzelnen Klassen die jeweils akzeptierten
Dateitypen eingebaut. Falls eine Site einen bestimmten Dateityp nicht akzeptiert,
wird eine Warnung ausgegeben und diese Datei nicht gesendet. Das heißt, eine
von dir hochzuladende .PSD Datei wird nur an diejenigen Sites gesendet, die
diese akzeptieren und verarbeiten können.

Falls du der Meinung bist, daß ein Dateityp bei einer bestimmten Klasse von mir
noch vergessen wurde, teile es mir bitte per eMail mit! Ich werde es dann umgehend
für das nächste Release korrigieren.

Bitte beachten: Falls nur zum Beispiel nur eine Site .PSD-Dateien akzeptiert,
dann wird nach dem Senden der Datei an diese Site, die Datei als an alle Sites
gesendet angesehen (denn sie wurde ja an alle Sites hochgeladen, die diesen Typ
akzeptieren und wird beispielsweise bei —list-done und —purge-done aufgelistet
und ggf. ins done-Directory verschoben. Falls eine Site nachträglich irgendwann
noch .PSD Dateien verarbeiten kann und du diese nachträglich noch senden willst,
kannst du die Dateien vom done-Directory ggf. wieder ins upload-Directory
verschieben und beim nächsten Senden wieder uploaden

Timeout beim Senden eines Files

Ich habe ein Timeout von 10 Minuten für das Übertragen einer Datei eingebaut. Das
heißt, falls eine Datei nach 10 Minuten immer noch nicht fertig übertragen wurde,
führt dies zu einem Abbruch der Verarbeitung (für diese Datei). Dies geschah,
um bei Problemen bei einer einzelnen Site nicht auch noch die anderen Übertragungen
zu behindern. Bei meiner Konfiguration dauerten auch die längsten Uploads nicht
mehr als 7 Minuten.

Falls dieses Limit bei dir zu Problemen im normalen Betrieb führt, weil du
entweder eine zu langsame Leitung oder zu große Dateien überträgst, melde dich
bitte bei mir und ich werde mir vielleicht noch eine andere Lösung überlegen.

Wenn du nicht davor zurückschreckst, den Programmcode selbst zu ändern, kannst
du diesen Wert auch in der Datei bin/multistockphoto (nach ‘timeout’ suchen)
selbst ändern.

Neue Site zum Senden

Wenn ich eine neue Site aufnehme und alte Photos, die bereits an andere Sites
gesendet wurden, auch an diese neue Site senden will, kann ich theoretisch
alle Dateien aus dem ‘done’ Ordner wieder in den ‘upload’ Ordner verschieben.
Dort wird dann auch im Laufe der Zeit die alten Photos an die neue Site gesendet.

Da es mir jedoch zu unuebersichtlich ist, die alten Dateien wieder komplett drin
zu haben, weil ich dann schlech überblicken kann, wo ich noch Tags ergänzen muß,
habe ich mir ein kleines Ruby-Skript geschrieben.

require 'rubygems'
require 'multistockphoto'
require 'fileutils'
include FileUtils

ROT_PREFIX = '_rot'
PICTURE_FILES = /(.PNG|.JPG|.JPEG|.GIF|.EPS|.AI|.PSD|.PDF|.TIF|.TIFF)$/

# erzeugt Dateiname einer tags Datei zu einer uebergebenen Photodatei,
# egal, ob tags-Datei wirlich existiert oder nicht
def tagsfilename(picturefilename)
  ext = File.extname(picturefilename)
  tagsfile = picturefilename.sub(ext,".tags")
  return tagsfile
end

# Test, ob zu einer Photodatei eine tags-Datei existiert
def tagsfile?(picturefilename)
  return File.exist?(tagsfilename(picturefilename))
end

def pick_files(n)
  list = []
  count = 0
  allfiles = Dir.glob(File.join('done','*'))
  allfiles.each {|filename|
    next if File.basename(filename)[0,4] == ROT_PREFIX
    if filename.upcase =~ PICTURE_FILES
      list << filename
    end
  }
  while count < n do
    filename = list[rand(list.size)]
    photo = Photo.new(filename)
    puts filename
    puts "cp #{filename} upload/#{File.basename(filename)}"
    cp(filename,"upload/"+File.basename(filename))
    if tagsfile?(filename)
      puts "tags-file existiert auch"
      puts "cp #{tagsfilename(filename)} upload/#{File.basename(tagsfilename(filename))}"
      cp(tagsfilename(filename),"upload/"+File.basename(tagsfilename(filename)))
    end
    count += 1
  end
end

pick_files(2)

Dieses Skript kopiert aus dem ‘done’ Ordner jeweils ein paar zufällig ausgewählte
Dateien in den
Upload-Ordner, wo sie entweder auch an die neue Site gesendet oder mit ‘purge-done’
nach dem Upload wieder in den done-Ordner verschoben werden.

Die Zahl im ‘pick_files()’ Aufruf am Schluß gibt die Anzahl der Files an (hier 2).
Diese Zahl kann je nach persönlichen Vorlieben variiert werden.

Dies hat den Vorteil, daß nicht alle Photos auf einmal wieder im upload-Ordner
erscheinen, sondern nach und nach.

Wer diesen Vorgang automatisieren will, kann einen Crontab-Eintrag (Linux/Unix)
folgender Art vornehmen:

0 12 * * * (cd /home/tp/multistockphoto; /usr/local/bin/ruby dejavu.rb)

Forum

http://groups.google.com/group/multistockphoto

How to submit patches

Read the 8 steps for fixing other people’s code and for section 8b: Submit patch to Google Groups, use the Google Group above.

TODO – pick SVN or Git instructions

The trunk repository is svn://rubyforge.org/var/svn/multistockphoto/trunk for anonymous access.

OOOORRRR

You can fetch the source from either:

TODO – You can not created a RubyForge project, OR have not run rubyforge config
yet to refresh your local rubyforge data with this projects’ id information.

When you do this, this message will magically disappear!

Or you can hack website/index.txt and make it all go away!!

git clone git://github.com/GITHUB_USERNAME/multistockphoto.git

TODO – add “github_username: username” to ~/.rubyforge/user-config.yml and newgem will reuse it for future projects.

git clone git://gitorious.org/multistockphoto/mainline.git

Build and test instructions

cd multistockphoto
rake test
rake install_gem

License

This code is free to use under the terms of the MIT license.

Contact

Comments are welcome. Send an email to Thomas Preymesser email
or via the forum

Thomas Preymesser, 30th July 2008
Theme extended from Paul Battley