File size: 3,839 Bytes
6f55a1e
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
const axios = require('axios');
const os = require('os');

let handler = async (m, { conn }) => {
  try {
    const response = await axios.get('http://ip-api.com/json/');
    const serverInfo = response.data;

    conn.chatRead(m.chat);
    conn.sendMessage(m.chat, {
      react: {
        text: '⏳',
        key: m.key,
      }
    });

    let serverMessage = `β€’  *S E R V E R*\n\n`;
    const osInfo = os.platform();
    const totalRAM = Math.floor(os.totalmem() / (1024 * 1024));
    const freeRAM = Math.floor(os.freemem() / (1024 * 1024));
    const uptime = os.uptime();
    const uptimeFormatted = formatUptime(uptime);
    const processor = os.cpus()[0].model;

    serverMessage += `β”Œ  β—¦  OS : ${osInfo}\n`;
    serverMessage += `β”‚  β—¦  RAM : ${freeRAM} MB / ${totalRAM} MB\n`;
    serverMessage += `β”‚  β—¦  Country : ${serverInfo.country}\n`;
    serverMessage += `β”‚  β—¦  CountryCode : ${serverInfo.countryCode}\n`;
    serverMessage += `β”‚  β—¦  Region : ${serverInfo.region}\n`;
    serverMessage += `β”‚  β—¦  RegionName : ${serverInfo.regionName}\n`;
    serverMessage += `β”‚  β—¦  City : ${serverInfo.city}\n`;
    serverMessage += `β”‚  β—¦  Zip : ${serverInfo.zip}\n`;
    serverMessage += `β”‚  β—¦  Lat : ${serverInfo.lat}\n`;
    serverMessage += `β”‚  β—¦  Lon : ${serverInfo.lon}\n`;
    serverMessage += `β”‚  β—¦  Timezone : ${serverInfo.timezone}\n`;
    serverMessage += `β”‚  β—¦  ISP : ${serverInfo.isp}\n`;
    serverMessage += `β”‚  β—¦  Org : ${serverInfo.org}\n`;
    serverMessage += `β”‚  β—¦  AS : ${serverInfo.as}\n`;
    serverMessage += `β”‚  β—¦  Query : HIDDEN\n`;
    serverMessage += `β”‚  β—¦  Uptime : ${uptimeFormatted}\n`;
    serverMessage += `β””  β—¦  Processor : ${processor}`;

    // Create the fake reply with contextInfo
    await conn.sendMessage(m.chat, {
        text: serverMessage,
        contextInfo: {
            externalAdReply: {
                mediaType: 1,
                title: 'IKYBOT OFFICIAL',
                thumbnailUrl: 'https://telegra.ph/file/e64a2612fe7dda57be962.jpg',
                renderLargerThumbnail: true,
                sourceUrl: ''
            },
            forwardedNewsletterMessageInfo: {
                newsletterJid: '120363185802524978@newsletter',
                newsletterName: 'Powered By RIZKI IRFAN'
            }
        }
    }, { quoted: {
        key: { fromMe: false, participant: '0@s.whatsapp.net', remoteJid: 'status@broadcast' },
        message: {
            conversation: getWIBTime()
        }
    }});
  } catch (e) {
    console.log(e);
  }
};

function formatUptime(uptime) {
  let seconds = Math.floor(uptime % 60);
  let minutes = Math.floor((uptime / 60) % 60);
  let hours = Math.floor((uptime / (60 * 60)) % 24);
  let days = Math.floor(uptime / (60 * 60 * 24));

  let formattedUptime = '';
  if (days > 0) formattedUptime += `${days} days `;
  if (hours > 0) formattedUptime += `${hours} hours `;
  if (minutes > 0) formattedUptime += `${minutes} minutes `;
  if (seconds > 0) formattedUptime += `${seconds} seconds`;

  return formattedUptime.trim();
}

function getWIBTime() {
    const offset = 7; // WIB is UTC+7
    let date = new Date();
    let utc = date.getTime() + (date.getTimezoneOffset() * 60000);
    let wibDate = new Date(utc + (3600000 * offset));
    let hours = wibDate.getHours();
    let minutes = wibDate.getMinutes();
    let seconds = wibDate.getSeconds();
    let ampm = hours >= 12 ? 'PM' : 'AM';
    hours = hours % 12;
    hours = hours ? hours : 12; // the hour '0' should be '12'
    let strTime = hours.toString().padStart(2, '0') + ':' + minutes.toString().padStart(2, '0') + ':' + seconds.toString().padStart(2, '0') + ampm;
    return strTime;
}

handler.command = ['server'];
handler.tags = ['info'];
handler.help = ['server'];

module.exports = handler;