script ili automator rješenje za ovo
(1 korsinik/a gleda/ju temu) (1) Gost

script ili automator rješenje za ovo


24.03.2009 | 16:12
E, da... AppleScript rješenje (kad već vozimo paralelni slalom) se svodi na dodavanje dvije linije koda nakon "make new folder" linije:

set txtRef to open for access (lokacija & (paragraph redniBroj of popisFoldera) & ":" & paragraph redniBroj of popisFoldera & ".txt")
close access txtRef

S obzirom da počinjemo ponavljati kobasicu "paragraph redniBroj of popisFoldera", red je staviti je u varijablu, da se ne računa svaki put iznova pa kompletan kod glasi...

-- PRISTUPAMO POPISU FOLDERA
-- popisRef je pokazatelj na odabranu tekstualnu datoteku koja sadrži popis foldera
-- prikazujemo sistemski izbornik datoteka
set popisRef to (choose file with prompt "Odaberi tekstualnu datoteku koja sadrži popis foldera:" of type {"TEXT"})
-- pristupamo datoteci koja sadrži popis foldera
open for access popisRef
-- učitavamo kompletan sadržaj datoteke u varijablu popisFoldera
-- pritom koristimo UTF8, zbog potencijalnih domaćih karaktera u nazivu foldera
set popisFoldera to (read popisRef as «class utf8»)
-- zatvaramo datoteku koja sadrži popis foldera
close access popisRef

-- LOKACIJA NA KOJOJ KREIRAMO FOLDERE
-- folderi će biti kreirani tamo gdje se nalazi ova skripta
set lokacija to POSIX file ((POSIX path of (path to me)) & "/..") as text

-- KREIRAMO POJEDINE FOLDERE KORISTEĆI FINDER
-- I U NJIMA DATOTEKU ISTOG IMENA, S EKSTENZIJOM ".txt"
tell application "Finder"
	-- postavljamo brojač koji ćemo koristiti za pristup pojedinoj liniji teksta
	set redniBroj to 1
	-- ponavljamo petlju onoliko puta koliko ima linija teksta u popisFoldera
	repeat (number of paragraphs in popisFoldera) times
		-- ako je linija teksta prazna, ignoriramo je
		-- u protivnom kreiramo folder i dodjeljujemo mu ime sadržano u liniji teksta
		if paragraph redniBroj of popisFoldera is not equal to "" then
			-- formiramo ime foldera u posebnoj varijabli (jer ga koristimo više puta)
			set imeFoldera to (paragraph redniBroj of popisFoldera)
			-- kreiramo folder, koristeći formirano ime
			make new folder at lokacija with properties {name:imeFoldera}
			-- kreiramo u tom folderu datoteku koristeći isto ime, dodajući joj ".txt" ekstenziju
			set txtRef to open for access (lokacija & imeFoldera & ":" & imeFoldera & ".txt")
			-- zatvaramo datoteku koju smo upravo kreirali
			close access txtRef
		end if
		-- uvećavamo brojač za 1
		set redniBroj to (redniBroj + 1)
		-- kraj petlje
	end repeat
	-- kraj obraćanja Finderu
end tell
Tema zaključana.
24.03.2009 | 16:27
trebaš složeniji problem? no frks

varijacija ovoga zadatka. sada u svakom folderu stvori tekstualnu datoteku koja nosi ime foldera. dakle ako se folder zove "prvi folder" neka sadrži datoteku "prvi folder.txt"

Sjetio sam se banalnog primjera kako ovaj request minimalno zakomplicirati - tek toliko da AppleScript rješenje dobije smisao - nakon što kreiramo tekstualnu datoteku, njen label promijeniti u crveno!

Dovoljno je u kod, nakon "close access txtRef" dodati redak:

set label index of item (lokacija & imeFoldera & ":" & imeFoldera & ".txt") to 2

P.S. "2" je crveno.
Tema zaključana.
24.03.2009 | 16:43
Evo isto i u perlu:
#!/usr/bin/perl
# Ovo gore govori shellu sto da koristi za izvrsavanje skripte

# Datoteka koja je ulaz za podatke
$ulaz="direktoriji.txt";

# Otvorimo file i kreiramo file handle ili izbaci gresku ako se file ne moze otvoriti
open(PODACI, $ulaz) || die("Ne mogu otvoriti datoteku!");

# Spremimo zadrzaj u array
@redovi=<PODACI>;

# Zatvori file handle
close (PODACI);

# Za svaki element u arrayu izvrsimo nesto
foreach $red(@redovi) {
chomp $red;
`mkdir "$red"`;
`touch "$red/$red.txt"`;
}
Tema zaključana.
24.03.2009 | 19:06
Evo isto i u perlu:
open(PODACI, $ulaz) || die("Ne mogu otvoriti datoteku!" );

O-ho! Sad smo uveli i error checking. Ali ništa od labeliranja, a? A?


P.S. Mogli bi za ovogodišnji iParty pripremiti malo ovakvih mozgalica, rješivih u bilo čemu.
Tema zaključana.
24.03.2009 | 20:20
Sto je labeliranje?

A tko ce se natjecati, ja, ti i Delovski?
Tema zaključana.
24.03.2009 | 21:40
Sto je labeliranje?

Ono kad nazivu ikone na desktopu dodijeliš neku boju, iz Findera (Label je opcija u meniju, nudi par predefiniranih boja).

A tko ce se natjecati, ja, ti i Delovski?

Ajde, ajde... ne budi pesimist. Možda ovakvi postovi zaintrigiraju još koga pa se mala zajednica Mac programera pretvori u nešto što nećemo više moći izbrojati na prste.
Tema zaključana.
25.03.2009 | 16:45
hm... a jel vam ovo malo veći izazov?

iz itunes biblioteke svim pjesmama dodijeliti rating temeljem broja slušanja. npr. 5 slušanja je 1 zvjezdica, 10 2 zvjezdice, 15 - 3, 20 - 4 i 25 - 5. S tim što ako pjesma već ima rating koji je manji nego što bi bio da se gleda samo broj slušanja neka se taj rating prilagodi tj. poveća na odgovarajući broj, a ukoliko pjesma ima rating veći nego što bi bio samo temeljem broja slušanja, neka ga zadrži.

p.s zašto u ovom topicu moram proširiti safari preko skoro 17-18" na mom monitoru da vidim cjelokupni tekst svakog posta, a na drugim topicima na jabučnjaku to ne moram?
Tema zaključana.
25.03.2009 | 17:04
Ovo cu prepustiti Applescriptovcu.
Sto se prikaza tice, iz nekog razloga Firefox i Safari ne postuju overflow property u kucici za prikaz koda...Opera (opet) radi dobro pa nisam to primjetio. Sredit cu nesto veceras da ne bude problem ni drugdje...
Tema zaključana.
25.03.2009 | 19:28
hm... a jel vam ovo malo veći izazov?

iz itunes biblioteke svim pjesmama dodijeliti rating temeljem broja slušanja. npr. 5 slušanja je 1 zvjezdica, 10 2 zvjezdice, 15 - 3, 20 - 4 i 25 - 5. S tim što ako pjesma već ima rating koji je manji nego što bi bio da se gleda samo broj slušanja neka se taj rating prilagodi tj. poveća na odgovarajući broj, a ukoliko pjesma ima rating veći nego što bi bio samo temeljem broja slušanja, neka ga zadrži.

Nije veći izazov, i dalje je trivijalno, s tom razlikom da sad nije u pitanju Finder nego iTunes. Ali ovo bar u startu izlazi iz domene shella pa je AppleScript rješenje u startu logičan izbor.

Ovo je hipotetski zadatak kojim pokušavamo ocijeniti "stupanj izazova" ili ti treba skripta?
Tema zaključana.
25.03.2009 | 19:56
Evo, ovo je stvarno zanimljiv zadatak, a takva skripta bi čak bila i istinski korisna. Ja bih još dodao da se "slušanjem" ne smatra ako je pjesma svirala manje od 10% svog cjelovitog trajanja (dakle, ako sam pjesmu od 3 minute slušao sveukupno s premotavanjem manje od 18 sekundi, to slušanje se ne broji kao slušanje).

Jel ti to dovoljno komplicirano?
Tema zaključana.
25.03.2009 | 22:03
Evo, ovo je stvarno zanimljiv zadatak, a takva skripta bi čak bila i istinski korisna.

Dobro, onda je ima smisla i napisati.

Ja bih još dodao da se "slušanjem" ne smatra ako je pjesma svirala manje od 10% svog cjelovitog trajanja (dakle, ako sam pjesmu od 3 minute slušao sveukupno s premotavanjem manje od 18 sekundi, to slušanje se ne broji kao slušanje).

