Skip to content

AgeDefinerBot can calculate age and different length related to dates

License

Notifications You must be signed in to change notification settings

DiffeRT/AgeDefinerBot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

62 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Telegram бот AgeDefiner на Java

English version is here

Бот умеет вычислять продолжительность чего-то между двумя датами (например возраст или опыт работы и т.д.). Так же бот умеет производить арифмитические операции над этими величинами.

Бот работает как интерпретатор команд. Поэтому с ним нужно общаться используя его синтаксис.

Описание возможностей и синтаксиса бота с примерами


  1. Переменные задаются так

Общий случай:

-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"Возраст Киану Ривза" - описание (опциональный параметр, обязательно в кавычках)
  1. Можно вызывать переменные или функции
> 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)

  1. Можно складывать и вычитать
> 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
  1. Поддерживается многострочный ввод
> Neo
> Diff(31.03.1999, 02.09.1964) -m"Возраст Киану на момент релиза Матрицы"
Возраст Киану Ривза:
  58 years 1 month 17 days //на момент 19.10.2022
Возраст Киану на момент релиза Матрицы:
  34 years 6 months 29 days
  1. Дополнительные возможности

-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>

About

AgeDefinerBot can calculate age and different length related to dates

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages