Applescript / Automator pomoć molim
(1 korsinik/a gleda/ju temu) (1) Gost

Applescript / Automator pomoć molim


  • Dijete
  • Posjetitelj
08.04.2009 | 21:41
Bok ljudovi..

Treba mi skripta koja bi mi pročitala trajanje quicktime filma i dodala u ime fajla u finderu.. bilo bi krasno kad bi dodala u obliku xxyy do je x minuta a y sekunde.. frejm mi nije važan, ali ak se ne može drugačije, može i xxyyzz gdje je zz frejm.. trebalo bi dodati to u kraj imena..

Pokušao sam pronać način, ali nikako mi ne pada na pamet kako pročitati trajanje fajla pa eto.. lijepo molim pomoć jer mi je potrebno to ubacit u par tisuća fajlova, a ne da mi se ručno jer nemam vremena..


Hvala na svakom inputu..
09.04.2009 | 01:20
Pokušao sam pronać način, ali nikako mi ne pada na pamet kako pročitati trajanje fajla


Trik je u "ticksima". QuickTime vrijeme sprema u property "duration", ali ta brojka je relativna i ovisi propertyu "time scale".

tell application "QuickTime Player"
  set movieRef to (choose file with prompt "Odaberi film:")
  open movieRef
  tell document 1
    set movieDuration to round (duration / time scale) rounding as taught in school
    close
  end tell
end tell
display dialog movieDuration

Gornji kod traži da odabereš datoteku (film), a potom ispiše njezino trajanje u sekundama (zaokruženi duration/time scale). Dalje je lako.
09.04.2009 | 01:24
Trivije radi, preporučam obratiti pozornost na "rounding as taught in school".
09.04.2009 | 07:43
Ekipa koja je radila na razvoju AppleScripta očito je patila od viška vremena.
09.04.2009 | 21:08
ovaj apple script me svaki dan sve više oduševljava! hahahaha!! koja ekipa...
09.04.2009 | 21:43
Djipi je napisao:
Trivije radi, preporučam obratiti pozornost na "rounding as taught in school".


Meni je to odmah palo u oči. Ništa me u životu nije moglo spremiti na tako nešto. Nadam se da ću jednog dana imati vremena bar malo imati vremena za AppleScript.

Igor
  • Dijete
  • Posjetitelj
11.04.2009 | 11:10
Hvala...

al mogu se na trepavice postavit, meni to ne dela.. zmrzne mi se nakon sto otvori i zatvori movie... i nigdje mi ne pokaze trajanje.. e sad, cak i kad bi mi pokazao, ne bi mi to bilo dost jer mi mora nekak doda u ime fajla trajanje...

jadan li sam..
11.04.2009 | 11:38
Pokaže u dialog boxu (primjetit ćeš da nešto "skakuće" u Docku - dialog box, samo što nije "in front" pa ne vidiš dok ne switchaš na njega).

Ali ajmo ovako: napiši TOČAN format imena fajla koji ti treba (npr. ako se fajl sada zove "moj fajl 1.mov", na kraju se treba zvati "moj fajl 1_00:03.mov", što bi značilo da traje 3 sekunde), onako kako tebi paše. Vodi računa o tome da je teoretski moguće imati broj minuta veći od 99 pa reci što se događa kad je u pitanju, primjerice 100 minuta. Piše li 100:00.mov na kraju ili nešto drugo? Jesu li potrebne leading zeros (00:03) ili može i bez njih (0:3)?

I kako želiš scripti prosljediti fajlove? Tako da ih selektiraš (ikonice) i drag&dropneš na AppleScript fajl (koji se u tom slučaju naziva "droplet") ili tako da odabereš folder (JEDAN!) u kojem su filmovi, koristeći standardni open dialog? Ili nešto treće?

Ako mi sve bude jasno, napišem skriptu kad se vratim na komp.
  • Dijete
  • Posjetitelj
11.04.2009 | 19:44
Na dobrom si tragu..

eto sad sam konacno doma sjeo i kopipejstao tvoj primjer i stvarno radi.. u dialog boxu mi ispise trajanje u sekundama..

Imam gomilu .dv i .mov fajlova (više .dv) kojima moram dodat trajanje u naziv.. fajl se zove dijete se kupa.dv i trebalo bi se zvat dijete se kupa_00:04.dv gdje se dijete kupa 4 sekunde

