Как разобрать ответ Skype с помощью AppleScript?

По сути, мне нужно проанализировать строку ответа команды CHAT CREATE с помощью AppleScript, чтобы получить chatid. Ответ выглядит так:

ЧАТ # my.username / $ 123abc456blah STATUS MULTICHAT

Я пытался

set chatid to item 2 of response

но это возвращает "H" - я тоже пробовал

set chatid to word 2 of response

но это возвращает «мое». Думаю, это простой вопрос для тех, кто знает AppleScript. Вот пример сценария ...

tell application "Skype"
    set response to (send command "CHAT CREATE username1, username2" script name "MyScript")
    set chatid to ***WHAT GOES HERE?***
    send command "ALTER CHAT " & chatid & " SETTOPIC Hello" script name "MyScript"
end tell

person g .    schedule 09.11.2009    source источник


Ответы (2)


Вы очень близки. Попробуй это:

set oldDelims to AppleScript's text item delimiters
set AppleScript's text item delimiters to {" "}
set chatid to text item 2 of response
set AppleScript's text item delimiters to oldDelims
person Gene Goykhman    schedule 09.11.2009
comment
Имейте в виду, что уловки разделителей текстовых элементов AppleScript очень быстро становятся нечитаемыми. Очень хорошо комментируйте свой код - person ZJR; 16.12.2009

Это дает вам часть идентификатора (которая, как я полагаю, является частью #my.username/$123abc456blah)

set c to "CHAT #my.username/$123abc456blah STATUS MULTICHAT"
set hm to do shell script "perl -e '\"" & c & "\"=~/\\w (.*?) \\w/;print$1' "

Однако это не чистый AppleScript, я вызываю perl для выполнения тяжелой работы с использованием регулярных выражений.

person adamse    schedule 09.11.2009