Опыт программиста || боты вконтакте 2.

Опыт опытом, но я ни на кого не работал. Разработка ботов для вк было моей инициативой.

Этот пост будет про креативное решение одного кейса.

Каким бы ботом чат менеджером в чатах вк я не пользовался, я никогда не мог запомнить, как правильно указывать срок (бана, мута или чего либо ещё). У всех было по разному, и вообще казалось что с точки зрения кода парсера команд это был откровенно говоря сложным.

Когда я писал своего бота, чтобы указать срок, я придумал (или скопировал откуда уже не помню) и написал свой способ.

<число><единица измерения времени>

Между делом, вк время работало на UNIX time (timestamp). Каждая единица измерения времени скажем так имела свой вес.

с, s, сек и sec - 1 мин, min - 60 ч, h, час, hour - 3600 д, d, день, day - 3600 * 24 н, w, нед, week - 3600 * 24 * 7 мес, mon - 3600 * 24 * 30 л, y, лет, years - 3600 * 24 * 365

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

!мут @durov 2y 6mon - мут на срок 2 года и 6 месяцев. !бан @durov 2y 6y - как ни странно, бан сроком на 8 лет.

Удобно? Это был компромисс чтобы не писать сложный парсер и не проиграть в user friendly синтаксисе команд.

А ну и держите смешную картинку, чтобы пост не был совсем душным.

Опыт программиста || боты вконтакте 2. | Сетка — социальная сеть от hh.ru Опыт программиста || боты вконтакте 2. | Сетка — социальная сеть от hh.ru