Pa i ne smatra se (bar se nije smatralo zadnji put kad sam se s tim igrao). Ako se dobro sjećam, play count se poveća tek par sekundi prije kraja pjesme, što mi djeluje sasvim razumno kao trigger. Također, koliko mi je poznato (ne mogu provjeriti, nisam trenutno na Macu), iTunes pamti samo play count podatak ne i neki meta-data koliko je pojedini play trajao. Da bi se implementirao algoritam koji predlažeš (a bez podataka o trajanju pojedinog playa temeljem kojih bi se "ispravno" određivao play count), AppleScript bi trebao glumiti deamona i trošiti CPU cikluse tako da kontinuirano pinga iTunes i provjerava status playa. Inteligentnije rješenje (razmišljam na glas) bi bio event handler kojeg bi iTunes mogao triggati, ali iTunes (koliko mi je poznato) ne trigga nikakve event handlere pa od te ideje nikakve koristi. Ako zadovoljava defaultno ponašanje iTunesa, vrijedi prethodno rečeno - i dalje je trivijalno.

Jel ti to dovoljno komplicirano?

U principu, ne. Dok god AppleScripta radi u okviru samo jednog tell bloka (tell "Finder" ili tell "iTunes" ) i dok god je problem rješiv koristeći standardni dictionary pojedine aplikacije (kojoj se obraćamo), trivijalan je. Ideja koju si načeo nije trivijalna zbog toga što bi trebala obraditi (defaultno) nepostojeću informaciju (do koje može doći zaobilaznim putem i samo taj zaobilazak je ne-trivijalan). Međutim, zanimljiviji zadaci su oni koji POVEZUJU aplikacije. Često aplikacija ima neki svoj vlastiti skriptualni jezik s kojim se unutar nje same može riješiti željeni automatizam. Međutim, kad takva aplikacija mora komunicirati s drugom, spas je u AppleScriptu - pod uvjetom da ga obje podržavaju, naravno.

Evo, bubam ideju na tom tragu, koja nije shell-compliant a koja je i dalje vezana uz iTunes: neki utility koji je u stanju registrirati kad mu registrirani BT device (mobitel != iPhone :-> ) uđe u range (npr. Blue Phone Elite), prepozna tko dolazi, pročita iz notes polja u AddressBooku naziv njegove (ili njene) omiljene pjesme i pusti je u play u iTunesima. Diskretna najava skorog ulaska poznate osobe u prostor, a dotičnoj uvijek iznova mami osmijeh činjenica da svaki put kad uđe, začuje svoju omiljenu pjesmu. Tri aplikacije surađuju za potpuni doživljaj.
Tema zaključana.
25.03.2009 | 23:51
Sto se prikaza tice, iz nekog razloga Firefox i Safari ne postuju overflow property u kucici za prikaz koda...


Ovdje to radi super: forums.macrumors.com/showthread.php?t=674268

View Source baš pokazuje taj overflow tag. Kod tog overflowa na takvim stranicama mene zapravo smeta što je vidljivi dio prekratak. Ne znam zašto ga namještaju na 640 pixela... a možda je u tom grmu zec?!

Igor
Tema zaključana.
25.03.2009 | 23:54
Evo i skripte. Molim primjetiti da ima više komentara nego linija koda. Ovog puta sam se sjetio pretvoriti tabove u spejsove pa će biti čitljivija.
tell application "iTunes"
    -- postavljamo redni broj (pjesme) na 1
    set redniBroj to 1
    -- petlja koju ponavljamo onoliko puta koliko ima pjesama u libraryu    
    repeat (count of tracks of library playlist 1) times
        -- postavljamo referencu na pojedinu pjesmu
        set pjesma to track redniBroj of library playlist 1
        -- čitamo trenutni rating pjesme
        set trenutniRating to rating of pjesma
        -- čitamo broj slušanja pjesme
        set brojSlusanja to played count of pjesma
        -- računamo novi rating:
        -- iTunes rating bilježi u rasponu od 0 do 100
        -- rating 20 = 1 zvjezdica, rating 40 = 2 zvjezdice ...
        -- ako je rating > 100, automatski postaje 100
        set noviRating to (brojSlusanja * 4)
        -- postavljamo novi rating samo ako je veći od trenutnog
        if trenutniRating < noviRating then set rating of pjesma to noviRating
        -- uvećavamo brojač kako bi u sljedećem ponavljaju petlje pristupili sljedećoj pjesmi
        set redniBroj to (redniBroj + 1)
        -- kraj petlje
    end repeat
    -- kraj obraćanja iTunesima
end tell

