Переменные — это некоторые именованные значения, которыми можно оперировать в действиях и условиях. Многие функции генерируют переменные. Их список можно найти ниже.

Действия выполняются друг за другом. Поэтому переменные, сгенерированные одним действием, становятся доступными в последующих действиях и их условиях.

Регистр

При работе с переменными важно учитывать регистр букв! $Text и $text — разные переменные!

Стандартные переменные

В любом скрипте доступны следующие переменные по-умолчанию:

$pattern — порядковый номер сработавшего шаблона в скрипте (начиная с 1). Если в скрипте нет шаблонов, то значение переменно — 0.

$user_id — уникальный идентификатор устройства (строка)

$session — идентификатор сессии (генерируется каждый раз при инициализации ассистента)

$src — исходная строка текста запроса пользователя

$loc_lat — широта текущего местоположения

$loc_lon — долгота текущего местоположения

$current_time_ts — UNIX время

$response_text — текст ответа предыдущей команды в скрипте

$response_speech — произнесенный текст предыдущей команды в скрипте (чаще всего совпадает с $response_text)

Переменные шаблонов

Если в шаблоне есть ссылка на другой шаблон (например $Number или $Text), то они также добавляются в скрипт и их также можно использовать в действиях и условиях.

$Text

Если в сработавшем шаблоне скрипта есть $Text, то во всех действиях и условиях будет доступна переменная $Text с текстом, который туда попал.

$Number

Если в сработавшем шаблоне скрипта есть $Number, то во всех действиях и условиях будут доступны переменные:

$Number — число (например 2 или 100.4)

$Number_src — исходный текст числа (например «два» или «сто целых четыре десятых»)

$Date

Если в сработавшем шаблоне скрипта есть $Date, то во всех действиях и условиях будут доступны переменные:

$Date — строка исходного текста (наример, «послезавтра» или «первое января 2016»)

$Date_fmt — строка в формате дд.мм.гггг (например 22.10.1985)

$Date_iso — строка в формате гггг.мм.дд (например 1985.10.22)

$Date_ts — число миллискеунд в UNIX формате

$Date_day — день (например 22)

$Date_month — месяц (0 для января, 11 для декабря)

$Date_year — год (например 1985)

$Time

Если в сработавшем шаблоне скрипта есть $Time, то во всех действиях и условиях будут доступны переменные:

$Time — строка исходного текста

$Time_hour — часы (например 0 или 23)

$Time_minute — минуты

$Time_second — секунды

$Time_part — строка AM или PM (если указано во фразе)

$Contact

Если в сработавшем шаблоне скрипта есть $Contact, то во всех действиях и условиях будут доступны переменные:

$Contact — полное имя контакта

$Contact_src — строка исходного текста

$Contact_id — уникальный идентификатор контакта в базе (строка)

$Contact_raw — изначальный идентификатор (число, не совпадает с$Contact_id)

$Contact_name — то же, что и $Contact

$Contact_phones — массив телефонных номеров (строки)

$Contact_phone — первый номер телефона

$Contact_phone_simple — первый номер телефона, из которого убрано все, кроме цифр

$Contact_emails — массив почтовых ящиков (строки)

$Contact_email — первый email

$Contact_skype — скайп-имя контакта

$Contact_address — адрес контакта

$Contact_address_lat — широта адреса контакта

$Contact_address_lon — долгота адреса контакта

$Contact_address_city — название города

$Contact_address_country — страна

$Contact_address_country_code — код страны (например RU)

$Contact_data — ассоциативный массив данных о контакте, где ключ — это MIME данных (например, для скайпа — vnd.android.cursor.item/com.skype.android.skypecall.action), а значение — это сами данные (например, для скайпа это скайп-имя)

$Address

Если в сработавшем шаблоне скрипта есть $Address, то во всех действиях и условиях будут доступны переменные:

$Address — отформатированная строка адреса (полный адрес)

$Address_src — строка исходного текста

$Address_lat — широта адреса

$Address_lon — долгота адреса

$Address_city — город

$Address_country — страна

$Address_country_code — код старны (например RU)

$Lang

Если в сработавшем шаблоне скрипта есть $Lang (название языка), то во всех действиях и условиях будут доступны переменные:

$Lang — код языка (например ru или en)

$Lang_src — строка исходного текста

Именованные шаблоны

Если вы используете в шаблоне конструкции вида «$N1::Number» или «$T1::Text», то у вас появятся соотвествующие переменные с именами $N1 и $T1 с их производными.

Переменные функций

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

Дата-время

Команда «который час» функции Дата-Время генерирует переменные:

$current_time — строка в формате чч:мм

Команда типа «сколько до 1 января» генерирует переменные:

$date_days — количество оставшихся дней

$date_hours — количество оставшихся часов

$date_mins — количество оставшихся минут

Погода

Команды функции Погода генерирует переменные:

$weather — строка с текстом информации о погоде (например «облачно» или «дождь»)

$weather_temp — температура (число, например 5 или -10)

Места

При поиске места или при команде «где я» генерируются следующие переменные:

$place_name — название места или его адрес

$place_address — адрес места

$place_city — город

$place_country — страна

$place_country_code — код страны

$place_lat — широта места (например 59.53122)

$place_lng — долгота места

Навигация

При построении маршрутов генерируются переменные:

$nav_address — адрес финиша

$nav_city — город

$nav_country — страна

$nav_country_code — код страны

$nav_lat — широта финиша

$nav_lon — долгота финиша

Курсы валют

При поиске курсов валют генерируются переменные:

$currency_to — код целевой валюты (например RUB)

$currency_from — код базовой валюты

$currency_price — цена (число, например 65.52)

Заряд батареи

Команда «заряд батареи» сгенерирует переменную $battery_level (например, 25)

Калькулятор

Любое вычисление сохранит свой результат в переменную $calc

Звонки

Команда «Кто звонил» сохранит последний пропущенный звонок в переменных:

$call_missed_phone — номер телефона (может быть пустым)

$call_missed_contact — имя контакта (если такой телефон есть в базе)