Ссылка на переменные из двух слов в Applescript? - PullRequest
0 голосов
/ 12 июля 2019

Я пытаюсь получить некоторые данные из приложения под названием «Время», которое является локальным для моего компьютера, и опубликовать его по URL-адресу, чтобы уведомить веб-крючок, из которого произойдет некоторая автоматизация процесса.

В соответствии с интеграцией Applescript с Timing,

Существует объект time summary, возвращенный из команды, которую я успешно выполнил.При отображении в виде предупреждения эти данные выглядят следующим образом:

Can't get |times per project| of {id:5C6CD8C8-357F-4EE7-890C-5946DC03BBB9", overall total:1.18092493622303E+4, times per project:{Maintenance:81.091759443283, Youtube:4820.38001298904, |self improvement effors|:876.930474758148, Homework:2383.20326805115, |(no project)|:3647.64384698868}, overall total without tasks:1.18092493622303E+4, productivity score:0.388005592511, times per project without tasks:{Maintenance:81.091759443283, Youtube:4820.38001298904, |self improvement efforts|:876.930474758148, Homework:2383.20326805115, |(no project)|:3647.64384698868}, class:time summary}.

Как вы можете видеть, (выше) есть свойство, называемое productivity score, то есть два слова.

При попытке получить этот объект данных от объекта (который я буду использовать для уведомления webhook:)

set newnewVar to productivity score of newvar
display alert newvar

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

Какое решение этой проблемы?

1 Ответ

1 голос
/ 12 июля 2019

В AppleScript определяемые пользователем переменные обычно не могут иметь пробелов.Обычно они начинаются с буквы или подчеркивания, а затем могут содержать только буквы, цифры или подчеркивания.Пользовательская переменная может содержать пробелы, только если она содержится в вертикальных каналах.Таким образом, все перечисленные ниже допустимые переменные формы: alphaUnit, slideRow3, _tempItem, |my variable|, left_hand_vector

Однако любое приложение или сценарий, который создает и использует определение сценария, может создаватькоманды и классы и свойства, которые имеют имена из нескольких слов.Например, если вы посмотрите на приложение System Events, вы увидите, что в Disk-Folder-File Suite есть класс с именем disk item со свойствами, такими как creation date.Причина, по которой это работает, состоит в том, что эти имена из нескольких слов фактически представлены числовым (четырехзначным) кодом: disk item на самом деле 'ditm', а creation date - 'ascd'.Вы часто видите эти коды, всплывающие в виде строк ошибок, например:

"cannot make class ≪ditm≫ into..."

Убедитесь, что у вас есть право области действия для вызова словаря - т.е. находиться в пределахtell блок для приложения или сценария, который вызывает словарь сценариев - и имена из нескольких слов должны «просто работать».После компиляции вы увидите, что они выделены фиолетовым цветом, который немного отличается от красного цвета некомпилированного текста.Вам не нужно заключать словарные термины в вертикальные каналы;в противном случае они будут рассматриваться как переменные, определяемые пользователем, и теряют свои специальные сценарии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...