2013-08-14 3 views
16

У меня есть календарь iCal и Google Calendar, чтобы я мог видеть мои встречи. Тем не менее, я не могу увидеть ссылку Google Hangouts, если я не перейду в календарь Google.Google Hangouts Ссылки из Календаря

Поддерживает ли какое-либо родное OSX приложение для ссылки на Google Hangouts?

ответ

5

Это раздражало меня целую вечность. У меня есть два решения ниже. Тот, который позволит вам легко запускать видеовстречу из события iCal, другой обновляет событие iCal с подробностями видеовстречи.

  1. Создание Automator применения типа
  2. Добавить Items 'GetSpecified Finder' шаг
  3. Добавить стадии а 'Run Shell Script' (изменить блок Shell Script, чтобы принять ввод "в качестве аргументов")
  4. Скопируйте следующий код в текстовое поле:

    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. Сохраните приложение и добавьте в доке

Теперь вы можете просто перетащить событие на элемент док-станции, и он проанализирует файл .ics и запустит видеовстречу в браузере по умолчанию.

UPDATE: Extended выше, чтобы обновить запись календаря, чтобы добавить видеовстрече URL в случае:

  1. Создание Automator применения типа
  2. Добавить Items 'GetSpecified Finder' шаг
  3. Добавить шаг «Запустить сценарий оболочки» (измените блок «Сценарий оболочки», чтобы принять ввод «Как аргументы»)
  4. Скопируйте следующее в текстовое поле:

    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. Добавить шаг типа «Run компании Apple Script»
  6. Скопируйте следующий текст в поле заменяющего «MyCalendar» с именем вашего календаря:

    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. Сохраните приложение и добавить в ваша док-станция

Теперь, когда вы перетаскиваете событие на свой значок док-станции, оно обновляет событие, добавляя URL-адрес видеовстречи к событию.

Принимая выше, в качестве начала было бы хорошо, если бы кто-то захотел сделать запланированное обновление пакетной обработки всего календаря, который проходит каждое утро сказать ...

+0

Я просто получил это для работы. Мне пришлось изменить блок сценария оболочки, чтобы принять ввод «Как аргументы», где он по умолчанию «Как Stdin». – Yeraze

+0

Спасибо @Yeraze - у меня был этот набор в моем автоматере, но он пропустил его в инструкциях выше - я обновился, чтобы вызывать это сейчас. – nempnett

+0

Неужели вам повезло с массовой обработкой? Я попытался использовать новые функции автомата для выполнения «пакетной обработки», но, похоже, это не сработало. Легко сделать задачу автомата захватить все сегодняшние события, а затем запустить другой рабочий процесс для каждого из них. Просто не мог понять, как заставить его передавать данные так, как вы ожидаете (материал терминала awk). – Yeraze

9

Благодаря небольшой скрипт nempnett, я, наконец, удалось автоматизировать все это в инструмент теперь на GitHub. Я написал об этом здесь: http://yeraze.com/a-better-way-to-fix-osx-calendar-google-hangouts

Вам нужно будет немного поработать с терминальной магией, а затем автоматически синхронизировать ваши ссылки в Google Hangouts в поля URL-адреса календаря.

+1

Не работает на Йосемити. – 2rs2ts