Script för Compressor droplet

Tråden skapades och har fått 11 svar. Det senaste inlägget skrevs .
1

Jag försöker göra ett AppleScript som kopplas till en mapp, och när man droppar videofiler i mappen ska de processas med en Compressor-droplet (Compressor är ju inte scriptbart i sig), men jag får inte till det. Jag har inte hållit på särskilt mycket med AppleScript, så jag har mest kollat andra script och gissat mig fram.
Filen öppnas i dropleten, som heter MPEG-4 LAN, men hur får jag dropleten att processa fieln? Om någon kan påpeka vad jag gör fel skulle jag vara tacksam.

on adding folder items to this_folder after receiving these_items
	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
			if (alias of the item_info is false) then
				process_item(this_item)
			end if
		end repeat
	end try
end adding folder items to

on process_item(this_item)
	try
		tell application "MPEG-4 LAN"
			launch
			open file (this_item as string)
			submit this_item
		end tell
	end try
end process_item

Hmm, enligt den info jag hittat går det inte.

Löste det, visade sig att det finns en kryssruta när man startar dropleten för att den inte ska fråga i fortsättningen. Visste inte det, inte tillräckligt insatt i Compressor.

Nu är nästa problem att få scriptet att vänta tills hela filen kopierats till dropfoldern om man kopierar via nätverk. Finns det något kommando för att kolla om filen är klar? En vanlig delay räcker nog inte, för storleken på filerna kan ju skifta väldigt.
Förslag mottages tacksamt.

  • Medlem
  • Gävle
  • 2006-02-13 16:37

Håller på med exakt samma sak.

Jag löste det såhär, verkar funka.

on adding folder items to this_folder after receiving these_items
	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
			if (alias of the item_info is false) then
				repeat
					set size1 to size of item_info
					delay 10
					set size2 to size of item_info
					if size1 is equal to size2 then exit repeat
				end repeat
				process_item(this_item)
			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 process_item(this_item)
	try
		tell application "MPEG-4 LAN"
			launch
			open file (this_item as string)
		end tell
	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

Nytt är alltså att innan jag processar filen låter scriptet kolla storleken, vänta, och sedan kolla storleken igen, och se om det är någon skillnad på värdena.

repeat
	set size1 to size of item_info
	delay 10
	set size2 to size of item_info
	if size1 is equal to size2 then exit repeat
end repeat
  • Medlem
  • Gävle
  • 2006-02-14 10:59

Fungerar ju riktigt bra! Tack ska du ha.
Mitt enda problem nu är att jag ska få scriptet att flytta på filen efteråt...
Som det är nu flyttar den filen innan Dropleten är klar.

Jag låter inte scriptet flytta filen alls, man kan ju ställa in i dropleten var den färdiga filen ska läggas. Vill man fortsätta behandla filen kan man ju ha ett nytt script på den mappen där man väljer att lägga filen.

  • Medlem
  • Gävle
  • 2006-02-15 00:29

Tänkte flytta orginalfilen.
Skulle behöva göra två olika versioner av samma film.

  • Medlem
  • Gävle
  • 2006-02-16 10:12

Nu fungerar det, har ändrat lite i ditt script Magnus. Först ett script som flyttar filen, sen ditt script som kör igång en dropplet sen väntar den några sekunder och kör igång nästa dropplet.
Sen lägs allt i en mapp som är utdelad över webben och har ett php-script som visar alla filer i den mappen. Yay!

Men nog tycker man att det borde finnas ett sätt för Applescript att kolla om en fil är upptagen eller inte?

Ursprungligen av Creops:

Nu fungerar det, har ändrat lite i ditt script Magnus. Först ett script som flyttar filen, sen ditt script som kör igång en dropplet sen väntar den några sekunder och kör igång nästa dropplet.
Sen lägs allt i en mapp som är utdelad över webben och har ett php-script som visar alla filer i den mappen. Yay!

Men nog tycker man att det borde finnas ett sätt för Applescript att kolla om en fil är upptagen eller inte?

Tror jag läst att det finns det, men det fungerar tydligen inte så bra, om jag kommer ihåg rätt.

  • Medlem
  • Gävle
  • 2006-02-16 10:44

HIttade detta, verkar vara en plugin som man sen kan scripta.

http://darkware.blogspot.com/2005/03/qfiler-v201.html

  • Medlem
  • Gävle
  • 2006-02-16 11:07

Upptäkte helt plötsligt att man kan göra en dropplet som innehåller flera Templates, så den gör automatiskt två olika filmer

1
Bevaka tråden