Skript till GeekTool

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

Jag har knåpat ihop en hemsida till några små skript som jag använder till GeekTool.

De är:
tv.sh

Ett skript som hämtar tv tider från tvprogram.nu. Det använder sig av en cookie och klarar många fler kanaler än tv.py. Kan vara lite svår att få att fungera men jag tror att informationen i filen skall räcka. Fråga annars.

radio.sh

Ett skript som hämtar info om vilken låt som spelas på sr's webradio just nu, snart och nyss. fungerar med: P3 Svea, P3 Street, P3 Rockster, P3 Star, SR Klassiskt, SR Sverige och SR X.

rss.sh

Läser en rss fil och visar <title>-taggarna

iTunes.nowplaying.scpt

Ett Applescript som visar vad iTunes spelar just nu...

Läs mer på hemsidan.

Har ni frågor/kommentarer eller tips på fler små skript till GeekTool? Posta på!

Klaga inte på hemsidans utseende bara, är inte så hemma på hemsidesnickrande...

Senast redigerat 2005-03-02 21:18
  • Medlem
  • Harestad
  • 2005-03-02 11:10

Jag får inte rss.sh att fungera så bra. det enda som står är detta:

rss.sh hämtar rss information och skriver ut titlarna
Användning: rss.sh url [n]
url  - adressen till rss-feeden
    - antal poster som skall skrivas ut [10]

rss.sh http://www.macfeber.se/index.rdf 7

Används med fördel tillsammans med GeekTool http://projects.tynsoe.org/en/geektool/

Jag har ändrat rättigheterna för filen, och skrivit rätt sökväg. Men är det något man själv ska göra med rssfilen från Macfeber?b

Senast redigerat 2005-03-02 11:42
  • Oregistrerad
  • 2005-03-02 11:15
Ursprungligen av Ree_Tab:

Jag får inte rss.sh att fungera så bra. det enda som står är detta:

Jag har ändrat rättigheterna för filen, och skrivit rätt sökväg. Men är det något man själv ska göra med rssfilen från Macfeber?w

du måste skriva vilken sida du vill hämta rss från när du startar programet tex:
./rss.sh www.macfeber.se/index.rdf 7 (sjuan står för hur många poster som ska visas)

Ursprungligen av Ree_Tab:

Jag får inte rss.sh att fungera så bra. det enda som står är detta:
Jag har ändrat rättigheterna för filen, och skrivit rätt sökväg. Men är det något man själv ska göra med rssfilen från Macfeber?w

rss.sh hämtar rss-filen från nätet själv. Du skall som det står, skriva:

./rss.sh www.macfeber.se/index.rdf

Om du står i den mapp som du la rss.sh i. Annars kan du som jag skrev på hesidan släppa skriptet i Terminalen och sedan skriva dit www.macfeber.se/index.rdf efter, innan du trycker på enter.

[edit] Tack Lempa

  • Medlem
  • Harestad
  • 2005-03-02 11:41

Kanon, nu funkar det!

Men textformatteringen är det nåt konstigt med, åäö blir till andra konstiga tecken

Även i GeekTool?

Jag har samma problem i Terminalen men inte i GeekTool och då jag använder skripten enbart i GeekTool har jag inte forskat mer i det.

  • Medlem
  • Harestad
  • 2005-03-02 12:23

Jepp i GeekTool

Inte riktigt mitt område men så här har jag det:
Om du öppnar Terminal och öppnar Fönsterinställningar (ligger under de valniga inställningarna för Terminal). Under Skärmutseende titta längst ner. Där har jag Unicode (UTF-8) och under Emulering har jag INTE Escape icke-ASCII-tecken förbockat.
Om det inte hjälper vet jag inte.

Ursprungligen av stenugn:

Både RSS och iTunes scriptet funkar perfekt.
Skulle gärna se ett script som kollar mailen (direkt på mail-servern) och visar nya mail med typ avsändare och ämne. Då skulle man istället för att få en lite siffra i Mailikonen i dockan se om det är något värt att läsa eller inte. Vore inte det något?

