Adium Applescript低吼通知

时间:2011-05-19 18:28:31

标签: applescript growl adium

我正在编写一个脚本,每次联系人登录到Adium时都会启动该脚本。 我的目标是在某些朋友登录时显示咆哮消息。 一切正常,但我不知道如何从刚登录的联系人那里获得“显示名称”。

以下是代码:

告诉应用程序“Adium”

#Get the alias of the contact that just signed on:
get display name of contact #most recently signed in (HOW DO I RESPRESENT THIS)


#Jon
if display name of contact is "Jon" then

    tell application "GrowlHelperApp"
        -- Make a list of all notification types:
        set the allNotificationsList to ¬
            {"Jon"}

        -- Make a list of the default enabled notifications:
        set the enabledNotificationsList to ¬
            {"Jon"}

        -- Register the script with Growl
        register as application ¬
            "AdiumFriends" all notifications allNotificationsList ¬
            default notifications enabledNotificationsList ¬
            icon of application "AdiumFriends"

        -- Send a notification:
        notify with name ¬
            "Jon" title ¬
            "Jon signed on" description ¬
            ¬
                "Facebook" application name "AdiumFriends"

    end tell
end if

告诉

2 个答案:

答案 0 :(得分:1)

但是你可以在联系人登录后启动脚本。该脚本可以检查名称,如果它与你想要的匹配,它会给你一个喊叫

答案 1 :(得分:0)

当有人登录时,似乎没有事件要插入。实际上,Adium根本没有暴露给appleScript的事件。如果您现在需要此功能,则可能必须维护成员列表 - 已登录,然后定期轮询。如果出现新的缺口,那就是咆哮的那个。这不是太难,但定期轮询需要一个可以在后台运行的appleScript应用程序,以及一个空闲的事件,这不是你想听到的,我相信。

抱歉没有更好的消息,但这是appleScript的一个相当典型的问题:你受第三方应用程序开发人员的支配,在词典中包含有用的东西。他们经常没有,但只是感谢有一本字典!

稍微好一点的消息是:Adium和Growl都有appleScript词典,两者都是开源的。 (Adium是GPL,Growl是BSD)。这意味着您有可能影响开发人员为Adium实现一些事件处理程序,但也有可能无法指定截止日期。您是否尝试加入Adium开发人员论坛?