Denna delen av 99 uppdateras inte längre utan har arkiverats inför framtiden som ett museum.
Här kan du läsa mer om varför.
Mac-nyheter hittar du på Macradion.com och forumet hittar du via Applebubblan.
Linus Söderlind
  • Plats Stockholm
  • Registrerad 2005-06-05
  • Senast aktiv 2008-01-29
  • Antal inlägg 372

Foruminlägg

De senaste inläggen Linus Söderlind har skrivit i forumet.

Nyttig läsning om underhållsskripten i Mac OS X
http://www.thexlab.com/faqs/maintscripts.html

Efter lite pulande och mycket googlande kom jag fram till följande:

tell application "System Events"
	if (name of processes) does not contain "iTunes" then
		return "iTunes is not playing"
	end if
end tell

set returnString to ""
set dontList to {"Musik", "Radio", "Podcaster"}
tell application "iTunes"
	if player state is stopped then
		return "iTunes is not playing"
	end if
	try
		if name of current playlist is in dontList then
			return "iTunes is not playing a playlist"
		end if
		repeat with bar in tracks of current playlist
			if name of bar is name of current track then
				set returnString to returnString & "->"
			end if
			set returnString to returnString & tab & name of bar & " - " & artist of bar & "ZaZaZaZaZ"
		end repeat
		return returnString
	end try
	return "iTunes is not playing a playlist"
end tell

Lite fashinerande med Applescript hur läsbart det blir.

Byt ut " - " mot tab i skriptet så lägger det in en tab istället för -. Problemet är att artistnamn är så olika långa så jag valde - istället.

Måste tipsa om mitt favoritprogram GeekTool http://projects.tynsoe.org/en/geektool/

Med GeekTool så kan du lägga outputen från shellscript på skrivbordet. Dessa uppdateras sedan med ett intervall du sätter i programmet. Jag skrev ihop ett Applescript som skriver ut playlisten som spelas just nu och markerar sången som spelas.

set returnString to ""
tell application "iTunes"
	set foo to tracks of current playlist
	repeat with bar in foo 
		if name of bar is name of current track then
			set returnString to returnString & "->"
		end if
		set returnString to returnString & tab & name of bar & " - " & artist of bar & "ZaZaZaZaZ"
	end repeat
	return returnString
end tell

Jag är ingen stjärna på Applescript men det är en start att bygga vidare på. Scriptet saknar en hel del som att kolla om iTunes är igång och om en playlist spelas.
För att få det hela att fungera i GeekTool skrivar vi följande i Shell i GeekTool:

osascript /sökväg/till/skriptet/ovan/iTunes.playlist.scpt | sed 's/ZaZaZaZaZ/\
/g'

Anledningen till ZaZaZaZaZ är att jag inte fick osascript att returnera en sträng med flera rader. Observera att radbrytningen efter /\ är viktig i kodan ovan.

Nackdelen med den här läsningen är att den är en pollande lösning som frågar iTunes med jämna mellanrum vad som pågår istället för att iTunes säger till när den byter låt.

Jag har uppdaterat både radio.sh och tv.sh ikväll.

radio.sh konverterar nu ' till '. Jag har börjat lyssna till P3 street och var och varannan låt/artist innehåller '... rinnin', bounchin', lil'

tv.sh stöder flera olika utseenden.

# 1 
# 		TV4
# 		22.00 Tyst vittne 
#		23.00 Tyst vittne 
#		24.00 Tyst vittne 
#		
#		TV4+

# 2
# 		TV4
# 			22.00 Tyst vittne 
#			23.00 Tyst vittne 
#			23.00 Tyst vittne 
#		TV4+

# 3			Denna variant stöder inte kommande program
#		TV4       22.00 Tyst vittne 
#		
#		TV4+      22.00 Tyst vittne 

# 4			Denna variant stöder inte kommande program
#		TV4       22.00 Tyst vittne
#		TV4+      22.00 Tyst vittne 

# 5
#		TV4       22.00 Tyst vittne 
#		          23.00 Tyst vittne 
#		          24.00 Tyst vittne 
#
#		TV4+      22.00 Tyst vittne 

