Hotfolder -> dateien automatisch speichern?

P

Player1

Neues Mitglied
Thread Starter
Dabei seit
08.01.2004
Beiträge
8
Reaktionspunkte
0
heyho zusammen!!

ich suche seit einer ewigkeit eine möglichkeit bilder automatisch speichern zu lassen!
wir haben hier das problem, dass alle daten die rausgehen vorher am MAC gespeicher werden müssen. (wir arbeiten mit PCs und MACs)

jetzt benötige ich ein programm, in dem ich einen ordner auf dem server angeben kann, das mir dann diesen überwacht und automatisch alle bilder die da reingespeichert werden öffnet, speichern und in einen "fertig" ordner verschiebt! Vgl. Distiller

es geht nicht mit der PS stapelverarbeitung, da man keine überwachungsfunktion von ordnern einstellen kann.
Hab mir auch schon PS scripting angeschaut, bin aber mit AS\VB\JS gar nicht vertraut!

vielleicht weiss einer von euch wie ich das lösen kann, oder hat noch besser sogar einen heißen freewaretooltip

danke
 
Spontan...

...würden mir da die Ordneraktionen von Panther einfallen, aber ich bin nicht firm in der Benutzung... :-(
Wer hat damit schon was gemacht und kann helfen? Bzw. wer kennt sich mit AppleSkript aus? :D

Gruß, Vevelt.
 
Hallo,

hast du schon mal das Script "Hot_Upload" angeschaut? Suchst du so etwas?

Link

Hot_Upload ist eine Ordneraktion für OS X. Weist man dieses Skript einem Ordner als Ordneraktion zu, wird dieser praktisch zu einem Hot-Folder.
 
erstmal danke für die schnelle antwort und die tips! :)

@Vevelt: leider steht mir hier nur OS9 sowie das normale OSX zu verfügung!

@dylan: soweit ich das von meinem PC aus verstanden habe, ist das script nur zum uploaden von dateien auf einen FTP server zuständig. (werds aber morgen mal am MAC nochmal genau ausprobieren, ob es mir weiterhilft)

der sinn von dem ganzen ist, dass eben der PC dateiheader entfernt wird und mit einem MAC header versehen wird (also auch mit kleiner MAC vorschau usw...)

An den bildern sollen keine änderungen vorgenommen werden!
lediglich öffnen >speichern > schliessen.

Benutzte formate wären: eps und tif
 
Hallo,

ja, mit Panther und einer Ordneraktion dürfte sowas eigentlich gehen (was heißt: "...das normale OS X" - 10.2?). Bei mir, 10.3., hätte ich auch ein (ähnliches?) Script gefunden, das bei einem Test gerade eben einen zugewiesenen Ordner überwacht hat und z. B. einem jpg-Bild das Vorschau.app-Icon in eine Miniaturansicht verwandelt hat. Ich weiß aber nicht, inwieweit sich das auf den Dateiheader auswirkt und ob das genau das ist, was du suchst. Wie Vevelt schon sagte: jetzt müsste mal ein AppleScript-Fachmann ran - Andi, bist du da?

:confused:

Hab die Aktion trotzdem mal angehängt (heißt "Add Icon"):

property done_foldername : "Original Images"
-- the list of file types which will be processed
-- eg: {"PICT", "JPEG", "TIFF", "GIFf"}
property type_list : {"JPEG", "TIFF", "PNGf"}
-- since file types are optional in Mac OS X,
-- check the name extension if there is no file type
-- NOTE: do not use periods (.) with the items in the name extensions list
-- eg: {"txt", "text", "jpg", "jpeg"}, NOT: {".txt", ".text", ".jpg", ".jpeg"}
property extension_list : {"jpg", "jpeg", "tif", "tiff", "png"}


on adding folder items to this_folder after receiving these_items
-- CHECK FOR THE DESTINATION FOLDER WITHIN THE ATTACHED FOLDER
-- IF IT DOESN'T EXIST, THEN CREATE IT
tell application "Finder"
if not (exists folder done_foldername of this_folder) then
make new folder at this_folder with properties {name:done_foldername}
set current view of container window of this_folder to list view
end if
set the target_folder to folder done_foldername of this_folder
end tell
-- PROCESS EACH OF THE ITEMS ADDED TO THE ATTACHED FOLDER
try
repeat with i from 1 to number of items in these_items
set this_item to item i of these_items
set the item_info to the info for this_item
-- CHECK TO SEE IF THE ITEM IS AN IMAGE FILE OF THE ACCEPTED FILE TYPE
if (alias of the item_info is false and the file type of the item_info is in the type_list) or (the name extension of the item_info is in the extension_list) then
tell application "Finder"
-- LOOK FOR EXISTING MATCHING ITEMS IN THE DESTINATION FOLDER
-- IF THERE ARE MATCHES, THEN RENAME THE CONFLICTING FILES INCREMENTALLY
my resolve_conflicts(this_item, target_folder)
-- MOVE THE ITEM TO THE DESTINATION FOLDER
set the target_file to (move this_item to the target_folder with replacing) as alias
end tell
-- PROCESS THE ITEM
process_item(target_file)
end if
end repeat
on error error_message number error_number
if the error_number is not -128 then
tell application "Finder"
activate
display dialog error_message buttons {"Cancel"} default button 1 giving up after 120
end tell
end if
end try
end adding folder items to

