2013-08-14 14 views
16

Mam zsynchronizowane kalendarze iCal i Google, dzięki czemu mogę widzieć moje spotkania. Jednak nigdy nie widzę linku do Google Hangout, chyba że przejdę do kalendarza google.Linki do Google Hangout z Kalendarza

Czy wszystkie natywne aplikacje OSX obsługują pole linku do Google Hangout?

Odpowiedz

5

To mnie denerwowało przez wieki. Mam dwa rozwiązania poniżej. Jeden, który pozwoli Ci łatwo uruchomić spotkanie ze zdarzenia iCal, a drugi aktualizuje wydarzenie iCal o szczegóły spotkania.

  1. Załóż Automator aplikacji typu
  2. dodać elementy "GetSpecified poszukiwacza kroku
  3. Dodaj etap A 'uruchamianie skryptów powłoki' (zmiany blok Shell Script zaakceptować wejście "jako argumenty")
  4. Skopiuj ten w polu tekstowym:

    read url <<< $(cat "$1" | sed "s/$(printf '\r')\$//" | awk -F':' '/X-GOOGLE-HANGOUT/ {first = $2":"$3; getline rest; print (first)(substr(rest,2)); exit 1}';) 
    open "$url" 
    
  5. zapisać aplikację i dodać do doku

Teraz będzie można po prostu przeciągnąć zdarzenie do elementu dokowania, a następnie przeanalizować plik .ics i uruchomić Hangout w domyślnej przeglądarce.

UPDATE: Rozszerzony wyżej zaktualizować wpis w kalendarzu, aby dodać Hangout jako URL w przypadku:

  1. Utwórz Automator aplikacji typu
  2. dodać elementy 'GetSpecified poszukiwacza' krok
  3. Dodaj krok "Uruchom skorupę powłoki" (zmień blok skryptu powłoki, aby zaakceptować dane wejściowe "jako argumenty")
  4. Skopiuj następujące wyrażenie do pola tekstowego:

    read url <<< $(cat "$1" | sed "s/$(printf '\r')\$//" | awk -F':' '/X-GOOGLE-HANGOUT/ {first = $2":"$3; getline rest; print (first)(substr(rest,2)); exit 1}';) 
    read uid <<< $(cat "$1" | sed "s/$(printf '\r')\$//" | awk -F':' '/UID/ {print $2; exit 1}';) 
    echo "$url" 
    echo "$uid" 
    
  5. Dodaj etap typu „Uruchom firmy Apple Skrypt”
  6. Skopiuj ten w polu zastępując „myCalendar” z nazwą swojego kalendarza:

    on run {input, parameters} 
    set myURL to input's item 1 
    set myUID to input's item 2 
    set myCal to "myCalendar" 
    
    tell application "Calendar" 
    tell calendar myCal 
        set theEvent to first event whose uid = myUID 
        set (url of theEvent) to myURL 
    end tell 
    end tell 
    return input 
    end run 
    
  7. Zapisz aplikację i dodać do Twoja stacja dokująca:

Teraz po przeciągnięciu wydarzenia na ikonę stacji dokujowej zaktualizuje wydarzenie, dodając URL spotkania do wydarzenia.

Biorąc powyższe jako początek byłoby dobrze, gdyby ktoś chciał zrobić zaplanowaną aktualizację przetwarzania wsadowego całego kalendarza, który działa codziennie rano powiedzieć ...

+0

Właśnie to działało. Musiałem zmienić blok Shell Script, aby zaakceptować dane wejściowe "As Arguments", gdzie domyślnie ustawiono "As Stdin". – Yeraze

+0

Dzięki @ Yeraze - Miałem ten zestaw w moim automacie, ale przegapiłem go w powyższej instrukcji - zaktualizowałem, aby wywołać to teraz. – nempnett

+0

Czy kiedykolwiek miałeś szczęście przy masowym przetwarzaniu? Próbowałem używać nowych funkcji automatyzacji do "Przetwarzania wsadowego", ale nie działało. Łatwo jest wykonać zadanie automatyzacji, aby pobrać wszystkie dzisiejsze zdarzenia, a następnie uruchomić inny przepływ pracy dla każdego z nich. Po prostu nie mogłem wymyślić, jak przekazać dane w sposób, jakiego oczekujesz (rzeczy z Terminalu awk). – Yeraze