51 lines
1.9 KiB
D
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]~`">`);
|
|
// }
|