multistockphoto 0.9.0 → 0.9.2

Sign up to get free protection for your applications and to get access to all the features.
data/GUIDE.txt ADDED
@@ -0,0 +1,1136 @@
1
+
2
+ = multistockphoto
3
+
4
+ == What
5
+
6
+ This program is intended to work with the german versions of the photo sites fotolia.de, zoonar.de and dreamstime.de.
7
+ Photographers can upload their photos to this sites.
8
+ Currently it works only with the german version. If you're interested to adapt
9
+ it to other languages please email me.
10
+
11
+ Dieses Programm bietet bequemen Upload von eigenen Photos zu Photo-Seiten wie
12
+ fotolia.de, zoonar.de oder anderen, bei denen man eigene Bilder zum Verkauf
13
+ anbieten kann.
14
+ Neue Photos werden automatisch zu allen Seiten hochgeladen, bei denen man
15
+ registriert ist.
16
+
17
+ h2. Supporting this project
18
+
19
+ Die Programme dieses Projekts sind kostenlos erhältlich und verwendbar.
20
+ Du kannst jedoch die weitere Entwicklung dieses Projekts mit einer finanziellen
21
+ Zuwendung unterstützen (ansonsten müßte ich mich verstärkt anderen Projekten
22
+ widmen, die mehr finanziellen Ertrag einbringen, damit ich auch morgen noch
23
+ für meine Katzen das Futter kaufen kann :-)).
24
+
25
+ Am bequemsten kannst du per Paypal an die Email-Adresse thopre@gmail.com
26
+ bezahlen.
27
+
28
+ <form action="https://www.paypal.com/cgi-bin/webscr" method="post">
29
+ <input type="hidden" name="cmd" value="_s-xclick">
30
+ <input type="hidden" name="hosted_button_id" value="7164894">
31
+ <input type="image" src="https://www.paypal.com/en_US/i/btn/btn_donateCC_LG.gif" border="0" name="submit" alt="PayPal - The safer, easier way to pay online!">
32
+ <img alt="" border="0" src="https://www.paypal.com/de_DE/i/scr/pixel.gif" width="1" height="1">
33
+ </form>
34
+
35
+ Falls du per Überweisung zahlen willst, frage bitte nach meiner Kontoverbindung!
36
+
37
+ Ich werde, aufteilt pro Quartal, eine Liste der Spender mit Namen und Betrag,
38
+ sortiert nach Spendenhöhe hier veröffenlichen. Wenn von dir nichts anderes
39
+ mitgeteilt, werde ich dich nach deinem Namen, soweit aus der Email-Adresse
40
+ ersichtlich, in der Liste veröffenlichen. Falls etwas anderes gewünscht wird,
41
+ z. B. "Firma ABC GmbH" oder anonym, dann teile mir dies bitte mit!
42
+
43
+ h3. Spender
44
+
45
+ h4. Juli-September 2008
46
+
47
+ table.
48
+ |Betrag|Name|
49
+
50
+ h4. April-Juni 2008
51
+
52
+ table.
53
+ |Betrag|Name|
54
+ |1,00 &euro;|Testspender|
55
+
56
+
57
+ h2. Installing
58
+
59
+ <pre syntax="ruby">sudo gem install multistockphoto</pre>
60
+
61
+ h3. Systemvoraussetzungen
62
+
63
+ Ein abh&auml;ngiges gem ben&ouml;tigt das Programm 'exiftool', welches
64
+ installiert sein mu&szlig; (z.B. Paket libimage-exiftool-perl auf
65
+ Ubuntu-Linux -Systemen). Dies kann auch noch nach dem gem installiert
66
+ werden und wird erst zur Laufzeit benoetigt. Getestet werden kann dies,
67
+ indem man 'exiftool' auf der Kommandozeile eingibt. Falls installiert,
68
+ bekommt man eine Kurzsyntax-Hilfe angezeigt. Dies zeigt an, dass es
69
+ installiert ist.
70
+
71
+ ImagigeMagick. Dieses Paket muss ebenfalls installiert sein.
72
+ Eine Anleitung hierfuer findet sich unter http://www.imagemagick.net/download/www/install-source.html#unix
73
+
74
+ Bei Problemen mit diesen abhaengigen Programmen fragt bitte nicht
75
+ mich um Rat, sondern die jeweiligen Autoren! Die koennen euch besser
76
+ dabei helfen (und ich kann dieses Programm weiter entwickeln und
77
+ verbessern).
78
+
79
+ h2. The basics
80
+
81
+ Nach der Installation lege irgendwo einen Ordner namens 'multistockphoto' an!
82
+ Innerhalb dieses Ordners lege bitte einen weiteren Ordner namens 'upload' an!
83
+
84
+ Du benötigst jetzt noch eine Datei namens 'config.yaml' mit folgendem Inhalt:
85
+
86
+ <pre>
87
+ ---
88
+ :active_sites:
89
+ - :fotolia
90
+ - :zoonar
91
+ - :photocase
92
+ :zoonar:
93
+ :password: 'lalala'
94
+ :user: 'hugo'
95
+ :total_per_day: 10
96
+ :fotolia:
97
+ :user: 'hugo'
98
+ :password: 'lalal9589'
99
+ :ftp_user: '34567798'
100
+ :ftp_password: 'hugolala19589'
101
+ :photocase:
102
+ :user: 'hugo'
103
+ :password: 'geheim'
104
+ </pre>
105
+
106
+ Trage dort deine Zugangsdaten ein! Achtung: Die Einrückung links ist wichtig.
107
+ Der Abschnitt ':active_sites:' bezeichnet die Sites, mit denen du arbeiten
108
+ willst. Falls du nicht alle verwenden willst, lösche einfach die entsprechende
109
+ Zeile.
110
+
111
+ Ebenso kannst du, falls du eine Site vorübergehend nicht verwenden willst, auch
112
+ einfach die entsprechende Zeile löschen (die eigentlichen Login-Daten weiter
113
+ unter können aber unverändert bleiben).
114
+
115
+ Im Gem-Directory ist eine Vorlage, die du kopieren kannst.
116
+ Wenn du nicht bei allen aufgelisteten Sites Mitglied bist oder die Bilder dort
117
+ hochladen möchtest, dann lösche einfach
118
+ die entsprechenden Abschnitte - du ersparst dir und den jeweiligen Servern
119
+ unnötige Last, die bei fehlerhaften Einloggversuchen vergeudet wird.
120
+
121
+ Wenn du eines oder mehrere neue Bilder hochladen willst, kopiere die Bilddateien
122
+ in den upload-Ordner!
123
+ Dann rufe (innerhalb des multistockphoto-Ordners) das Kommando
124
+
125
+ <pre>multistockphoto --send-all
126
+ </pre>
127
+
128
+ oder
129
+
130
+ <pre>multistockphoto --send-all --verbose
131
+ </pre>
132
+
133
+ auf! Dieses erledigt den Upload aller neuen Photos zu allen definierten
134
+ Photo-Sites.
135
+
136
+ Dies ist der wohl am häufigsten verwendete Befehl. Mit der weiteren Option '--verbose'
137
+ wird nach jedem Einzelupload noch zusätzlich ausgegeben, wieviel Dateien je
138
+ Seite in schon hochgeladen wurden.
139
+
140
+ Die Photo-Dateien im upload-Ordner müssen nach dem Upload nicht gelöscht
141
+ werden - bei einem weiteren Aufruf werden bereits gesendete Photos nicht noch
142
+ einmal gesendet.
143
+
144
+ Grundsätzlich werden alle Dateien mit den Endungen
145
+ .PNG|.JPG|.GIF|.JPEG|.EPS|.AI|.PSD|.PDF|.TIF|.TIFF
146
+ von diesem Programm berücksichtigt und hochgeladen.
147
+ Groß- oder Kleinschreibung ist egal. Es gibt jedoch pro Photo-Site
148
+ Einschränkungen, welche Formate diese Site verarbeiten kann. Es kann also sein,
149
+ daß eine Site .PSD Dateien verarbeiten kann, die andere jedoch nur mit .JPG
150
+ Dateien etwas anfangen kann.
151
+ Eine automatische Konvertierung von einem ins andere Format wird von diesem
152
+ Programm nicht vorgenommen - du bist also selbst dafür verantwortlich,
153
+ daß ein Bild im richtigen Format an die richtige Site gelangt.
154
+
155
+ TODO: Hier fällt mir ein: es ist etwas problematisch, wenn man an eine Site
156
+ eine PSD-Datei schickt und diese auch an andere Sites hochladen will, die
157
+ dieses Format nicht akzeptieren und daraufhin diese Datei in eine JPG-Datei
158
+ manuell konvertiert. Die Folge wäre, daß andere Sites zwar die JPG-Datei akzeptieren,
159
+ aber daß auch eine Dublette nochmal an die PSD-akzeptierende Site gesendet wird,
160
+ diesmal im JPG-Format. Hier muß ich mir noch eine clevere Lösung einfallen lassen.
161
+ Am geschicktesten wäre es momentan noch, z.B. nur mit JPG-Dateien zu arbeiten,
162
+ so wie ich das tue.
163
+
164
+ Das Programm kann Photos, die im Hochformat aufgenommen wurden, automatisch
165
+ drehen, falls die Kamera dies erkennen kann und in den Photo-Dateien speichert.
166
+ In diesem Fall wird das Photo zuerst gedreht und dann auf die entsprechende Site
167
+ hochgeladen. Hierbei werden Dateien in diesem Directory erzeugt, die mit 'rot_'
168
+ (für rotiert, wer hätte es gedacht?) beginnen.
169
+
170
+ Achtung: Beim normalen Hochladen werden diese Dateien nicht berücksichtigt,
171
+ du solltest also möglichst keine echten Photo hochladen wollen, die mit 'rot_'
172
+ beginnen. In der Praxis dürfte dies kein großes Problem sein. Falls der Dateiname
173
+ doch mit 'rot_' (die Farbe) beginnen sollte, benenne sie einfach in 'Rot_...' um,
174
+ dann wird diese Datei auch hochgeladen. Die rotierten
175
+ Dateien dürfen gefahrlos gelöscht werden, ist aber im normalen Betrieb für die
176
+ Funktionsweise dieses Programm nicht notwendig, da die gedrehten Dateien bei
177
+ Bedarf einfach neu angelegt werden.
178
+
179
+ Ab dem Release 0.6.2 weiß jede der Site-Klassen, ob ein Drehen des Bildes vorab
180
+ nötig ist, oder ob die Site das Drehen selbständig erkennen kann. Falls eine
181
+ Site das Drehen beherrscht, wird nicht von diesem Programm vorab gedreht, sondern
182
+ es wird die originale Datei hochgeladen. Zum jetzigen Zeitpunkt beherrscht
183
+ jedoch keine der bisher realisierten Sites das Drehen von sich aus.
184
+
185
+ Das Programm erstellt (im Directory multistockphoto) eine Datei namens
186
+ 'sendeliste.dat', in der die erfolgreichen Uploads mit Site, Dateiname und
187
+ Datum/Uhrzeit protokolliert werden. Diese Datei darf nicht gelöscht werden,
188
+ da diese Datei auch dazu dient, festzustellen, ob eine Datei schon gesendet
189
+ wurde.
190
+ Kurz: falls eine Photo-Datei in dieser Datei noch nicht auftaucht, wird
191
+ sie an die betreffende Seit gesendet. Bei Problemen bei einzelnen Uploads kann
192
+ man aber in dieser Datei z.B. eine Zeile löschen, was zur Folge hat, daß
193
+ diese Datei beim nächsten Aufruf erneut hochgeladen wird.
194
+
195
+ Es schadet nicht, von Zeit zu Zeit ein Backup dieser Datei anzulegen, so daß
196
+ bei einem eventuellem Schadensfall bei dieser Datei eine Backup-Datei existiert,
197
+ die man ggf. wieder in die Original-Datei umbenennen kann.
198
+
199
+ Je nach Photo-Site mußt du dann dort online noch Stichworte und ggf. andere
200
+ Daten zu den einzelnen Bildern eintragen.
201
+
202
+ Einzelne Sites handhaben dies unterschiedlich.
203
+
204
+ Das Setzen von Schlüsselworten kann mittels diesen Programms bereits erledigt
205
+ werden. Dazu später mehr.
206
+ Derzeit müssen auf den einzelnen Sites neben den Schlüsselworten noch einige
207
+ andere Daten eingegeben werden. Diese Nachbearbeitung auf der jeweiligen Seite
208
+ ist derzeit noch nötig, es ist aber
209
+ geplant, daß auch weitere Daten von diesem Programm schon gesetzt werden
210
+ können.
211
+
212
+ Desweiteren können Kriterien, z. B. Mindestauflösung eines Bildes in Zukunft
213
+ schon vor des Hochladen überprüft werden. Dies ist jedoch noch nicht implementiert.
214
+
215
+
216
+
217
+
218
+ h2. Demonstration of usage
219
+
220
+ Wechseln in Arbeitsdirectory:
221
+
222
+ <pre>$ cd multistockphoto
223
+ </pre>
224
+
225
+ <pre>
226
+ $ multistockphoto --help
227
+ Usage: multistockphoto [-vayntscrxlpoq]
228
+ Options:
229
+ --help Show this message
230
+ -v, --version Show version
231
+ -a, --send-all Send all files
232
+ -y, --verbose Verbose output
233
+ -n, --not-sent Count not sent files per site
234
+ -t, --total-transfers Dont't send more than N photos in total
235
+ -s, --total-per-site Send no more than N photos per site
236
+ -c, --check-orientation Displays the orientiation of photo files
237
+ -r, --rotate file [file2 ...] Rotate a photo file 90 degrees to the left
238
+ -x, --stats Displays statistics
239
+ -l, --list-done List photos sent to all sites
240
+ -p, --purge-done Purge photos sent to all sites
241
+ -o, --ordered Send/List files in alphabetical order
242
+ -q, --no-tags List photos without tags file
243
+ --dont-send
244
+ --dont-log
245
+ </pre>
246
+
247
+ Senden aller noch nicht hochgeladenen Photos:
248
+
249
+ <pre>
250
+ $ multistockphoto --send-all
251
+ send-all
252
+ upload/img_2746.jpg
253
+ fotolia:upload/img_2746.jpg
254
+ zoonar:upload/img_2746.jpg
255
+ </pre>
256
+
257
+ Du kannst den Upload-Proze&szlig; an jeder Stelle abbrechen. Beim nächsten Start
258
+ werden die noch nicht gesendeten Photos hochgeladen.
259
+
260
+ Bitte beachte auch, daß es bei einigen Photo-Sites Beschränkungen für den Upload
261
+ von Photos gibt (z.B. zoonar.de erlaubt bei mir derzeit 10 Photos pro Tag). In diesem Fall
262
+ würdest du eine Fehlermeldung bekommen, daß das Photo nicht hochgeladen werden
263
+ konnte. Dies ist dann kein Fehler dieses Programms.
264
+ Starte dann einfach das Programm am nächsten Tag noch einmal, um den Rest der
265
+ Photos hochzuladen!
266
+
267
+ Falls es bei einer Site dreimal hintereinander Fehler beim Hochladen gibt, wird
268
+ diese Site im weiteren Programmablauf nicht mehr berücksichtigt. Damit wird
269
+ vermieden, daß trotz eines maximalen Upload-Limits oder weil diese Site temporär
270
+ nicht erreichbar ist, immer wieder vergeblich versucht wird, Photos an diese
271
+ Site zu senden.
272
+
273
+ Weitere Beispiele:
274
+
275
+ <pre>multistockphoto --send-all --verbose --tags-only --count=10 --shuffle</pre>
276
+
277
+ Senden aller noch nicht gesendeten Photos, ausführliche Ausgabe, nur Photos mit
278
+ Tags-Files senden, nur senden, wenn mindestens 10 Tags in der Tags-Datei vorhanden
279
+ sind, in zufälliger Reihenfolge senden.
280
+
281
+ Diesen Aufruf könnte man sich in einem Shell-Skript/Batch-Datei speichern, so
282
+ daß man ihn bei jedem regulären Hochladen von Photos bequem aufrufen kann.
283
+
284
+ <pre>multistockphoto --send-all --verbose --tags-only --count=10 --ordered</pre>
285
+
286
+ Wie zuvor, jedoch wird in alphabetischer Sortierung der Bilddateien gesendet.
287
+
288
+ <pre>multistockphoto --send-all --verbose --tags-only --count=10</pre>
289
+
290
+ Wie zuvor, jedoch ist keine Sortierung vorgegeben. Das Senden erfolgt in der
291
+ Reihenfolge, wie die Dateien im Filesystem gefunden werden.
292
+
293
+ <pre>multistockphoto --send-all --total-transfers=7</pre>
294
+
295
+ Senden von noch nicht gesendeten Photos. Das Hochladen, wird aber beendet,
296
+ wenn insgesamt 7 Photos hochgeladen wurden.
297
+
298
+ <pre>multistockphoto --send-all --total-per-site=5</pre>
299
+
300
+ Senden von noch nicht gesendeten Photos. Das Hochladen, wird aber beendet,
301
+ wenn an jede aktive Site 5 Photos hochgeladen wurden.
302
+
303
+ <pre>multistockphoto --not-sent</pre>
304
+
305
+ Gibt aus, wieviele Photo pro Site noch nicht gesendet wurden.
306
+
307
+ <pre>multistockphoto --no-tags</pre>
308
+
309
+ Listet Photo-Dateien auf, die noch keine zugehörige .tags-Datei haben.
310
+
311
+ <pre>multistockphoto --no-tags --count=10</pre>
312
+
313
+ Listet Photo-Dateien auf, die noch keine zugehörige .tags-Datei haben oder deren
314
+ .tags-Datei weniger als 10 Keywords enthält.
315
+
316
+ Bei den beiden letzten Beispielen kann zusätzlich noch der Parameter --ordered
317
+ angegeben werden, um die Datei alphabetisch aufsteigend auszugeben.
318
+
319
+ h2. Photo-Titel und Stichworte
320
+
321
+ Bei jeder Photo-Site ist es notwendig, hochgeladene Photos mit einem Titel und
322
+ Stichworten (auch Keywords genannt) zu versehen, damit diese Photos leichter
323
+ von Suchenden gefunden werden können.
324
+
325
+ Dies geschieht bei verschiedenen Site auf unterschiedliche Weise. Bei Zoonar kann
326
+ man Photos erstmal hochladen, ohne daß Stichworte vorhanden sind (es dürfen aber
327
+ auch schon Stichworte in den IPTC-Daten vorhanden sein). Nachdem ein Bild
328
+ akzeptiert wurde, muß es aber auf der Seite mit Titel und Stichworten versehen
329
+ werden, ansonsten wird es nach 30 Tagen gelöscht.
330
+ Bei fotolia wiederum ist es so, daß ein hochgeladenes Bild mit Stichworten
331
+ versehen sein muß, bevor es überhaupt begutachtet wird (ist natürlich dumm,
332
+ wenn man sich die Arbeit macht und das Bild wird dann doch abgelehnt - ist
333
+ aber nun mal so).
334
+
335
+ Je nach Site kann die Site bereits von sich aus IPTC-Daten der Bilder auswerten
336
+ und die Stichworte automatisch daraus extrahieren, falls diese in den Bildern
337
+ vorhanden sind.
338
+
339
+ Es gibt jetzt verschiedene Möglichkeiten:
340
+
341
+ # Nachträgliche manuelle Bearbeitung der Bilder auf der jeweiligen Web-Seite
342
+ # Versorgung mit Keywords mit beliebigem externem Programm vor dem Upload
343
+
344
+ Um unabhängig von einem externen Programm zu sein und eine für alle Betriebssysteme
345
+ passende Lösung zu ermöglichen, habe ich eine dritte Möglichkeit für dieses
346
+ Programm zur Verfügung gestellt.
347
+
348
+ Zu jeder Bilddatei kann eine zusätzliche Textdatei erstellt werden (bitte nicht mit
349
+ mit Word oder ähnlichen Programmen erstellen, sondern wirklich nur eine einfache
350
+ Textdatei), die die Stichworte zu einem Bild enthält. Beispiel: die Bilddatei
351
+ heißt IMG_1234.JPG dann muß der Name der Keywords-Datei IMG_1234.tags lauten.
352
+
353
+ Der Inhalt dieser Textdatei enthält die Keywords entweder durch Komma oder Leerzeichen
354
+ getrennt oder je Zeile ein Keyword (auch gemischt möglich).
355
+
356
+ Beispiel:
357
+ <pre>
358
+ Baum,Pflanze
359
+ Rose rot weiß
360
+ Garten
361
+ Park
362
+ </pre>
363
+
364
+ Falls nun beim Hochladen der Photos zu einem Photo eine tags-Datei gefunden wird,
365
+ so werden die darin enthaltenen Keywords in die Photodatei geschrieben und diese
366
+ dann hochgeladen, so daß bei Sites, die diese auswerten, die Keywords nicht mehr
367
+ manuell gesetzt werden müssen.
368
+
369
+ Obwohl es nicht zwingend notwendig ist, empfiehlt es sich, für jedes Bild eine
370
+ tags-Datei zu erstellen, wenn man mit mehreren Sites arbeitet, die diese
371
+ Daten automatisch auswerten können, da man die Arbeit dann nur einmal erledigen
372
+ muß.
373
+
374
+ Ich selbst verwende die tags-Dateien derzeit <s>nicht, weil ich z.B. bei Zoonar
375
+ sowieso nur die akzeptierten Photos verschlagworten muß, was weniger Aufwand
376
+ ist, als wenn ich alle vorab mit tags-Dateien versorge</s> immer mehr, weil
377
+ es mir Aufwand spart, wenn ich Keywords nicht bei jeder Site einzeln online
378
+ erfassen muß.
379
+ Bei fotolia allerdings muß vor der Freigabe jedes Bild mit Keywords versorgt
380
+ werden (auch wenn es dann abgelehnt wird). Ich bin nicht sicher, ob fotolia
381
+ das macht, aber falls fotolia die Keywords in der Datei auswerten kann, wäre
382
+ es weniger Aufwand, mit Tags-Dateien zu arbeiten.
383
+ Ich habe bei fotolia noch mal nachgesehen: Fotolia unterstützt Keywords in den
384
+ Photo-Dateien - also werde ich in Zukunft auch die Tags-Dateien pflegen, weil
385
+ ich die Keywords ja sowieso mindestens bei fotolia eingeben muß. Mal schauen,
386
+ ob die von mir gepflegten Keywords in nächster Zeit auch bei fotolia korrekt
387
+ ankommen ...
388
+
389
+ Aber das muß jeder für sich abschätzen, was für die eigenen Sites praktikabler
390
+ ist. Außerdem ist das schöne an tags-Dateien ja auch, daß man sie nicht unbedingt
391
+ verwenden muß.
392
+
393
+ Ein weiterer Vorteil bei der Verwendung von tags-Dateien ist, daß du bei ähnlichen
394
+ Photos, für die die gleichen Keywords verwendet werden können, einfach die tags-Dateien
395
+ kopieren kannst und nicht mit einem anderen Programm immer die gleichen Keywords
396
+ eingeben mußt.
397
+
398
+ Beachte bitte auch, daß, wenn du den Namen der Photo-Datei änderst, zum Beispiel
399
+ von IMG_1234.JPG nach IMG_1234_bearbeitet.JPG, daß dann auch der Name einer
400
+ eventuell vorhandenen tags-Datei nach IMG_1234_bearbeitet.tags geändert werden
401
+ muß!
402
+
403
+ Derzeit werden tags-Dateien nur beim erstmaligen Hochladen eines Photos zur
404
+ entsprechenden Site verwendet. Falls du tags-Dateien nachträglich erstellst
405
+ oder änderst, werden diese Änderungen für bereits gesendete Photos nicht mehr
406
+ berücksichtigt.
407
+ Denkbar wäre, bei Sites, die das auch unterstützen, daß eine Änderung an den
408
+ tags-Dateien auch bei der jeweiligen Site nachgezogen wird. Dies ist aber derzeit
409
+ nicht implementiert.
410
+
411
+ Der Titel eines Photos wird derzeit mit diesem Programm noch nicht unterstützt.
412
+ Das ist aber in einer der nächsten Versionen geplant.
413
+
414
+ Ich persönlich gehe bei der Erstellung der tags-Dateien folgendermaßen vor:
415
+ Ich arbeite unter Linux, für andere Betriebssysteme kann man das aber sich ähnlich
416
+ lösen.
417
+
418
+ Als erstes öffne ich ein Dateifenster des upload-Ordners um eine Thumbnail-Übersicht,
419
+ aller hochzuladenden Bilder zu sehen.
420
+ Dann öffne ich ein Text-Shell, gehe ins multistockphoto-Arbeitsverzeichnis und
421
+ gebe dort die Kommandos
422
+ <pre>while true; do multistockphoto --no-tags|sort -r; date; sleep 60; done
423
+ </pre>
424
+
425
+ oder
426
+
427
+ <pre>while true; do multistockphoto --no-tags --count 10|sort -r; date; sleep 60; done
428
+ </pre>
429
+
430
+ wenn ich mindestens 10 Keywords haben will, ein. Das ist die Syntax von
431
+ Bourne-Shell oder Bash. Falls du eine andere Shell
432
+ verwendest, könnte das Kommando leicht unterschiedlich sein. Sinn der Sache
433
+ ist jedenfalls, eine sortierte Übersicht aller Photos ohne tags-Datei zu erhalten,
434
+ eine Minute zu pausieren, und dann das gleiche, bis man das Kommando abbricht.
435
+
436
+ Dann öffne ich eine weitere Shell, gehe innerhalb es multistockphoto-Verzeichnisses
437
+ ins upload-Verzeichnis, suche mir aus der Liste ein Photo nach dem anderen heraus
438
+ und erstelle mit einem beliebigen Texteditor (ich verwende 'vi', auch als 'vim'
439
+ bekannt) z.B. die Datei IMG_5434.tags.
440
+
441
+ Dann suche ich mir das nächste Bild aus der Liste aus, usw.
442
+ Bei Bildern, die das gleiche Motiv haben und die gleichen Keywords bekommen sollen,
443
+ kann ich dann auch einfach die tags-Dateien kopieren:
444
+ <pre>cp IMG_1234.tags IMG_1235.tags</pre>
445
+
446
+
447
+ h2. Optionen der Kommandozeile im Einzelnen
448
+
449
+ Folgende Optionen können dem Programm multistockphoto übergeben werden:
450
+
451
+ h3. --version
452
+
453
+ gibt die aktuelle Versionsnummer von multistockphotos bzw. des gesamten Gems
454
+ aus:
455
+
456
+ <pre>
457
+ $ multistockphoto --version
458
+ multistockphoto 0.6.0
459
+ </pre>
460
+
461
+ h3. --verbose
462
+
463
+ gibt mehr und ausführlichere Informationen als im Normalfall aus. Dies wird z. Z.
464
+ hauptsächlich in Verbindung mit dem Kommando --send-all, aber auch bei
465
+ anderen Optionen, soweit sinnvoll, verwendet.
466
+
467
+ h3. --not-sent
468
+
469
+ Gibt aus, wieviele Bilder pro Site noch zum Hochladen ausstehen. Z. B.:
470
+
471
+ <pre>
472
+ $ multistockphoto --not-sent
473
+ not sent photos:
474
+ {"fotolia"=>822, "photocase"=>823, "zoonar"=>1006}
475
+ </pre>
476
+
477
+ heißt, bei fotolia stehen noch 822 Photos, bei photocase 823 und bei zoonar
478
+ noch 1006 Photos zum Senden aus.
479
+
480
+ h3. --total-transfers N
481
+
482
+ Es werden bei diesem Programmdurchlauf nicht mehr als insgesamt 'N' Photos
483
+ hochgeladen. Wie diese 'N' Photos auf die einzelnen Sites aufgeteilt werden, ist
484
+ nicht vorhersehbar, und hängt davon ab, welche Bilder bereits an welche Sites
485
+ hochgeladen wurden.
486
+
487
+ Beispiel 'multistockphoto --total-transfers 10' lädt insgesamt 10 Bilder hoch.
488
+
489
+ h3. --total-per-site N
490
+
491
+ Es werden pro Site nicht mehr als 'N' Photos hochgeladen. Sobald an jede Site
492
+ 'N' Photos hochgeladen wurden, wird das Programm beendet.
493
+
494
+ Beispiel 'multistockphoto --total-transfers 3' lädt Bilder hoch, bis jede der
495
+ aktiven Sites 3 Bilder bekommen hat.
496
+
497
+
498
+ h3. --stats
499
+
500
+ Statistik über gesendete Photos
501
+
502
+ Der Schalter --stats zeigt eine Statistik über die Anzahl der gesendeten Photos
503
+ innerhalb der letzten 10 Tage, aufgeteilt nach Site.
504
+ Außerdem eine Summenzeile über alle bisher gesendeten Photos. Achtung: Diese
505
+ Summen beziehen sich nicht auf die letzen zuvor aufgelisteten Tage sondern auf
506
+ sämtliche bisher gesendeten Photos.
507
+
508
+ <pre>
509
+ $ multistockphoto --stats
510
+ Statistics
511
+ | fotolia | zoonar | photocase | total
512
+ 2008-05-23 | 0 | 0 | 0 | 0
513
+ 2008-05-22 | 7 | 7 | 7 | 21
514
+ 2008-05-21 | 4 | 4 | 3 | 11
515
+ 2008-05-20 | 7 | 6 | 6 | 19
516
+ 2008-05-19 | 5 | 9 | 5 | 19
517
+ 2008-05-18 | 6 | 6 | 6 | 18
518
+ 2008-05-17 | 7 | 7 | 7 | 21
519
+ 2008-05-16 | 7 | 7 | 6 | 20
520
+ 2008-05-15 | 6 | 6 | 6 | 18
521
+ 2008-05-14 | 0 | 1 | 1 | 2
522
+
523
+ total | 251 | 174 | 250 | 675
524
+ </pre>
525
+
526
+ h3. --list-done
527
+
528
+ Auflisten aller komplett gesendeten Photos
529
+
530
+ Um Photos aufzulisten, die bereits an alle Photo-Sites gesendet wurden, gibt
531
+ es den Schalter --list-done
532
+
533
+ h3. --purge-done
534
+
535
+ Verschieben aller komplett gesendeten Photos ins done-Directory
536
+
537
+ Falls du Photos aus dem Arbeitsdirectory löschen möchtest (aus Platzgründen oder
538
+ weil du alte Dateien dort nicht mehr haben willst), die bereits an alle
539
+ definierten Sites gesendet wurden, rufe
540
+
541
+ <pre>
542
+ multistockphoto --purge-done
543
+ </pre>
544
+
545
+ auf!
546
+
547
+ Daraufhin werden alle komplett gesendeten Photos ins Directory 'done' verschoben.
548
+ Das done-Directory wird automatisch angelegt, falls es noch nicht existiert.
549
+
550
+ Die Dateien im done-Directory kannst du nun entweder löschen oder, je nach
551
+ Bedarf irgendwie archivieren.
552
+
553
+ Ich lasse die Bilder im done-Directory aber einfach erstmal dort stehen, damit
554
+ das upload-Directory übersichtlicher bleibt und nur die noch nicht vollständig
555
+ gesendeten Bilder enthält.
556
+
557
+ Bitte beachte aber, daß, falls du später eine weitere Photo-Site definierst,
558
+ diese alten Bilder nicht mehr an die neue Photo-Site geschickt werden. Falls
559
+ du sie jedoch im Arbeitsverzeichnis beläßt, werden auch diese alten Bilder
560
+ an eventuelle neue Photo-Sites versendet.
561
+ Du kannst aber jederzeit die verschobenen oder archivierten Bilder wieder ins
562
+ Arbeitsverzeichnis kopieren. Bereits erfolgte Uploads werden davon nicht beeinflußt.
563
+
564
+ h3. --ordered
565
+
566
+ Die Reihenfolge bei --send-all ist davon abhängig, in welcher Reihenfolge die
567
+ Photos im upload-Directory angelegt wurden. Dies ist nicht unbedingt die
568
+ alphabetische Reihenfolge der Dateien.
569
+
570
+ Normalerweise ist dies nicht relevant, da früher oder später doch jede noch nicht
571
+ gesendetet Datei an die einzelnen Sites hochgeladen wird. Wenn du jedoch möchtest,
572
+ daß die Dateien in alphabetischer Reihenfolge (also die ältesten Dateien zuerst)
573
+ hochgeladen werden sollen, dann rufe das Programm mit dem zusätzlichen Parameter
574
+ --ordered auf. Die Photos werden dann in alphabetischer Reihenfolge hochgeladen.
575
+
576
+ h3. --check-orientation Bild1.jpg Bild2.jpg
577
+
578
+ Listet die Orientation der angegebenen Bilder auf.
579
+
580
+ h3. --rotate bild1.jpg [bild2.jpg ..]
581
+
582
+ Rotiert alle angegebenen Bilder um 90 Grad. Die Originaldatei wird dabei durch
583
+ die gedrehte Datei ersetzt.
584
+
585
+ h3. --no-tags
586
+
587
+ Ein Aufruf mit dieser Option, auch in Verbindung mit --ordered, listet alle
588
+ Photo-Dateien auf, für die keine tags-Datei exisitiert.
589
+
590
+ Es gibt zwei Möglichkeiten, diese Option zu verwenden.
591
+
592
+ <pre>--no-tags</pre> listet die Bilddateien auf, für die keine Tags-Datei
593
+ existiert.
594
+
595
+ Bei der zweiten Form mit <pre>multistockphoto --no-tags --count N</pre> mit einem
596
+ zusätzlichen numerischen
597
+ Argument werden nicht nur Photos ohne Tags-Datei aufgelistet, sondern auch
598
+ Tags-Dateien, die weniger als die hier angegebene Anzahl von Keywords besitzen.
599
+
600
+ Angenommen, du arbeitest mit den Sites fotolia und zoonar. Fotolia will mindestens
601
+ sieben Keywords haben, bevor eine Datei begutachtet wird. Wenn du die Keywords
602
+ nicht online auf der Fotolia Seite eingeben willst, empfiehlt es sich, die
603
+ Dateien mit <pre>multistockphoto --no-tags --count 7</pre> zu testen um ggf. Keywords zu ergänzen.
604
+ Bei einer Annahme eines Bildes bei zoonar, müssen mindestens 10 Keywords angegeben
605
+ sein. Wenn du auch diesen Fall abdecken willst, gib
606
+ <pre>multistockphoto --no-tags --count 10</pre> an -
607
+ damit sind dann alle Sites zufrieden.
608
+
609
+ <s>Achtung: die zweite Form dauert wesentlich länger, wenn du mit vielen Dateien
610
+ im Upload-Directory arbeitest (ca. ab 500-1000).
611
+
612
+ Zeiten bei mir (1550 Bilddateien)
613
+
614
+ 1. ohne --count Parameter: 6 Sekunden
615
+ 2. mit --count Parameter: 6 Minuten, 12 Sekunden
616
+ </s>
617
+
618
+ Ist mindestens seit dem Release 0.8.0 annähernd gleich schnell.
619
+
620
+
621
+ h3. --tags-only
622
+
623
+ Diese Option, in Verbindung mit dem Aufrufparameter --send-all sendet nur Photos,
624
+ für die eine zugehörige .tags Datei existiert.
625
+ Diese Option ist arbeitstechnisch nützlich, wenn du mindestens eine Site verwendest,
626
+ bei der das Vergeben von Keywords obligatorisch ist, bevor ein Bild begutachtet
627
+ wird (z. B. fotolia). Denn in diesem Fall mußt du die Keywords so oder so (entweder
628
+ offline oder online) erfassen.
629
+ Solltest du jedoch z. B. nur zoonar und photocase verwenden, kannst du auf das
630
+ Erfassen von Keywords vorab gut verzichten, da du nur für die angenommenen
631
+ Photos Keywords erfassen mußt, was wahrscheinlich weniger Aufwand
632
+ bedeutet.
633
+
634
+ h3. --plist
635
+
636
+ Diese Option listet alle Datein im Upload-Directory auf und kennzeichnet, an
637
+ welche Sites diese bisher gesendet wurden.
638
+
639
+ <pre> fotolia zoonar photocase dreamstime
640
+ upload/IMG_6379.JPG (t 11) + + +
641
+ upload/IMG_5606.JPG + + +
642
+ upload/IMG_4980.JPG + + +
643
+ upload/IMG_6038.JPG + + +
644
+ upload/IMG_4003.JPG + + +
645
+ upload/IMG_5523.JPG + + +
646
+ upload/IMG_6085.JPG
647
+ upload/IMG_5698.JPG + + +
648
+ upload/IMG_5728.JPG + + +
649
+ ...</pre>
650
+
651
+ Ein '+' heißt, daß das Photo an diese Site schon gesendet wurde.
652
+ Ein '(t xx)' (xx ist eine Zahl) nach dem Dateinamen kennzeichnet, daß für diese
653
+ Datei eine tags-Datei existiert sowie die Anzahl von Keywords beinhaltet, die
654
+ nach dem 't' steht. Im obigen Beispiel hat die Tags-Datei 11 Keywords.
655
+
656
+ Bei diesem Befehl kann auch zusätzlich die Option --ordered angegeben werden,
657
+ um die Dateien sortiert nach dem Dateinamen auszugeben.
658
+
659
+ h3. --count N
660
+
661
+ Diese Option kann in Verbindung mit --send-all oder --no-tags verwendet werden
662
+ und bedeutet, daß mindestens N Keywords zu einer Datei vorhanden sein müssen.
663
+ Alleine für sich kann diese Option nicht verwendet werden.
664
+
665
+ In Verbindung mit --send-all werden nur solche Photos gesendet, die die
666
+ angegebene Anzahl von Tags aufweisen.
667
+ In Verbindung mit --no-tags werden auch solche Photos aufgelistet bei denen
668
+ nicht nur die Tags-Datei fehlt sondern bei denen sie existiert, aber zu wenige
669
+ Tags enthält.
670
+
671
+ h3. --shuffle
672
+
673
+ Dieser Schalter dient, in Verbindung mit --send-all oder ähnlichen Befehlen, dazu,
674
+ nicht in der Reihenfolge wie sie durch das Dateisystem oder durch alphabetische
675
+ Sortierung vorgegeben ist, zu senden, sondern (ähnlich wie bei einem MP3-Player)
676
+ die Photos in zufälliger Reihenfolge zu senden.
677
+
678
+ Die Schalter --ordered und --shuffle schließen sich gegenseitig aus. Falls beide
679
+ angegeben werden, ist nicht definiert, in welcher Reihenfolge die Abarbeitung
680
+ erfolgt.
681
+
682
+ h3. --dont-send und --dont-log
683
+
684
+ Diese beiden Optionen sind eigentlich nur für interne Unit-Tests der Programme
685
+ gedacht und sollten nicht für den produktiven Einsatz verwendet werden, bzw.
686
+ sind dort nicht sinnvoll.
687
+
688
+ --dont-send sendet eine Datei nicht wirklich an die betreffende Site.
689
+
690
+ --dont-log schreibt keinen Eintrag in die Sendeliste-Datei
691
+
692
+ h2. Optionen im Konfigurations-File
693
+
694
+ h3. total_per_day
695
+
696
+ Wenn eine Site pro Tag nur eine bestimmte Anzahl von Uploads erlaubt oder wenn
697
+ du für eine Seite nur eine bestimme Anzahl von Photos pro Tag hochladen willst,
698
+ gibt es die Möglichkeit, im Konfigurationsfile bei dieser Site die Uploads pro
699
+ Kalendertag zu begrenzen. Dabei wird dann überprüft, wieviele Photos für diese
700
+ Site heute schon hochgeladen wurden und wenn die maximale Anzahl erreicht wurde,
701
+ wird nichts mehr hochgeladen. Diese Anzahl kann pro Site individuell gesetzt
702
+ werden.
703
+
704
+ h2. Hoch- und Querformat
705
+
706
+ Einige Digitalkameras können erkennen, ob ein Bild im Hoch- oder Querformat
707
+ aufgenommmen wurde.
708
+ Falls dieses Programm erkennt, daß die Kamera ins Hochformat gedreht wurde,
709
+ so wird automatisch ein um 90 Grad nach links gedrehtes Bild erzeugt und dieses
710
+ hochgeladen. Du mußt ein Bild also nicht manuell drehen.
711
+
712
+ Da die Photosites dies theoretisch auch anhand der Exif-Daten in
713
+ der Bilddatei erkennen und das Bild automatisch drehen könnten, wird es in Zukunft
714
+ auch einen Schalter geben, um die automatische Drehung im Programm auszuschalten,
715
+ da dies dann nicht notwendig ist.
716
+
717
+ Die Photo-Sites, mit denen ich bis jetzt zu tun hatte, ignorieren dies aber
718
+ anscheinend bis jetzt.
719
+
720
+ Um dieses Verhalten in der Digitalkamera einzuschalten, mußte ich bei der Canon
721
+ EOS 400 D die Einstellung 'automatisch rotieren' aktivieren. Bei anderen Kameras
722
+ mag dies ähnlich sein. Bei der EOS 400 D kann man wählen, ob automatisch
723
+ für nur im Display der Kamera, im Display und auf dem PC oder überhaupt nicht
724
+ gedreht werden soll. Relevant ist hier die Einstellung 'auf dem PC drehen'. Wenn
725
+ man zusätzlich noch 'auf dem Display drehen' anwählt, heißt dies, daß zusätzlich
726
+ auch auf dem Display der Kamera das Bild gedreht angezeigt werden soll.
727
+
728
+ Um zu testen, in welcher 'orientation' ein Bild vorliegt kannst du das Programm
729
+ mit dem Schalter '--check-orientation Bild1.jpg Bild2.jpg ..' aufrufen.
730
+
731
+ Falls ein Bild mit der falsche Orientation vorliegt, kannst du das Bild mit
732
+ dem Schalter '--rotate bild1.jpg [bild2.jpg ..]' um 90 Grad nach links drehen.
733
+ Achtung: dabei wird die Originaldatei mit dem gedrehten Bild überschrieben - falls
734
+ du das nicht willst, lege vorher eine Kopie an!
735
+
736
+ Wenn deine Kamera nicht erkennen kann, ob ein Photo im Hochformat aufgenommen
737
+ wurde, dann drehe das Bild vor dem Hochladen mit dem Schalter '--rotate' oder
738
+ einen anderen Programm, welches Bilder drehen kann!
739
+
740
+ Übrigens: Photos im Hochformat nimmt man folgendermaßen auf !facy_boy.gif(Bild richtige Kamerahaltung bei Hochformat)!,
741
+ und
742
+ nicht so wie man es von besonders cool wirkend wollenden Digicam-Knipsern des
743
+ öfteren sieht, mit der auslösenden Hand nach unten. Der Grund ist einfach der,
744
+ daß die Verwacklungsgefahr wesentlich größer ist, als wenn die auslösenden Hand
745
+ oben ist.
746
+ Stelle dir einfach vor, du würdest einen kurzen Stock mit den Fingern an deiner
747
+ Stirn fixieren der vor dem Gesicht herunterhängt. Jemand anderer kann nun mit
748
+ wesentlich geringerem Kraftaufwand den unteren Teil des Stocks bewegen, als
749
+ es bei dem oberen Ende möglich wäre - genauso ist es auch bei der Kamera.
750
+
751
+ h2. Bisher realisierte Sites
752
+
753
+ Diese Programm arbeitet zum gegenwärtigen Zeitpunkt mit den im folgenden
754
+ beschriebenen Photo-Sites zusammen. Weitere sind geplant. Wenn du weitere Sites
755
+ realisiert haben möchtest, schreib mir!
756
+
757
+ Ebenso bin ich auch bereit (exklusive) kommerzielle Entwicklung für weitere Sites
758
+ anzubieten.
759
+
760
+ Meine eigenen Bilder scheinen bei Zoonar am besten anzukommen. Dort habe ich bereits
761
+ über 40 akzeptiert Bildere, danach kommt Fotolia mit immerhin schon vier Bildern.
762
+ Bei Photocase und Dreamstime ist es mir aber bis heute nicht gelungen, auch nur
763
+ ein einziges Bild unterzubringen (nein, an meinem Programm liegt das nicht :-) ).
764
+
765
+
766
+ h3. fotolia.de
767
+
768
+ Homepage: "http://www.fotolia.de":http://www.fotolia.de
769
+
770
+ Bei fotolia.de lädst du deine Fotos hoch. Anschließend mußt du noch Stichworte
771
+ vergeben und zu jedem Bild angeben, mit welcher Lizenz dieses angeboten werden
772
+ soll. Erst dann werden deine Bilder begutachtet und entweder angenommen oder
773
+ abgelehnt.
774
+
775
+ Unterstützte Dateitypen: JPEG, SVG
776
+
777
+ Site unterstützt Keywords in IPTC-Header: Ja
778
+
779
+ Site unterstützt Hoch-/Querformat: Nein
780
+
781
+ Übertragen der Keywords funktoniert: Ja
782
+
783
+ h3. zoonar.de
784
+
785
+ Homepage: "www.zoonar.de":http://www.zoonar.de/
786
+
787
+ Bei zoonar.de wiederum läuft es so, daß du zuerst nur die Bilder hochlädst, dann
788
+ werden sie begutachtet; angenommen oder abgelehnt und erst wenn sie
789
+ angenommen wurden, kannst du Schlagworte vergeben. Dies hat natürlich den
790
+ Vorteil, daß man für abgelehnte Photos erst gar keine Schlagworte vergeben muß
791
+ (kann).
792
+ Mein Shop bei Zoonar ist übrigens unter "Zoonar Shop thopre (Zoonar Shop thopre)":http://www.zoonar.de/shop/thopre zu
793
+ zu erreichen. Kauft fleißig bei mir ein! ;-)
794
+
795
+ Unterstützte Dateitypen: ???
796
+
797
+ Site unterstützt Keywords in IPTC-Header: Ja
798
+
799
+ Site unterstützt Hoch-/Querformat: Nein
800
+
801
+ Übertragen der Keywords funktoniert: Ja
802
+
803
+ h3. photocase.de
804
+
805
+ Homepage: "www.photocase.de":http://www.photocase.de/
806
+
807
+ Bei photocase.de lädst du ebenfalls zuerst deine Photos hoch, diese werden
808
+ dann entweder angenommen oder abgelehnt. Bei angenommenen Bilder bearbeitest
809
+ du diese auf deren Seite weiter (eigentlich wie bei zoonar.de). Als nettes
810
+ Gimmick bei photocase kannst du bei deinen Photos sehen, an welchem Platz
811
+ sie sich aktuell in der Warteschlage der zu begutachtenden Photos befinden.
812
+
813
+ Wie es dann weitergeht, kann ich noch sagen, da es mir bei photocase trotz
814
+ inzwischen 736 hochgeladenen Photos bis heute nicht gelungen ist, daß auch nur
815
+ ein einziges angenommen wurde, welches ich dann weiter bearbeiten könnte.
816
+
817
+ Unterstützte Dateitypen: ???
818
+
819
+ Site unterstützt Keywords in IPTC-Header: ? noch mal nachschauen! TODO:
820
+
821
+ Site unterstützt Hoch-/Querformat: Nein
822
+
823
+ Übertragen der Keywords funktoniert: ???
824
+
825
+ h3. dreamstime.de
826
+
827
+ Homepage: http://www.fotolia.de TODO:
828
+
829
+ Bei dreamstime funktioniert es ähnlich wie bei Zoonar. Man lädt zuerste einfach
830
+ nur die Bilder hoch und diese werden dann begutachtet und angenommen oder abgelehnt.
831
+
832
+ Wie es dann weitergeht, kann ich noch sagen, da es mir bei dreamstime trotz
833
+ inzwischen 257 hochgeladenen Photos bis heute nicht gelungen ist, daß auch nur
834
+ ein einziges angenommen wurde, welches ich dann weiter bearbeiten könnte.
835
+
836
+ 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.
837
+
838
+
839
+
840
+ Use our FTP upload for faster and easier submission of more images!
841
+
842
+ 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).
843
+
844
+ 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).
845
+
846
+ Unterstützte Dateitypen: JPG
847
+
848
+ Site unterstützt Keywords in IPTC-Header: Ja
849
+
850
+ Site unterstützt Hoch-/Querformat: ??? TODO:
851
+
852
+ Übertragen der Keywords funktoniert: ???
853
+
854
+ h3. bigstockphoto.com
855
+
856
+ Homepage: http://www.fotolia.de TODO:
857
+
858
+ Bei Bigstockphoto lädst du auch zuerst deinen Photos hoch. Eine direkte
859
+ Übernahme der Keywords scheint bei mir nicht geklappt zu haben. Das muß
860
+ ich noch einmal überprüfen. TODO:
861
+
862
+ Desweiteren ist dies die erste realisierte Photo-Site, bei der sich die Oberfläche
863
+ nicht auf deutschsprachig umschalten lassen kann. Dies bedeutet unter anderem,
864
+ daß die Keywords in englischer Sprache vorhanden sein müssen. Bisher bin ich
865
+ in meinem Programm nur von deutschsprachingen Keywords (in den .tags-Dateien)
866
+ ausgegangen. Falls du *nur* mit englischsprachigen Seiten/Oberflächen arbeiten
867
+ willst, kannst du natürlich einfach in den .tags Dateien englische Keywords
868
+ eingeben. Bei gemischtsprachiger Verwendung funktioniert dies aber nicht mehr.
869
+ Ich denke, ich werde einen Konfigurationsschalter einführen, der angibt, welche
870
+ Sprache und oder ggf. eine unterschiedliche .tags Datei zu verwenden ist.
871
+ Dies ist aber derzeit noch nicht implementiert.
872
+
873
+ Außerdem will diese Site zwingend auch eine Bildbeschreibung haben.
874
+
875
+ Diese Site ist funktionsfähig (bis auf diese Sprachproblematik), ich persönlich
876
+ werde die bei mir aber erstmal deaktivieren. U. a. auch weil es mir zu aufwendig
877
+ ist, auch noch englische Keywords auszusuchen und ein Beschreibung zu
878
+ jedem Photo zu schreiben.
879
+
880
+ Eine andere Möglichkeit, die mir hier noch einfällt, wäre eine automatische
881
+ Übersetzung der Keywords.
882
+ Die automatische Übersetzung baue ich gerade ein - dies wird in einem
883
+ der nächsten Releases möglich sein. Du hast dann eine Textdatei, die
884
+ du mit jeweils dem deutschen Stichwort und der Übersetzung ins Englische (oder später noch weitere Sprachen) versorgst. Aus dieser Datei wird dann die
885
+ Übersetzung ermittelt. Da muß man übrigens aufpassen, weil manche Stichworte mehrdeuting sein können (z. B. 'rasen', je nachdem, ob es bei einem Bild
886
+ aus dem eigenen Garten oder einem Bild einer Autobahn erscheint). Hier
887
+ werde ich prüfen, ob gewisse andere, anzugebende, Stichworte ebenfalls
888
+ für das Bild vergeben wurden ( z.B. "Blumen" oder "Auto") und dann das
889
+ passende englische Keyword auswählen.
890
+
891
+ Unterstützte Dateitypen: ???
892
+
893
+ Site unterstützt Keywords in IPTC-Header: ??? TODO:
894
+
895
+ Site unterstützt Hoch-/Querformat: ??? TODO:
896
+
897
+ Übertragen der Keywords funktoniert: ???
898
+
899
+ h3. Panthermedia
900
+
901
+ Homepage: "www.panthermedia.net":http://www.panthermedia.net/
902
+
903
+ Bei Pantermedia lädst du deine Bilder per ftp hoch. Vor der Begutachtung mußt
904
+ du in deinem sogenannten ftp-Bereich bei Panthermedia zu jedem Bild noch diverse
905
+ Angaben in einem Formula ergänzen.
906
+ Leider auch wieder vorab, so daß die Arbeit ggf. umsonst war, falls das
907
+ Bild nicht angenommen wird. Ich finde, da sollte auch wieder eher z. B. an
908
+ Zoonar orientieren und diese Daten erst anfordern, falls ein Bild angenommen
909
+ wird - so wie es jetzt ist, klaut man wieder die Zeit des Users/Fotografen.
910
+
911
+ Folgendes schreiben sie:
912
+
913
+ Wichtig:
914
+ - Umlaute und Sonderzeichen im Dateinamen vermeiden
915
+ - Bitte nur JPG-Dateien (max. Größe: 12 MB) hochladen
916
+ - Bilder im FTP-Ordner nach spätestens 7 Tagen bearbeiten/entfernen
917
+ - Ihr verfügbarer FTP-Speicher: 150 MB (bitte nicht überschreiten)
918
+ - Bitte keine Verzeichnisse im FTP-Ordner anlegen
919
+ Unterstützte Dateitypen: JPG, JPEG
920
+
921
+ Site unterstützt Keywords in IPTC-Header: Ja
922
+
923
+ Site unterstützt Hoch-/Querformat: ??? TODO:
924
+
925
+ Übertragen der Keywords funktoniert: Ja
926
+
927
+ h2. Paralleles Hochladen zu mehreren Sites gleichzeitig
928
+
929
+ Ich habe begonnen, eine Methode zu schreiben, die es ermöglicht, Bilder zu allen
930
+ Sites gleichzeitig hochzuladen.
931
+ Dies ist zwar natürlich möglich, obwohl es einiges mehr an Programmieraufwand
932
+ bedeutet, weil der ganze Ablauf mit mehreren Threads ganz anders organisiert
933
+ werden muß.
934
+
935
+ Ich bin jedoch zum Schluß gekommen, daß es den Aufwand eigentlich nicht lohnt.
936
+ Begründung: Es wäre zwar wahrscheinlich möglich, in der gleichen Zeit ca. 5 mal
937
+ oder mehr Bilder gleichzeitig hochzuladen. Allerdings ist es damit ja nicht getan,
938
+ weil fast auf jeder Site noch einiges an Nachbearbeitung für jedes Bild nötig
939
+ ist. Bei meiner jetzigen Situation habe ich z.B. bei fotolia noch jede Menge
940
+ Photos in der Warteschlange, die ich mit Stichworten (als das Verschlagworten
941
+ mit diesem Programm noch nicht automatisch erledigt wurde), und Kategorien
942
+ versehen muß. Auch bei Photocase habe ich eine Warteschlagen von einigen Bildern,
943
+ die dort bestätigt oder abgelehnt werden müssen. Diese beiden Sachen werden um
944
+ keinen Deut schneller, selbst wenn ich fünfmal so viele Dateien in der gleichen
945
+ Zeit hochladen kann. Der Flaschenhals liegt also ganz wo anders.
946
+
947
+ Ich werde deshalb den parallelen Ansatz erstmal wieder fallen lassen. Falls mir
948
+ allerdings jemand triftige Gründe für parallelen Upload nennen
949
+ kann, werde ich gerne noch mal darüber nachdenken.
950
+
951
+ h2. File-Typen bei verschiedenen Photo-Sites
952
+
953
+ Verschiedene Sites akzeptieren verschiedene Dateitypen. Wenn du nur JPG-Dateien
954
+ verwendest, kann du den Rest des Abschnitts überspringen, da JPG-Dateien von
955
+ jeder (bisher realisierten) Site akzeptiert werden.
956
+
957
+ Falls du jedoch mit .TIFF oder .PSD Dateien arbeiten willst, so ist zu beachten,
958
+ daß die eine Site vielleicht JPG + TIFF annimmt, während die andere JPG + PSD
959
+ Dateien annimmt. Ich habe deshalb in die einzelnen Klassen die jeweils akzeptierten
960
+ Dateitypen eingebaut. Falls eine Site einen bestimmten Dateityp nicht akzeptiert,
961
+ wird eine Warnung ausgegeben und diese Datei nicht gesendet. Das heißt, eine
962
+ von dir hochzuladende .PSD Datei wird nur an diejenigen Sites gesendet, die
963
+ diese akzeptieren und verarbeiten können.
964
+
965
+
966
+ Falls du der Meinung bist, daß ein Dateityp bei einer bestimmten Klasse von mir
967
+ noch vergessen wurde, teile es mir bitte per eMail mit! Ich werde es dann umgehend
968
+ für das nächste Release korrigieren.
969
+
970
+ Bitte beachten: Falls nur zum Beispiel nur eine Site .PSD-Dateien akzeptiert,
971
+ dann wird nach dem Senden der Datei an diese Site, die Datei als an alle Sites
972
+ gesendet angesehen (denn sie wurde ja an alle Sites hochgeladen, die diesen Typ
973
+ akzeptieren und wird beispielsweise bei --list-done und --purge-done aufgelistet
974
+ und ggf. ins done-Directory verschoben. Falls eine Site nachträglich irgendwann
975
+ noch .PSD Dateien verarbeiten kann und du diese nachträglich noch senden willst,
976
+ kannst du die Dateien vom done-Directory ggf. wieder ins upload-Directory
977
+ verschieben und beim nächsten Senden wieder uploaden
978
+
979
+ h2. Timeout beim Senden eines Files
980
+
981
+ Ich habe ein Timeout von 10 Minuten für das Übertragen einer Datei eingebaut. Das
982
+ heißt, falls eine Datei nach 10 Minuten immer noch nicht fertig übertragen wurde,
983
+ führt dies zu einem Abbruch der Verarbeitung (für diese Datei). Dies geschah,
984
+ um bei Problemen bei einer einzelnen Site nicht auch noch die anderen Übertragungen
985
+ zu behindern. Bei meiner Konfiguration dauerten auch die längsten Uploads nicht
986
+ mehr als 7 Minuten.
987
+
988
+ Falls dieses Limit bei dir zu Problemen im normalen Betrieb führt, weil du
989
+ entweder eine zu langsame Leitung oder zu große Dateien überträgst, melde dich
990
+ bitte bei mir und ich werde mir vielleicht noch eine andere Lösung überlegen.
991
+
992
+ Wenn du nicht davor zurückschreckst, den Programmcode selbst zu ändern, kannst
993
+ du diesen Wert auch in der Datei bin/multistockphoto (nach 'timeout' suchen)
994
+ selbst ändern.
995
+
996
+
997
+ h2. Neue Site zum Senden
998
+
999
+ Wenn ich eine neue Site aufnehme und alte Photos, die bereits an andere Sites
1000
+ gesendet wurden, auch an diese neue Site senden will, kann ich theoretisch
1001
+ alle Dateien aus dem 'done' Ordner wieder in den 'upload' Ordner verschieben.
1002
+ Dort wird dann auch im Laufe der Zeit die alten Photos an die neue Site gesendet.
1003
+
1004
+ Da es mir jedoch zu unuebersichtlich ist, die alten Dateien wieder komplett drin
1005
+ zu haben, weil ich dann schlech überblicken kann, wo ich noch Tags ergänzen muß,
1006
+ habe ich mir ein kleines Ruby-Skript geschrieben.
1007
+
1008
+ <pre>require 'rubygems'
1009
+ require 'multistockphoto'
1010
+ require 'fileutils'
1011
+ include FileUtils
1012
+
1013
+ ROT_PREFIX = '_rot'
1014
+ PICTURE_FILES = /(.PNG|.JPG|.JPEG|.GIF|.EPS|.AI|.PSD|.PDF|.TIF|.TIFF)$/
1015
+
1016
+ # erzeugt Dateiname einer tags Datei zu einer uebergebenen Photodatei,
1017
+ # egal, ob tags-Datei wirlich existiert oder nicht
1018
+ def tagsfilename(picturefilename)
1019
+ ext = File.extname(picturefilename)
1020
+ tagsfile = picturefilename.sub(ext,".tags")
1021
+ return tagsfile
1022
+ end
1023
+
1024
+ # Test, ob zu einer Photodatei eine tags-Datei existiert
1025
+ def tagsfile?(picturefilename)
1026
+ return File.exist?(tagsfilename(picturefilename))
1027
+ end
1028
+
1029
+ def pick_files(n)
1030
+ list = []
1031
+ count = 0
1032
+ allfiles = Dir.glob(File.join('done','*'))
1033
+ allfiles.each {|filename|
1034
+ next if File.basename(filename)[0,4] == ROT_PREFIX
1035
+ if filename.upcase =~ PICTURE_FILES
1036
+ list << filename
1037
+ end
1038
+ }
1039
+ while count < n do
1040
+ filename = list[rand(list.size)]
1041
+ photo = Photo.new(filename)
1042
+ puts filename
1043
+ puts "cp #{filename} upload/#{File.basename(filename)}"
1044
+ cp(filename,"upload/"+File.basename(filename))
1045
+ if tagsfile?(filename)
1046
+ puts "tags-file existiert auch"
1047
+ puts "cp #{tagsfilename(filename)} upload/#{File.basename(tagsfilename(filename))}"
1048
+ cp(tagsfilename(filename),"upload/"+File.basename(tagsfilename(filename)))
1049
+ end
1050
+ count += 1
1051
+ end
1052
+ end
1053
+
1054
+ pick_files(2)
1055
+ </pre>
1056
+
1057
+ Dieses Skript kopiert aus dem 'done' Ordner jeweils ein paar zufällig ausgewählte
1058
+ Dateien in den
1059
+ Upload-Ordner, wo sie entweder auch an die neue Site gesendet oder mit 'purge-done'
1060
+ nach dem Upload wieder in den done-Ordner verschoben werden.
1061
+
1062
+ Die Zahl im 'pick_files()' Aufruf am Schluß gibt die Anzahl der Files an (hier 2).
1063
+ Diese Zahl kann je nach persönlichen Vorlieben variiert werden.
1064
+
1065
+ Dies hat den Vorteil, daß nicht alle Photos auf einmal wieder im upload-Ordner
1066
+ erscheinen, sondern nach und nach.
1067
+
1068
+ Wer diesen Vorgang automatisieren will, kann einen Crontab-Eintrag (Linux/Unix)
1069
+ folgender Art vornehmen:
1070
+
1071
+ <pre>0 12 * * * (cd /home/tp/multistockphoto; /usr/local/bin/ruby dejavu.rb)</pre>
1072
+
1073
+ h2. Forum
1074
+
1075
+ "http://groups.google.com/group/multistockphoto":http://groups.google.com/group/multistockphoto
1076
+
1077
+
1078
+ h2. How to submit patches
1079
+
1080
+ Read the "8 steps for fixing other people's code":http://drnicwilliams.com/2007/06/01/8-steps-for-fixing-other-peoples-code/ and for section "8b: Submit patch to Google Groups":http://drnicwilliams.com/2007/06/01/8-steps-for-fixing-other-peoples-code/#8b-google-groups, use the Google Group above.
1081
+
1082
+ TODO - pick SVN or Git instructions
1083
+
1084
+ The trunk repository is <code>svn://rubyforge.org/var/svn/multistockphoto/trunk</code> for anonymous access.
1085
+
1086
+ OOOORRRR
1087
+
1088
+ You can fetch the source from either:
1089
+
1090
+ <% if rubyforge_project_id %>
1091
+
1092
+ * rubyforge: "http://rubyforge.org/scm/?group_id=<%= rubyforge_project_id %>":http://rubyforge.org/scm/?group_id=<%= rubyforge_project_id %>
1093
+
1094
+ <pre>git clone git://rubyforge.org/multistockphoto.git</pre>
1095
+
1096
+ <% else %>
1097
+
1098
+ * rubyforge: MISSING IN ACTION
1099
+
1100
+ TODO - You can not created a RubyForge project, OR have not run <code>rubyforge config</code>
1101
+ yet to refresh your local rubyforge data with this projects' id information.
1102
+
1103
+ When you do this, this message will magically disappear!
1104
+
1105
+ Or you can hack website/index.txt and make it all go away!!
1106
+
1107
+ <% end %>
1108
+
1109
+ * github: "http://github.com/GITHUB_USERNAME/multistockphoto/tree/master":http://github.com/GITHUB_USERNAME/multistockphoto/tree/master
1110
+
1111
+ <pre>git clone git://github.com/GITHUB_USERNAME/multistockphoto.git</pre>
1112
+
1113
+
1114
+ TODO - add "github_username: username" to ~/.rubyforge/user-config.yml and newgem will reuse it for future projects.
1115
+
1116
+
1117
+ * gitorious: "git://gitorious.org/multistockphoto/mainline.git":git://gitorious.org/multistockphoto/mainline.git
1118
+
1119
+ <pre>git clone git://gitorious.org/multistockphoto/mainline.git</pre>
1120
+
1121
+ h3. Build and test instructions
1122
+
1123
+ <pre>cd multistockphoto
1124
+ rake test
1125
+ rake install_gem</pre>
1126
+
1127
+
1128
+ h2. License
1129
+
1130
+ This code is free to use under the terms of the MIT license.
1131
+
1132
+ h2. Contact
1133
+
1134
+ Comments are welcome. Send an email to "Thomas Preymesser":mailto:thopre@gmail.com email
1135
+ or via the "forum":http://groups.google.com/group/multistockphoto
1136
+