51 lines
1.9 KiB
D

module commands.misc;
import util, api_data;
import commands.util;
@Command("хз", "хуй")
string[2] huy = [":orehussmile:",
`<img data-mx-emoticon height="32" alt=":orehussmile:" title=":orehussmile:"
src="mxc://4d2.org/XvWYAuhASYRHtYvtspsrWvtU" >`];
@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, `<img src="`~url[15..$-2]~`">`);
// }