Adressbuch und AppleScript

Mini-Leopard

Rhode Island Greening
Mitglied seit
20.03.08
Beiträge
476
Hallo alle zusammen!

Ich möchte gerne über AppleScript einen bestehenden Adressbuch Kontakt um einen Eintrag erweitern. Das auswählen des Kontaktes ist kein Problem. Das klappt schon ganz gut.

Jetzt bekomme Ich es aber nicht hin, zu einer bestehenden Visitenkarte ein Feld mit Wert hinzuzufügen.
Das Feld soll ein Datum sein und einen bestimmten Namen ("Letzter Kontakt") haben.

Ich dachte mir, es könnte so funktionieren, wie bei der Bearbeitung von Property lists...
Geht aber nicht.


Hier der Code:
Code:
tell person Kontaktinfo
		make new entry at end of entries of contents of Kontaktinfo with properties {kind:date, name:"Letzter Kontakt", value:"22.12.2009"}
	end tell
Heb es auch schon mit nur
Code:
tell Kontaktinfo...
versucht. Hat auch nicht funktioniert. Ich hab auch in dem ganzen make new entry... Kram hin und her geschoben und rumprobiert. Aber irgendwie klappt das nicht.


Kann mir irgendwer helfen?
Habe Ich einen groben Fehler?

Danke und liebe Grüße
Mini-Leo
 

hubionmac

Tydemans Early Worcester
Mitglied seit
25.06.04
Beiträge
390
ehm... hab' da mal was geschrieben:;)

Code:
(**
© hubionmac.com 2008

Beschreibung:
das Skript fügt allen ausgewählten Kontakten im Adressbuch ein Datum hinzu mit
mit der Bezeichnung "Letzter Kontakt" und setzt dieses Datum auf das aktuelle Datum.
Sollte ein Datum mit dieser Bezeichnung breits exisitieren, wird dieses entsprechend aktualisiert**)


set mydate to current_date()
set DateLabel to "Letzter Kontakt"
tell application "Address Book"
    set these to selection
    repeat with this in these
        if (label of every custom date of this) contains DateLabel then
            repeat with the_customdate_id from 1 to (count of every custom date of this)
                if label of custom date the_customdate_id of this = DateLabel then exit repeat
            end repeat
            set value of custom date the_customdate_id of this to mydate
            save addressbook
        else
            tell this to set new_custom_date to make new custom date at end of custom dates with properties {label:DateLabel, value:mydate}
            
            save addressbook
        end if
    end repeat
    
end tell

on current_date()
    -- gibt das Datum in dem Format aus: date "Samstag, 27. September 2008 12:00:00 Uhr"
    -- was anderes futtert das Adress-Buch anscheinend nicht
    set h to current date
    set hours of h to 12
    set minutes of h to 0
    set seconds of h to 0
    return h
end current_date
 

Mini-Leopard

Rhode Island Greening
Mitglied seit
20.03.08
Beiträge
476
Okay... Werde mal versuchen, deinen Code zu durchdringen und auf meine Bedürfnisse abzustimmen.

Vielen Dank für deine Hilfe!
Ich werde mich melden, sobald Ich es probiert habe.
Danke
 

Mini-Leopard

Rhode Island Greening
Mitglied seit
20.03.08
Beiträge
476
Jetzt stehe Ich vor einem Rätsel;

Leider komme Ich nicht soweit, dass dein Code zu Einsatz kommt.
Ich lese alle Gruppen aus dem Adressbuch aus und lasse dann alle enthaltenen Kontakte zur Auswahl in einer Liste anzeigen.
Nur leider sind in dieser Liste Kontakte, die sich in Wirklichkeit garnicht in dieser Gruppe befinden.
Irgendwie bringt mein Adressbuch da was fürchterlich durcheinander :(

??

Wirkt auf mich wie ein Angriff irgendwelcher durchgeknallten Aliens...


Grüße
Mini-Leo
 

Mini-Leopard

Rhode Island Greening
Mitglied seit
20.03.08
Beiträge
476
Habs jetzt ganz anders gemacht:

Habe deinen Code im Automator eingefügt und als Plugin für den Finder gesichert.
Könnte man ein so simples Plugin auch für das Adressbuch selbst speicher?

Liebe Grüße und nochmal viiiiieeelen Dank!
Mini-Leo
 

hubionmac

Tydemans Early Worcester
Mitglied seit
25.06.04
Beiträge
390
o_O
Keine Ahnung, ob so etwas geht... ich habe effektiv ein Automator Projekt mal angefangen und dann nie beendet.
Du könntest Das Script auch in ~/Scripts/Applications/Adressbuch speichern und das Skripting Menü aktivieren, dann hättest Du es im Adressbuch immer direkt im Zugriff.