English version is here
Бот умеет вычислять продолжительность чего-то между двумя датами (например возраст или опыт работы и т.д.). Так же бот умеет производить арифмитические операции над этими величинами.
Бот работает как интерпретатор команд. Поэтому с ним нужно общаться используя его синтаксис.
- Переменные задаются так
Общий случай:
-config-alias VarName = Expression -m"Description"
- -config-alias - ключевое слово, означающее что нужно создать пользовательскую переменную
- VarName - допустимое имя переменной (символы 'a..Z' и цифры)
- Expression - Любое допустимое выражение. Может содержать функции Age(), Diff() или пользовательские переменные.
И арифмитические операции, например: Age() - Diff() Variable. Определение описывается следующим образом:
- expression : factor ( ( ' ' | '-' ) factor )*
- factor : var | func
- func : Age(date) | Diff(date, date)
- var : NAME
- date : dd.mm.yyyy
- -m - опциональный ключ, сразу за ним должно следовать описание в кавычках и без пробелов "Description".
Его цель описать смысл этого выражения именно для вас
Примеры:
-config-alias Neo = Age(02.09.1964) -m"Возраст Киану Ривза"
-config-alias T800 = Age(30.07.1947) -m"Возраст Арнольда"
-config-alias aDiff = Diff(02.09.1964, 30.07.1947) -m"Разница между Шварцом и Киану"
- Neo - это переменная. Регистр не имеет значения
- Age(02.09.1964) - функция (формат даты только dd.mm.yyyy)
- -m"Возраст Киану Ривза" - описание (опциональный параметр, обязательно в кавычках)
- Можно вызывать переменные или функции
> Neo
Возраст Киану Ривза:
58 years 1 month 17 days //на момент 19.10.2022
> aDiff
Разница между Шварцом и Киану:
17 years 1 month 3 days
> Diff(31.03.1999, 02.09.1964) -m"Возраст Киану на момент релиза Матрицы"
Возраст Киану на момент релиза Матрицы:
34 years 6 months 29 days
Доступные функции: Age(d1) и Diff(d2, d1). Age -> Diff(Now(), d1)
- Можно складывать и вычитать
> Diff(11.11.1918, 28.07.1914) Diff(02.09.1945, 01.09.1939) -m"Длительность мировых войн"
Длительность мировых войн
10 years 3 months 15 days
> T800 - Neo -m"Разница между Шварцом и Киану"
Разница между Шварцом и Киану:
17 years 1 months 3 days
- Поддерживается многострочный ввод
> Neo
> Diff(31.03.1999, 02.09.1964) -m"Возраст Киану на момент релиза Матрицы"
Возраст Киану Ривза:
58 years 1 month 17 days //на момент 19.10.2022
Возраст Киану на момент релиза Матрицы:
34 years 6 months 29 days
- Дополнительные возможности
-config-alias-show Neo - показать ключ Neo
-config-alias-show - показать все ключи
-config-alias-delete aDiff - удалить ключ aDiff
-config-alias-delete -all - удалить все ключи
Для создания тестового бота нужно обратиться к BotFather и получить от него токен и userName бота. Конфигурационный файл имеет следующий вид
BOT_USER_NAME = <BotUserName>
BOT_TOKEN = <Token>