Skall se vad jag kan göra. Men ha inte för stora förhoppningar. Vi börjar komma ut på lite väl djupa vatten för mina kunskaper.

[edit] Det verkar som om det kan vara görbart men i Applescript som jag inte har någon större erfarenhet av. Så jag kan tyvärr inte hjälpa dig.

Senast redigerat 2005-03-02 17:30
  • Oregistrerad
  • 2005-03-02 20:38

Vet du om det går att lägga en radbrytning mellan kanalerna i tv.sh? jag visar även de två nästkommande programmen och vill att de ska säras lite mer, jag gillade inte riktigt lösningen med förskjutningen av texten men det kanske är enda sättat att sära lite på de?

alltså så här vill jag ha det om det går:

/Fredrik

Ursprungligen av Lempa:

Vet du om det går att lägga en radbrytning mellan kanalerna i tv.sh? jag visar även de två nästkommande programmen och vill att de ska säras lite mer, jag gillade inte riktigt lösningen med förskjutningen av texten men det kanske är enda sättat att sära lite på de?

alltså så här vill jag ha det om det går:

/Fredrik

Om du på rad 60 ändrar så att det ser ut så här skall det bli så.

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

Observera \' på raden under.

Om du inte har $lynx så är det för att jag uppdaterat skriptet, men det fungerar lika bra med /usr/local/bin/lynx. Det var en Linux användare som påpekade att det var jobbigt att ändra på två ställen om man inte har lynx på det stället :rolleyes:
[edit] Såg att du dissade hela min fina formatering så jag ändrade ovan.

[edit2] hmm.. Kom på att det inte alls behöver vara rad 60 iom att jag la till några rader när jag ändrade till $lynx. Men jag hoppas du förstår ända.

Senast redigerat 2005-03-02 21:15
  • Oregistrerad
  • 2005-03-03 09:59
Ursprungligen av Linus Söderlind:

Om du på rad 60 ändrar så att det ser ut så här skall det bli så.

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

Observera \' på raden under.

Om du inte har $lynx så är det för att jag uppdaterat skriptet, men det fungerar lika bra med /usr/local/bin/lynx. Det var en Linux användare som påpekade att det var jobbigt att ändra på två ställen om man inte har lynx på det stället :rolleyes:
[edit] Såg att du dissade hela min fina formatering så jag ändrade ovan.

[edit2] hmm.. Kom på att det inte alls behöver vara rad 60 iom att jag la till några rader när jag ändrade till $lynx. Men jag hoppas du förstår ända.

Det fungerade nästan, radbrytningen fungerade men det blev en förskjutning av tiden och tv programmet som visas just nu (de två senare var rätt) men det löste sig genom att ta bort denna kodsnutt "-e 's/^ //g'"

Tack

  • Oregistrerad
  • 2005-03-03 18:27

Ooops man får ta det lite lungt med hur ofta man uppdaterar tv.sh scriptet:

VIKTIGT! Din dator xxxxxxx har automatiskt blockerats pga att den spammar tvprogram.nu med anrop. Detta tar oerhört mycket kapacitet. Vänligen disaktivera denna funktion.

möts jag av när jag går till: http://tvprogram.nu/cgi-tvprogram/tvfix.cgi?NU-tvms.htm

EDIT: tv.py funkar fortfarande.

  • Medlem
  • Kalmar
  • 2005-03-03 22:37
Ursprungligen av Linus Söderlind:

Om du på rad 60 ändrar så att det ser ut så här skall det bli så.

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

Observera \' på raden under.

Om du inte har $lynx så är det för att jag uppdaterat skriptet, men det fungerar lika bra med /usr/local/bin/lynx. Det var en Linux användare som påpekade att det var jobbigt att ändra på två ställen om man inte har lynx på det stället :rolleyes:
[edit] Såg att du dissade hela min fina formatering så jag ändrade ovan.