S obzirom da ne može biti : iliti dvotočja u imenu fajla, neka se zove dijete se kupa_0004.dv

Niti jedan filmić nije dulji od 30 minuta pa mi odgovara prikaz xxyy...

Svejedno je da li je "droplet" ili po odabiru direktorija.. važno je samo da ne moram rucno otvarat, pogledat koliko traje pa upisat..

Počeo sam skupljat medvejede da te počastim s par pivica..
12.04.2009 | 00:31
neka se zove dijete se kupa_0004.dv

-- DurationQT
-- (11/04/2009) 1.00 release

on run
	display dialog "Drag multiple movies or a single movie folder onto this icon!"
end run

on open draggeditems
  set sourcefiles to filelistFromSelection(draggeditems)
  -- main loop
  repeat with thisFile in sourcefiles
    -- get movie duration
    tell application "QuickTime Player"
      set movieRef to thisFile
      open movieRef
      tell document 1
        set movieDuration to round (duration / time scale) rounding as taught in school
        close
      end tell
    end tell
    -- format duration stamp (mmss)
    set thisMinutes to movieDuration div 60 -- minutes
    set thisSeconds to movieDuration mod 60 -- seconds
    if (thisMinutes < 100) then
      set thisMinutes to text -2 thru -1 of ("00" & thisMinutes)
    end if
    set thisSeconds to text -2 thru -1 of ("00" & thisSeconds)
    -- rename file
    set thisInfo to info for thisFile
    set thisName to name of thisInfo
    set thisDot to offset of "." in thisName
    set thisLen to length of thisName
    if (thisDot > 0) then
      set thisPrefix to text 1 thru (thisDot - 1) of thisName
      set thisSuffix to text (thisDot + 1) thru thisLen of thisName
      set newName to (thisPrefix & "_" & thisMinutes & thisSeconds & "." & thisSuffix)
    else
      -- no extension
      set thisPrefix to thisName
      set newName to (thisPrefix & "_" & thisMinutes & thisSeconds)
    end if
    tell application "Finder"
      set the name of thisFile to newName
    end tell
  end repeat
end open

-- returns dragged files OR files at first level of one dragged folder
on filelistFromSelection(theselection)
  set hasfolder to false
  tell application "Finder"
    repeat with thisItem in (theselection as list)
      if (class of item thisItem is folder) or (class of item thisItem is disk) then
        set hasfolder to true
      end if
    end repeat
  end tell
  if ((count item of (theselection as list)) > 1) and hasfolder then
    display dialog "Drag multiple files or a single folder." buttons {"OK"} default button 1
    return ""
  end if
  tell application "Finder"
    if hasfolder then
      set filelist to (every item of folder (item 1 of (theselection as list))) as alias list
    else
      set filelist to (theselection as list)
    end if
  end tell
  return filelist
end filelistFromSelection
Evo, uživaj. Snimi ga iz Script Editora kao Application (File Format, u Save As dialogu). Radi kao droplet i to tako da na njega dovučeš ili grupu fajlova ili JEDAN folder. Ne radi rekurzivno pa ne možeš imati foldere u folderima, kao ni više od jednog foldera umjesto grupe fajlova. Nema ugrađeno ni testiranje vrste fajla pa budi siguran da fajlove koje dovučeš na droplet QT može uredno pročitati. Formatiranje imena radi kako si opisao, s tim da ako je minutaža duža od 99, broj znamenki posvećen minutama nije više ograničen na dvije nego se koristi onoliko znamenki koliko je potrebno - defaultno koristi leading zeros (po dvije znamenke za minute i sekunde) za formatiranje.
12.04.2009 | 00:38
E, da... radi uredno i s fajlovima koji NEMAJU ekstenziju.
  • Dijete
  • Posjetitelj
12.04.2009 | 10:19
Djipi, što da kažem, osim velko hvala.. i nastavljam sa skupljanjem kovanica za pivicu il vinčeko crno.. ova skripta mi zlata vrijedi.. Ja bi jo u kod i dodao tvoje ime..

btw, koliko sam u ovih par minuta probavanja kuzio, radi kak spada.. Hvala hvala hvala hvala..

