Import nach iPhotos in event album

M

Maverick258

Mitglied
Thread Starter
Dabei seit
07.04.2014
Beiträge
33
Reaktionspunkte
1
Hallo zusammen!

Ich habe mir ein Skript geschrieben, dass im Finder ausgewählte Bilder nach iPhotos in ein Album importiert. Das funktioniert soweit auch gut. Nach ein paar Importen musste ich aber feststellen, dass dabei für jedes einzelne importierte Bild ein eigenes Ereignis (event album) angelegt wird.
Ist es möglich, dass alle Bilder, die beim durchlauf des Skripts importiert werden auch nur in einem Ereignis zusammengefasst werden?
Ich weiß, dass ich nicht der erste bin, der über das Problem stolpert, aber eine Lösung habe ich noch nirgends gefunden.
Vielen Dank!


Hier der Kern des Skrips:

tell application "iPhoto"
set theAlbum to new album name theName -- Neues Album mit dem Namen des Ordners anleben
repeat with i from 1 to count of imageList -- Alle ausgewälten Bilder importieren
set theImport to item i of imageList as alias
import from theImport to theAlbum without force copy
end repeat

end tell
 
Probier mal direkt die imageList als alias list zu importieren ohne die Schleife. Ich habe leider kein iPhoto mehr und kann daher leider auch die Befehle nicht nachschlagen oder das ausprobieren.
 
Hallo Pill,
danke für die Antwort, aber die Idee hatte ich auch schon. Funktioniert leider nicht. Der Befehl kann wohl nur ein Objekt pro aufruf importieren.

Hier
https://punctuatednoise.wordpress.com/tag/iphoto/
habe ich gefunden, dass es wohl nicht geht, ohne anderweitig die Datenbank von iPhotos zu bearbeiten. So fit bin ich dann aber auch nicht im Programmieren.
Ich suche noch weiter nach anderen Lösungen.
 
Habe jetzt mal etwas rumgebastelt und einen Workarrount gefunden, der für mich vorerst funktioniert. Vielleicht kennt ja jemand noch ein paar Verbesserungen.

Vorab:
Der import-Befehl für iPhotos importiert einzelne Bilder oder alle Bilder in einem übergebenen Ordner. Übergibt man einen Ordnerpfad wird in iPhotos auch nur ein Ereignis (event album) erzeugt. Bei einzelnene Bilder wird für jedes Bild dann auch ein Ereignis erzeugt.
Nun möchte ich in einem Ordner im Finder einzelne Bilder auswählen und dies nach iPhotos importieren, so dass sie alle auch in einem Ereignis stehen. Da ich die Bilder nicht in die Datenbank kopieren möchte (without force a copy) muss der Ordner, von dem sie importiert werden auch der sein, wo sie nachher noch liegen.

Der Ablauf sieht bei mir jetzt in etwas so aus. Ich wähle alle Bilder in einem Ordner aus (cmd+a).
Dann deselsktiere ich die Bilder, die ich importieren möchte.
Skript starten:
Das Skript erzeugt jetzt einen temporeren Ordern in den alle ausgewählten Dateien (also die, die nicht nach iPhotos sollen) verschoben werden.
Im Ornder verbleiben die zu importierenden Bilder, die dann mit der Übergabe des Ordnerpfades an den import-Befehl importierte werden.
Anschließend werden die Bilder aus dem temporeren Ordner zurückverschoben und der temporere Ordner gelöscht.
Ein Problem gibt es noch. Nach dem Importieren und vor dem zurückschieben der Bilder muss man anscheinend mal auf die Bremse treten. Ich habe das mit dem Display Dialog gemacht. Sonst werden doch immer alle Bilder importiert. Keine Ahnung warum. Vielleicht kennt da ja jemand noch eine Lösung, die eleganter ist. Vorerst funktioniert es für mich aber so.

tell application "Finder"
set theSelection to selection -- Auswahl übergeben
set theName to name of folder of item 1 of theSelection -- Name des Ordners in der ausgewählten Bilder ermitteln
set theSource to folder of item 1 of theSelection as alias -- Pfad des Ordners dessen Inhalt importiert werden soll
set TempFolder to make new folder at container of container of item 1 of theSelection with properties {name:"TEMP"} --Temporäten Ornder erzeugen
move theSelection to TempFolder --Ausgewählte Bilder verschieben
tell application "iPhoto"
set theAlbum to new album name theName -- Neues Album mit dem Namen des Ordners anleben
import from theSource to theAlbum without force copy
end tell
display dialog "Importiert" --ohne diese "Bremse" werden alle Bilder importiert, warum auch immer
move every file of TempFolder to theSource --Bilder zurück verschieben
if ((count of items of TempFolder) > 0) then -- Wenn TempOrnder leer, dann löschen.
display dialog "Nicht leer"
else
delete TempFolder
end if
end tell
 
Zurück
Oben Unten