Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

Якорь
Top
Top

CSS Stylesheet
.top-button {
		background-image: url(https://confluence.twin24.ai/download/thumbnails/23986188/baseline_keyboard_arrow_up_white_18dp.png) !important;
		background-position: center;
		background-color: #47a7f5 !important;
		background-repeat: no-repeat;
		box-shadow: -1px 1.5px 3px #999;
		color: #47a7f5 !important;
		border-radius:50px !important;
        position: fixed;
        bottom: 45px;
        left: 93.5%;
        width: 50px;
		height: 50px !important;
        font-size: 12px !important;
        padding: 14.5px !important;
		z-index: 2;
}
.top-button:hover{
		background-color: #65b9ff !important;
        color: #65b9ff !important;
}
.page-header{
		background-color: #232838;
	    background-repeat: no-repeat;
	    background-position: center;
		width: auto;
    	height: 100px;
		background-image: url(https://confluence.twin24.ai/download/attachments/23986188/logo_twin-02.png);
		background-size: 10em;
        color: #fff;
        font-size: 20px;
        padding: 20px;
}
.page-footer{
		background-color: #232838;
		background-image: url(https://confluence.twin24.ai/download/thumbnails/23986188/decorated-pattern-dark.png);
		width: auto;
    	height: 10px;
        color: #fff;
		text-align: end;
    	font: small-caption;
    	padding-inline-end: 30px;
    	padding-top: 200px;
    	padding-bottom: 30px;
}
.page-headline{
		background-image: url(https://confluence.twin24.ai/download/thumbnails/23986188/Solid256dot8_2changed.png);
    	background-repeat: no-repeat;
    	background-position-x: -227px;
    	background-position-y: center;
    	padding: 20px;
		background-color: #007bff;
		width: auto;
    	height: 10px;
        color: #fff;
		text-align: center;
    	font: caption;
    	font-weight: 600;
}
.tabs-menu{
    	padding-left: 85% !important;
}

На этой странице:

Оглавление
classbpl

Примечание
titleПримечание

Для тестирования сценариев, содержащих BPL-операции, необходимо использовать веб-виджет или интеграцию с каким-либо мессенджером, так как данные операции не работают в тестовом чате внутри редактора.

Как создать тестовый виджет: Создание тестового виджета

Функции общего назначения

del(varName string)

Назначение: удаление локальной или модульной переменной.

Аргументы:

  1. varName – название переменной в виде строки. Может начинаться с префикса области видимости переменной. Если префикс опущен то считается, что переменная локальная.

На этой странице:

Оглавление
classbpl

Примечание
titleПримечание

Для тестирования сценариев, содержащих BPL-операции, необходимо использовать веб-виджет или интеграцию с каким-либо мессенджером, так как данные операции не работают в тестовом чате внутри редактора.

Как создать тестовый виджет: Создание тестового виджета

Функции общего назначения

del(varName string)

Назначение: удаление локальной или модульной переменной.

Аргументы:

  1. varName – название переменной в виде строки. Может начинаться с префикса области видимости переменной. Если префикс опущен то считается, что переменная локальная.

Возвращаемое значение: отсутствует.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$localVar = 123
#moduleVar = true
del("$localVar")   // Удаляет локальную переменную $localVar
del("localVar")    // Тоже самое что и del("$localVar")
del("#moduleVar")  // Удаляет переменную с областью видимости в пределах модуля 

setClientTimezoneOffset(offset int)

Назначение: изменяет текущее смещение временной зоны собеседника бота.

Аргументы:

  1. offset – смещение временной зоны в минутах.

Возвращаемое значение: отсутствует.

Примечание: вызов этой функции также приведёт к изменению значений системных переменных now, today и time согласно новой временной зоне.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
setClientTimezoneOffset(-1800)

asBool(obj any) bool

Назначение: преобразует аргумент к булеву значению.

Аргументы:

  1. obj любое значение для преобразования.

Возвращаемое значение: булево значение.

Примечание: в BPL все значения могут быть преобразованы к булеву типу.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$bool = asBool(nil) // $bool содержит false
$bool = asBool("")  // $bool содержит false
$bool = asBool(0)   // $bool содержит false
$bool = asBool([])  // $bool содержит true
$bool = asBool(123) // $bool содержит true

asString(obj any) string

Назначение: преобразует аргумент к строковому значению.

Аргументы:

  1. obj любое значение для преобразования.

Возвращаемое значение: строковое значение.

Примечание: в BPL все значения могут быть преобразованы к строковому типу.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$str = asString(123)  // $str равно "123"
$str = asString(1.23) // $str равно "1.23"
$str = asString(true) // $str равно "true"
$str = asString({1: "a b c", 2: 0.5}) // $str равно "{1: "a b c", 2: 0.5}"

asInt(obj any) int

Назначение: преобразует аргумент к целочисленному значению.

Аргументы:

  1. obj любое значение для преобразования.

Возвращаемое значение: целочисленное значение, 0 в случае невозможности преобразования.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$int = asInt(5.67)  // $int равно 5
$int = asInt("123") // $int равно 123
$int = asInt(true)  // $int равно 1
$int = asInt(nil)   // $int равно 0
$int = asInt("abc") // $int равно 0

asFloat(obj any) float

Назначение: преобразует аргумент к вещественному числу.

Аргументы:

  1. obj любое значение для преобразования.

Возвращаемое значение: вещественное число, 0 в случае невозможности преобразованияВозвращаемое значение: отсутствует.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$localVar$float = 123
#moduleVarasFloat("5.67") // $float равно 5.67
$float = true
del("$localVar"asFloat(123)    // Удаляет локальную переменную $localVar
del("localVar") $float равно 123.0
$float = asfloat(true)   // Тоже$float самое что и del("$localVar")
del("#moduleVar")равно 1.0
$float = asfloat(nil)    // $float Удаляет переменную с областью видимости в пределах модуля 

setClientTimezoneOffset(offset int)

равно 0.0
$float = asFloat("abc")  // $float равно 0.0

Математические функции

math.pos(num mixed) number

Назначение: фактически преобразует аргумент к числу. Эквивалент унарной операции "+"Назначение: изменяет текущее смещение временной зоны собеседника бота.

Аргументы:

  1. offset – смещение временной зоны в минутахnum – произвольное значение, которое будет преобразовано к числу.

Возвращаемое значение: отсутствуетчисло.

Примечание: вызов этой функции также приведёт к изменению значений системных переменных now, today и time согласно новой временной зоне.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
setClientTimezoneOffset(-1800)

asBool(obj any) bool

$a = math.pos(true)  // $a будет равно 1
$a = math.pos(false) // $a будет равно 0
$a = math.pos(nil)   // $a будет равно 0
$a = +true           // $a будет равно 1, то же, что и math.pos(true)

math.neg(num number) number

Назначение: меняет знак числа. Эквивалент унарной операции "-"Назначение: преобразует аргумент к булеву значению.

Аргументы:

  1. obj любое значение для преобразованияnum – произвольное число, у которого изменится знак на противоположный.

Возвращаемое значение: булево значение.

Примечание: в BPL все значения могут быть преобразованы к булеву типу.

число со знаком обратному исходному.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$bool$a = asBool(nilmath.neg(-1) // $a $boolбудет содержитравно false1
$bool$a = asBool(""math.neg(1)  // $a $boolбудет содержитравно false-1
$bool$a = asBool(math.neg(0)   // $bool$a будет содержитравно false0
$bool$a = asBool-([])-10)       // $bool$a содержитбудет true
$bool = asBool(123) // $bool содержит true

asString(obj any) string

равно 10, то же, что и math.neg(-10)

math.inv(num number) number

Назначение: инверсия бит числа. Эквивалент унарной операции "~"Назначение: преобразует аргумент к строковому значению.

Аргументы:

  1. obj любое значение для преобразованияnum – произвольное число, у которого инвертируются биты.

Возвращаемое значение: строковое значениеинвертированное число.

Примечание: в BPL все значения могут быть преобразованы к строковому типу.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$str$a = asStringmath.inv(1235)  // $str$a равно "123"
$str-6
$a = asString(1.23) // $str равно "1.23"
$str = asString(true) // $str равно "true"
$str = asString({1: "a b c", 2: 0.5}) // $str равно "{1: "a b c", 2: 0.5}"

asInt(obj any) int

~5          // то же, что и предыдущая строка

math.not(num number) bool

Назначение: логическое отрицание числа. Эквивалент унарной операции "!"Назначение: преобразует аргумент к целочисленному значению.

Аргументы:

  1. obj любое значение для преобразованияnum – произвольное число.

Возвращаемое значение:целочисленное значение, 0 в случае невозможности преобразования true, если num не равно 0 и false в противном случае.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$int$a = asIntmath.not(5.67)  // $int$a равно 5false
$int$a = asInt("123"math.not(0) // $int$a равно 123true
$int$a = asInt(true)!0  // $int равно 1
$int = asInt(nil)   // $intто равно 0
$int = asInt("abc") // $int равно 0

asFloat(obj any) float

же, что и предыдущая строка

math.add(num1 number, num2 number, precision int = 12) number

Назначение: сложение чисел. Эквивалент бинарной операции "+"Назначение: преобразует аргумент к вещественному числу.

Аргументы:

  1. obj любое значение для преобразования.

Возвращаемое значение: вещественное число, 0 в случае невозможности преобразования.

  1. num1 – первое слагаемое.
  2. num2 – второе слагаемое.
  3. precision – точность вычислений, количество цифр после запятой. Значение по умолчанию 12, максимальное – 14.

Возвращаемое значение: сумма чисел.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$float$a = asFloat("5.67")math.add(1.5, 3.5)         // $float$a равно 5.67
$float$a = asFloat(123)    // $float равно 123.0
$float = asfloat(true)   // $float равно 1.0
$float = asfloat(nil)1.5 + 3.5                  // $float равно 0.0
$float то же, что и предыдущая строка
$a = asFloat("abc")  math.add(1.000006, 2.1, 5) // $float$a равно 03.010001

Математические функции

math.

...

sub(num1 number, num2 number, precision int = 12) number

Назначение: фактически преобразует аргумент к числу разность чисел. Эквивалент унарной бинарной операции "+-".

Аргументы:

  1. num – произвольное значение, которое будет преобразовано к числу.

Возвращаемое значение: число.

  1. num1 – уменьшаемое.
  2. num2 – вычитаемое.
  3. precision – точность вычислений, количество цифр после запятой. Значение по умолчанию 12, максимальное – 14.

Возвращаемое значение: разность чисел.

Блок кода
languagephp
theme
Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$a = math.pos(truesub(1.5, 3.5)  // $a будет равно 1
$a = math.pos(false) // $a будет равно 0-2
$a = math.pos(nil)   // $a будет равно 0
$a = +true1.5 - 3.5                  // $a будет равно 1, то же, что и предыдущая строка
$a = math.pos(true)sub(2.100006, 1.1, 5) // $a равно 1.00001

math.

...

mul(num1 number, num2 number, precision int = 12) number

Назначение: меняет знак числа произведение чисел. Эквивалент унарной бинарной операции "-*".

Аргументы:

  1. num1 – первый множитель.
  2. num2 – второй множитель.
  3. precision – точность вычислений, количество цифр после запятой. Значение по умолчанию 12, максимальное – 14num – произвольное число, у которого изменится знак на противоположный.

Возвращаемое значение: число со знаком обратному исходномупроизведение чисел.

Блок кода
languagephp
themeDJango
firstline1titleПримеры использования
linenumberstrue
$a = math.negmul(-1) // $a будет равно 1
$a = math.neg(1).5, 3.5)         // $a будет равно -15.25
$a = math.neg(0)  // $a будет равно 0
$a = -(-10)1.5 * 3.5              // $a будет равно 10,// то же, что и предыдущая строка
$a = math.neg(-10)mul(1.2345, 1.234, 5) // $a равно 1.52337

math.

...

div(num1 number, num2 number, precision int = 12) number

Назначение: инверсия бит числа частное чисел. Эквивалент унарной бинарной операции "~/".

Аргументы:

  1. num1 – делимое.
  2. num2 – делитель.
  3. precision – точность вычислений, количество цифр после запятой. Значение по умолчанию 12, максимальное – 14num – произвольное число, у которого инвертируются биты.

Возвращаемое значение: инвертированное числочастное чисел.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$a = math.invdiv(1.5, 3.5) // $a равно -60.428571428571
$a = ~5 1.5 / 3.5          // то же, что и предыдущая строка
$a = math.

...

div(1, 3, 5)  // $a равно 0.33333

math.idiv(num1 number, num2 number) int

Назначение: целочисленное деление чисел. Эквивалент бинарной операции "\

...

Назначение: логическое отрицание числа. Эквивалент унарной операции "!".

Аргументы:

  1. num1 – делимое.
  2. num num2произвольное числоделитель.

Возвращаемое значение:  true, если num не равно 0 и false в противном случаецелая часть частного чисел.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$a = math.notidiv(2.5, 0.3) // $a равно false8
$a = math.not(0) // $a равно true
$a = !0  2.5 \ 0.3           // то же, что и предыдущая строка

math.

...

mod(num1 number, num2 number, precision int = 12) number

Назначение: сложение остаток от деления двух чисел. Эквивалент бинарной операции "+%".

Аргументы:

  1. num1первое слагаемоеделимое.
  2. num2второе слагаемоеделитель.
  3. precision – точность вычислений, количество цифр после запятой. Значение по умолчанию 12, максимальное – 14.

Возвращаемое значение: сумма чиселостаток от деления.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$a = math.addmod(13.5, 31.5)         // $a равно 0.5
$a = 13.5 +% 31.5                  // то же, что и предыдущая строка
$a = math.addmod(1.000006/3, 2.1/7, 5) // $a равно 30.1000104762

math.

...

pow(

...

base number,

...

power number, precision int = 12) number

Назначение: разность чисел возведение числа base в степень power. Эквивалент бинарной операции "-**".

Аргументы:

  1. num1 baseуменьшаемоеоснование.
  2. num2 power вычитаемоестепень.
  3. precision – точность вычислений, количество цифр после запятой. Значение по умолчанию 12, максимальное – 14.

Возвращаемое значение:разность чисел результат возведения в степень.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$a = math.subpow(1.5, 3.5)         // $a равно -24.133513940947
$a = 1.5 -** 3.5                  // то же, что и предыдущая строка
$a = math.subpow(21.1000063, 17.1, 5) // $a равно 10.0000144166

math.

...

sqrt(num number, precision int = 12) number

Назначение: произведение чисел. Эквивалент бинарной операции "*". извлечение квадратного корня.

Аргументы:

  1. num1 – первый множитель.
  2. num2 – второй множительnum – число, из которого извлекается корень.
  3. precision – точность вычислений, количество цифр после запятой. Значение по умолчанию 12, максимальное – 14.

Возвращаемое значение:произведение чисел квадратный корень либо ошибка, если число отрицательное.

Блок кода
languagephppy
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$a = math.mulsqrt(1.5, 3.514)         // $a равно 5.25
$a = 1.5 * 3.5                  // то же, что и предыдущая строка1.772004514667
$a = math.mulsqrt(1.2345, 1.2347, 5) // $a равно 10.5233730384

math.

...

round(

...

num number,

...

precision int

...

) number

Назначение: частное чисел. Эквивалент бинарной операции "/" округление числа до требуемого знака после запятой.

Аргументы:

  1. num1 – делимое.
  2. num2 – делительnum – число для округления.
  3. precision – точность вычисленийокругления, количество цифр после запятой. Значение по умолчанию 12, максимальное Максимальное значение – 14.

Возвращаемое значение:частное чисел. округлённое с заданной точностью число.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$a = math.divround(13.514159265358979323846264338327950288419716, 3.517) // $a равно 03.4285714285711415926535898
$a = 1.5 / math.round(3.514159265358979323846264338327950288419716, 2)         // то$a же, что и предыдущая строкаравно 3.14
$a = math.divround(1, 3.14159265358979323846264338327950288419716, 50)  // $a равно 0.333333

math.

...

rand(

...

min int, max int) int

Назначение: целочисленное деление чисел. Эквивалент бинарной операции "\" генерация псевдослучайного числа в диапазоне от min до max включительно.

Аргументы:

  1. min - минимальное значение числа.
  2. max - максимальное значение числа
  3. num1 – делимое.
  4. num2 – делитель.

Возвращаемое значение:целая часть частного чисел число в диапазоне от min до max.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$a$r = math.idiv(2.5, 0.3) // $a равно 8
$a = 2.5 \ 0.3           // то же, что и предыдущая строка

math.mod(num1 number, num2 number, precision int = 12) number

Назначение: остаток от деления двух чисел. Эквивалент бинарной операции "%".

Аргументы:

  1. num1 – делимое.
  2. num2 – делитель.
  3. precision – точность вычислений, количество цифр после запятой. Значение по умолчанию 12, максимальное – 14.
rand(-10, 10)

Функции для работы со строками

str.len(str string) int

Назначение: определение длины строки в символах.

Аргументы:

  1. str – строка, длину которой необходимо определить.

Возвращаемое значение: целое число, равное количеству символов в строке.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$str = "Какая-то строка"
$len = str.len($str) // $len будет содержать 15

str.lower(str string) string

Назначение: преобразование символов строки в нижний регистр.

Аргументы:

  1. str – строка, которую необходимо преобразовать.

Возвращаемое значение: строка, все символы которой находятся в нижнем регистреВозвращаемое значение: остаток от деления.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$a$str = "СтРоКа"
$lower = mathstr.mod(3.5, 1.5)   lower($str) // $a$lower равно 0.5
$a = 3.5 % 1.5             // то же, что и предыдущая строка
$a = math.mod(1/3, 2/7, 5) // $a равно 0.04762

math.pow(base number, power number, precision int = 12) number

Назначение: возведение числа base в степень power. Эквивалент бинарной операции "**".

Аргументы:

будет содержать "строка" 

str.upper(str string) string

Назначение: преобразование символов строки в верхний регистр.

Аргументы:

  1. str – строка, которую необходимо преобразовать
  2. base – основание.
  3. power – степень.
  4. precision – точность вычислений, количество цифр после запятой. Значение по умолчанию 12, максимальное – 14.

Возвращаемое значение: результат возведения в степеньстрока, все символы которой находятся в верхнем регистре.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$a$str = "СтРоКа"
$upper = mathstr.pow(1.5, 3.5)    upper($str) // $a$lower равно 4.133513940947
$a = 1.5 ** 3.5            // то же, что и предыдущая строка
$a = math.pow(1.3, 7.1, 5) // $a равно 0.44166

math.sqrt(num number, precision int = 12) number

Назначение: извлечение квадратного корня.

Аргументы:

  1. num – число, из которого извлекается корень.
  2. precision – точность вычислений, количество цифр после запятой. Значение по умолчанию 12, максимальное – 14.
будет содержать "СТРОКА" 

str.ucfirst(str string) string

Назначение: преобразование первого символа строки в верхний регистр.

Аргументы:

  1. str – строка, первый символ которой необходимо преобразовать.

Возвращаемое значение: строка, в которой первый символ записан в верхнем регистре.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$str = str.ucfirst("строка") // $str будет содержать "Строка" 

str.lcfirst(str string) string

Назначение: преобразование первого символа строки в нижний регистр.

Аргументы:

  1. str – строка, первый символ которой необходимо преобразовать.

Возвращаемое значение: строка, в которой первый символ записан в нижнем регистреВозвращаемое значение: квадратный корень либо ошибка, если число отрицательное.

Блок кода
languagepyphp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$a$str = mathstr.sqrt(3.14ucfirst("Строка")   // $a$str равно 1.772004514667
$a = math.sqrt(1.7, 5) // $a равно 0.30384

math.round(num number, precision int) number

будет содержать "строка" 

str.letter(str string, index int) string

Назначение: получение указанного символа строкиНазначение: округление числа до требуемого знака после запятой.

Аргументы:

  1. num – число для округленияstr – строка, символ которой требуется получить.
  2. precision – точность округления, количество цифр после запятой. Максимальное значение – 14index – целое число, определяющее позицию символа в строке, начиная с 0. Если это число отрицательное, то отсчёт начинается с конца строки.

Возвращаемое значение:  округлённое с заданной точностью числострока, соответствующая указанному символу, либо пустая строка, если символа с такой позицией не существует.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$a$str = math.round(3.14159265358979323846264338327950288419716, 17) // $a равно 3.1415926535898
$a"Слово"
$firstLetter = mathstr.roundletter(3.14159265358979323846264338327950288419716$str, 20)  // $a равно 3.14
$aПервая буква
$lastLetter = mathstr.roundletter(3.14159265358979323846264338327950288419716$str, 0-1)  // $aПоследняя равно 3буква

...

str.

...

first(

...

str string,

...

index int = 0)

...

string

Назначение: генерация псевдослучайного числа в диапазоне от min до max включительно получение указанного символа строки, начиная с начала строки.

Аргументы:

  1. min - минимальное значение числа.
  2. max - максимальное значение числа.
  1. str – строка, символ которой требуется получить.
  2. index – целое число, определяющее позицию символа с начала строки, начиная с 0. При этом знак числа игнорируется. Значение по умолчанию – 0 (первый символ).

Возвращаемое значение: строка, соответствующая указанному символу, либо пустая строка, если символа с такой позицией не существуетВозвращаемое значение: число в диапазоне от min до max.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$r$str = "Слово"
$firstLetter = str.first($str)      // Первая буква
$secondLetter = mathstr.randfirst(-10$str, 10)

Функции для работы со строками

...

1)  // Вторая буква

str.last(str string, index int = 0)

...

string

Назначение: определение длины строки в символах получение указанного символа строки, начиная с конца строки.

Аргументы:

  1. str – строка, длину символ которой необходимо определитьтребуется получить.
  2. index – целое число, определяющее позицию символа с конца строки, начиная с 0. При этом знак числа игнорируется. Значение по умолчанию – 0 (последний символ).

Возвращаемое значение: строка, соответствующая указанному символу, либо пустая строка, если символа с такой позицией не существуетВозвращаемое значение: целое число, равное количеству символов в строке.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$str = "Какая-то строкаСлово"
$len$lastLetter = str.lenlast($str)       // $len будет содержать 15 Последняя буква
$penultLetter = str.last($str, 1)  // Предпоследняя буква

str.

...

concat(str1 string, str2 string) string

Назначение: преобразование символов объединяет две строки в нижний регистродну.

Аргументы:

  1. str1 – строка, которая объединяется.
  2. str2 str – строка, которую необходимо преобразоватьс которой объединяются.

Возвращаемое значение: новая строка, все символы которой находятся в нижнем регистре, состоящая из первой строки, справа от которой добавлена вторая строка.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$str$str1 = "один"
$str2 = "СтРоКадва"
$lower$str = str.lower($strconcat($str1, $str2) // $lower$str будет содержать "строкаодиндва" 

str.

...

sub(str string, offset int, length int = nil) string

Назначение: преобразование символов строки в верхний регистр возвращает подстроку строки str, начинающейся с offset символа по счету и длиной length символов.

Аргументы:

  1. str исходная строка, которую необходимо преобразовать..
  2. offset – если offset неотрицательный, то возвращаемая подстрока начинается с позиции offset от начала строки, считая от нуля.
    Если offset отрицательный, то возвращаемая подстрока начинается с позиции, отстоящей на offset символов от конца строки str.
    Если str меньше offset символов, то будет возвращена пустая строка.
  3. length – если length положительный, то возвращаемая строка будет не длиннее length символов, начиная с параметра offset (в зависимости от длины string).
    Если length отрицательный, то будет отброшено указанное этим аргументом число символов с конца строки string (после того как будет вычислена стартовая позиция, если offset отрицательный). Если при этом позиция начала подстроки, определяемая аргументом offset, находится в отброшенной части строки или за ней, то возвращается пустая строка. 
    Если параметр length задан и равен 0, то будет возвращена пустая строка.
    Если параметр length опущен или nil, то будет возвращена подстрока, начинающаяся с позиции, указанной параметром offset и длящейся до конца строки.

Возвращаемое значение: часть str или пустая строкаВозвращаемое значение: строка, все символы которой находятся в верхнем регистре.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$str$sub = "СтРоКа"
$upperstr.sub("abcdef", 1)      // $sub равен bcdef
$sub = str.upper($strsub("abcdef", 1, 3)   // $sub $lowerравен будетbcd
$sub содержать= str.sub("СТРОКА" 

str.ucfirst(str string) string

Назначение: преобразование первого символа строки в верхний регистр.

Аргументы:

  1. str – строка, первый символ которой необходимо преобразовать.

Возвращаемое значение: строка, в которой первый символ записан в верхнем регистре.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$strabcdef", 0, 4)   // $sub равен abcd
$sub = str.sub("abcdef", 0, 8)   // $sub равен abcdef
$sub = str.ucfirstsub("строка")abcdef", -1, 1)  // $str$sub будетравен содержать "Строка" f
$sub = str.

...

Назначение: преобразование первого символа строки в нижний регистр.

Аргументы:

  1. str – строка, первый символ которой необходимо преобразовать.

Возвращаемое значение: строка, в которой первый символ записан в нижнем регистре.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$strsub("abcdef", -1)     // $sub равен f
$sub = str.ucfirstsub("Строкаabcdef", -2)     // $str$sub будетравен содержать "строка" ef
$sub = str.

...

Назначение: получение указанного символа строки.

Аргументы:

  1. str – строка, символ которой требуется получить.
  2. index – целое число, определяющее позицию символа в строке, начиная с 0. Если это число отрицательное, то отсчёт начинается с конца строки.

Возвращаемое значение: строка, соответствующая указанному символу, либо пустая строка, если символа с такой позицией не существует.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$str = "Слово"
$firstLetter = str.letter($str, 0)  // Первая буква
$lastLetter = str.letter($strsub("abcdef", -3, 1)  // $sub равен d
$sub = str.sub("abcdef", 0, -1)  // $sub равен abcde
$sub = str.sub("abcdef", 2, -1)  // $sub равен cde
$sub = str.sub("abcdef", 4, -4)  // $sub равен пустой строке
$sub = str.sub("abcdef", -3, -1)  // $sub Последняяравен букваde

str.

...

join(arr Collection, separator string = "") string

Назначение: получение указанного символа строки, начиная с начала строки объединяет элементы коллекции (кортежа, списка или ассоциативного массива) в строку.

Аргументы:

  1. str – строка, символ которой требуется получитьarr – коллекция элементов для объединения.
  2. index – целое число, определяющее позицию символа с начала строки, начиная с 0. При этом знак числа игнорируется. Значение по умолчанию – 0 (первый символ).separator – разделитель элементов коллекции. По умолчанию равен пустой строке.

Возвращаемое значение: строка, соответствующая указанному символу, либо пустая строка, если символа с такой позицией не существуетновая строка, составленная из всех элементов коллекции отделённых между собой разделителем.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$str = "Слово"
$firstLetter str.join([1, 2, 3, 4, 5], "-")             // $str будет содержать "1-2-3-4-5"
$str = str.first($str)join(("a", "b", "c"))                  // $str будет Перваясодержать буква"abc"
$secondLetter$str = str.first($str, 1)  // Вторая буква

str.last(str string, index int = 0) string

Назначение: получение указанного символа строки, начиная с конца строки.

Аргументы:

  1. str – строка, символ которой требуется получить.
  2. index – целое число, определяющее позицию символа с конца строки, начиная с 0. При этом знак числа игнорируется. Значение по умолчанию – 0 (последний символ).

Возвращаемое значение: строка, соответствующая указанному символу, либо пустая строка, если символа с такой позицией не существует.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$str = "Слово"
$lastLetter = str.last($strjoin({"a": "один", "b": "два"}, " + ") // $str будет содержать "один + два"
$str = str.join(["одно"], "/")                    // $str будет содержать "одно"
$str = str.join([], "/")       // Последняя буква
$penultLetter = str.last($str, 1)                   // Предпоследняя буква$str будет содержать ""

str.

...

split(

...

str string,

...

separator string = "", limit int = 0) List

Назначение: разбивает строку на части, используя separator в качестве разделителя

...

Назначение: объединяет две строки в одну.

Аргументы:

  1. str1 str – строка , которая объединяется.для разделения.
  2. separator – разделитель. Если равен пустой строке, то разбиение происходит посимвольно.
  3. limit – необязательный параметр, равный максимальному количеству частей, на которые будет разбита строка. Если limit равен 0, то без ограничений. Если limit является положительным, возвращаемый список будет содержать максимум limit элементов. При этом последний элемент будет содержать остаток строки str. Если limit отрицательный, то будут возвращены все компоненты, кроме последних limitstr2 – строка, с которой объединяются.

Возвращаемое значение:  новая строка, состоящая из первой строки, справа от которой добавлена вторая список подстрок, на которые была разбита строка.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$str1$letters = str.split("один"
$str2 = "два"
$strабвгде")             // Получили список букв слова
$words = str.concat($str1, $str2)split("один два три", " ")    // $strПолучили будетсписок содержать "одиндва" слов
$words = str.

...

split("один два три", " ", 2) // words содержит ["один", "два три"]

str.replace(str string, search string, replace string) string

Назначение: ищет все вхождения подстроки в строке и заменяет их на заданное значение

...

Назначение: возвращает подстроку строки str, начинающейся с offset символа по счету и длиной length символов.

Аргументы:

  1. strисходная строка в которой выполняется замена.
  2. offset – если offset неотрицательный, то возвращаемая подстрока начинается с позиции offset от начала строки, считая от нуля.
    Если offset отрицательный, то возвращаемая подстрока начинается с позиции, отстоящей на offset символов от конца строки str.
    Если str меньше offset символов, то будет возвращена пустая строка.
  3. length – если length положительный, то возвращаемая строка будет не длиннее length символов, начиная с параметра offset (в зависимости от длины string).
    Если length отрицательный, то будет отброшено указанное этим аргументом число символов с конца строки string (после того как будет вычислена стартовая позиция, если offset отрицательный). Если при этом позиция начала подстроки, определяемая аргументом offset, находится в отброшенной части строки или за ней, то возвращается пустая строка. 
    Если параметр length задан и равен 0, то будет возвращена пустая строка.
    Если параметр length опущен или nil, то будет возвращена подстрока, начинающаяся с позиции, указанной параметром offset и длящейся до конца строки.

Возвращаемое значение: часть str или пустая строка.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$sub = str.sub("abcdef", 1)      // $sub равен bcdef
$sub = str.sub("abcdef", 1, 3)   // $sub равен bcd
$sub = str.sub("abcdef", 0, 4)   // $sub равен abcd
$sub = str.sub("abcdef", 0, 8)   // $sub равен abcdef
$sub = str.sub("abcdef", -1, 1)  // $sub равен f
$sub = str.sub("abcdef", -1)     // $sub равен f
$sub = str.sub("abcdef", -2)     // $sub равен ef
$sub = str.sub("abcdef", -3, 1)  // $sub равен d
$sub = str.sub("abcdef", 0, -1)  // $sub равен abcde
$sub = str.sub("abcdef", 2, -1)  // $sub равен cde
$sub = str.sub("abcdef", 4, -4)  // $sub равен пустой строке
$sub = str.sub("abcdef", -3, -1) // $sub равен de

str.join(arr Collection, separator string = "") string

Назначение: объединяет элементы коллекции (кортежа, списка или ассоциативного массива) в строку.

Аргументы:

  1. arr – коллекция элементов для объединения.
  2. separator – разделитель элементов коллекции. По умолчанию равен пустой строке.

Возвращаемое значение: новая строка, составленная из всех элементов коллекции отделённых между собой разделителем.

  1. search – подстрока, которая ищется в исходной строке.
  2. replace – строка замены.

Возвращаемое значение: новая строка, в которой все search заменены на replace.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$str = str.replace("мама мыла раму", "рам", "Даш") // $str содержит "мама мыла Дашу"

str.rreplace(str string, pattern string, replace string) string

Назначение: ищет все вхождения соответствующие регулярному выражению в строке и заменяет их на заданное значение.

Аргументы:

  1. str – строка в которой выполняется замена.
  2. pattern – шаблон регулярного выражения соответствия которому ищутся в исходной строке. 
  3. replace – строка замены.

Возвращаемое значение: новая строка, в которой все cоответствия pattern заменены на replace.

HTML
<b>Примечание:</b> в качестве регулярных выражений используются <a href="http://ru.wikipedia.org/wiki/PCRE" target="_blank">Perl совместимые регулярные выражения (PCRE)</a>. 
HTML
<a href="http://www.shtogrin.com/library/web/pcre/" target="_blank">Ссылка на документацию и примеры регулярных выражений.</a> 
HTML
<a href="http://myregexp.com/" target="_blank">Онлайн редактор регулярных выражений.</a>
Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$str = str.rreplace("раз 1, два 2, три 3", "/[0-9]/", "") // $str содержит "раз, два, три"

str.match(str string, pattern string) bool

Назначение: выполняет проверку данной строки регулярному выражению.

Аргументы:

  1. str – строка для сопоставления с регулярным выражением.
  2. pattern – шаблон регулярного выражения. 

Возвращаемое значение: возвращает true, если строка соответствует регулярному выражению и false в противном случае.

HTML
<b>Примечание:</b> в качестве регулярных выражений используются <a href="http://ru.wikipedia.org/wiki/PCRE" target="_blank">Perl совместимые регулярные выражения (PCRE)</a>. 
HTML
<a href="http://www.shtogrin.com/library/web/pcre/" target="_blank">Ссылка на документацию и примеры регулярных выражений.</a> 
HTML
<a href="http://myregexp.com/" target="_blank">Онлайн редактор регулярных выражений.</a>
Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$isIntNumber = str.match("1.234", "/^[0-9]+$/") // $isIntNumber будет равен false
$isIntNumber = str.match("1234", "/^[0-9]+$/")  // $isIntNumber будет равен true

str.distance(str1 string, str2 string) number

Назначение: вычисляет степень сходства двух строк.

Аргументы:

  1. str1 – первая строка для сравнения.
  2. str2 – вторая строка для сравнения. 

Возвращаемое значение: возвращает число от 0 до 1 включительно, определяющее степень сходства двух строк: 1 – строки эквивалентны, 0 – строки абсолютно разные.

HTML
<b>Примечание:</b> функция фактически вычисляет
<a href="https://en.wikipedia.org/wiki/Word_error_rate" target="_blank">Word Error Rate.</a>
Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$d = str.distance("", "abc")              // $d равен 0
$d = str.distance("Да", "да
Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$str = str.join([1, 2, 3, 4, 5], "-")             // $str будет содержать "1-2-3-4-5"
$str = str.join(("a", "b", "c"))                  // $str будет содержать "abc"
$str = str.join({"a": "один", "b": "два"}, " + ") // $str будет содержать "один + два"
$str = str.join(["одно"], "/")                    // $str будет содержать "одно"
$str = str.join([], "/")             // $d равен 1
$d = str.distance("корыто", "открыто")    // $d равен 0.571
$d = str.distance("Да, верно", "таверна") // $str будет содержать ""

str.split(str string, separator string = "", limit int = 0) List

Назначение: разбивает строку на части, используя separator в качестве разделителя.

Аргументы:

  1. str – строка для разделения.
  2. separator – разделитель. Если равен пустой строке, то разбиение происходит посимвольно.
  3. limit – необязательный параметр, равный максимальному количеству частей, на которые будет разбита строка. Если limit равен 0, то без ограничений. Если limit является положительным, возвращаемый список будет содержать максимум limit элементов. При этом последний элемент будет содержать остаток строки str. Если limit отрицательный, то будут возвращены все компоненты, кроме последних limit.

Возвращаемое значение: список подстрок, на которые была разбита строка.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$letters = str.split("абвгде")             // Получили список букв слова
$words = str.split("один два три", " ")    // Получили список слов
$words = str.split("один два три", " ", 1) // words содержит ["один", "два три"]

str.replace(str string, search string, replace string) string

Назначение: ищет все вхождения подстроки в строке и заменяет их на заданное значение.

Аргументы:

  1. str – строка в которой выполняется замена.
  2. search – подстрока, которая ищется в исходной строке.
  3. replace – строка замены.
 $d равен 0.625
$d = str.distance("жутко косые бананы", "жуй кокосы, ешь бананы") // $d равен 0.714
$d = str.distance("сошел с ума от раны", "Пошел он в пусурманы")  // $d равен 0.45
$d = str.distance("ёж", "дезоксирибонуклеиновая кислота")         // $d равен 0

Функции хэширования

hash.of(text string, algo string = "md5", binary bool = false) string

Назначение: вычисляет хэш строки согласно указанному алгоритму.

Аргументы:

  1. text – произвольная строка для хэширования.
  2. algo – название алгоритма хэширования. По умолчанию используется алгоритм md5.
  3. binary – когда установлено в true, выводит необработанные двоичные данные. При false выводит данные в шестнадцатеричной кодировке в нижнем регистре. По умолчания равен false.

Возвращаемое значение:возвращает строку, содержащую вычисленный хеш-код в шестнадцатеричной кодировке в нижнем регистре. Если binary задан как true, то возвращается хеш-код в виде бинарных данных. В случае ошибки (например, если указан недопустимый алгоритм хэширования) возвращает пустую строку.

Допустимые значения алгоритмов хэширования:

  • md2
  • md4
  • md5
  • sha1
  • sha224
  • sha256
  • sha384
  • sha512/224
  • sha512/256
  • sha512
  • sha3–224
  • sha3–256
  • sha3–384
  • sha3–512
  • ripemd128
  • ripemd160
  • ripemd256
  • ripemd320
  • whirlpool
  • tiger128,3
  • tiger160,3
  • tiger192,3
  • tiger128,4
  • tiger160,4
  • tiger192,4
  • snefru
  • snefru256
  • gost
  • gost–crypto
  • adler32
  • crc32
  • crc32b
  • crc32c
  • fnv132
  • fnv1a32
  • fnv164
  • fnv1a64
  • joaat
  • murmur3a
  • murmur3c
  • murmur3f
  • xxh32
  • xxh64
  • xxh3
  • xxh128
  • haval128,3
  • haval160,3
  • haval192,3
  • haval224,3
  • haval256,3
  • haval128,4
  • haval160,4
  • haval192,4
  • haval224,4
  • haval256,4
  • haval128,5
  • haval160,5
  • haval192,5
  • haval224,5
  • haval256,5

Примечание: если третий параметр true, то передавать возвращаемое функцией значение в качестве сообщения бота или его части нельзя. Это приведёт к падению ботаВозвращаемое значение: новая строка, в которой все search заменены на replace.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$str$hash = strhash.replaceof("мама мыла раму", "рам", "Даш") // $str содержит "мама мыла Дашу"

str.rreplace(str string, pattern string, replace string) string

Назначение: ищет все вхождения соответствующие регулярному выражению в строке и заменяет их на заданное значение.

Аргументы:

  1. str – строка в которой выполняется замена.
  2. pattern – шаблон регулярного выражения соответствия которому ищутся в исходной строке. 
  3. replace – строка замены.

Возвращаемое значение: новая строка, в которой все cоответствия pattern заменены на replace.

Наглый коричневый лисёнок прыгает вокруг ленивой собаки.")                 // $hash будет содержать bff8b4bc8b5c1c1d5b3211dfb21d1e76
$hash = hash.of("Наглый коричневый лисёнок прыгает вокруг ленивой собаки.", "ripemd160")    // $hash будет содержать 8817ca339f7f902ad3fb456150a1bb9b4cb5dde9
$hash = hash.of("Наглый коричневый лисёнок прыгает вокруг ленивой собаки.", "sha256", true) // $hash будет содержать бинарную строку (содержащую неотображаемые символы)

Функции кодирования/декодирования

codec.base64Encode(str string) string

HTML
<b>Назначение:</b> кодирует заданную строку в
HTML
<b>Примечание:</b> в качестве регулярных выражений используются <a href="httphttps://ru.wikipedia.org/wiki/PCREBase64" target="_blank">Perl совместимые регулярные выражения (PCRE)<>Base64</a>. 
HTML
<a href="http://www.shtogrin.com/library/web/pcre/" target="_blank">Ссылка на документацию и примеры регулярных выражений.</a> 

Аргументы:

  1. str – произвольная строка для кодирования.

Возвращаемое значение: возвращает строку, закодированную в Base64.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$encoded = codec.base64Encode("Привет!") // $encoded будет содержать строку "0J/RgNC40LLQtdGCIQ=="

codec.base64Decode(str string) ?string

HTML
<b>Назначение:</b> декодирует заданную в 
HTML
<a href="httphttps://myregexp.com/ru.wikipedia.org/wiki/%D0%A0%D0%B0%D1%81%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B8%D0%B5_%D0%94%D0%B0%D0%BC%D0%B5%D1%80%D0%B0%D1%83_%E2%80%94_%D0%9B%D0%B5%D0%B2%D0%B5%D0%BD%D1%88%D1%82%D0%B5%D0%B9%D0%BD%D0%B0" target="_blank">Онлайн редактор регулярных выражений.</a>>Base64</a> строку.

Аргументы:

  1. str – строка, закодированная в Base64.

Возвращаемое значение: возвращает раскодированную строку либо nil, если закодированная строка содержит символы, не входящие в алфавит символов Base64 кодировки.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$str$decoded = strcodec.rreplace("раз 1, два 2, три 3", "/[0-9]/", "") // $str содержит "раз, два, три"

str.match(str string, pattern string) bool

Назначение: выполняет проверку данной строки регулярному выражению.

Аргументы:

  1. str – строка для сопоставления с регулярным выражением.
  2. pattern – шаблон регулярного выражения. 

...

base64Decode("0J/RgNC40LLQtdGCIQ==") // $decoded будет содержать строку "Привет!"
$failed = codec.base64Decode("Привет!")               // $failed будет равен nil

codec.jsonEncode(value any) string

HTML
<b>Назначение:</b> кодирует заданное значение в

...

HTML
<b>Примечание:</b> в качестве регулярных выражений используются <a href="httphttps://ru.wikipedia.org/wiki/PCREJSON" target="_blank">Perl совместимые регулярные выражения (PCRE)<>json</a>. 
HTML
<a href="http://www.shtogrin.com/library/web/pcre/" target="_blank">Ссылка на документацию и примеры регулярных выражений.</a> 

Аргументы:

  1. value – произвольное значение для кодирования.

Возвращаемое значение: возвращает значение в формате json.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$encoded = codec.jsonEncode((1, true, "a", {"a": 1, "b": 2})) // $encoded будет содержать строку '[1, true, "a", {"a": 1, "b": 2}]'

codec.jsonDecode(value string) any

HTML
<b>Назначение:</b> декодирует заданное в 
<a href="https://ru.wikipedia.org/wiki/JSON
HTML
<a href="http://myregexp.com/" target="_blank">Онлайн редактор регулярных выражений.</a>>json</a> значение.

Аргументы:

  1. value – значение, закодированное в json.

Возвращаемое значение: возвращает раскодированное значение либо nil, в случае невозможности его раскодирования.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$isIntNumber$decoded = strcodec.matchjsonDecode("1.234"'[1, true, "/^[0-9]+$/") // $isIntNumber будет равен false
$isIntNumber = str.match("1234", "/^[0-9]+$/")  // $isIntNumber будет равен true

str.distance(str1 string, str2 string) number

Назначение: вычисляет степень сходства двух строк.

Аргументы:

  1. str1 – первая строка для сравнения.
  2. str2 – вторая строка для сравнения. 

Возвращаемое значение: возвращает число от 0 до 1 включительно, определяющее степень сходства двух строк: 1 – строки эквивалентны, 0 – строки абсолютно разные.

...

a", {"a": 1, "b": 2}]') // $decoded будет содержать список [1, true, "a", {"a": 1, "b": 2}]

Функции для работы с датой и временем

dt.add(d1 int|string, d2 int|string) string

Назначение: складывает две даты, заданные в виде строки либо как число секунд.

  • Если хотя бы один из аргументов функции число секунд, то это число будет прибавлено к числу секунд другой даты.
  • Если обе даты заданы строкой, то результат определяется по формуле d1 + abs(secondsOf(d1) - secondsOf(d2)), где abs – модуль числа (положительное значение), secondsOf – это дата, представленная как количество секунд, прошедших с начала 1970 года (даты до этого времени представлены отрицательным значением). 

Аргументы:

  1. d1 – строка, представляющая собой дату в одном из допустимых форматов, или целое число, соответствующее количеству секунд.
  2. d2 – аналогично первому аргументу.

Возвращаемое значение: возвращает новую дату и время в виде строки.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$d = strdt.distanceadd("2022-01-01 12:30:00", "abc"59)                    // $d равен 0 содержит строку "2022-01-01 12:30:59" 
$d = strdt.distanceadd("Да"3600, "да2022-01-01 12:30:00")                  // $d равен 1
$d = str.distance("корыто", "открыто")    // $d равен 0.571содержит строку "2022-01-01 13:30:00"
$d = strdt.distanceadd("Да, верно2022-01-02 02:00:00", "таверна2022-01-01 01:00:00") // $d равен 0.625
$d = str.distance("жутко косые бананы", "жуй кокосы, ешь бананы") // $d равен 0.714
$d = str.distance("сошел с ума от раны", "Пошел он в пусурманы")  // $d равен 0.45
$d = str.distance("ёж", "дезоксирибонуклеиновая кислота")         // $d равен 0

Функции хэширования

hash.of(text string, algo string = "md5", binary bool = false) string

Назначение: вычисляет хэш строки согласно указанному алгоритму.

Аргументы:

  1. text – произвольная строка для хэширования.
  2. algo – название алгоритма хэширования. По умолчанию используется алгоритм md5.
  3. binary – когда установлено в true, выводит необработанные двоичные данные. При false выводит данные в шестнадцатеричной кодировке в нижнем регистре. По умолчания равен false.

...

содержит строку "2022-01-03 03:00:00"

dt.sub(d1 int|string, d2 int|string) int|string

Назначение: вычисляет разность двух дат, заданных в виде строк либо количеством секунд.

  • Если обе даты заданы количеством секунд, то функция вернёт их разность в виде числа секунд.
  • Если обе даты заданы строкой, то будет возвращено целое число, равное разности между датами в секундах.
  • Если первый аргумент задан строкой даты, а второй – числом секунд, то результатом будет новая дата, равная разности даты и числа секунд.
  • Если второй аргумент задан строкой даты, а первый числом секунд, то результатом будет ошибка.

Аргументы:

  1. d1 – строка, представляющая собой дату в одном из допустимых форматов, или целое число, соответствующее количеству секунд.
  2. d2 – аналогично первому аргументу.

Возвращаемое значение: возвращает новую дату и время в виде строки либо число секунд – разность дат

...

Допустимые значения алгоритмов хэширования:

  • md2
  • md4
  • md5
  • sha1
  • sha224
  • sha256
  • sha384
  • sha512/224
  • sha512/256
  • sha512
  • sha3–224
  • sha3–256
  • sha3–384
  • sha3–512
  • ripemd128
  • ripemd160
  • ripemd256
  • ripemd320
  • whirlpool
  • tiger128,3
  • tiger160,3
  • tiger192,3
  • tiger128,4
  • tiger160,4
  • tiger192,4
  • snefru
  • snefru256
  • gost
  • gost–crypto
  • adler32
  • crc32
  • crc32b
  • crc32c
  • fnv132
  • fnv1a32
  • fnv164
  • fnv1a64
  • joaat
  • murmur3a
  • murmur3c
  • murmur3f
  • xxh32
  • xxh64
  • xxh3
  • xxh128
  • haval128,3
  • haval160,3
  • haval192,3
  • haval224,3
  • haval256,3
  • haval128,4
  • haval160,4
  • haval192,4
  • haval224,4
  • haval256,4
  • haval128,5
  • haval160,5
  • haval192,5
  • haval224,5
  • haval256,5

Примечание: если третий параметр true, то передавать возвращаемое функцией значение в качестве сообщения бота или его части нельзя. Это приведёт к падению бота.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$hash$d = hashdt.of("Наглый коричневый лисёнок прыгает вокруг ленивой собаки.")sub(100, 50)                                      // $hash$d будетсодержит содержать bff8b4bc8b5c1c1d5b3211dfb21d1e7650
$hash$d = hashdt.of("Наглый коричневый лисёнок прыгает вокруг ленивой собаки.", "ripemd160")sub("2022-01-01 12:30:00", 3600)                  // $d $hashсодержит будет содержать 8817ca339f7f902ad3fb456150a1bb9b4cb5dde9
$hashстроку "2022-01-01 11:30:00"
$d = hashdt.of("Наглый коричневый лисёнок прыгает вокруг ленивой собаки.", "sha256", true) // $hash будет содержать бинарную строку (содержащую неотображаемые символы)

Функции кодирования/декодирования

codec.base64Encode(str string) string

HTML
<b>Назначение:</b> кодирует заданную строку в <a href="https://ru.wikipedia.org/wiki/Base64" target="_blank">Base64</a>.

Аргументы:

  1. str – произвольная строка для кодирования.

Возвращаемое значение: возвращает строку, закодированную в Base64.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$encoded = codec.base64Encode("Привет!sub(3600, "2022-01-01 12:30:00")                  // Такой вызов недопустим и приведёт к остановке программы
$d = dt.sub("2022-01-01 01:00:00", "2022-01-01 00:00:00") // $encoded$d будет содержать строку "0J/RgNC40LLQtdGCIQ=="

codec.base64Decode(str string) ?string

HTML
<b>Назначение:</b> декодирует заданную в 
<a href="https://ru.wikipedia.org/wiki/%D0%A0%D0%B0%D1%81%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B8%D0%B5_%D0%94%D0%B0%D0%BC%D0%B5%D1%80%D0%B0%D1%83_%E2%80%94_%D0%9B%D0%B5%D0%B2%D0%B5%D0%BD%D1%88%D1%82%D0%B5%D0%B9%D0%BD%D0%B0" target="_blank">Base64</a> строку.

Аргументы:

  1. str – строка, закодированная в Base64.

Возвращаемое значение: возвращает раскодированную строку либо nil, если закодированная строка содержит символы, не входящие в алфавит символов Base64 кодировки.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$decoded = codec.base64Decode("0J/RgNC40LLQtdGCIQ==") // $decoded будет содержать строку "Привет!"
$failed = codec.base64Decode("Привет!")               // $failed будет равен nil

codec.jsonEncode(value any) string

HTML
<b>Назначение:</b> кодирует заданное значение в <a href="https://ru.wikipedia.org/wiki/JSON" target="_blank">json</a>.

Аргументы:

  1. value – произвольное значение для кодирования.

Возвращаемое значение: возвращает значение в формате json.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$encoded = codec.jsonEncode((1, true, "a", {"a": 1, "b": 2})) // $encoded будет содержать строку '[1, true, "a", {"a": 1, "b": 2}]'

codec.jsonDecode(value string) any

HTML
<b>Назначение:</b> декодирует заданное в 
<a href="https://ru.wikipedia.org/wiki/JSON" target="_blank">json</a> значение.

Аргументы:

  1. value – значение, закодированное в json.
содержит 3600

dt.format(dt int|string, format string) string

Назначение: форматирует дату согласно заданному формату.

Аргументы:

  • dt – дата, заданная строкой или числом секунд.
  • format – строка, определяющая формат даты и времени.

Возвращаемое значение: строка даты в заданном формате.

Допустимые параметры форматирования:

Символ в строке formatОписаниеПример возвращаемого значения
Год
yПолное числовое представление года, не менее 4 цифр1999, 2012, 10208
yyДве последние цифры года c дополнением нулями, если необходимо99, 05
Месяц
MПорядковый номер месяца без ведущего нуляот 1 до 12
MMПорядковый номер месяца с ведущим нулёмот 01 до 12
День
dДень месяца без ведущего нуляот 1 до 31
ddДень месяца, 2 цифры с ведущим нулёмот 01 до 31
Час
hЧасы в 12-часовом формате без ведущего нуляот 1 до 12
hhЧасы в 12-часовом формате с ведущим нулёмот 01 до 12
HЧасы в 24-часовом формате без ведущего нуляот 0 до 23
HHЧасы в 24-часовом формате с ведущим нулёмот 00 до 23
Минуты
mМинуты без ведущего нуляот 0 до 59
mmМинуты с ведущим нулёмот 00 до 59
Секунды
sСекунды без ведущего нуляот 0 до 59
ssСекунды с ведущим нулёмот 00 до 59

Примечание: если строка формата содержит символы, совпадающие с вышеперечисленными, но не являющиеся параметрами форматирования, то их следует экранировать с помощью символа обратного слэша "\"Возвращаемое значение: возвращает раскодированное значение либо nil, в случае невозможности его раскодирования.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$decoded$dt = codecdt.jsonDecode('[1, true, "a", {"a": 1, "b": 2}]format('2022-12-20 08:34:05', 'y.MM.dd h-mm-ss')    // $dt будет содержать строку "22.12.20 8-34-05"
$dt = dt.format('16:30:47', '\Hour\s an\d \minute\s: HH/mm') // $decoded$dt будет содержать список [1, true, "a", {"a": 1, "b": 2}]

Функции для работы с датой и временем

dt.add(d1 int|string, d2 int|string) string

Назначение: складывает две даты, заданные в виде строки либо как число секунд.

  • Если хотя бы один из аргументов функции число секунд, то это число будет прибавлено к числу секунд другой даты.
  • Если обе даты заданы строкой, то результат определяется по формуле d1 + abs(secondsOf(d1) - secondsOf(d2)), где abs – модуль числа (положительное значение), secondsOf – это дата, представленная как количество секунд, прошедших с начала 1970 года (даты до этого времени представлены отрицательным значением). 

Аргументы:

  1. d1 – строка, представляющая собой дату в одном из допустимых форматов, или целое число, соответствующее количеству секунд.
  2. d2 – аналогично первому аргументу.
строку "Hours and minutes: 16/30"

dt.year(dt int|string) int

Назначение: возвращает полное числовое представление года, не менее 4 цифр.

Аргументы:

  1. dt – дата, заданная строкой или числом секунд.

Возвращаемое значение: возвращает число, представляющее год аргумента даты dt.

Примечание: если в аргумент dt передано только время, то в качестве даты будет расцениваться 1 января 1970 года, и таким образом возвращаемое функцией значение будет равно 1970Возвращаемое значение: возвращает новую дату и время в виде строки.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$d$dt = dt.addyear("'2022-0112-0120 1208:30:00", 59)                    34:05') // $d$dt содержитбудет строку "2022-01-01 12:30:59" 
$d = dt.add(3600, "2022-01-01 12:30:00")                  // $d содержит строку "2022-01-01 13:30:00"
$d = dt.add("2022-01-02 02:00:00", "2022-01-01 01:00:00"содержать число 2022
$dt = dt.year('08:34:05') // $d$dt содержитбудет строку "2022-01-03 03:00:00"содержать число 1970

dt.

...

month(

...

dt int|string

...

) int

...

Назначение:вычисляет разность двух дат, заданных в виде строк либо количеством секунд.

  • Если обе даты заданы количеством секунд, то функция вернёт их разность в виде числа секунд.
  • Если обе даты заданы строкой, то будет возвращено целое число, равное разности между датами в секундах.
  • Если первый аргумент задан строкой даты, а второй – числом секунд, то результатом будет новая дата, равная разности даты и числа секунд.
  • Если второй аргумент задан строкой даты, а первый числом секунд, то результатом будет ошибка.

Аргументы:

  1. d1 – строка, представляющая собой дату в одном из допустимых форматов, или целое число, соответствующее количеству секунд.
  2. d2 – аналогично первому аргументу.

 возвращает порядковый номер месяца.

Аргументы:

  1. dt – дата, заданная строкой или числом секунд.

Возвращаемое значение: возвращает число, представляющее месяц аргумента даты dt.

Примечание: если в аргумент dt передано только время, то в качестве даты будет расцениваться 1 января 1970 года, и таким образом возвращаемое функцией значение будет равно 1Возвращаемое значение: возвращает новую дату и время в виде строки либо число секунд – разность дат.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$d$dt = dt.sub(100, 50)                                      // $d содержит 50
$d = dt.sub("2022-01-01 12:30:00", 3600)                  // $d содержит строку "2022-01-01 11:30:00"
$d = dt.sub(3600, "2022-01-01 12:30:00")                  // Такой вызов недопустим и приведёт к остановке программы
$d = dt.sub("2022-01-01 01:00:00", "2022-01-01 00:00:00") // $d содержит 3600

dt.format(dt int|string, format string) string

month('2022-12-20 08:34:05') // $dt будет содержать число 12
$dt = dt.month('08:34:05') // $dt будет содержать число 1

dt.day(dt int|string) int

Назначение: возвращает день месяцаНазначение: форматирует дату согласно заданному формату.

Аргументы:

  1. dt – дата, заданная строкой или числом секунд.

...

Возвращаемое значение:строка даты в заданном формате.

Допустимые параметры форматирования:

...

 возвращает число, представляющее день месяца аргумента даты dt.

Примечание: если в аргумент dt передано только время, то в качестве даты будет расцениваться 1 января 1970 года, и таким образом возвращаемое функцией значение будет равно 1.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$dt = dt.day('2022-12-20 08:34:05') // $dt будет содержать число 20
$dt = dt.day('08:34:05') // $dt будет содержать число 1

dt.hour(dt int|string) int

Назначение: возвращает часы в 24-часовом формате .

Аргументы:

  1. dt – дата, заданная строкой или числом секунд.

Возвращаемое значение: возвращает число, представляющее часы аргумента даты dt.

Примечание: если в аргумент dt передана дата без времени, то возвращаемое значение будет равно нулю.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
// Допустим сейчас 2023-01-01
$dt = dt.hour('2022-12-20 08:34:05') // $dt будет содержать число 8
$dt = dt.hour('2022-12-20') // $dt будет содержать число 0

dt.minute(dt int|string) int

Назначение: возвращает минуты.

Аргументы:

  1. dt – дата, заданная строкой или числом секунд.

Возвращаемое значение: возвращает число, представляющее минуты аргумента даты dt.

Примечание: если в аргумент dt передана дата без времени, то возвращаемое значение будет равно нулюПримечание: если строка формата содержит символы, совпадающие с вышеперечисленными, но не являющиеся параметрами форматирования, то их следует экранировать с помощью символа обратного слэша "\".

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
// Допустим сейчас 2023-01-01
$dt = dt.formatminute('2022-12-20 08:34:05', 'y.MM.dd h-mm-ss')    // $dt будет содержать строку "22.12.20 8-34-05"число 34
$dt = dt.format('16:30:47', '\Hour\s an\d \minute\s: HH/mmminute('2022-12-20') // $dt будет содержать строку "Hours and minutes: 16/30"число 0

dt.

...

second(dt int|string) int

Назначение: возвращает полное числовое представление года, не менее 4 цифрсекунды.

Аргументы:

  1. dt – дата, заданная строкой или числом секунд.

Возвращаемое значение: возвращает число, представляющее год секунды аргумента даты dt.

Примечание: если в аргумент dt передано только время, то в качестве даты будет расцениваться 1 января 1970 года, и таким образом возвращаемое функцией передана дата без времени, то возвращаемое значение будет равно 1970нулю.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
// Допустим сейчас 2023-01-01
$dt = dt.yearsecond('2022-12-20 08:34:05') // $dt будет содержать число 20225
$dt = dt.yearsecond('08:34:052022-12-20') // $dt будет содержать число 19700

dt.

...

weekday(dt int|string) int

Назначение: возвращает порядковый номер месяцадня недели.

Аргументы:

  1. dt – дата, заданная строкой или числом секунд.

Возвращаемое значение: возвращает число, представляющее месяц аргумента даты dtномер дня недели аргумента даты dt, от 0 (понедельник) до 6 (воскресенье).

Примечание: если в аргумент dt передано только время,  то то в качестве даты будет расцениваться 1 января 1970 года, и таким образом возвращаемое функцией значение будет равно 13 (четверг).

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$dt = dt.monthweekday('2022-12-20 08:34:05') // $dt будет содержать число 121
$dt = dt.monthweekday('08:34:05') // $dt будет содержать число 13

...

date.nearFuture(day

...

int

...

) string

...

Назначение: возвращает день месяцаближайшую будущую к текущей дату по заданному дню.

Аргументы:

  1. dt – дата, заданная строкой или числом секундday – число дней для определения ближайшей в будущем даты.

Возвращаемое значение: возвращает число, представляющее день месяца аргумента даты dt.Примечание: если в аргумент dt передано только время, то в качестве даты будет расцениваться 1 января 1970 года, и таким образом возвращаемое функцией значение будет равно 1ближайшую к day дату.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$dt = dt.day('// Допустим сейчас 2022-12-20 08:34:05'
$d = date.nearFuture(25) // $dt$d будет содержать число 20
$dtсодержит 2022-12-25
$d = dtdate.day('08:34:05'nearFuture(10) // $dt$d будет содержать число 1

...

содержит 2023-01-10

date.nearPast(day int) string

Назначение: возвращает часы в 24-часовом формате ближайшую прошлую к текущей дату по заданному дню.

Аргументы:

  1. dt – дата, заданная строкой или числом секундday – число дней для определения ближайшей в прошлом даты.

Возвращаемое значение: возвращает число, представляющее часы аргумента даты dt.Примечание: если в аргумент dt передана дата без времени, то возвращаемое значение будет равно нулюближайшую к day дату.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
// Допустим сейчас 20232022-0112-0120
$dt$d = dtdate.hour('2022-12-20 08:34:05'nearPast(25) // $dt$d будет содержать число 8
$dtсодержит 2022-11-25
$d = dtdate.hour('2022-12-20'nearPast(10) // $dt$d будет содержать число 0

...

содержит 2023-12-10

date.future(day int) string

Назначение: возвращает минутыдату, соответствующую указанному дню в следующем месяце.

Аргументы:

  1. dt – дата, заданная строкой или числом секундday – число дней для определения даты в будущем.

Возвращаемое значение: возвращает число, представляющее минуты аргумента даты dt.Примечание: если в аргумент dt передана дата без времени, то возвращаемое значение будет равно нулюдата в будущем.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
// Допустим сейчас 20232022-0112-0120
$dt$d = dtdate.minute('2022-12-20 08:34:05'future(25) // $dt$d будет содержать число 34
$dtсодержит 2023-01-25
$d = dtdate.minute('2022-12-20'future(10) // $dt$d будет содержать число 0

...

содержит 2023-01-10

date.past(day int) string

Назначение: возвращает секундыдату, соответствующую указанному дню в прошлом месяце.

Аргументы:

  1. dt – дата, заданная строкой или числом секундday – число дней для определения даты в прошлом.

Возвращаемое значение: возвращает число, представляющее секунды аргумента даты dt.Примечание: если в аргумент dt передана дата без времени, то возвращаемое значение будет равно нулюдата в прошлом.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
// Допустим сейчас 20232022-0112-0120
$dt$d = dtdate.second('2022-12-20 08:34:05'past(25) // $dt$d будет содержать число 5
$dtсодержит 2022-11-25
$d = dtdate.second('2022-12-20'past(10) // $dt$d будет содержать число 0

...

содержит 2022-11-10

time.nearFuture(minute int) string

Назначение: возвращает порядковый номер дня неделиближайшее будущее к текущему время по заданному количеству минут.

Аргументы:

  1. dt – дата, заданная строкой или числом секундminute – число минут для определения ближайшего в будущем времени.

Возвращаемое значение: возвращает число, представляющее номер дня недели аргумента даты dt, от 0 (понедельник) до 6 (воскресенье).Примечание: если в аргумент dt передано только время, то в качестве даты будет расцениваться 1 января 1970 года, и таким образом возвращаемое функцией значение будет равно 3 (четверг)ближайшее к minute время.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$dt// Допустим сейчас 23:30:00
$t = dttime.weekday('2022-12-20 08:34:05'nearFuture(45) // $dt$t будет содержать число 1
$dtсодержит 23:45:00
$t = dttime.weekday('08:34:05'nearFuture(15) // $dt$t будет содержать число 3

...

содержит 00:15:00

time.nearPast(minute int) string

Назначение: возвращает ближайшую будущую к текущей дату ближайшее прошлое к текущему время по заданному днюколичеству минут.

Аргументы:

  1. day minute – число дней минут для определения ближайшей ближайшего в будущем датыпрошлом времени.

Возвращаемое значение: возвращает ближайшую ближайшее к day дату minute время.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
// Допустим сейчас 2022-12-20
$d23:30:00
$t = datetime.nearFuturenearPast(2545) // $d$t содержит 2022-12-25
$d22:45:00
$t = datetime.nearFuturenearPast(1015) // $d$t содержит 2023-01-10

...

23:15:00

time.future(minute int) string

Назначение: возвращает ближайшую прошлую к текущей дату по заданному днювремя, соответствующее указанному числу минут в следующем часе.

Аргументы:

  1. day minute – число дней минут для определения ближайшей времени в прошлом датыбудущем.

Возвращаемое значение: возвращает ближайшую к day датувремя в будущем.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
// Допустим сейчас 2022-12-20
$d23:30:00
$t = datetime.nearPastfuture(2545) // $d$t содержит 2022-11-25
$d00:45:00
$t = datetime.nearPastfuture(1015) // $d$t содержит 2023-12-10

...

00:15:00

time.past(minute int) string

Назначение: возвращает датувремя, соответствующую соответствующее указанному дню в следующем месяцечислу минут в прошедшем часе.

Аргументы:

  1. day minute – число дней минут для определения даты времени в будущемпрошлом.

Возвращаемое значение: дата время в будущемпрошлом.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
// Допустим сейчас 2022-12-20
$d23:30:00
$t = datetime.futurepast(2545) // $d$t содержит 2023-01-25
$d22:45:00
$t = datetime.futurepast(1015) // $t $d содержит 2023-01-10

date.past(day int) string

Назначение: возвращает дату, соответствующую указанному дню в прошлом месяце.

Аргументы:

...

содержит 22:15:00

Функции по работе с очередью сообщений пользователя

queue.size() int

Назначение: определение размера очереди сообщений пользователя.

Аргументы: отсутствуют.

Возвращаемое значение:  дата в прошломчисло сообщений пользователя.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
// Допустим сейчас 2022-12-20
$d $messageCount = datequeue.pastsize(25) // $d$messageCount содержит 2022-11-25
$d = date.past(10) // $d содержит 2022-11-10

time.nearFuture(minute int) string

Назначение: возвращает ближайшее будущее к текущему время по заданному количеству минут.

Аргументы:

...

число сообщений пользователя за всё время диалога

queue.last() ?UserMessage

Назначение: возвращает последнее сообщение пользователя либо nil, если очередь сообщений пуста.

Аргументы: отсутствуют.

Возвращаемое значение: возвращает ближайшее к minute времяобъект UserMessage или nil.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
// Допустим сейчас 23:30:00
$t $lastMessage = time.nearFuture(45) // $t содержит 23:45:00
$t = time.nearFuture(15queue.last() // $t$lastMessage содержит 00:15:00

...

последнее на данный момент сообщение пользователя

queue.first() ?UserMessage

Назначение: возвращает ближайшее прошлое к текущему время по заданному количеству минутпервое сообщение пользователя либо nil, если очередь сообщений пуста.

Аргументы:

...

отсутствуют.

Возвращаемое значение: возвращает ближайшее к minute времяобъект UserMessage или nil.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
// Допустим сейчас 23:30:00
$t $firstMessage = timequeue.nearPastfirst(45) // $t$firstMessage содержит 22:45:00
$t = time.nearPast(15) // $t содержит 23:15:00

...

первое сообщение пользователя за всё время диалога

queue.nth(index int) ?UserMessage

Назначение: возвращает время, соответствующее указанному числу минут в следующем часесообщение пользователя по его порядковому номеру, начиная с 1.

Аргументы:

  1. minute – число минут для определения времени в будущемindex – порядковый номер сообщения пользователя.

Возвращаемое значение: время в будущемобъект UserMessage или nil.

Блок кода
languagephp
themeDJango
firstline1titleПримеры использования
linenumberstrue
// Допустим сейчас 23:30:00
$t $message = timequeue.futurenth(451) // $t$message содержит 00:45:00
$t первое сообщение пользователя
$message = timequeue.futurenth(155) // $t$message содержит 00:15:00

...

 пятое сообщение пользователя

queue.lastNth(index int) ?UserMessage

Назначение: возвращает время, соответствующее указанному числу минут в прошедшем часесообщение пользователя по его порядковому номеру, считая с конца очереди. Последнее сообщение соответствует порядковому номеру 1.

Аргументы:

  1. minute – число минут для определения времени в прошломindex – порядковый номер сообщения пользователя, считая с конца очереди.

Возвращаемое значение: время в прошломобъект UserMessage или nil.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
// Допустим сейчас 23:30:00
$t $message = timequeue.pastlastNth(451) // $t$message содержит 22:45:00
$tпоследнее сообщение пользователя
$message = timequeue.pastlastNth(155) // $t$message содержит 22:15:00

Функции по работе с очередью сообщений пользователя

queue.size() int

Назначение: определение размера очереди сообщений пользователя.

...

 пятое с конца очереди сообщение пользователя

Функции для работы с сообщениями бота

msg.addAction(actionType string, actionData Collection|nil = nil)

Назначение: добавление действия к текущему сообщению бота.

Аргументы:

  1. actionType – тип действия.
  2. actionData – любая коллекция элементов (словарь, список или кортеж).

Возвращаемое значение: число сообщений пользователяотсутствует.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$messageCount = queue.size() // $messageCount содержит число сообщений пользователя за всё время диалога

queue.last() ?UserMessage

Назначение: возвращает последнее сообщение пользователя либо nil, если очередь сообщений пуста.

Аргументы: отсутствуют.

Возвращаемое значение: объект UserMessage или nil.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$lastMessage = queue.last() // $lastMessage содержит последнее на данный момент сообщение пользователя

queue.first() ?UserMessage

Назначение: возвращает первое сообщение пользователя либо nil, если очередь сообщений пуста.

Аргументы: отсутствуют.

Возвращаемое значение: объект UserMessage или nil.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$firstMessage = queue.first() // $firstMessage содержит первое сообщение пользователя за всё время диалога

queue.nth(index int) ?UserMessage

Назначение: возвращает сообщение пользователя по его порядковому номеру, начиная с 1.

Аргументы:

  1. index – порядковый номер сообщения пользователя.

Возвращаемое значение: объект UserMessage или nil.

Блок кода
languagephp
themeDJango
firstline1
linenumberstrue
$message = queue.nth(1) // $message содержит первое сообщение пользователя
$message = queue.nth(5) // $message содержит пятое сообщение пользователя

queue.lastNth(index int) ?UserMessage

Назначение: возвращает сообщение пользователя по его порядковому номеру, считая с конца очереди. Последнее сообщение соответствует порядковому номеру 1.

Аргументы:

  1. index – порядковый номер сообщения пользователя, считая с конца очереди.

Возвращаемое значение: объект UserMessage или nil.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$message = queue.lastNth(1) // $message содержит последнее сообщение пользователя
$message = queue.lastNth(5) // $message содержит пятое с конца очереди сообщение пользователяmsg.addAction(
    "prompter_suggestions",
    {
        "suggestions": [
            {
                "message": "some message",
                "intent": {
                    "name": "some name",
                    "confidence": 0.9999,
                },
                "something": "bla-bla-bla",
            },
        ],
    }, 
)

Функции для работы с файлами

file.download(url string) string

Назначение: загрузка файла по указанному адресу.

...

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$fileId = file.download("http://some.file.url") // $fileId будет содержать идентификатор файла

Функции для работы с фактами

fact.save(context string, factName string, factValue mixed, botId string = nil, clientId string = nil)

Назначение: сохраняет факт в базе фактов.

...

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
fact.save("место", "город", "Екатеринбург")                    // Факт, доступный всем ботам компании       
fact.save("место", "город", "Екатеринбург", nil, @clientId)    // Факт с привязкой к клиенту
fact.save("место", "город", "Екатеринбург", @botId)            // Факт с привязкой к боту
fact.save("место", "город", "Екатеринбург", @botId, @clientId) // Факт с привязкой к боту и клиенту

fact.load(context string, factName string, botId string = nil, clientId string = nil) mixed

Назначение: извлекает факт из базы фактов.

...

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
fact.save("место", "город", "Екатеринбург", @botId, @clientId) // Сохраняет факт с привязкой к боту и клиенту
$city = fact.load("место", "город", @botId, @clientId)         // Загружаем факт в переменную. $city содержит "Екатеринбург"

fact.delete(context string, factName string, botId string = nil, clientId string = nil)

Назначение: удаляет факт из базы фактов.

...

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
fact.save("место", "город", "Екатеринбург", @botId, @clientId) // Сохраняет факт с привязкой к боту и клиенту
$city = fact.load("место", "город", @botId, @clientId)         // Загружаем факт в переменную. $city содержит "Екатеринбург"
fact.delete("место", "город", @botId, @clientId)               // Удаляем факт
$city = fact.load("место", "город", @botId, @clientId)         // Пытаемся загрузить удалённый факт. Теперь $city содержит nil.

fact.clean(contexts string|List, factNames string|List = nil, factValues any = nil, botIds string|List = nil, clientIds string|List = nil)

Назначение: удаляет факты из базы фактов.

...

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
// Удалить все факты:
// - для контекста ctx; 
// - факты с названиями fact1 и fact2;
// - все факты со значениями 123 и true;
// - все факты бота fa5d268c-bcc9-4734-a10f-3dfd357764ac
// - все факты текущего клиента.
fact.clean("ctx", ["fact1", "fact2"], [123, true], "fa5d268c-bcc9-4734-a10f-3dfd357764ac", @clientId)

fact.query() FactQuery

Назначение: возвращает экземпляр FactQuery для построения и выполнения запросов к базе фактов.

...

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
// Добавили пару фактов в базу
fact.save("место", "страна", "Россия")
fact.save("место", "город", "Екатеринбург")

// Загрузили в $places список мест, отсортированных по имени факта в порядке убывания:
// [{"name": "город", "value": "Россия"}, {"name": "страна", "value": "Екатеринбург"}]
$places = fact.query().
    select("name,value").
    where("context", "=", "место").
    sortBy("-name").
    rows()

fact.cond() FactQueryCondition

Назначение: возвращает экземпляр FactQueryCondition для построения составных условий в запросах к базе фактов.

...

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
// Добавили факты в базу
fact.save("города", "екатеринбург", "Екатеринбург")
fact.save("города", "москва", "Москва")
fact.save("города", "санкт-петербург", "Санкт-Петербург")
fact.save("города", "новосибирск", "Новосибирск")

// Найдём один город, начинающийся с буквы "м" или с буквы "т" и не равный городам "Екатеринбург" и "Новосибирск"
$city = fact.query().
    select("value").
    where("context", "=", "города").
    where(fact.cond().
        where("name", "^@", "м").
        orWhere("name", "^@", "т")).
    where("name", "not in", ("екатеринбург", "новосибирск")).
    one()

Функции для работы с таймером

timer.start(time int, nodeId string) string

Назначение: запускает таймер обратного отсчёта. По истечении указанного времени бот осуществит переход на указанный узел (блок).

...

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$timerId = timer.start(60, "760b9732-4bfb-4846-a348-faae5138fcb2") // $timerId содержит уникальный идентификатор таймера на 60 секунд

timer.stop(timerId string)

Назначение: останавливает (удаляет) таймер обратного отсчёта.

...

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$timerId = timer.start(60, "760b9732-4bfb-4846-a348-faae5138fcb2")
timer.stop($timerId) // останавливаем (удаляем) таймер

timer.stopAll()

Назначение: останавливает (удаляет) все таймеры обратного отсчёта.

...

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
// запускаем два таймера
timer.start(60, "760b9732-4bfb-4846-a348-faae5138fcb2")
timer.start(120, "760b9732-4bfb-4846-a348-faae5138fcb2")
// останавливаем все таймеры
timer.stopAll($timerId) 

Функции для работы с текстом на естественном языке (NLP)

nlp.parse(message string|UserMessage) Sentence

Назначение: парсит текст на естественном языке. 

...

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$sentence = nlp.parse(queue.first()) // парсим первое сообщение пользователя

nlp.join(message1 string|UserMessage, message2 string|UserMessage) Sentence

Назначение: объединяет два текста на естественном языке в одно и затем парсит его.

...

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$sentence = nlp.join(queue.lastNth(2), queue.lastNth(1)) // объединяем предпоследнее и последнее сообщения пользователя и затем парсим его  

nlp.setPerception($sentence Sentence)

Назначение: позволяет установить сообщение пользователя для обработки в других узлах (блоках) схемы бота. 

...

  1. sentence – объект Sentence, содержащий информацию о намерениях и сущностях некоторого сообщения.

...

  1. информацию о намерениях и сущностях некоторого сообщения.

Возвращаемое значение: отсутствует.

Примечание

Стоит учитывать, что setPerception устанавливает текст только для обработки в следующем блоке. Если обработки не последовало, то значение perception очищается. Если между использованием функции setPerception и обработкой текста будут идти другие блоки, то обработка не произойдет.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$sentence = nlp.join(queue.lastNth(2), queue.lastNth(1)) // объединяем предпоследнее и последнее сообщения пользователя и затем парсим его
nlp.setPerception($sentence)                             // Теперь остальные узлы схемы будут работать с cообщением $sentence

Функции для "понимания" естественного языка.

nlu.parse(text string, agentId string, timezoneOffset int = 0, version int = 1, confidenceThreshold float = -1) Sentence

Purpose: разбор текста на естественном языке. Выявление намерений и сущностей.

...

  1. text текст для разбора.
  2. agentId – идентификатор (uuid) агента (нейросети), производящего разбор текста.
  3. timezoneOffset – смещение временной зоны, необходимое для правильного выявления временных сущностей. По умолчанию используется смещение для UTC.
  4. version – версия NLU. Может быть числом 1 (для сценариев из старого ЛК) или 11 (для сценариев из нового ЛК).
  5. confidenceThreshold - значение от 0 до 0.99 определяющее порог доверия распознанным намерениям.

Возвращаемое значение: объект Sentence.

Блок кода
languagephp
themeDJango
firstline1
titleПример использования
linenumberstrue
$sentence = nlu.parse("Доброе утро Вася!", "d926726a-5acb-4233-8c1e-ce4300921de0")

Функции для работы с HTTP

http.sendRequest(url string, method string, body any = nil, headers Map = nil) Response

Назначение: отправляет HTTP запрос на указанный URL. 

...

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
// Тело Xml запроса в виде структур данных BPL
$requestBody = [
    {
        "tag": "xml",
        "value": [
            {
                "tag": "head",
                "value": [
                    {
                        "tag": "title",
                        "value": "chapter 2",
                    },
                ],
            },
            {
                "tag": "body",
                "value": [
                    {
                        "tag": "div",
                        "attributes": {
                            "class": "color",
                            "style": "display:block;",
                        },
                        "value": [
                            "Some",
                             {
                                 "tag": "br",
                             },
                             "text",
                        ],
                    },
                    {
                        "tag": "div",
                        "attributes": {
                            "id": "a12",
                        },
                        "value": [
                            {
                                "tag": "i",
                                "value": "Another text",
                            },
                            {
                                "tag": "span",
                                "expand": true, // если true, то тэг с пустым значением будет иметь закрывающий тэг
                            },
                        ],
                    },
                ],
            },
        ],
    },
]
// Это тело автоматически будет преобразовано в строку
// <xml><head><title>Chapter 2</title></head><body><div class="color" style="display:block;">Some<br />text</div><div id="a12"><i>Another text</i><span></span></div></body></xml>
$response = http.sendRequest("http://some.url", "POST", $requestBody, {"Content-Type": "text/xml"})

// Если тип содержимого ответа xml, то тело ответа будет автоматически преобразовано в структуру BPL (в переменной $body).
$body = $response.body

http.request(url string = "", method string = "POST", body any = nil) Request

Назначение: формирует новый объект HTTP-запроса.

...

Блок кода
languagephp
themeDJango
firstline1
titleПример использования
linenumberstrue
$response = http.request("https://some.url", "POST", {"param1": 123, "param2": true}).
                 headers({"Content-Type": "application/json"}).
                 timeout(300).
                 send()

Объект Request

timeout(timeout int) Request

Назначение: задаёт максимально допустимое время запроса в секундах. Если запрос отрабатывается дольше указанного времени, то его выполнение прерывается.

...

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$response = http.request("https://some.url", "GET").
                 timeout(300).
                 send()

url(url string) Request

Назначение: задаёт URL запроса.

...

Блок кода
languagephp
themeDJango
firstline1
titleПример использования
linenumberstrue
$response = http.request().
                 url("http://some.url?p1=v1&p2=v2").
                 method("GET").
                 send()

method(method string) Request

Назначение: задаёт HTTP-метод запроса.

...

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$response = http.request().
                 url("http://some.url?p1=v1&p2=v2").
                 method("GET").
                 send()

body(body any) Request

Назначение: задаёт тело запроса.

...

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$response = http.request().
                 url("http://some.url?p1=v1&p2=v2").
                 method("PUT").
                 body("some body").
                 send()

header(header string, value string) Request

Назначение: добавляет HTTP заголовок.

...

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$response = http.request().
                 url("http://some.url?p1=v1&p2=v2").
                 method("POST").
                 header("Content-Type", "application/json").
                 header("Accept-Language", "en-US,en;q=0.5").
                 send()

headers(headers Map) Request

Назначение: задаёт HTTP-заголовки.

...

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$response = http.request().
                 url("http://some.url?p1=v1&p2=v2").
                 method("PUT").
                 body("some body").
                 headers({"Content-Type": "application/json", "Accept-Language": "en-US,en;q=0.5"}).
                 send()

file(fileId string, name string = "") Request

Назначение: добавляет файл для отправки по HTTP.

...

Блок кода
languagephp
themeDJango
firstline1
titleПример использования
linenumberstrue
$response = http.request().
                 url("http://some.url").
                 method("POST").
                 header("Content-Type", "multipart/form-data").
                 file($fileId, "file"file").
                 send()

send() Response

Назначение: отправляет сформированный запрос.

Возвращаемое значение: объект ответа сервера.

Блок кода
languagephp
themeDJango
firstline1
titleПример использования
linenumberstrue
$response = http.request("http://some.url?p1=v1&p2=v2", "PUT", "some body").
                 headers({"header1": "...", "header2": "...").
                 send()

...

Объект Response

statusCode int

Назначение:отправляет сформированный запрос.Возвращаемое значение: объект ответа сервера код статуса ответа.

Блок кода
languagephp
themeDJango
firstline1
titleПример Примеры использования
linenumberstrue
$response = http.requestsendRequest("http://some.url?p1=v1&p2=v2", "PUT", "some body").
$code = $response.statusCode

body any

Назначение: тело ответа.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$response = http.sendRequest("http://some.url?p1=v1&p2=v2", "PUT", "some body")
$body = $response.body

headers Map

Назначение: заголовки ответа.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$response        headers({"header1": "...= http.sendRequest("http://some.url?p1=v1&p2=v2", "header2PUT":, "...some body").
                 send()

Объект Response

statusCode int

$headers = $response.headers

error string

Назначение: значение элемента error тела ответа или пустая строка, если такого элемента нетНазначение: код статуса ответа.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$response = http.sendRequest("http://some.url?p1=v1&p2=v2", "PUT", "some body")
$code$error = $response.statusCode

...

error

isError() bool

Назначение:  тело ответаопределение успешности ответа.

Возвращаемое значение: возвращает true, если свойство error не пустое или код статуса больше или равен 400, иначе возвращает false.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$response = http.sendRequest("http://some.url?p1=v1&p2=v2", "PUT", "some body")
$body$isError = $response.body

...

isError()

isSuccessful() bool

Назначение:  заголовки ответаопределение успешности ответа.

Возвращаемое значение: возвращает true, если свойство error пустое и код статуса меньше 400, иначе возвращает false.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$response = http.sendRequest("http://some.url?p1=v1&p2=v2", "PUT", "some body")
$headers$isSuccessful = $response.headers

error string

isSuccessful()

hasHeader(header string) bool

Назначение: определение наличия заголовка.

Аргументы:

  1. header – название заголовка.

Возвращаемое значение: true, если заголовок с указанным именем существует, и false в противном случаеНазначение: значение элемента error тела ответа или пустая строка, если такого элемента нет.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$response = http.sendRequest("http://some.url?p1=v1&p2=v2", "PUT", "some body")
$error$hasContentType = $response.error

isError() bool

...

hasHeader("Content-Type")

header(header string) string

Назначение: получение значения заголовка.

Аргументы:

  1. header – название заголовка.

Возвращаемое значение: возвращает true, если свойство error не пустое или код статуса больше или равен 400, иначе возвращает falseзначение заголовка с указанным именем или пустую строку, если такого заголовка нет.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$response = http.sendRequest("http://some.url?p1=v1&p2=v2", "PUT", "some body")
$isError$contentType = $response.isErrorheader("Content-Type")

...

toFile()

...

string

Назначение: определение успешности получение файла из HTTP-ответа.

Возвращаемое значение:  возвращает true, если свойство error пустое и код статуса меньше 400, иначе возвращает falseидентификатор загруженного файла.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$response = http.sendRequest("http://some.url?p1=v1&p2=v2", "PUT", "some bodyGET")
$isSuccessful$fileId = $response.isSuccessfultoFile()

hasHeader(header string) bool

Системные функции

sys.sleep(microseconds int)

Назначение: останавливает работу бота на указанное количество микросекунд. Если количество микросекунд превышает 1 минуту, то пауза будет уменьшена до 1 минутыНазначение: определение наличия заголовка.

Аргументы:

  1. header – название заголовкаmicroseconds – число микросекунд паузы.

Возвращаемое значение: true, если заголовок с указанным именем существует, и false в противном случае.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$response = http.sendRequest("http://some.url?p1=v1&p2=v2", "PUT", "some body")
$hasContentType = $response.hasHeader("Content-Type")

header(header string) string

Назначение: получение значения заголовка.

Аргументы:

  1. header – название заголовка.

Возвращаемое значение: значение заголовка с указанным именем или пустую строку, если такого заголовка нет.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$response = http.sendRequest("http://some.url?p1=v1&p2=v2", "PUT", "some body")
$contentType = $response.header("Content-Type")

toFile() string

Назначение: получение файла из HTTP-ответа.

: отсутствует.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
sys.sleep(3_000_000) // Пауза в 3 секунды

Функции для работы с GPT-3.5 turbo (устаревшее)

gpt3.ask(text string, temperature float = 0.7, useContext bool = false, maxTokens int = 0, timeout int = 0) string

HTML
<b>Назначение:</b> отправляет сообщение в нейросеть <a href="https://openai.com/blog/chatgpt" target="_blank">ChatGPT3</a> и возвращает её ответ.

Аргументы:

  1. text – запрос к нейросети на русском языке.
  2. temperature - число от 0 до 1 обозначающее степень достоверности и вариативности ответов нейросети (0 - максимальная достоверность и минимальная вариативность, 1 - минимальная достоверность и максимальная вариативность).
  3. useContext - определяет следует ли использовать предыдущий контекст разговора или нет.
  4. maxTokens - если больше нуля, то определяет максимальное число токенов в ответе нейросети. Если меньше или равно нулю, то не используется.
  5. timeout - если больше нуля, то ограничивает время выполнения запроса (в секундах). Если меньше или равно, то не используется. 

Возвращаемое значение: ответ нейросети в виде строки.

Примечание: в случае использования контекста текущее сообщение отправленное chat gpt будет добавлено в переменную список $gpt3Context. Все предыдущие сообщения из этого списка будут переданы в качестве контекста запроса.
Если параметр useContext равен false, то текущее сообщение не добавляется в список. Сам список сообщений (значение переменной $gpt3Context) доступен для редактированияВозвращаемое значение: идентификатор загруженного файла.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$response$answer = httpgpt3.sendRequestask("http://some.url", "GET")
$fileId = $response.toFile()

Системные функции

sys.sleep(microseconds int)

Назначение: останавливает работу бота на указанное количество микросекунд. Если количество микросекунд превышает 1 минуту, то пауза будет уменьшена до 1 минуты.

Аргументы:

  1. microseconds – число микросекунд паузы.

Возвращаемое значение: отсутствует.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
sys.sleep(3_000_000) // Пауза в 3 секундыЕсть ли жизнь на Марсе?", 0.5, true, 500, 10) // В $answer будет ответ нейросети на заданный вопрос

Функции для работы с GPT-

...

4(устаревшее)

...

gpt4.ask(text string, temperature float = 0.7, useContext bool = false, maxTokens int = 0, timeout int = 0) string

HTML
<b>Назначение:</b> отправляет сообщение в нейросеть <a href="https://openai.com/blog/chatgpt" target="_blank">ChatGPT3<>ChatGPT4</a> и возвращает её ответ.

...

Примечание: в случае использования контекста текущее сообщение отправленное chat gpt будет добавлено в переменную список $gpt3Context$gpt4Context. Все предыдущие сообщения из этого списка будут переданы в качестве контекста запроса.
Если параметр useContext равен false, то текущее сообщение не добавляется в список. Сам список сообщений (значение переменной $gpt3Context$gpt4Context) доступен для редактирования.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$answer = gpt3gpt4.ask("Есть ли жизнь на Марсе?", 0.5, true, 500, 10) // В $answer будет ответ нейросети на заданный вопрос

Функции для работы с GPT

...

...

gpt.ask(model string, text string, temperature float = 0.7, useContext bool = false, maxTokens int = 0, timeout int = 0) string

HTML
<b>Назначение:</b> отправляет сообщение в нейросеть <a href="https://openai.com/blog/chatgpt" target="_blank">ChatGPT4<>ChatGPT</a> и возвращает её ответ.

Аргументы:

  1. model - название конкретной модели нейросети. 
  2. text – запрос к нейросети на русском языке.
  3. temperature - число от 0 до 1 обозначающее степень достоверности и вариативности ответов нейросети (0 - максимальная достоверность и минимальная вариативность, 1 - минимальная достоверность и максимальная вариативность).
  4. useContext - определяет следует ли использовать предыдущий контекст разговора или нет.
  5. maxTokens - если больше нуля, то определяет максимальное число токенов в ответе нейросети. Если меньше или равно нулю, то не используется.
  6. timeout - если больше нуля, то ограничивает время выполнения запроса (в секундах). Если меньше или равно, то не используется. 

...

Примечание: в случае использования контекста текущее сообщение отправленное chat gpt будет добавлено в переменную список $gpt4Context$"context.{MODEL}". Все предыдущие сообщения из этого списка будут переданы в качестве контекста запроса.
Если параметр useContext равен false, то текущее сообщение не добавляется в список. Сам список сообщений (значение переменной $gpt4Contextпеременной $"context.{MODEL}") доступен для редактирования.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$answer = gpt4gpt.ask("gpt-4o-mini", "Есть ли жизнь на Марсе?", 0.5, true, 500, 10) // В $answer будет ответ нейросети на заданный вопрос

Функции для работы с GPT

...

gpt.createThread() string

HTML
<b>Назначение:</b> создаёт разговорную сессию с GPT ассистентом.

Аргументы: отсутствуют.

Возвращаемое значение: идентификатор чат сессии с ассистентом.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$threadId = gpt.createThread()

gpt.deleteThread(threadId string)

HTML
<b>Назначение:</b> удаляет разговорную сессию с GPT ассистентом.

Аргументы:

  1. threadId - идентификатор чат сессии.

Возвращаемое значение: отсутствует.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
gpt.deleteThread($threadId)

gpt.assist(assistantId string, threadId string, messages string|Collection, model string = '', instructions string = '', additionalInstructions string = '', temperature float = 0.7

...

, maxTokens int = 0, timeout int = 0) string

HTML
<b>Назначение:</b> отправляет сообщение в нейросетьассистента <a href="https://openai.com/blog/chatgpt" target="_blank">ChatGPT</a>чат GPT и возвращает еёего ответ.

Аргументы:

  1. assistantId - идентификатор ассистента.
  2. threadId - идентификатор чат сессии с ассистентом подученный с помощью функции gpt.createThread()
  3. messages – запрос к нейросети, может быть как строкой, так и списком из нескольких сообщений.
  4. model - название модели, которая будет применяться взамен той модели которая была указана при создании ассистента.
  5. instructions - указание для ассистента взамен той инструкции что была указана при его создании.
  6. additionalInstructions - дополнительная инструкция которая будет добавлена в конец инструкции ассистента
  7. model - название конкретной модели нейросети. 
  8. text – запрос к нейросети на русском языке.
  9. temperature - число от 0 до 1 обозначающее степень достоверности и вариативности ответов нейросети (0 - максимальная достоверность и минимальная вариативность, 1 - минимальная достоверность и максимальная вариативность).useContext - определяет следует ли использовать предыдущий контекст разговора или нет.
  10. maxTokens - если больше нуля, то определяет максимальное число токенов в ответе нейросети. Если меньше или равно нулю, то не используется.
  11. timeout - если больше нуля, то ограничивает время выполнения запроса (в секундах). Если меньше или равно, то не используется. 

Возвращаемое значение: ответ нейросети в виде строки.

  1. больше нуля, то ограничивает время выполнения запроса (в секундах). Если меньше или равно, то не используется. 

Возвращаемое значение: ответ нейросети в виде строки.Примечание: в случае использования контекста текущее сообщение отправленное chat gpt будет добавлено в переменную список $"context.{MODEL}". Все предыдущие сообщения из этого списка будут переданы в качестве контекста запроса.
Если параметр useContext равен false, то текущее сообщение не добавляется в список. Сам список сообщений (значение переменной $"context.{MODEL}") доступен для редактирования.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$answer = gpt.ask("gpt-4-1106-preview"assist($assistId, $threadId, "Есть ли жизнь на Марсе?", "gpt-4o-mini", "", "", 0.5, true, 500, 10) // В $answer будет ответ нейросети на заданный вопрос

gpt.createThread() string

HTML
<b>Назначение:</b> создаёт разговорную сессию с GPT ассистентом.

Аргументы: отсутствуют.

Возвращаемое значение: идентификатор чат сессии с ассистентом.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$threadId = gpt.createThread()

gpt.deleteThread(threadId string)

HTML
<b>Назначение:</b> удаляет разговорную сессию с GPT ассистентом.

Аргументы:

  1. threadId - идентификатор чат сессии.

Возвращаемое значение: отсутствует.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
gpt.deleteThread($threadId)

...

 будет ответ нейросети на заданный вопрос

Функции для работы с YandexGPT

ygpt.ask(model string, text string, temperature float = 0.7, maxTokens int = 0, timeout int = 0) string

HTML
<b>Назначение:</b> отправляет сообщение в нейросеть ассистента чат GPT<a href="https://ya.ru/ai/gpt-3" target="_blank">YandexGPT</a> и возвращает егоеё ответ.

Аргументы:

  1. model - название модели.
  2. text – запрос к нейросети на русском языке
  3. assistantId - идентификатор ассистента.
  4. threadId - идентификатор чат сессии с ассистентом подученный с помощью функции gpt.createThread()
  5. messages – запрос к нейросети, может быть как строкой, так и списком из нескольких сообщений.
  6. model - название модели, которая будет применяться взамен той модели которая была указана при создании ассистента.
  7. instructions - указание для ассистента взамен той инструкции что была указана при его создании.
  8. additionalInstructions - дополнительная инструкция которая будет добавлена в конец инструкции ассистента.
  9. temperature - число от 0 до 1 обозначающее степень достоверности и вариативности ответов нейросети (0 - максимальная достоверность и минимальная вариативность, 1 - минимальная достоверность и максимальная вариативность).
  10. maxTokens - если больше нуля, то определяет максимальное число токенов в ответе нейросети. Если меньше или равно нулю, то не используется.
  11. timeout - если больше нуля, то ограничивает время выполнения запроса (в секундах). Если меньше или равно, то не используется. 

Возвращаемое значение: ответ нейросети в виде строки.

Доступные модели: возможны следующие значения для параметра model:

  • yandexgpt - для YandexGPT Pro
  • yandexgpt-lite - для YandexGPT Lite
  • summarization - для формирования краткого пересказа текста
  • ds://<идентификатор_дообученной_модели> - для моделей дообученных в Yandex DataSphere

Примечание: для каждой модели можно указать через / "версию" модели (/latest /rc /deprecated). Соответствие "версии" и "модели" можно найти в официальной документации yandex

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$answer = gptygpt.assist($assistId, $threadIdask("yandexgpt/latest", "Есть ли жизнь на Марсе?", "gpt-3.5-turbo-1106", "", "", 0.5, 500, 1015) // В $answer будет ответ нейросети на заданный вопрос

Функции для работы с

...

RekaAI

...

reka.ask(model string, text string, temperature float = 0.7, maxTokens int = 0, timeout int = 0) string

HTML
<b>Назначение:</b> отправляет сообщение в нейросеть <a href="https://yawww.reka.ru/ai/gpt-3" target="_blank">YandexGPT<>Reka</a> и возвращает её ответ.

...

Возвращаемое значение: ответ нейросети в виде строки.

Доступные моделиПримечание: возможны следующие значения для параметра model (полный список тут):

  • yandexgpt - для YandexGPT Pro
  • yandexgpt-lite - для YandexGPT Lite
  • summarization - для формирования краткого пересказа текста
  • ds://<идентификатор_дообученной_модели> - для моделей дообученных в Yandex DataSphere

...

  • reka-core - для Reka Core.
  • r - для Reka Flash.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$answer = ygptreka.ask("yandexgpt/latestreka-core", "Есть ли жизнь на Марсе?", 0.5, 500, 15) // В $answer будет ответ нейросети на заданный вопрос

Функции для работы с

...

GigaChat

...

gigachat.ask(model string, text string, temperature float = 0.7, maxTokens int = 0, timeout int = 0) string

HTML
<b>Назначение:</b> отправляет сообщение в нейросеть <a href="https://wwwdevelopers.reka.ai/sber.ru/portal/products/gigachat-api" target="_blank">Reka<>GigaChat</a> и возвращает её ответ.

Аргументы:

  1. model - название модели.
  2. text – запрос к нейросети на русском языке.
  3. temperature - число от 0 до 1 обозначающее степень достоверности и вариативности ответов нейросети (0 - максимальная достоверность и минимальная вариативность, 1 - минимальная достоверность и максимальная вариативность).
  4. maxTokens - если больше нуля, то определяет максимальное число токенов в ответе нейросети. Если меньше или равно нулю, то не используется.
  5. timeout - если больше нуля, то ограничивает время выполнения запроса (в секундах). Если меньше или равно, то не используется. 

Возвращаемое значение: ответ нейросети в виде строки.

Примечание: возможны следующие значения для параметра model (полный список тут):

    reka
  • GigaChat -
  • core - для Reka Core
  • для использования GigaChat Lite.
  • reka
  • GigaChat-
  • flash
  • Pro - для
  • Reka Flash
  • использования GigaChat Pro.
  • reka-edge - для Reka Edge.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$answer = rekagigachat.ask("reka-coreGigaChat", "Есть ли жизнь на Марсе?", 0.5, 500, 15) // В $answer будет ответ нейросети на заданный вопрос

Функции для работы с атрибутами клиента

clients.setAttributes (clientId string, attributes array)

Назначение: установка атрибутов клиента

...

Блок кода
languagephp
themeDJango
titleПример использования
linenumberstrue
clients.setAttributes(@clientId, {"74eb7a40-36d5-4db9-b4a1-abe435fd5f0d": "Firstame", "b87e9a3e-21ad-4b42-aab1-fdc52a13c769": "Lastname", "d5443075-e79d-4d1c-bdca-1c0a1965a078": "example@email.com"});


Функции для работы с YCLIENTS


Для работы с функциями yclients у вас должно быть установлено наше приложение: https://yclients.com/e/mp_364_twin/

yclients.createRecord(salonId int, params Map) ?int

Назначение: записывает клиента на услугу.

...

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$recordId = yclients.createRecord(25344, {"staffId": 2303331, "services": [{"id": 11428840}], "client": {"phone": "79876543210", "name": "Семён", "email": "semen@gmail.com"}, "datetime": "2023-06-07 15:00", "seanceLength": 3600,"saveIfBusy": false, "sendSms": false, "comment": "Комментарий к записи", "smsRemainHours": 1, "emailRemainHours": 12, "attendance": 2, "customFields": {"priority":"high"}, "recordLabels": ["67345", "78549"], "customColor": nil, "apiId": "7894"});

yclients.recordDetails(salonId int, recordId int) ?Map

Назначение: получает данные о записи.

...

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$record = yclients.recordDetails(25344, 52157914);
// $record будет содержать:
// {
//    "id": 52157914,
//    "client": {
//        "id": 167359987,
//        "name": "Семён",
//        "surname": "",
//        "phone": "+79876543210",
//        "card": "",
//        "email": "semen@gmail.com"
//    },
//    "staff": {
//        "id": 2303331,
//        "name": "Анисимова Полина",
//        "specialization": "специалист",
//        "position": {
//            "id": 231647,
//            "title": "Парикмахер"
//        }
//    },
//    "services": [
//        {
//            "id": 11440288,
//            "title": "Стрижка",
//            "cost": 1000,
//            "costToPay": 0,
//            "manualCost": 0,
//            "costPerUnit": 0,
//            "discount": 0,
//            "firstCost": 0,
//            "amount": 1
//        }
//    ],
//    "date": "2023-06-03T14:33:00+00:00",
//    "createDate": "2023-05-31T05:51:44+00:00",
//    "comment": "",
//    "attendance": 2,
//    "length": 4200,
//    "lastChangeDate": "2023-06-02T10:26:50+00:00",
//    "prepaid": false,
//    "prepaidConfirmed": false,
//    "deleted": true,
//    "apiId": "7894"
//}

yclients.rescheduleRecord(salonId int, recordId int, datetime string) bool

Назначение: переносит запись на новое время.

...

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$success = yclients.rescheduleRecord(25344, 52157914, "2023-06-07 16:00");

yclients

...

.confirmRecord(salonId int, recordId int) bool

Назначение: подтверждает запись.

Аргументы:

  1. salonId  int – идентификатор филиала.
  2. recordId int – идентификатор записи.

Возвращаемое значение: true в случае успеха и false в случае ошибки

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$success = yclients.confirmRecord(25344, 52157914);

yclients.cancelRecord(salonId int, recordId int) bool

Назначение: подтверждает отменяет запись.

Аргументы:

  1. salonId  int – идентификатор филиала.
  2. recordId int – идентификатор записи.

Возвращаемое значение: true в случае успеха и false в случае ошибки

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$success = yclients.confirmRecordcancelRecord(25344, 52157914);

yclients.deleteRecord(salonId int, recordId int) bool

Назначение: удаляет запись.

...

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$success = yclients.deleteRecord(25344, 52157914);

yclients.searchRecords(salonId int, filters Map) ?List

Назначение: поиск записей по филиалу.

...

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$records = yclients.searchRecords(25344);


//$records будет содержать:
//[
//    {
//        "id": 52157914,
//        "companyId": 25344,
//        "staffId": 2303331,
//        "services": [
//			  {
//				  "id": 11440288,
//				  "title": "Стрижка",
//				  "cost": 1000,
//				  "manualCost": 1000,
//				  "costPerUnit": 1000,
//				  "discount": 0,
//				  "firstCost": 1000,
//				  "amount": 1
//		  	  }
//		  ],
//        "staff": {
//            "id": 2303331,
//            "name": "Сотрудник 2",
//            "specialization": "мужской мастер",
//            "position": {
//                "id": 264317,
//                "title": "Парикмахер"
//            },
//            "avatar": "",
//            "avatarBig": "",
//            "rating": 0,
//            "votesCount": 0
//        },
//        "date": "2023-08-13T07:40:00+00:00",
//        "datetime": "2023-08-13T04:40:00+00:00",
//        "createDate": "2023-08-08T11:18:04+00:00",
//        "comment": "",
//        "online": false,
//        "visitAttendance": 0,
//        "attendance": 0,
//        "confirmed": true,
//        "seanceLength": 3600,
//        "length": 3600,
//        "smsBefore": true,
//        "smsNow": false,
//        "smsNowText": "",
//        "emailNow": false,
//        "notified": false,
//        "masterRequest": true,
//        "apiId": "",
//        "fromUrl": "",
//        "reviewRequested": false,
//        "visitId": 0,
//        "createdUserId": 787095,
//        "paidFull": 1,
//        "prepaid": false,
//        "prepaidConfirmed": false,
//        "lastChangeDate": "2023-08-08T11:18:04+00:00",
//        "customColor": "",
//        "customFontColor": "",
//        "recordLabels": [
//			  {
//			  	  "id": 104474,
//				  "title": "категория",
//				  "color": "#3b2c54"
//				  "icon": "icon"
//				  "fontColor": "#ffffff"
//			  }
//		  ],
//        "activityId": 0,
//        "documents": [
//            {
//                "id": 8172893,
//                "typeId": 7,
//                "storageId": 0,
//                "userId": 787095,
//                "companyId": 25344,
//                "number": 8172893,
//                "comment": "",
//                "dateCreated": "2023-08-13T06:40:00+00:00",
//                "categoryId": 0,
//                "visitId": 0,
//                "recordId": 52157914,
//                "typeTitle": "Визит"
//            }
//        ],
//        "smsRemainHours": null,
//        "emailRemainHours": null,
//        "bookformId": 0,
//        "recordFrom": "",
//        "isMobile": false,
//        "isSaleBillPrinted": false
//	  }
//]

yclients.recordsByVisits(salonId int, filters Map) ?List

Назначение: поиск записей по истории посещений клиента.

...

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$records = yclients.recordsByVisits(25344, {"clientId": 2303331});


//$records будет содержать:
//[
//    {
//        "id": 52157914,
//        "comment": "",
//        "date": "2023-06-21T15:00:00+00:00",
//        "visitId": 550229870,
//        "attendance": 0,
//        "services": [
//            {
//                "id": 11440288,
//                "title": "Стрижка",
//                "firstCost": 1000,
//                "discountPercent": 0,
//                "costToPay": 1000,
//                "paidSum": 0,
//                "paymentStatus": "not_paid"
//            }
//        ],
//        "staff": {
//            "id": 2331303,
//            "name": "Сотрудник 1",
//            "companyId": 25344,
//            "specialization": "специалист",
//            "avatar": "",
//            "avatarBig": "",
//            "position": {
//                "id": 264317,
//                "title": "Парикмахер"
//            }
//        },
//        "company": {
//            "id": 25344,
//            "title": "Twin"
//        },
//        "tips": {
//            "hasTips": false,
//            "sum": null
//        },
//        "comer": null
//	  }
//]

yclients.bookingDates(salonId int, serviceIds List = nil, staffId int = nil, date string = nil) ?Map

Назначение: запрашивает даты доступные для бронирования.

...

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
// Запрашивает даты доступные для бронирования
$dates = yclients.bookingDates(25344);

// Запрашивает даты доступные для бронирования с фильтром по услугам
$dates = yclients.bookingDates(25344, [75426, 58654]);

// Запрашивает даты доступные для бронирования с фильтром по сотруднику
$dates = yclients.bookingDates(25344, nil, 2303331);

// Запрашивает даты доступные для бронирования с фильтром по дате
$dates = yclients.bookingDates(25344, nil, nil, "2023-06-08");

// Запрашивает даты доступные для бронирования с фильтром по сотруднику и дате
$dates = yclients.bookingDates(25344, nil, 2303331, "2023-06-08");

// Запрашивает даты доступные для бронирования с фильтром по услугам и дате
$dates = yclients.bookingDates(25344, [75426, 58654], nil, "2023-06-08");

// $dates будет содержать:
// {
//    "bookingDays": {
//        "6": [
//            20,
//            21,
//            22,
//            23,
//            24,
//            25,
//            26,
//            27,
//            28,
//            29,
//            30
//        ],
//        "7": [
//            1,
//            2,
//            3,
//            4,
//            8,
//            9,
//            12,
//            14,
//            20,
//            26,
//            28
//        ],
//        "8": [
//            1,
//            5,
//            7
//        ]
//    },
//    "bookingDates": [
//        "2023-06-20",
//        "2023-06-21",
//        "2023-06-22",
//        "2023-06-23",
//        "2023-06-24",
//        "2023-06-25",
//        "2023-06-26",
//        "2023-06-27",
//        "2023-06-28",
//        "2023-06-29",
//        "2023-06-30",
//        "2023-07-01",
//        "2023-07-02",
//        "2023-07-03",
//        "2023-07-04",
//        "2023-07-08",
//        "2023-07-09",
//        "2023-07-12",
//        "2023-07-14",
//        "2023-07-20",
//        "2023-07-26",
//        "2023-07-28",
//        "2023-08-01",
//        "2023-08-05",
//        "2023-08-07"
//    ],
//    "workingDays": {
//        "6": [
//            20,
//            21,
//            22,
//            23,
//            24,
//            25,
//            26,
//            27,
//            28,
//            29,
//            30
//        ],
//        "7": [
//            1,
//            2,
//            3,
//            4,
//            8,
//            9,
//            12,
//            14,
//            20,
//            26,
//            28
//        ],
//        "8": [
//            1,
//            5
//        ]
//    },
//    "workingDates": [
//        "2023-06-20",
//        "2023-06-21",
//        "2023-06-22",
//        "2023-06-23",
//        "2023-06-24",
//        "2023-06-25",
//        "2023-06-26",
//        "2023-06-27",
//        "2023-06-28",
//        "2023-06-29",
//        "2023-06-30",
//        "2023-07-01",
//        "2023-07-02",
//        "2023-07-03",
//        "2023-07-04",
//        "2023-07-08",
//        "2023-07-09",
//        "2023-07-12",
//        "2023-07-14",
//        "2023-07-20",
//        "2023-07-26",
//        "2023-07-28",
//        "2023-08-01",
//        "2023-08-05"
//    ]
//  }

yclients.bookingServices(salonId int, serviceIds List = nil, staffId int = nil, date string = nil) ?Map

Назначение: запрашивает услуги доступные для бронирования.

...

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
// Запрашивает доступные услуги
$services = yclients.bookingServices(25344);

// Запрашивает доступные услуги с учетом только необходимых
$services = yclients.bookingServices(25344, [75426, 58654]);

// Запрашивает доступные услуги сотрудника
$services = yclients.bookingServices(25344, nil, 2303331);

// Запрашивает доступные услуги на определенное время
$services = yclients.bookingServices(25344, nil, nil, "2023-06-08 12:00");

// Запрашивает доступные услуги сотрудника на определенное время
$services = yclients.bookingServices(25344, nil, 2303331, "2023-06-08 12:00");

// $services будет содержать:
// {
//    "services": [
//        {
//            "id": 11440288,
//            "title": "Стрижка",
//            "categoryId": 11440287,
//            "priceMin": 1000,
//            "priceMax": 2000,
//            "discount": 0,
//            "comment": "",
//            "weight": 2,
//            "active": 1,
//            "sex": 0,
//            "image": "",
//            "prepaid": "forbidden",
//            "seanceLength": 3600, // в секундах. возвращается если задан фильтр по сотруднику, в ином случае вернется null
//            "abonementRestriction": 0,
//            "prepaidSettings": {
//                "status": "forbidden",
//                "prepaidFull": {
//                    "amount": 1000,
//                    "currency": "RUB"
//                },
//                "prepaidMin": {
//                    "amount": 1000,
//                    "percent": 100,
//                    "currency": "RUB"
//                }
//            }
//        },
//        {
//            "id": 12685752,
//            "title": "Окрашивание",
//            "categoryId": 11440287,
//            "priceMin": 3000,
//            "priceMax": 3000,
//            "discount": 0,
//            "comment": "",
//            "weight": 0,
//            "active": 1,
//            "sex": 0,
//            "image": "",
//            "prepaid": "forbidden",
//            "seanceLength": null,
//            "abonementRestriction": 0,
//            "prepaidSettings": {
//                "status": "forbidden",
//                "prepaidFull": {
//                    "amount": 3000,
//                    "currency": "RUB"
//                },
//                "prepaidMin": {
//                    "amount": 3000,
//                    "percent": 100,
//                    "currency": "RUB"
//                }
//            }
//        }
//    ],
//    "categories": [
//        {
//            "id": 11440287,
//            "title": "Категория услуг",
//            "sex": 0,
//            "apiId": 0,
//            "weight": 1
//        }
//    ]
// }

yclients.bookingStaff(salonId int, serviceIds List = nil, date string = nil) ?List

Назначение: запрашивает сотрудников доступных для бронирования.

...

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
// Запрашивает доступных сотрудников
$staff = yclients.bookingStaff(25344);

// Запрашивает доступных сотрудников с учетом услуг
$staff = yclients.bookingStaff(25344, [75426, 58654]);

// Запрашивает доступных сотрудников с учетом даты
$staff = yclients.bookingStaff(25344, nil, "2023-06-08");

// Запрашивает доступных сотрудников на определенную дату с учетом услуг
$staff = yclients.bookingStaff(25344, [75426, 58654], "2023-06-08");

// $staff будет содержать:
// [
//    {
//        "id": 2631363,
//        "apiId": null,
//        "name": "Сотрудник 2",
//        "specialization": "мужской мастер",
//        "rating": 0,
//        "showRating": 1,
//        "userId": null,
//        "avatar": "https://be.cdn.yclients.com/images/no-master-sm.png",
//        "avatarBig": "https://be.cdn.yclients.com/images/no-master.png",
//        "commentsCount": 0,
//        "votesCount": 0,
//        "bookable": true,
//        "information": "",
//        "positionId": 263147,
//        "scheduleTill": "2023-08-31",
//        "weight": 2,
//        "fired": 0,
//        "status": 0,
//        "hidden": 0,
//        "user": null,
//        "prepaid": "forbidden",
//        "position": {
//            "id": 217643,
//            "title": "Парикмахер"
//        }
//    },
//    {
//        "id": 2331303,
//        "apiId": null,
//        "name": "Сотрудник 1",
//        "specialization": "специалист",
//        "rating": 0,
//        "showRating": 1,
//        "userId": null,
//        "avatar": "https://be.cdn.yclients.com/images/no-master-sm.png",
//        "avatarBig": "https://be.cdn.yclients.com/images/no-master.png",
//        "commentsCount": 0,
//        "votesCount": 0,
//        "bookable": true,
//        "information": "",
//        "positionId": 231647,
//        "scheduleTill": "2023-07-02",
//        "weight": 1,
//        "fired": 0,
//        "status": 0,
//        "hidden": 0,
//        "user": null,
//        "prepaid": "forbidden",
//        "position": {
//            "id": 217643,
//            "title": "Парикмахер"
//        }
//    }
// ]

yclients.bookingStaffSeances(salonId int, staffId int, serviceIds List = nil, date string = nil) ?Map

Назначение: запрашивает ближайшие доступные сеансы сотрудника

...

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
// Запрашивает доступные сеансы сотрудника
$staffSeances = yclients.bookingStaffSeances(25344, 2331303);

// Запрашивает доступные сеансы сотрудника с учетом услуг
$staffSeances = yclients.bookingStaffSeances(25344, 2331303, [75426, 58654]);

// $staffSeances будет содержать:
// {
//    "seanceDate": "2023-06-20",
//    "seances": [
//        {
//            "time": "13:00",
//            "seanceLength": 3600,
//            "sumLength": 3600,
//            "datetime": "2023-06-20T10:00:00+00:00"
//        },
//        {
//            "time": "13:30",
//            "seanceLength": 3600,
//            "sumLength": 3600,
//            "datetime": "2023-06-20T10:30:00+00:00"
//        }
//    ]
// }

yclients.bookingTimes(salonId int, staffId int, date string, serviceIds List = nil) ?List

Назначение: запрашивает список сеансов доступных для бронирования

...

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
// Запрашивает доступные сеансы сотрудника
$times = yclients.bookingTimes(25344, 2331303, "2023-06-20");

// Запрашивает доступные сеансы сотрудника на определенные услуги
$times = yclients.bookingTimes(25344, 2331303, "2023-06-20", [75426, 58654]);

// $times будет содержать:
// [
//    {
//        "time": "6:00",
//        "seanceLength": 3600,
//        "sumLength": 3600,
//        "datetime": "2023-06-21T03:00:00+00:00"
//    },
//    {
//        "time": "6:30",
//        "seanceLength": 3600,
//        "sumLength": 3600,
//        "datetime": "2023-06-21T03:30:00+00:00"
//    },
//    {
//        "time": "19:00",
//        "seanceLength": 3600,
//        "sumLength": 3600,
//        "datetime": "2023-06-21T16:00:00+00:00"
//    }
// ]

yclients.searchClient(salonId int, filters Map) ?int

Назначение: производит поиск клиента по передаваемым фильтрам

...

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
// Поиск клиента по номеру телефона
$clientId = yclients.searchClient(1, {'phone': '11111111111'});


// Поиск клиента по почте
$clientId = yclients.searchClient(1, {'email': 'test@mail.com'});

yclients.clientDetails(salonId int, clientId int) ?Map

Назначение: получает данные о клиенте

...

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$client = yclients.clientDetails(1, 1);

// $client будет содержать:
// {
// 		"id": 1,
// 		"email": "test@mail.com",
// 	    "name": "name",
// 	    "surname": "",
// 	    "patronymic": "",
// 	    "phone": "+111111111",
// 	    "categories": [],
// 	    "sex": "Неизвестно",
// 	    "discount": 0,
// 	    "importance": "Без класса важности",
// 	    "card": "",
// 	    "birthDate": "",
// 	    "comment": "",
// 	    "smsCheck": false,
// 	    "smsNot": false,
//      "spent": 0,
//      "balance": 0,
//      "visits": 0,
//      "lastChangeDate": "2022-12-19T10:47:21+0400",
//      "customFields": []
//}

yclients.createClient(salonId int, params Map) ?int

Назначение: создает нового клиента

...

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$clientId = yclients.createClient(1, {'name': 'Имя', 'phone': '1111111111111', 'email': 'testclient@mail.com', 'sexId': 1, 'birthDate': '1999-01-01'});

yclients.updateClient(salonId int, clientId int, params Map) bool

Назначение: редактирует информацию клиента

...

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$client = yclients.updateClient(1, 1, {'name': 'Имя', 'phone': '1111111111111', 'email': 'updateclient@mail.com'});

yclients.createClientComment(salonId int, clientId int, text string) ?int

Назначение: добавляет комментарий к клиенту

...

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$commentId = yclients.createClientComment(1, 1, 'text');

Объект FactQuery

Используя методы этого объекты, вы можете выполнять и строить разнообразные запросы к базе фактов. База фактов представляет собой список записей. Каждая запись представляет собой единичный факт, состоящий из следующих частей (полей):

  • Контекст (context). Произвольная строка, длина которой не превышает 255 символов. Обозначает некоторую предметную область, в рамках которой существует факт. Может участвовать в поиске.
  • Имя факта (name). Произвольная строка, длина которой не превышает 255 символов. Служит для идентификации факта в заданном контексте. Может участвовать в поиске.
  • Значение факта (value). Любое значение. Это и есть та информация, которую мы трактуем как факт. Не может участвовать в поиске (технически может, но результат не определен).
  • Идентификатор бота (botId). Может быть задан при сохранении факта с целью привязки факта к боту. Может участвовать в поиске.
  • Идентификатор клиента (clientId). Может быть задан при сохранении факта с целью привязки факта к клиенту. Может участвовать в поиске.

select(fields string|Collection) FactQuery

Назначение: задаёт список полей из базы фактов, значения которых следует вернуть в результате запроса. Если метод select не вызывался, то будут возвращены поля context, name и value.

...

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$facts = fact.query().rows()                               // select не вызван возвращаем все поля.
$facts = fact.query().select(["value", "context"]).rows()  // Возвращаем список фактов, для которых нам нужны только value и context.
$facts = fact.query().select("botId").rows()               // Возвращаем только поле botId, к которому привязаны факты.

where(field string, operator string, value mixed) FactQuery

Назначение: задаёт условие поиска фактов. Несколько методов where объединяются по принципу логического "И". Т.е. все условия должны быть выполнены. Метод where равносилен методу andWhere(field, operator, value).

...

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
// Ищем факты, у которых context содержит подстроку test
$facts = fact.query().
    select("name,value").
    where("context", "~", "^.*test.*$").
    rows()

andWhere(field string, operator string, value mixed) FactQuery

Эквивалентен where(field, operator, value).

orWhere(field string, operator string, value mixed) FactQuery

Аналогичен where с той лишь разницей, что несколько вызовов этого метода объединяются по принципу логического "ИЛИ" (т.е. должно выполняться хотя бы одно условие).

where(cond FactQueryCondition) FactQuery

Назначение: задаёт сложное (вложенное) условие. Несколько вызвов метода объединяются по принципу логического "И". Эквивалентен методу andWhere(cond).

...

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
// Ищем факты, у которых context содержит подстроку test, и при этом name равен "слово", или name начинается на "оп".
$facts = fact.query().
    select("name,value").
    where("context", "~", "^.*test.*$").
    andWhere(fact.cond().
        where("name", "=", "слово").
        orWhere("name", "^@", "оп")).
    rows()

andWhere(cond FactQueryCondition) FactQuery

Эквивалентен where(cond).

orWhere(cond FactQueryCondition) FactQuery

Аналогичен where(cond), с той лишь разницей, что несколько вызовов этого метода объединяются по принципу логического "ИЛИ", т.е. должно выполняться хотя бы одно условие.

sortBy(fields string|Collection) FactQuery

Назначение: задаёт сортирову фактов по указанным полям.

...

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
// Получаем все факты для бота с двойной сортировкой: 
// Сначала по контексту по возрастанию (т.е. в алфавитном порядке)
// И далее по имени факта по убыванию.
$facts = fact.query().
    select("name,value").
    where("botId", "=", @botId)
    sortBy("+context,-name"). // Можно также использовать коллеции. Например, sortBy(["+context", "-name"])
    rows()

limit(limit int) FactQuery

Назначение: ставит ограничение на максимальное количество извлекаемых фактов.

...

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
// Получаем первые 10 фактов
$facts = fact.query().
    select("name,value").
    sortBy("name").
    limit(10).
    rows()

skip(count int) FactQuery

Назначение: задаёт количество фактов, которые следует пропустить при поиске.

...

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
// Пропускаем 5 первых фактов и извлекаем следующие 10
$facts = fact.query().
    select("name,value").
    sortBy("name").
    skip(5).
    limit(10).
    rows()

one() mixed

Назначение: возвращает первое указанное через select поле первого найденного факта.

...

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
// Извлекает имя первого найденного факта
$firstFactName = fact.query().
    select("name,value").        // value хоть и указано, но будет проигнорировано
    one()

column() List

Назначение: возвращает список, состоящий из всех значений первого выбранного поля найденных фактов.

...

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
// Извлекает список имён всех найденных фактов
$names = fact.query().
    select("name,value").        // value хоть и указано, но будет проигнорировано
    column()

row() Map

Назначение: возвращает все выбранные поля в виде ассоциативного массива для первого найденного факта.

...

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
// Извлекает имя и значение первого найденного факта
$names = fact.query().
    select("name,value").
    row()

rows() List<Map>

Назначение: возвращает список всех найденных фактов. Каждый факт возвращается как ассоциативный массив, ключами которого являются поля факта, а значениями – значения полей.

...

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
// Извлекает имя и значение всех фактов
$names = fact.query().
    select("name,value").
    rows()

Объект FactQueryCondition

Используйте методы этого объекта, чтобы строить сложные вложенные условия к базе фактов.

where(field string, operator string, value mixed) FactQueryCondition

Аналогичен методу where(field string, operator string, value mixed) объекта FactQuery.

andWhere(field string, operator string, value mixed) FactQueryCondition

Аналогичен методу andWhere(field string, operator string, value mixed) объекта FactQuery.

orWhere(field string, operator string, value mixed) FactQueryCondition

Аналогичен методу orWhere(field string, operator string, value mixed) объекта FactQuery.

and(field string, operator string, value mixed) FactQueryCondition

Аналогичен методу andWhere(field string, operator string, value mixed) объекта FactQuery.

or(field string, operator string, value mixed) FactQueryCondition

Аналогичен методу orWhere(field string, operator string, value mixed) объекта FactQuery.

where(cond FactQueryCondition) FactQueryCondition

Аналогичен методу where(cond FactQueryCondition) объекта FactQuery.

andWhere(cond FactQueryCondition) FactQueryCondition

Аналогичен методу andWhere(cond FactQueryCondition) объекта FactQuery.

orWhere(cond FactQueryCondition) FactQueryCondition

Аналогичен методу orWhere(cond FactQueryCondition) объекта FactQuery.

and(cond FactQueryCondition) FactQueryCondition

Аналогичен методу andWhere(cond FactQueryCondition) объекта FactQuery.

or(cond FactQueryCondition) FactQueryCondition

Аналогичен методу orWhere(cond FactQueryCondition) объекта FactQuery.

Объект UserMessage

message string

Назначение: оригинальный текст сообщения.

Блок кода
languagephp
themeDJango
firstline1
titleПример использования
linenumberstrue
$msg = queue.last().message // $msg содержит текст последнего сообщения пользователя

attachments List<string>

Назначение: список идентификаторов файлов, приложенных к сообщению.

Блок кода
languagephp
themeDJango
firstline1
titleПример использования
linenumberstrue
$attachments = queue.first().attachments // $attachments содержит список вложений первого сообщения пользователя.

isEmpty() bool

Назначение: определяет пустое ли сообщение.

...

Блок кода
languagephp
themeDJango
firstline1
titleПример использования
linenumberstrue
$isEmpty = queue.last().isEmpty() // $isEmpty содержит true, если последнее сообщение пользователя пустое, и false в противном случае

hasAttachments() bool

Назначение: определяет, есть ли вложения в данном сообщении.

...

Блок кода
languagephp
themeDJango
firstline1
titleПример использования
linenumberstrue
$hasAttachments = queue.first().hasAttachments() // $hasAttachments содержит true, если первое сообщение пользователя имеет вложения, и false в противном случае

Объект Sentence

intent string

Назначение: распознанное намерение.

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$sentence = nlu.parse("Привет Вася", "d926726a-5acb-4233-8c1e-ce4300921de0")
$intent = $sentence.intent   // $intent содержит "greeting"

intentConfidence number

Назначение: степень достоверности распознанного намерения (1 – однозначное распознавание, 0 – намерение фактически нераспознанно).

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$sentence = nlu.parse("Привет Вася", "d926726a-5acb-4233-8c1e-ce4300921de0")
$confidence = $sentence.intentConfidence   // $confidence содержит 0.98

intents List<Tuple>

Назначение: список распознанных намерений. Каждый элемент списка содержит кортеж из двух элементов: название намерения (string) и его достоверность распознавания (float).

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$sentence = nlu.parse("Доброе утро Вася, пора вставать", "d926726a-5acb-4233-8c1e-ce4300921de0")
$intents = $sentence.intents // $entities допустим содержит [("greetings", 0.97), ("wakeup", 0.88)]
$first = $intents.get(0)     // $first содержит ("greetings", 0.97)
$intent = $first.get(0)      // $intent содержит "greetings"

entities List<Tuple>

Назначение: список распознанных сущностей. Каждый элемент списка содержит кортеж из трёх элементов: тип сущности (string), значение сущности (строка), достоверность распознавания сущности (numberfloat).

Блок кода
languagephp
themeDJango
firstline1
titleПримеры использования
linenumberstrue
$sentence = nlu.parse("Доброе утро Вася", "d926726a-5acb-4233-8c1e-ce4300921de0")
$entities = $sentence.entities // $entities содержит [("human-name", "Вася", 0.96), ("time", "2023-01-09 23:30:00", 0.87)]
$first = $entities.get(0)      // $first содержит ("human-name", "Вася", 0.96)
$type = $first.get(0)          // $type содержит "human-name"

...