Nosim si externi na posao danas pa cu ga opsezno testirat

HVALAAAAAAA..
  • Dijete
  • Posjetitelj
12.04.2009 | 12:48
Update..

radi i sa fajlovima koji imaju ekstenziju..

Ukoliko u sredini fajla postoji točka u imenu, dodat će trejanje prije te točke..

Dogodide se da javi da ne može upisati pa vjerujem da je razlog dijakritičke prirode jer proradi nakon preimenovanje fajlova bez dijakritičkih..

Uglavnom, sve sam za sad preimenovao i superiška.. my hero..
12.04.2009 | 23:20
Update..
Ukoliko u sredini fajla postoji točka u imenu, dodat će trejanje prije te točke..
Dogodide se da javi da ne može upisati pa vjerujem da je razlog dijakritičke prirode jer proradi nakon preimenovanje fajlova bez dijakritičkih..

Skripta je napisana tako da ekstenziju locira na bazi prve točke na koju naiđe, tražeći s lijeva. To je ujedno i uzrok problema s našim znakovima: kad broji gdje se nalazi točka, naše znakove broji kao dva znaka. Toliko o Unicode supportu.

No, to ne znači da nema lijeka. Skripta u nastavku koristi malo inteligentniju logiku: kreće od pretpostavke da je ekstenzija ono što se nalazi iza zadnje točke. Uzima u obzir i granični slučaj kad na kraju naziva postoji točka, ali je ona ujedno i zadnji karakter - u tom slučaju tretira naziv kao da NEMA ekstenziju. Pod uvjetom da nemaš dijakritičke znakove u ekstenziji (domaći.čaj), sad će raditi uredno. Ili bi barem trebalo (nisam se polomio od testiranja).

-- DurationQT
-- (11/04/2009) 1.00 release
-- (12/04/2009) 1.01 update: extension finding is now based on the last dot

on run
	display dialog "Drag multiple movies or a single movie folder onto this icon!"
end run

on open draggeditems
	set sourcefiles to filelistFromSelection(draggeditems)
	-- main loop
  repeat with thisFile in sourcefiles
    -- get movie duration
    tell application "QuickTime Player"
      set movieRef to thisFile
      open movieRef
      tell document 1
        set movieDuration to round (duration / time scale) rounding as taught in school
        close
      end tell
    end tell
    -- format duration stamp (mmss)
    set thisMinutes to movieDuration div 60 -- minutes
    set thisSeconds to movieDuration mod 60 -- seconds
    if (thisMinutes < 100) then
      set thisMinutes to text -2 thru -1 of ("00" & thisMinutes)
    end if
    set thisSeconds to text -2 thru -1 of ("00" & thisSeconds)
    -- rename file
    set thisInfo to info for thisFile
    set thisName to name of thisInfo
    set reversedName to reverse of characters of thisName as text
    set thisDot to offset of "." in reversedName -- find last dot
    set thisLen to length of thisName
    set thisDot to (thisLen - thisDot + 1)
    if (thisDot < thisLen) then
      set thisPrefix to text 1 thru (thisDot - 1) of thisName
      set thisSuffix to text (thisDot + 1) thru thisLen of thisName
      set newName to (thisPrefix & "_" & thisMinutes & thisSeconds & "." & thisSuffix)
    else
      -- no extension (even when ending with dot!)
      set thisPrefix to thisName
      set newName to (thisPrefix & "_" & thisMinutes & thisSeconds)
    end if
    tell application "Finder"
      set the name of thisFile to newName
    end tell
  end repeat
end open

-- returns dragged files OR files at first level of one dragged folder
on filelistFromSelection(theselection)
  set hasfolder to false
  tell application "Finder"
    repeat with thisItem in (theselection as list)
      if (class of item thisItem is folder) or (class of item thisItem is disk) then
        set hasfolder to true
      end if
    end repeat
  end tell
  if ((count item of (theselection as list)) > 1) and hasfolder then
    display dialog "Drag multiple files or a single folder." buttons {"OK"} default button 1
    return ""
  end if
  tell application "Finder"
    if hasfolder then
      set filelist to (every item of folder (item 1 of (theselection as list))) as alias list
    else
      set filelist to (theselection as list)
    end if
  end tell
  return filelist
