Установить статус сообщений (iChat) для песни, которая в данный момент воспроизводится в Rdio - PullRequest
3 голосов
/ 26 марта 2012

У меня есть следующий скрипт, который успешно извлекает текущую дорожку и обновляет мой статус «Сообщения» (iChat), но для того, чтобы это работало автономно, мне нужно запустить его в цикле? Рекомендации для этого?

tell application "Rdio"
    set theTrack to current track
    set theArtist to artist of theTrack
    set theName to name of theTrack
end tell

tell application "Messages"
    if status is available then
        set status message to ("♫ Playing in Rdio: " & (theArtist as string) & " - " & (theName as string))
    end if
end tell

1 Ответ

4 голосов
/ 01 апреля 2012

Если Rdio не имеет возможности запускать сценарии при определенных условиях (которые вы должны проверить сами, поскольку я сам не пользователь Rdio - довольно редкие документы Rdio AppleScript на сайте не указываютчто-нибудь об этом), ваш лучший шанс для достижения этой цели - сохранить ваш скрипт как Оставайтесь открытым приложение AppleScript и поместить скрипт в обработчик on idle. Руководство по языку AppleScript содержит подробности, если вы хотите посмотреть его, но основная процедура такова:

  1. оберните ваш скрипт выше вon idle обработчик, то есть:

    on idle
        tell application "Rdio"
            set theTrack to current track
            set theArtist to artist of theTrack
            set theName to name of theTrack
        end tell
    
        tell application "Messages"
            if status is available then
                set status message to ("♫ Playing in Rdio: " & (theArtist as string) & " - " & (theName as string))
            end if
        end tell
    
        return 0 -- change this to stray from the default 30 sec. interval
    end idle
    
  2. сохранить сценарий как приложение AppleScript , убедившись, что вы отметили Оставаться открытым вСохранение листа.

  3. Запустите только что созданное приложение AppleScript, и все готово - оно будет продолжать работать, периодически выполняя обработчик idle (каждые 30 секунд по умолчанию - вы можете изменить это значениевозвращая целочисленное значение из обработчика idle, которое будет оцениваться как количество секунд до следующей проверки. Если вы хотите проявить фантазию, и интерфейс Rdio AS поддерживает это, вы можете использовать оставшееся время воспроизведения вашегопесня, скажи…)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...