module commands; import util; // UDA struct Command { string description = "No description provided"; string name; } @Command("Отображает аватар пользователя") auto avatar(Arguments argz, EventWithoutRoomID* evt) { import std.net.curl: get; string url = cast(string)get(homeserver~"/_matrix/client/v3/profile/" ~ ((argz.parsed.length == 0) ? evt.sender : argz.parsed[0]) ~ "/avatar_url"); if (url == "{}") return MSG("User has no avatar"); return MSG(evt.sender, ``); } @Command("", "пинг") auto ping(Arguments, EventWithoutRoomID* evt) { import std.datetime: Clock, SysTime, unixTimeToStdTime; auto delay = (Clock.currTime() - SysTime(unixTimeToStdTime(0))).total!"msecs" - evt.origin_server_ts; return MSG("PONG [" ~ intToStr(delay) ~ " ms]"); } @Command("хз мне лень делать описание") auto echo(Arguments argz, EventWithoutRoomID* evt) { return MSG((argz.raw.length > 6) ? argz.raw[6..$] : "Too small MSG"); } @Command() string[2] huy = [":orehussmile:", `:orehussmile:`]; @Command("Версия бота", "версия") string ver = "SkunkyBot Pre-Alpha 0.1 :: https://git.macaw.me/skunky/skunkybot-d"; @Command("test") static string compver = "Compiler version: "~intToStr(__VERSION__);