end filelistFromSelection
14.04.2009 | 18:57
Vezano na "rounding as taught in school"...

Danas sam čeprkao po dokumentaciji za Cocou i naletio na ovaj tip podatka: NSRoundingMode

typedef enum {
   NSRoundPlain,
   NSRoundDown,
   NSRoundUp,
   NSRoundBankers
} NSRoundingMode;


Škola se ne spominje, ali se spominju bankari. Možda drugim rječima sve to znači da nas u školi uče jedno, ali oni u banci zaokružuju po svom.

Igor
14.04.2009 | 20:20
Škola se ne spominje, ali se spominju bankari. Možda drugim rječima sve to znači da nas u školi uče jedno, ali oni u banci zaokružuju po svom.

NSRoundBankers je ekvivalent AppleScriptovom "rounding to nearest". Uz opasku da "NSRoundBankers" zvuči jasnije (u odnosu na ono što radi i gdje mu je primjena) od AppleScriptove verzije koja bi se trebala zvati "rounding to nearest even" da bude jasna.
15.04.2009 | 01:00
A koji je školski?
15.04.2009 | 13:46
A koji je školski?

Školski je kad se 0,5 zaokružuje na 1. Razlika između školskog i bankarskog je u tome što će i školski i bankarski 1,5 zaokružiti na 2, ali će zato školski zaokružiti 2,5 na 3 (prvi veći), a bankarski na 2 (najbliži parni).

Kada bi "banka" radila po školskom, nastala bi velika disproporcija zaokruživanja. Zaokruživanje na najbliži parni, na duge staze ujednači distribuciju zaokruženih vrijednosti pa suma razlika između početnih i zaokruženih brojeva teži k nuli.
Moderatori: Bertone
  • Stranica:
  • 1

Vikalica™

