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.

Skript till GeekTool

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

Hur ser /tmp/tv.html ut om du öppnar den i lynx? Eller om du som jag gör i skriptet låter lynx tolka till stdout.

/usr/local/bin/lynx /tmp/tv.html
eller
/usr/local/bin/lynx -dump /tmp/tv.html

[edit] Eller så kan det vara som garda säger. tack!

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

Hur ser /tmp/tv.html ut om du öppnar den i lynx? Eller om du som jag gör i skriptet låter lynx tolka till stdout.

ser ut såhär:

SVT1  00.20 Seriestart: Med mördarens ögon                                   
   00.20-01.15                                                                  
   TV3  00.55 LA Dragnet (precis börjat)                                        
   00.55-01.55                                                                  
   TV4  00.15 En bädd av rosor                                                  
   00.15-01.45                                                                  
   TV4+  00.45 Batman                                                           
   00.45-01.10                                                                  
   KANAL5  00.33 Jay Leno Show                                                  
   00.33-01.30                                                                  
   ZTV  00.15 The Shield                                                        
   00.15-01.10

Ser inte så trevligt ut... Ser det likadant ut om du öppnar filen i en 'vanlig' browser?

Och vilken version av lynx använder du? Jag tänkte på att om du uppdaterat bash så har du nog dragit ner lynx också.. Jag får det att fungera med 2.8.5dev (den som jag länkar till på hemsidan).

  • Medlem
  • Göteborg
  • 2005-03-03 01:05

Jag har version 2.8.4rel.1. Tog hem genom fink om jag inte minns fel. Var ett bra tag sen. Kan ju testa att uppdatera.

EDIT: Japp, det stekte biffen. Tackar!

Bra att det löste sig!

Efter att ha sovit på problemet med: bad interpreter: No such file or directory så har jag kommit fram till att det inte har med bash eller sh att göra. Jag har en första generationens iBook, ett ljusblått dasslock, den har bland annat bara 800x600 skärm så jag använde min PC för att göra hemsidan. Jag skrev dock skripten på Macen för att kunna testköra och så. Men jag gjorde mindre ändringar i skripten på PC:n. Det skulle jag inte gjort, inte med den editorn som jag använda iaf.
Som de flesta känner till är det skillnad på radsluten i en textfil skriven i Unix och en i Windows. Det som hände var att när jag gjorde ändringar i Windows så ändrades alla radbrytningar till windowsformat vilket varken Mac OS X eller Linux gillade. Nu är felet rättat och det programmet finns inte kvar på hårddisken.
Läxan som jag lärde mig är att alltid använda en textredigerare som klarar att hantera Unixformat på textfiler och se till att använd den funktionen.

Jag låter #!/bin/sh stå kvar om någon mot förmodan inte skulle ha bash installerat.

Ops

Som jag skrivit på hemsidan så sätt refresh ganska högt. Jag har satt den till att uppdatera var 5:e minut (300 s).

Jag uppdaterar hemsidan med en varning. Tack för infon!

  • Medlem
  • Malmö
  • 2005-03-22 17:22

oerhört nice, jag har fått det att fungera!

Nu undrar jag om det finns någon möjlighet att kolla andra mailboxar dit mina mail sorterrass vid nedladdning? Eller om jag har scripteditorn öppen hur tar jag reda på vilka variabler jag har att tillgå så jag kan pilla lite med det själv? Referensbibiliotek av något slag..

  • Medlem
  • Malmö
  • 2005-03-22 17:41

Någonting verkar väldigt knasigt.
Jag sitter på en dubbel 2,5a och när jag har skriptet aktiverat så pendlar Mail's CPU-belastning på 10-60% varje sekund.

Kan man optimera koden på något sätt eller vad kan vara felet?

Vad har du satt refresh till i GeekTools inställningar? Det du anger är sekunder.
Det är liten vits att sätta det mycket högre än vad Mail själv kollar mailen.

  • Medlem
  • Malmö
  • 2005-03-22 17:53

jajävlar.. jag satte det på 1.. eftersom jag kollar mailen varje minut.. Man lär sig något varje dag! Tack för hjälpen och förståelsen

Förbättringar i scriptet.

Gjorde en ny version av mitt script. Det optimerar inte koden på något sätt utan handlar enbart om att få snyggare formatering på det som det som scriptet skriver ut, samt att den nu sorterar dem i omvänd ordning.

global finalOutput

set finalOutput to ""

on padString(theString, theLength)
	set theCount to count of theString
	if (theCount is greater than (theLength)) then
		set theString to ((characters 1 thru (theLength - 3) of theString) as string) & "..."
	end if
	set theCount to count of theString
	set thePadding to theLength - theCount
	if (thePadding is greater than 0) then
		set thePaddingString to ""
		repeat thePadding times
			set thePaddingString to thePaddingString & " "
		end repeat
		set returnValue to theString & thePaddingString
	else
		set returnValue to theString
	end if
	return returnValue
end padString