on resolve_conflicts(this_item, target_folder)
tell application "Finder"
set the file_name to the name of this_item
if (exists document file file_name of target_folder) then
set file_extension to the name extension of this_item
if the file_extension is "" then
set the trimmed_name to the file_name
else
set the trimmed_name to text 1 thru -((length of file_extension) + 2) of the file_name
end if
set the name_increment to 1
repeat
set the new_name to (the trimmed_name & "." & (name_increment as string) & "." & file_extension) as string
if not (exists document file new_name of the target_folder) then
-- rename to conflicting file
set the name of document file file_name of the target_folder to the new_name
exit repeat
else
set the name_increment to the name_increment + 1
end if
end repeat
end if
end tell
end resolve_conflicts

-- this sub-routine processes files
on process_item(this_item)
-- NOTE that the variable this_item is a file reference in alias format
-- FILE PROCESSING STATEMENTS GOES HERE
try
-- convert alias reference to string
set this_item to this_item as string
with timeout of 900 seconds
tell application "Image Events"
launch -- always use with Folder Actions
set this_image to open file this_item
save this_image with icon
close this_image
end tell
end timeout
on error error_message
tell application "Finder"
activate
display dialog error_message buttons {"Cancel"} default button 1 giving up after 120
end tell
end try
end process_item
 
so hab mich nochmal schlau gemacht!
wir haben hier momentan OS X 10.1, aber der umstieg auf panther ist geplant, jedoch noch an keinem genauen datum festgemacht.

Aber mit so einem applescript wär das glaube ich wirklich am besten lösbar! Allerdings bin ich da total auf eure hilfe angewiesen, weil ich keine ahnung vom genauen syntax habe. (versteh aber grob was in etwa passiert)

diesbezüglich habe ich noch das gefunden:
http://www.pdfnews.de/html/tipps/015.html

vielleicht kann man darauf irgendwie aufbauen?!

Da wir verschiedene Bildprofile; RGB\4C daten in verschiedenen Formaten haben muss mehr oder weniger der photoshop den speichervorgang übernehmen, bzw diesen mit einer simplen aktion durchführen:

alles auswählen -> auswahl aufheben -> speichern -> schliessen

("alles auswählen" deswegen, damit ich "speichern" kann und nicht erst über "speichern unter..." noch meherere, sich änderende optionen einstellen muss)

Das script muss dann nurnoch (ich rede mir wieder leicht ;)) die daten im hotfolder regelmäßig (5-10 minuten) in den PS schieben und die speicheraktion starten.


erstmal schönen abend noch und vielen dank für eure hilfe!
 
...

Hallo Player1,

Ordneraktionen gibts bei 10.1.x nicht. Ob die in der Classicumgebung laufen, weiß ich jetzt gar nicht. Unter OS 9 aber schon. Es gibt vorgefertigte Ordneraktionen. Du brauchst Hinzugefügen-Objekte Warnung glaub so heißt das ungefähr. Der Ordner muss übrigens geöffnet bleiben, damit das funktioniert. Statt der Warnmeldung fürst Du die PS-Aktion durch. Die Aktion findest Du in Systemordner/Skripte/Ordneraktionen-Skripte. Anfügen mit Kontextmenü.

tell application "Photoshop"
do script "deinepsaktion"
end tell

Aber mal was Anderes. Du kannst doch die PS-Aktion als Droplett speichern. Das legst Du in den Ordner und wenn jemand eine Datei drauffallen lässt, wird die Aktion ausgeführt. Ob das auch vom PC geht?

Gruß Andi
 
zu meiner entschuldigung muss ich gestehen, dass die dropletfunktion bis jetzt heimlich an mir vorbeigegangen ist!
Aber damit scheint es wirklich zu funktionieren!!
clap

ich werde das mal soweit einrichten und im netzwerk testen.
falls das nicht so das wahre ist, probier ich mal ob ich mit dem script weiterkomme.

soweit hätte sich dann mein problem erstmal gelöst!

ein riesen dankeschön für eure schnelle und wirklich ausgezeichnete hilfe!


Grüße
Player1


edit:
habs gerade übers netzwerk getestet.. es funktioniert leider nicht! Das droplet wird immer auf dem rechner ausgeführt, der die daten auf das droplet zieht. Werd mich jetzt dem script mal zuwenden...
 
Zuletzt bearbeitet:
...

Hallo Player1,

schade.

Ich versuch mal ein paar Zeilen, kann aber jetzt nicht testen.

on adding folder items to after receiving bilder
my Speichern(bilder)
end adding folder items to

on Speichern(bilder)
repeat with b in bilder
tell Application "Photoshop"
do script "PSAktion"
end tell
end repeat
end Speichern

Damit der Ordner auch offen bleibt:

on closing folder window for derOrdner
tell Application"Finder" to open derOrdner
end tell
end on closing folder window for

Kannst es ja mal so probieren ;)

Gruß Andi
 
