aboutsummaryrefslogtreecommitdiff
path: root/commands/util/status.js
blob: dc05ab742d8d7a7656b58db02eacb6a315f76111 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
const fs = require('fs')
const path = require("path");
let settings = require("../../src/settings")
let {limit_exp} = require("../../src/util")
const { EmbedBuilder,ActionRowBuilder,ButtonBuilder,ButtonStyle } = require("discord.js");
const {getLastCommit} = require("git-last-commit")
const { execSync } = require('child_process');
var os = require('os');
let config_loc = __filename+".json"
let config = JSON.parse(fs.readFileSync(config_loc))
module.exports = {
    name : "status",
    command: ["status","server","uptime","vote","twitter","𝕏"],
    //
    mod_only: false,
    config:config,
    config_loc:config_loc,
    async main (client,Discord,message,args){
        this.exec(client,message)
    },
    async s_main (client,Discord,interaction){
        this.exec(client,interaction)
    },
    async exec(client,message){
        getLastCommit(async (err,commit)=>{
            let changed = execSync('git --no-pager diff --minimal --name-only').toString().split('\n').filter((s) => s!='')
            let changed_d = execSync('git diff --shortstat --minimal').toString()
            let seconds = Math.floor(message.client.uptime / 1000);
            let minutes = Math.floor(seconds / 60);
            let hours = Math.floor(minutes / 60);
            let days = Math.floor(hours / 24);
            let uptime = "online for: ";
            if(days>0)uptime+=days+" days"
            else if(hours>0)uptime+=hours+"h"
            else if(minutes>0)uptime+=minutes+"m"
            else uptime+=seconds+"s"
            uptime+=" | "+limit_exp((message.client.uptime*1000).toExponential(),2)+"μs"
            const vote = new ButtonBuilder()
                .setLabel('Vote')
                .setStyle(ButtonStyle.Link)
                .setURL('https://discords.com/servers/486957006628847626/upvote')
                //
            /*const twitter = new ButtonBuilder() //0% chance i will call this 𝕏
                .setLabel('Twitter')
                .setStyle(ButtonStyle.Link)
                .setURL('https://twitter.com/sns_chan')*/
            const discord = new ButtonBuilder()
                .setLabel('Discord')
                .setStyle(ButtonStyle.Link)
                .setURL('https://discord.gg/supernoobs')
            const github = new ButtonBuilder()
                .setLabel('Github')
                .setStyle(ButtonStyle.Link)
                .setURL('https://github.com/ameliasquires/sns-chan')
            const row = new ActionRowBuilder()
                .addComponents(vote,discord,github);
            let conv = 1024 * 1024 * 1024
            let sys = "system: cpus: "+os.cpus().length+", ram (free): "+Math.floor(os.freemem()/conv)+"/"+Math.floor(os.totalmem()/conv)+"gb\nkernel: "+os.release()
            let emoteembed = new EmbedBuilder()
                .setThumbnail(client.user.displayAvatarURL())
                .setTitle("Server info")
                .setDescription(uptime+"\n"+sys)
                .setColor(settings.defaultColor)
                .setFooter({text:"running "+commit.shortHash+" ("+commit.branch+") + (live)" +  (changed.length>0?changed_d:"")})
            message.reply({embeds:[emoteembed],components:[row]})
        })
    }
}