module commands.misc; import util, api_data; import commands.util; @Command("хз", "хуй") string[2] huy = [":orehussmile:", `:orehussmile:`]; @Command("Версия бота", "версия") string ver = "Neptune Alpha 1.0 :: https://git.macaw.me/skunky/neptune"; @Command("компвер") static string compver = "Compiler version: "~intToStr(__VERSION__); @Command("Измеряет пинг") auto ping(Arguments, EventWithoutRoomID* evt) { static enum Time: int { millisecond = 1, second = 1000, minute = 60 * second, hour = 60 * minute, day = 24 * hour, week = 7 * day, month = 4 * week, year = 12 * month } import std.datetime: Clock, SysTime, unixTimeToStdTime; auto delay = (Clock.currTime() - SysTime(unixTimeToStdTime(0))).total!"msecs" - evt.origin_server_ts; static foreach_reverse(unit; __traits(allMembers,Time)) if (delay >= __traits(getMember, Time, unit)) // реализовать функцию floatToStr return MSG("PONG [" ~ intToStr(delay / __traits(getMember, Time, unit)) ~ ' ' ~ unit ~ "s]"); return MSG("шота пошло не так"); } @Command("хз мне лень делать описание") auto echo(Arguments argz, EventWithoutRoomID* evt) { return MSG((argz.raw.length > 6) ? argz.raw[6..$] : "Too small MSG"); } // @Command("Отображает аватар пользователя") // auto avatar(Arguments argz, EventWithoutRoomID* evt) { // string url = cast (string) mkrqst(homeserver~"/_matrix/client/v3/profile/" ~ // ((argz.parsed.length == 0) ? evt.sender : argz.parsed[0]) ~ "/avatar_url").body; // if (url == "{}") return MSG("User has no avatar"); // return MSG(evt.sender, ``); // }