[edit2] hmm.. Kom på att det inte alls behöver vara rad 60 iom att jag la till några rader när jag ändrade till $lynx. Men jag hoppas du förstår ända.

Jag änvänder denna kod och den fungerar kanon... utom när tex Eurosport drar till med jätte-lång text, då blir det en radbrytning och det blir inte bra. Har du någon lösning? Har inte satt mig in "sed" språket...

  • Oregistrerad
  • 2005-03-04 00:28

Här är ett liknande iTunes scriptet fast för Audion 3 istället:

-- Hämtar infon

tell application "System Events"
	set Audion to ((application processes whose (name is equal to "Audion 3")) count)
end tell

set audionStatus to "stopped"

if Audion is greater than 0 then
	tell application "Audion 3"
		tell control window 1
			set audionStatus to status as string
			
			if audionStatur is not "stopped" then
				if audionStatus = "paused" or audionStatus = "playing" then
					set currentTitle to track title
					set currentArtist to track artist
					set currentAlbum to track album
				end if
			end if
		end tell
	end tell
end if

--Skriver ut infon

if audionStatus = 0 then
	return "Spelar inget" as string
else
	
	if audionStatus = "stopped" then
		return "Spelar inget" as string
	else
		return "Spelar: " & currentTitle & " - " & currentArtist
	end if
end if

Om nu inte jag är den enda i världen som fortfarande kör Audion
(Jag är nybörjare på applescript så det kan se lite konstigt ut kanske med det funkar)

EDIT: Uppdaterade scriptet lite.

Senast redigerat 2005-03-04 00:44
Ursprungligen av garda:

Jag änvänder denna kod och den fungerar kanon... utom när tex Eurosport drar till med jätte-lång text, då blir det en radbrytning och det blir inte bra. Har du någon lösning? Har inte satt mig in "sed" språket...

Skicka med -width=40 till lynx för att lynx skall ge en bredd av 40 tecken. Experimentera med olika nummer. Du skall alltså lägga in det mellan -dump och $tempfile.

Olästa mail

Hej,

Det var någon som undrade om man kunde få ut olästa mail i geektool och det var precis vad jag gjorde också. Satt och pillade lite och gjorde en lösning med applescript.

global finalOutput

set finalOutput to ""
tell application "Mail"
	set everymail to every message of inbox
	repeat with eachmail in everymail
		if read status of eachmail is false then
			set fromSender to extract name from sender of eachmail
			set fromSubject to subject of eachmail
			
			set finalOutput to finalOutput & fromSender & " | " & fromSubject & "
"
		end if
	end repeat
end tell
return finalOutput

(notera att det ska vara en radbrytning i slutet av set finalOutput raden...)

Anropa med:
osascript /Users/m_beckman/Library/Application\ Support/GeekTool\ Scripts/unread_list.scpt|iconv -f utf-8 -t ucs-2-internal
(en lång rad men självklart med din egen sökväg till scriptet)
iconv gör att åäö blir som de ska. Om jag orkar ska jag göra en version där det blir snygga kolumner samt att den skriver ut mailen i omvänd ordning eftersom jag är van att ha nyast överst, men jag får se om jag orkar...

Senast redigerat 2005-03-22 13:55

Ett script till

Jag har ett script till som jag använder tillsammans med det andra mailscriptet. Anledningen till att jag har dem som två script är att jag vill ha olika textstorlek på outputen...

Skriver ut antal olästa mail:

tell application "Mail"
	try
		set messageCount to (count messages of inbox) as string
		set unreadCount to unread count of inbox as string
	on error errText number errNum
		if errNum is equal to -1712 then
			set messageCount to "Too many"
			set unreadCount to "Too many"
		end if
	end try
	return unreadCount & " unread mail"
end tell

Anropa på samma sätt som det andra med "osascript sökväg" man behöver dock inte använda sig av iconv om man inte skulle få för sig att ändra texten till något som innehåller åäö.
Bifogar en pdf på en del av mitt skrivbord:

  • Medlem
  • Malmö
  • 2005-03-22 15:56

