- Linus Söderlind
- Medlem ●
- Stockholm
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...
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
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)
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
Ä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.
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.
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.
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
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.
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
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.
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...
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.
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.
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...
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:
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
Ö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
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
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
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.
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.
#! (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
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