tell application "Mail"
	set everymail to every message of inbox
	set today to current date
	
	repeat with eachmail in everymail
		if read status of eachmail is false then
			
			set fromSender to extract name from sender of eachmail
			set fromPadSender to my padString(fromSender, 15)
			
			set fromSubject to subject of eachmail
			set fromPadSubject to my padString(fromSubject, 30)
			
			set fromDate to date sent of eachmail
			
			set fromWeekDay to weekday of fromDate as string
			if (date string of today is equal to date string of fromDate) then set fromWeekDay to "Today"
			if (date string of (today - 1 * days) is equal to date string of fromDate) then set fromWeekDay to "Yesterday"
			set fromPadWeekDay to my padString(fromWeekDay, 9)
			
			set fromDay to day of fromDate as integer
			if (fromDay is less than 10) then set fromDay to "0" & fromDay
			
			set fromMonth to month of fromDate as integer
			if (fromMonth is less than 10) then set fromMonth to "0" & fromMonth
			
			set fromYear to year of fromDate as integer
			
			set fromDateString to fromPadWeekDay & " " & fromYear & "/" & fromMonth & "/" & fromDay as string
			
			set finalOutput to fromPadSender & "|" & fromPadSubject & "|" & fromDateString & "
" & finalOutput
		end if
	end repeat
end tell



return finalOutput

Notera att scriptet ska anropas med följande för att få åäö att funka:
osascript sökvägtillscriptet/namnpåscript.scpt|iconv -f utf-8 -t ucs-2-internal

Som svar på frågan om man kan kolla andra mailboxar så är svaret ja. Det är raden:
set everymail to every message of inbox
som styr vilken mailbox som scriptet kollar i, skriv 'junk' istället för inbox och ni fattar vad som händer. (Har inte provat om det ska vara citattecken runt namnet eller inte, men det märker ni). Det borde inte heller vara några problem att göra en lista med olika mailboxar och loopa igenom dessa, men eftersom jag inte har något behov av det själv så orkar jag inte fixa det just nu, kanske återkommer med en version till av scriptet.

  • Oregistrerad
  • 2005-03-22 20:04

GeekTool rules! Har precis betällt en ny PowerBook 15" och nu har jag ju stenkoll på var den befinner sig:

#!/bin/sh

url=""
lynx="/usr/local/bin/lynx"
tempfile="/tmp/pb.html"

if [ ! -e $lynx ]; then
    echo "Lynx is not installed!"
    exit 1
fi

if [ -z $url ]; then
    echo "Please set the url variable in this script to the Shipment Status URL"
    exit 2
fi

curl -s -A "Mozilla/4.0" $url | sed -e "s/<img\([^>]*\)>//g" > $tempfile

$lynx -dump $tempfile

Det är bara att beställa en PB på Apple Store och testa.

Scripten

För att de som inte är vana att pilla med Script Editorn ska slippa det så lägger jag upp en zip med mina två script. (Det som visar antal olästa mail samt det som visar avsändare,ämne och datum snyggt formaterat)

Ett tips är att om man använder båda scripten så stoppa Geektool efter att man har gjort alla inställningar som man vill och sen starta Geektool igen. Då får man dem synkade så att de uppdateras samtidigt. Det är lite irriterande att de uppdaterar sig vid olika tidpunker.

  • Medlem
  • 2005-03-30 15:10

Syrran blev riktigt avundsjuk när hon såg mitt skrivbord med tv-kanalerna på...! Hon har ofrivilligt blivit PC ägare, så hon undrade om det finns något liknade till windows. Någon som vet?

  • Medlem
  • Malmö
  • 2005-03-30 15:22
Ursprungligen av garda:

Syrran blev riktigt avundsjuk när hon såg mitt skrivbord med tv-kanalerna på...! Hon har ofrivilligt blivit PC ägare, så hon undrade om det finns något liknade till windows. Någon som vet?

Fanns något som hette active desktop där man kunde lägga in ett fönster i skrivbordet där man kunde visa en del av skrivbordet. högerklicka på skrivbordet så kanske det dyker upp eller så skall man in och starta det någonstans.. Jag tror iförsig inte det finns på XP, men värt att kolla.

  • Oregistrerad
  • 2005-04-09 13:44

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

Helrätt.
Men om man vill köra entourage istället för Mail ?
Hur ser det ut då ?

/ d

mailkoll

Det ska gå att göra för entourage också... Jag kollade lite på det, men tyvärr så verkar det inte finnas något sätt att översätta det direkt och eftersom jag själv inte använder entourage så är det tveksamt om jag orkar göra det... Men man vet ju aldrig om jag får en massa tid över eller så.
(Jag har en lösning för Mail.app om man vill kolla efter mail i andra mailboxar än Inbox, men den är långsam, om man är intresserad så hör av er.)

/Måns

Angående tv.sh: Jag har ställt in så den visar kommande program, om jag dock vill att pågående program ska vara i fet stil, hur gör jag i scriptet då?