Zadnja poruka: pred 1 sat, 25 minuta
  • Bertone: Gdje? Ja vidim samo stari nedostupni M2 za 799
  • stefanjos: 799
  • stefanjos: a evo ih
  • stefanjos: dobro sto ovaj istyle ceka sa ponudom...
  • Zdravac: na Apple Mađarska su cijene kao u DE, a može se odabrati HR tipkovnica
  • m@xym: Naravno, sve to ne vrijedi za naše tržište jer kod nas vrijede neka druga pravila.... Kod nas je Air sa 8 GB 200 € skuplji of Air-a sa 16 GB u Njemačkoj.
  • m@xym: Zašto bi inače Apple davao "besplatan" i tihi upgrade za baš sve strojeve iz game (Studio čak počinje sa 32 GB RAM-a i M2 MAX procesorom!!!)
  • m@xym: S obzirom da nitko ne daje nešto što ne mora, postavlja se pitanje kako će novi strojevi raditi sa 16 GB RAM-a i uključenim AI dijelom OS-a.... Možda su 32 GB upravo postala ono što je bilo 16 GB na starim strojevima...
  • Yonkis: Mora biti 16GB da bi korisnici imali UX za AI, sve manje od toga ne zadovoljava. Sami su si "jamu" iskopali, baš mi ih je žao :)
  • m@xym: Još samo da shvate da umjesto 256 GB trebaju staviti 1 TB SSD... za istu cijenu... :o)
  • m@xym: Ne samo Air-ovi, nego i svi ostali... Očito je Apple AI veliki potrošač memorije.
  • Piko: Ne znam da li je itko uočio ... Ali svi Airovi dolaze po defaultu sa 16 GB RAM-a .... a cijena ista kao i prije za 8 :)
  • dpasaric: Evo i MacBook Pro M4...
  • mbp2009: nece ni biti jos
  • stefanjos: na istyleeu i dalje nema cijena....
  • dpasaric: Eto osvrt na Mac mini M4 na naslovnici...
  • kupus: Evo, otvorit ću temu pa da ne pisemo ovdje
  • kupus: Hvala Bertone
  • Bertone: *ništ
  • Bertone: @kupus, pa nije to nišz novo oko audio izlaza s prednje strane, HDMI će otpeljati zvuk u monitor, a večina današnjih monitora ima audio out priključak.
  • stefanjos: mea culpa
  • stefanjos: kupus, sada kuzim sto si mislio. mislio sam na ovu ogavnu naslovnicu koju su stavili ovi lol
  • imar: Imam osjećaj da će se ovaj novi Mac Mini prodavati ko' vruće kifle.. :D
  • dpasaric: Top model Mac minija = 4.700 € hahahahahah
  • dpasaric: [link]
  • dpasaric: Evo novi Mini je vani!
  • MoschuS: DE Store ima cijene 699, 929, 1159 i 1649 za Pro
  • MoschuS: Bas i ja gledam taj 3.5mm jack i pitam se zasto je naprijed!?
  • kupus: Minusi : ista cijena storage upgradea, headphone jack s prednje strane? Kako misle spojiti zvucnike na to?
  • kupus: Plusevi : 3 monitora, gigabit ethernet kao standard, ista početna cijena, 16gb ram
  • kupus: Legit je :) Jonny Ive je već dugo na aparatima, navodno i na lifesupportu otkad je vidio novi iMac :)
  • MoschuS: Evo i Minija ;)
  • kupus: Nije ni studio baš proprcionalan, ako ćemo tako
  • kupus: Vidi ove screenshotove, ne njihov render. Meni izgleda poprilično legit, a to i potvrđuje činjenica da su navedene screenshote i maknuli s weba
  • stefanjos: stvarno mislis da ce tako bez proporcionalno sranje izaci iz applea? doslovno se vidi da je fake
  • kupus: mini leakan, bar s prednje strane [link]
  • Piko: ma što se mene tiće ne mora imati slova gore .... ali mi treba svjetlo da nađem pepeljaru i upaljač :)
  • Yonkis: @piko očekuje se da je tipkanje na slijepo defaultno za usera.
  • Piko: magična tipkovnica još uvijek nema pozadinsko svjetlo .... ;-(
  • dpasaric: Evo novi iMac M4. Ništa zanimljivo nema, samo novi procesor i više memorije u osnovnoj konfiguraciji.
  • drlovric: Isto kao nedostatak hrvatskih titlova na Apple TV. A pokrili bi trziste 4-5 drzava sa tom malom modifikacijom slovenskih. Al ne moraju, pa sto bi :)
  • miomika: ma gle...ako mogu kotolirati sve te feture putem DNS-a po svakoj državi, zašto to onda uopće daju u EU. I zašto nema nigdje JASNO napisano. "Call record ne radi u cijeloj EU", točno se sojeća ono.....osveta za USB-C. ma Idiotizam na najjače..a tek one pizdarije da Aple One nije dostupan u .hr, ali je u Sloveniji....ma...sve više i više mi se sve to jako gadi
  • drlovric: Zao mi je samo ljudi koji su potrcali da kupe nove mobitele radi inteligencije. To ije bio bas inteligentan potez :D
  • drlovric: Sveje to jos uvijek poluproizvod, i zvanicno u Beta fazi. Imam osjecaj da ce se to taman popeglati dok dodje na EU trziste. Tako da, ne bih se ja tu nist aisjecao zakinutim ni nervirao :)
  • miomika: u banani....ko da smo u zimbabwe--u...mislim, ovo nadjebavanje EU-USA, preregulirana EU, oni stave update, koji niti jedan od fetaure-a ne radi. Da bi radilo, trebalo bi jailbreakat uređaj. Koja je poruka poslana ovime?
  • Zdravac: Do travnja 2025. ce proraditi i u EU
  • miomika: ja sam sad na drugom telefonu stavio svoj stari US AppleID i proradio je Call record i na čekanju sam s AI. pokušat ću s glupim trikom, ali mi je stvar preglupa.......
  • drlovric: Nakon pola sata aktivirali su mi AI. Siri animacija je prekrasna i moram priznati da je malo manje tupava. Neke stvari su iznenadjujuce dobre (za Siri). Ali nije to jos Google Assistant razina.
  • miomika: RU=EU :)
  • miomika: Ne radi niti RSC, niti previev summarize..MA NIŠTA!!!

Za vikanje moraš biti prijavljen.

Prijava

Prisutni jabučari

Novo na Jabučnjaku

Teme

Poruke

Oglasi

Komentari

Anketa

Koji Mac koristite?

Page Speed 1.04 Seconds

Provided by iJoomla SEO