(03. Februar 2005 — tk)

Adresse aus Entourage per Stadtplandienst.de anzeigen lassen

Anbei ein simples AppleScript für Enourage X, das die Adresse eines in der Listendarstellung ausgewählten Kontakts in Safari per Stadtplandienst.de anzeigt. Ist sowohl eine Privat- als auch eine Geschäftsadresse existent wird vom Skript nachgefragt — ansonsten automatisch die vorhandene Adresse angezeigt

Installation: Einfach das Skript im Skripteditor als »Skript« abspeichern und Entourage verfügbar machen. Beispielsweise im Benutzerverzeichnis innerhalb »Dokumente:Microsoft-Benutzerdaten:Entourage Script Menu Items«. Bei passender Benamung kann das Skript auch per Tastatur-Shortcut aufgerufen werden: »Stadtplandienst\cS« sorgt dafür, daß [ctrl][s] anschließend die ausgewählte Adresse in Safari darzustellen versucht.

Wenn identische Funktionalität für Apples Adreßbuch-Anwendung gesucht wird, hilft ein Blick zu dem AppleScript von Armin Briegel , auf dem unser Skript zu einem Teil aufbaut.

Unser Skript für Entourage X kann hier heruntergeladen werden. Anbei der Vollständigkeit halber die Skript-Source:

(*
This is an AppleScript that tries to display the Address of the selected contact 
graphically by using the http://www.stadtplandienst.de service (limited to 
germany as far as I know) within Safari

© Thomas Kaiser, 2005 
ver. 0.1.1

Based on both the "Stadtplandienst.scpt" script provided by Armin Briegel 
 and 
"Dial Phone" by David Cortright  (including 
minor modifications by Matt Ridley  and Paul 
Berkowitz )
*)

-- Define dialog strings
set errString to "This script only works with one contact selected in a list view."
set NoAddrString to "No address available for the selected contact"
set WhichAddrString to "Choose the address to display"
set HomeAddrString to "Home Address"
set BusinessAddrString to "Business Address"

-- Language differentiation
set LANG to (do shell script ". /var/log/CDIS.custom ; echo ${LANGUAGE}")
if LANG is "German" then
	set errString to "Dieses Skript funktioniert nur mit einem ausgewählten Kontakt in Listenansicht"
	set NoAddrString to "Keine Adresse verfügbar für den ausgewählten Kontakt"
	set WhichAddrString to "Wählen Sie die Adresse"
	set HomeAddrString to "Privatadresse"
	set BusinessAddrString to "Geschäftsadresse"
end if

tell application "Microsoft Entourage"
	try
		set s to the selection
		set t to item 1 of s
		if the class of t is contact then set theContact to t
	on error theErr
		display dialog theErr & return & return & errString with icon 1 buttons {"OK"} default button "OK"
		return
	end try

	try
		set BusinessAddress to business address of theContact
		set HomeAddress to home address of theContact

		set z to zip of BusinessAddress
		set c to city of BusinessAddress
		set s to street address of BusinessAddress

		set hz to zip of HomeAddress
		set hc to city of HomeAddress
		set hs to street address of HomeAddress

	on error theErr
		display dialog theErr with icon 1 buttons {"OK"} default button "OK"
		return
	end try
end tell

if s is "" and hs is "" then
	display dialog NoAddrString with icon 1 buttons {"OK"} default button "OK"
else if s is not "" and hs is not "" then
	display dialog WhichAddrString buttons {HomeAddrString, BusinessAddrString}
else if s is "" then
	set PLZ to (do shell script "echo " & hz & " | tr -d -C [:digit:]")
	set street to hs
	set city to hc
else
	set PLZ to (do shell script "echo " & z & " | tr -d -C [:digit:]")
	set street to s
	set city to c
end if

tell application "Safari"
	set browser to make new document
	tell browser
		set URL to "http://www.stadtplandienst.de/"
	end tell
	delay 2 -- give Safari a little time to load the page
	do JavaScript "document.forms[0].elements[\"plz\"].value = \"" & PLZ & "\";" in document 1
	do JavaScript "document.forms[0].elements[\"city\"].value = \"" & city & "\";" in document 1
	do JavaScript "document.forms[0].elements[\"str\"].value = \"" & street & "\";" in document 1
	do JavaScript "document.forms[0].submit()" in document 1
	activate
end tell