moin!!

habe endlich wieder bisschen zeit gefunden, da mal weiterzumachen :)

erstmal danke für das script andi!
habe es ausprobiert aber steig noch nicht ganz durch.

den ersten teil aktzeptiert er soweit ohne syntax fehler:

--------------------------------------------
on adding folder items to after receiving bilder
my Speichern(bilder)
end adding folder items to

on Speichern(bilder)
repeat with b in bilder
tell application "Adobe Photoshop 7.0" do script "PStestaktion"
end tell
end repeat
end Speichern

--------------------------------------------

bei dem zweiten teil (der den ordner offen halten soll) kommt: expected "end" but found "end tell"


und was mir noch unklar ist:
der anfang:
on adding folder items to after receiving bilder
my Speichern(bilder)

ich muss dort ja sicherlich irgendwie meinen ordner angeben, der überwacht werden soll...
also beispielsweise ein netzwerkordner:
//scripts/PSaktion

wie binde ich denn den pfad in das script ein?!
oder muss ich das doch mit dem Hinzugefügen-Objekte Warnung script machen?

:confused:

danke,
grüße
player1
 
bin wieder etwas weitergekommen..
hab eine seite gefunden, auf der ich was brauchbares gefunden habe:

ganz unten...
http://www.powermacintosh.de/applescript/finder/inhalt.html

das sollte doch genau das richtige für mich sein!
hab das soweit auch schon getestet, nur tut sich nichts.

den teil zwischen "on Dodatei" hab ich gegen dashier ersetzt:

tell application "Adobe Photoshop 7.0"
do script "PStestaktion"
end tell


jetzt 2 fragen...

1. stimmt das script so, oder fehlt noch was?

2. wie starte ich denn das script richtig, dass es immer im hintergrund läuft?! bei einem doppelklick wird es im scripteditor geöffnet und wenn ich auf "ausführen" klicke passiert nichts.



freue mich über jede hilfe!

danke
player1
 
...

Hallo Player1,

bei der Ordneraktion musst Du überhaupt keinen Pfad angeben. Du speicherst es als kompiliertes Skript und hängst es über das Kontextmenü (Rechtsklick auf den Order) an den Ordner an. Du kannst es nicht im Skript Editor ausprobieren. Wichtig ist noch, in Erweiterungen Ein/Aus, ob Ordneraktionen aktiv sind. Die neueste Apple Script Version sollte es auch sein.

Zu dem andern Skript. Dieses musst Du Als Programm ohne Startdialog und nicht automatisch Beenden speichern. Dann läuft es im Hintergrund.

Gruß Andi
 
muahhaaa!
also das zweite script hab ich zum laufen bekommen.
(http://www.powermacintosh.de/applescript/finder/inhalt.html)

wenn ich nun meine bilder reinziehe werden sie vom photoshop geöffnet, gespeichert und in den fertig ordner verschoben!
(ihr glaubt gar nicht was ich für ein grinsen drauf hatte als ich es das erstemal getestet hatte :D )

jetzt gibts aber immernoch ein problem:
da die daten vom PC kommen, erkennt der MAC nicht immer, dass er sie mit dem photoshop öffnen soll. (entweder kommt ein auswahlfenster, in dem ich ein programm zum öffnen auswählen kann) oder er öffnet sie direkt im picture viewer...

mein on DoDatei teil sieht nun so aus:

---------------------------------
on DoDatei(Datei)

tell application "Adobe Photoshop 7.0"
open Datei
do script "PStestaktion"

end DoDatei

---------------------------------

ich habe den "open datei" befehl manuell eingefügt, NACHDEM PS7.0 angesprochen wurde, in der annahme, dass er die daten dann auch mit diesem öffnet.
was aber nicht der fall ist....

wie sage ich denn jetzt dem script, dass es alle dateien die in dem ordner landen im PS öffnet?!

müsste doch eigentlich sowas in der art sein:
open Datei with application "Adobe Photoshop 7.0"

also sinngemäß ;-)


ich wünsche schonmal ein schönes wochenende und vielen dank im vorraus für eure hilfe!!
 
ich malwieder :rolleyes:

hänge immernoch an der gleichen stelle, weiss jetzt aber was das problem ist.

ich muss den creator der datei ändern.


-----------------------------------
on opening folder this_folder

tell application "Finder"

set creator type of every file of folder this_folder to "8BIM"
set file type of every file of folder this_folder to "TIFF"

end tell

end opening folder
-----------------------------------
(quelle: http://www.fischer-bayern.de/phpBB2/viewtopic.php?t=563)

wenn ich diese aktion nun an den überwachten ordner anhäng funktioniert es nur, wenn ich den ordner öffne. (on opening folder) er soll das aber selbstständig machen, ohne dass ich jedesmal den ordner öffnen muss.

bitte bitte gebt mir einen tip!!
das ist die letzte hürde um das ding komplett zum laufen zu bekommen, so wie ich mir das denke :p


edit: ok habs nun halbwegs hinbekommen!
die lösung heisst:
on adding folder items to this_folder

dann gehts! :)
 
Zuletzt bearbeitet:
Zurück
Oben Unten