Bara att ändra på output i filen.

Filerna ligger på http://linus.homeunix.com/GeekTool/

/Linus

Hmm. märkligt.
Jag bifogar min fil istället. Du får kopiera in din kaka så att det använder dina kanaler.

Tag bort eller kommentera bort, med #, raderna som liknar nedanstående i slutet av tv.sh och ersätt med detta. OBS det är viktigt hur texten nedan är formaterad, alla mellanslag, tabbar och radbrytningen är viktiga. Klipp och klista!

$lynx -dump $tempfile | sed -e '/[0-9][0-9].[0-9][0-9]-[0-9][0-9].[0-9][0-9]/d' -e 's/  [0-9][0-9].[0-9][0-9]/	&/g' -e '/^   [0-9][0-9]/s/^   /	  /g' -e '/^$/d'  -e '/^   [A-Z]/s/^   //g' -e '/^[A-Z]/i\
\'

Koden tar ingen hänsyn till att vissa kanalnamn är så långa att tabbarna ser konstiga ut. För att komma runt det problemet får man nog byta ut lynx istället. Kanske till w3m eller liknande som renderar html tabeller lite bättre.

Jag använde tidigare Synergy2 för att styra min ibook från PC:n. Det fungerar så att man kan dra musen från den ena datorn till den andra som om skärmen var inkopplad på den första datorn. Tangentbordet 'följer med' musen och det går att kopiera text mellan datorerna. T.ex: länkar som man vill testa i Safari.
Nu var det ett tag sedan jag använde det och jag hörde då talas om Teleport som skall fungera på samma sätt men bara mellan macar, men då det är det du har så kan du ju prova.
Länkar:
Synergy2: http://synergy2.sourceforge.net/
Missing gui till Synergy2: http://software.landryhetu.com/synergy/
Teleport: http://abyssoft.com/software/teleport/

Kommande program styrs med hjälp av kakan du hämtar från tvprogram.nu. Kryssa i rutan Kommande och spara. Hämta sedan kakan som står beskrivet på hemsidan och i scriptet.

Hur menar du med trevligare utskrift?

Applescriptet från http://linus.homeunix.com/GeekTool/ kollar om iTunes körs innan den frågar så iTunes öppnas inte.
Som jag skriver på sidan så är det ett script till Adium som jag skrivit om till GeekTools.

Jag har mina alias i ~/.bashrc och de funkar. Men jag har sitter med 10.3.9 och jag vet inte om det ändrats iom 10.4.
Men prova att titta efter dolda filer i din hemkatalog och se om det finns någon som heter liknande .bashrc. Du kan använda kommandot ls -a.

[edit] Jag hittade en .bash_login i min hemkatalog och i den stod det source .bashrc så det är därifrån som min .bashrc läses in. Har du den filen?

Äsh, där får man för att man inte kör kommandona utan bara skriver ur minnet... Jag sitter tyvärr inte vid en mac just nuså jag kan inte testa men du måste troligtvis "escapa" alla [. Försök igen med:

curl -s $1 | grep "<title>" | sed -e 's:<title>::' -e 's:</title>::' -e 's:<!\[CDATA\[::' -e 's:\]\]>::' | head -n $posts | iconv -f utf-8 -t ucs-2-internal

Och jag antar at du menar rss och inte ssh?
Men osa scriptet får du skriva som m_beckman beskrev:

osascript /path/to/script/script.scpt | iconv -f utf-8 -t ucs-2-internal

Du kan lägga till det efter raden du just ändrade.
Jag ser nu att jag glömde två s i koden ovan. Skall vara:

curl -s $1 | grep "<title>" | sed -e 's:<title>::' -e 's:</title>::' -e 's:::' -e 's:::' | head -n $posts

Har du kör chmod på filerna?

chmod 777 -R 

i ett Terminal fönster och dra och släpp mappen som innehåller filerna som den klagar på. Tryck sedan på enter för att köra kommandot.
Det du då gör är att ge alla användare på datorn kör-, läs- och skriv-rättigheter till filerna.