Malo sam pojednostavnio dio s kalkulacijom ratinga. Trik je u tome što, kao što sam naveo u komentarima, iTunes zapravo čuva rating kao brojku u rasponu od 0 do 100, ne čuva "od 0 do 5", kako bi netko mogao pomisliti nakon što mu iTunes dopusti da odabere "None" ili 1-5 zvjezdica. iTunes uredno pokazuje i "1/2" oznaku na mjestu zvjezdice pa pjesma može imati i 3,5 zvjezdica. john_st je tražio cjelobrojne zvjezdice (možda ne znajući da može dobiti i ove, polovične?) pa bi takva verzija kalkulacije trebala raspone svoditi na 0, 20, 40, 60, 80 i 100. iTunes sam radi "clamp" vrijednosti većih od 100 pa nije potrebno ni provjeriti da li je noviRating, izračunat na ovaj način, veći od 100. To je programerski no-no, ali ovdje ćemo ga zlorabiti jer možemo. Novi rating se računa tako da se broj slušanja jednostavno pomnoži s 4, što znači da s 10 slušanja imamo "score" 40, a to iTunes interpretira kao "2 zvjezdice".

Nadam se da je sad jasnije zašto je trivijalno.
Tema zaključana.
26.03.2009 | 00:05
IgorD je napisao:

Ovdje to radi super: forums.macrumors.com/showthread.php?t=674268

View Source baš pokazuje taj overflow tag. Kod tog overflowa na takvim stranicama mene zapravo smeta što je vidljivi dio prekratak. Ne znam zašto ga namještaju na 640 pixela... a možda je u tom grmu zec?!


A to ti je voodoo...u tvari idem ja smanjiti font, to mi je najlakse kao brzi fix a i tako je malo velik.
Tema zaključana.
26.03.2009 | 00:11
Yep, jasno je... Kamo sreće da je više vremena za proučiti...

Kako se zna koja aplikacija zna pričati s AppleScriptom i u kojoj mjeri, tj. koje komande kuži?
Tema zaključana.
26.03.2009 | 00:15
Kako se zna koja aplikacija zna pričati s AppleScriptom i u kojoj mjeri, tj. koje komande kuži?

File/Open Dictionary u Script Editoru. Izlista sve aplikacije koje su instalirane na stroju, a da koriste AppleScript. Kad odabereš aplikaciju čiji dictionary želiš vidjeti, prvo će se učitati sama aplikacija, a potom prikazati njen dictionary u kojem je sve uredno posloženo (zaviri, bit će ti jasno).
Tema zaključana.
26.03.2009 | 00:46
Hvala!
Tema zaključana.
26.03.2009 | 15:59
Vidim da nitko nije pa ću onda ja , cijela ova priča oko kreiranja direktorija u
Objective-C:


	
        NSMutableString *newPath = [NSMutableString string];
	NSFileManager *fileManager = [NSFileManager defaultManager];
	
	NSString *text = [NSString stringWithContentsOfFile:@"/Users/john/Desktop/john.txt"];
	
	NSArray *lines = [text componentsSeparatedByString:@"\\n"];
	
	int i;
	for(i=0;i<[lines count];i++)
	{
		[newPath setString:@"/Users/john/Desktop/"];
		[newPath appendFormat:[lines objectAtIndex:i]];
		
		[fileManager createDirectoryAtPath:newPath attributes:nil];
		NSLog([lines objectAtIndex:i]);
	}

Tema zaključana.
26.03.2009 | 16:20
Što se ove drugr skripte tiče to je puno jednostavnije napraviti kao Djipi nego kroz Objective-C pošto je iTunes Carbon aplikacija, te bi za to trebalo raditi Carbon bridge da bi se upravljalo. Može se naravno, ali ne ovako jednostavno, osim ako se ne upotrijebi neki gotovi framework za rad s iTunes.
Tema zaključana.
26.03.2009 | 18:51
Vidim da nitko nije pa ću onda ja , cijela ova priča oko kreiranja direktorija u
Objective-C:

Bravo! Sad smo i to pokrili. Iako... "problem" i s ovim i s prvim C rješenjem je u tome što onaj tko će ih znati iskompajlirati, vjerojatno bi ih sam znao i napisati.

Jel' probao netko problem rješiti s Automatorom? Jel' uopće to spada u njegovu domenu (nisam ga nikad koristio)?


@Riba: vidiš da nas ima još za iParty coding-competition!
Tema zaključana.
Moderatori: Bertone
  • Stranica:
  • 1
  • 2

Vikalica™