Jag är TOTALT ny på det här: Hur görr jag så jag kan få samma ssak fungera hos mig? Jag syftar på mailscriptet. Jag har precis installerat geektool och står rådlös.

Ursprungligen av viga:

Jag är TOTALT ny på det här: Hur görr jag så jag kan få samma ssak fungera hos mig? Jag syftar på mailscriptet. Jag har precis installerat geektool och står rådlös.

Öppna först Manusredigeraren, ligger i Program/AppleScript/
Kopiera in koden från m_beckmans inlägg i ett nytt AppleScript.
Tryck på Kompilera och kör, om du inte får några fel och ett resutat som ser ut som sig bör nere i script fönstret så spara. Spara till exempel i en Scriptmapp du skapar i din Dokumentmapp. Om du skulle få felmedelanden prova att kopiera och klistra igen.

Öppna nu GeekTools inställningar i Systeminställningar.

Skapa en ny Entry och välj Shell från rullgardinen där det står File.

Skriv in följande i Command fältet.

osascript -e /Users/viga/Documents/Scripts/unreadmail.scpt

Du måste ändra om du sparat på annat ställe under annat namn. Om du är osäker på hur du skall skriva så prova att dra och släppa skriptet från Finder till ett Terminalfönster då står det där vad du skall skriva efter osascript -e i GeekTool.

Nu kan du leka med de olika plats/färg/font inställningarna.

/Linus

  • Oregistrerad
  • 2006-07-09 02:04
Ursprungligen av Linus Söderlind:

Öppna först Manusredigeraren, ligger i Program/AppleScript/
Kopiera in koden från m_beckmans inlägg i ett nytt AppleScript.
Tryck på Kompilera och kör, om du inte får några fel och ett resutat som ser ut som sig bör nere i script fönstret så spara. Spara till exempel i en Scriptmapp du skapar i din Dokumentmapp. Om du skulle få felmedelanden prova att kopiera och klistra igen.

Öppna nu GeekTools inställningar i Systeminställningar.

Skapa en ny Entry och välj Shell från rullgardinen där det står File.

Skriv in följande i Command fältet.

osascript -e /Users/viga/Documents/Scripts/unreadmail.scpt

Du måste ändra om du sparat på annat ställe under annat namn. Om du är osäker på hur du skall skriva så prova att dra och släppa skriptet från Finder till ett Terminalfönster då står det där vad du skall skriva efter osascript -e i GeekTool.

Nu kan du leka med de olika plats/färg/font inställningarna.

/Linus

SM i trådlyft, i know. Satt dock o pulade lite med Geektools och får scriptet att fungera så långt att Terminalen visar korrekt värde. Att sedan få scriptet att visas på skrivbordet verkar inte fungera trots att jag skriver: osascript -e /Users/Henke/iTunes.nowplaying.scpt i commandfältet i Geektools.
Likadant fungerar det med Mail-scripten som är beskrivna ovan..
Någon som vet varför?
Tack på förhand.
// Henke

  • Medlem
  • Kalmar
  • 2005-03-02 20:43

Jag brukar köra cal ifrån geektool men jag letar efter en bättre version av cal där man kan ändra lite mer... (så veckan börjar på mån mm.) Någon som vet?

Och tack för tv.sh, klart mycket bättre än tv.py som jag använt tidigare!

Jag använder en modifierad cal härifrån. Det är källkod så du måste kompilera själv. Annars finns det script på www.macsoxhints.com om du söker på geektool

  • Medlem
  • Göteborg
  • 2005-03-03 00:14

RSS-scriptet funkar perfekt, men tv.sh fular sig lite här. Får meddelandet:

: bad interpreter: No such file or directory

Förstår inte alls varför.