Det går tyvärr inte. GeekTool stöder inte det.
Det enda man skulle kunna göra är att dela upp scriptet i två script och sätta fet stil på den ena i teckensnitts inställningarna i GeekTool.

Ursprungligen av Linus Söderlind:

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...

rss scriptet funkar alldeles utmärkt!
Dock går inte iTunes scriptet att ladda ner. Kommer vidare till en sida med massa script text fast med en massa frågetecken ????
Kanske ska vara så?

Ursprungligen av patriccarlsson:

rss scriptet funkar alldeles utmärkt!
Dock går inte iTunes scriptet att ladda ner. Kommer vidare till en sida med massa script text fast med en massa frågetecken ????
Kanske ska vara så?

Höger/ctlr-klicka och välj spara som så skall det fungera.

Ursäkta att jag inte svarat tidigare men jag missade mailet som talade om att du skrivit i den här tråden.

Ursprungligen av Linus Söderlind:

Höger/ctlr-klicka och välj spara som så skall det fungera.

Ursäkta att jag inte svarat tidigare men jag missade mailet som talade om att du skrivit i den här tråden.

Det är ingen fara.
Tackar!

  • Medlem
  • 2005-11-01 22:27

Behöver lite hjälp igen... Nu har tvprogram.nu börjat ha en liten röstning på programmen, så det står rösta upp rösta ner efter vissa program. Kan någon kunnig ta bort detta? Tack!

$lynx -dump -width=110 $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\

Lägg till följande till raden som hämtar html-filen:

-e 's/alt=/alt="" /g'

så att det ser ut nått sånt här:

curl -s -A "Mozilla/4.0" -b "tvpkaka3=$cookie" -m 30 $url | fgrep -A 1 tvprogram\ nu\ klockan | sed -e '/tvprogram nu klockan/d' -e 's/href=/ /g' -e 's/alt=/alt="" /g' > $tempfile
  • Medlem
  • Stockholm
  • 2005-11-03 14:16

Tack för hjälpen ännu engång Linus!
Jag hade samma problem som garda.

  • Medlem
  • 2005-11-06 09:35
Ursprungligen av Linus Söderlind:

Lägg till följande till raden som hämtar html-filen:

-e 's/alt=/alt="" /g'

så att det ser ut nått sånt här:

curl -s -A "Mozilla/4.0" -b "tvpkaka3=$cookie" -m 30 $url | fgrep -A 1 tvprogram\ nu\ klockan | sed -e '/tvprogram nu klockan/d' -e 's/href=/ /g' -e 's/alt=/alt="" /g' > $tempfile

Kanon, tack! Smart att ta bort alt-texten, så långt tänkte inte jag...

  • Medlem
  • Stockholm
  • 2005-11-04 13:11
Ursprungligen av Linus Söderlind:

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

Jag undrar om du skulle kunna fixa ihop ett script som är kompitabelt med GeekTool som visar in/ut nätverkstafiken. Är det möjligt?

Ursprungligen av .mp3:

Jag undrar om du skulle kunna fixa ihop ett script som är kompitabelt med GeekTool som visar in/ut nätverkstafiken. Är det möjligt?

#!/bin/bash

interface="en0"

tempfile="/tmp/nettraffic"

slask=$(netstat -I $interface -bn | awk '$11 == 0 {print $7" "$10}')

down=$(echo $slask | awk '{print $1}')

up=$(echo $slask | awk '{print $2}')

time=$(date +"%s")

down_old=$(cat $tempfile | awk '{print $1}')

up_old=$(cat $tempfile | awk '{print $2}')

time_old=$(cat $tempfile | awk '{print $3}')

echo "$slask $time"> $tempfile

let time=time-time_old

let down=(down-down_old)/time/128

let up=(up-up_old)/time/128

echo "up: "$up "kb/s down: "$down "kb/s"

exit 0

Kanske inte den snyggaste lösningen men jag slängde ihop den lite snabbt. Lägger upp en mer kommenterad version när jag får tid. Ändra bara interface till det nätverksinterface (kort) som du vill få info om. Skriv ifconfig i Terminalen för att se vilka namn som finns.

Efter att ha läst manualsidan för osascript (man osascript) så skall man inte använda -e om du skickar med en fil, -e skall endast användas när du skickar med en rad av applescript.
T ex: osascript -e "say \"iTunes is now playing!\""
Jag vet inte varför jag skrev som jag gjorde tidigare, Apple kanske har stramat upp osascript med någon av uppdateringarna de senaste halvåret?

Så för att få det att funka så skippa -e och skriv bara osascript /Users/Henke/ITunes.nowplaying.scpt. Om det fortfarande inte fungerar öppna Systemmedelanden (Console), ligger i Verktygsprogram (Utillities). console.log borde öppnas automatiskt, om inte tryck command-shift-O. Dit skriver de flesta program sina felmedelanden så även osascript när det körs via GeekTool.

/Linus

  • Oregistrerad
  • 2006-07-10 00:34

Problem solved, tackar för hjälpen!

Bevaka tråden