Zadnja poruka: pred 1 tjedan, 1 dan
  • smayoo: piši u forum
  • user: Ako zna netko kako dobiti njihovu zadnju poznatu lokaciju to bi bilo korisno
  • user: pretražio sam sve itd.
  • user: Već sam "play sound" aktivirao, ništa
  • user: nestale mi Airpods 4, what do? Piše "No location found" u FindMy.
  • user: ljudi,
  • CoffeePod: Cijeli 26 relase je bio sramotan za Apple i morali su “double down” i back to the lab da sve tweakaju kako su trebali
  • CoffeePod: Performansi i ulickani dizajn je ono sto treba
  • CoffeePod: Iskreno ne razumjem vas kojima je ovo “dosadno”. Stvarno morate ici taknuti travu.
  • dpasaric: Objavio sam osvrt na naslovnici, pa tamo komentirajte...
  • drlovric: Meni je Siri skroz OK, upakirali su to lijepo. Ocekivano ce vecina puno ovih stvari iic na pretplatu jer trosi compute (i Gemini) resurse. Lejpse mi izgleda UI jer smanjuju prozirnost :)
  • dpasaric: Što je najbolje nećemo imati niti Siri AI jer je EU učinila sve da se to regulatorno zabrani.
  • pontmax1: A dosade, imate li nešto više od šugave SIri AI
  • drlovric: Kao da ce roditelji ovo raditi. Otkljucat ce im sve i cao.
  • drlovric: Smorise sa ovom djecom :) Nestvarno...
  • dpasaric: Za sada dosadno za poludit... :)
  • dpasaric: I ja imam niska očekivanja, pa da vidimo! :)
  • dpasaric: Kreće za 5 minuta! :)
  • drlovric: Meni su ocekivanaj jako nisko. Pricati ce o Siri, koja ce opet doci kao beta. Pa ce raditi kako treba u inacici 27.4 :) Volio bih da grijesim, ali vise im ne vjerujem na rijec.
  • ping: Bit će to zanimljiva večer. Kupio sam dvije vrečice indijskih oraščića i planiram još barem mali paket Munchmallowa.
  • dpasaric: Danas u 19h WWDC! :)
  • Riba: user, ne upisuj admin password ano ne znas tko i zasto te pita i to je u osnovi to.
  • Yonkis: U Berlinu se otvara Developer Centar [link]
  • user: kako biti siguran od virusa na Macu? Sad ću reinstalirati OS i želim biti siguran.
  • user: bok ljudi,
  • Yonkis: Mene, kao prišlića, iznenadilo koliko je puno zastupljeniji Viber nego WhatsApp a Signal skoro nitko nije ni čuo (osim jabučnjaka). Zanimljivo.
  • Riba: Za tajne stvari imam pisacu masinu. :)
  • Riba: Ja imam instalirano sve pa tko kako hoce.
  • drlovric: Sve koje znam koriste Whatsapp. Viber, je isto popularan. Kao i Telegram. Signal nije bas zastupljen u mojim krugovima :)
  • dpasaric: Hehe, odlično, ja sam odavno prebacio sve na Signal.
  • Performita: Hvala Smayoo, Kako je Davor napisao ispod članka, i ja ebo čitam knjigu i lagano sve prijatelje, osobito one koji nemaju iPhone nagovaram na Signal.
  • smayoo: svima koje znam, to jest. :)
  • smayoo: skinuo i proslijedio link svima koji su još sposobni čitati knjige... :)
  • Performita: Ekipa, idemo sad svi skinuti besplatnu knjigu Guya Kawasakija da mu na administraciji stranice pokaže kako je odjeknulo u Hrvatskoj ;-)
  • dpasaric: Jest sitni sat, ali je published! :) Uživajte!
  • Yonkis: [link]
  • Yonkis: Baš baš sve!
  • Djuro genijalac: Izgleda da je BAŠ sve ovdje
  • Djuro genijalac: [link]
  • Yonkis: Hooorayyyy [link]
  • dpasaric: Radim na tome da nabavim zanimljiv monitor za tehnički review, držite palčeve da upali jer bi moglo biti mnogima zanimljivo. :)
  • Yonkis: Font je drugačiji.
  • Performita: :-)
  • dpasaric: Pogledajte naslovnicu! :)
  • dpasaric: Taaaa-daaaa! :)
  • dpasaric: Javim uskoro... :)
  • dpasaric: Ne, ovdje na Jabučnjaku!
  • Yonkis: dpasaric - Jel' u Kokolu?
  • dpasaric: Spremamo poslasticu za večeras! :)
  • ivan.ocd: Hvala za konkretni model, budem i ja pogledao za takav neki model… imam puno knjiga koje trrba analizirati i tu je onda preslab.

Za vikanje moraš biti prijavljen.

Prijava

Prisutni jabučari

Riba, Anonimci (546)

Novo na Jabučnjaku

Teme

Poruke

Oglasi

Anketa

Koji Mac koristite?

Page Speed 0.74 Seconds

Provided by iJoomla SEO