EDIT: det är OS X som buggar. Nåt som var fel med dirret som jag hade lagt scriptet i. Tack!
EDIT2: eller nej det var det inte alls. Får fortfarande ovanstående fel. Hjälp!
EDIT3: verkar vara bash som fular sig. Kanske nån versionsgrej? kör jag $ /bin/bash tv.sh får jag:

: command not found
: command not found
: command not found
tv.sh: line 64: syntax error: unexpected end of file

Ursprungligen av xevve:

RSS-scriptet funkar perfekt, men tv.sh fular sig lite här. Får meddelandet:

: bad interpreter: No such file or directory

Förstår inte alls varför.

EDIT: det är OS X som buggar. Nåt som var fel med dirret som jag hade lagt scriptet i. Tack!
EDIT2: eller nej det var det inte alls. Får fortfarande ovanstående fel. Hjälp!
EDIT3: verkar vara bash som fular sig. Kanske nån versionsgrej? kör jag $ /bin/bash tv.sh får jag:

: command not found
: command not found
: command not found
tv.sh: line 64: syntax error: unexpected end of file

Jag får samma felmedelande på min linux-server men om jag ändrar första raden i skriptet till

#!/bin/sh

fungerar det. Jag har ingen aning om varför. Jag kör bash som standard shell på bägge datorerna.

  • Medlem
  • Göteborg
  • 2005-03-03 00:34

Japp det löste problemet! Tackar. Jag har en nyare version av bash än det som kommer default med OS X, kanske är det som buggar på nåt sätt.

Skumt att det funkade såhär, men inte att köra scriptet med $ /bin/sh tv.sh

Nåja, nu funkar det!

EDIT: får dock space istället för tabbar, så formateringen blir rätt ful....

#! (shabang) i början av ett skript säger till skalet vad som skall tolka skriptet.
Så det spelar ingen roll att du skriver /bin/sh script om det på första raden i skriptet står #!/bin/bash skriptet kommer skickas till /bin/bash

Märkligt det här att det inte fungerar... jag har samma version av bash på linux-burken (2.05b) jaja. det fungerar med sh också jag ändrar i scripten så att andra inte råkar ut för samma problem.

[edit] Hur menar du med space istället för tabbar? Det skall inte finnas några tabbar i skriptet.

  • Medlem
  • Göteborg
  • 2005-03-03 00:48
Ursprungligen av Linus Söderlind:

#! (shabang) i början av ett skript säger till skalet vad som skall tolka skriptet.
Så det spelar ingen roll att du skriver /bin/sh script om det på första raden i skriptet står #!/bin/bash skriptet kommer skickas till /bin/bash

Aah, självklart. Är lite trött nu

Ursprungligen av Linus Söderlind:

Hur menar du med space istället för tabbar? Det skall inte finnas några tabbar i skriptet.

Jo, min output från tv.sh blir såhär:

SVT1  00.20 Seriestart: Med mördarens ögon 
TV3  00.30 Dharma & Greg 
TV4  00.15 En bädd av rosor 
TV4+  00.15 M.A.S.H 
KANAL5  00.33 Jay Leno Show 
ZTV  00.15 The Shield

Men det skulle ju onekligen vara trevligare om det var såhär:

SVT1    00.20 Seriestart: Med mördarens ögon 
TV3     00.30 Dharma & Greg 
TV4     00.15 En bädd av rosor 
TV4+    00.15 M.A.S.H 
KANAL5  00.33 Jay Leno Show 
ZTV     00.15 The Shield
  • Medlem
  • Kalmar
  • 2005-03-03 00:52
Ursprungligen av xevve:

EDIT: får dock space istället för tabbar, så formateringen blir rätt ful....

Du använder kanske ett typsnitt som inte är "monospace" typ monaco...?

  • Medlem
  • Göteborg
  • 2005-03-03 00:54
Ursprungligen av garda:

Du använder kanske ett typsnitt som inte är "monospace" typ monaco...?

Nej nej, icke. Se mitt inlägg ovan. Kopierat direkt från outputen i terminalen.

Bevaka tråden