HEX
Server: LiteSpeed
System: Linux php-prod-1.spaceapp.ru 5.15.0-157-generic #167-Ubuntu SMP Wed Sep 17 21:35:53 UTC 2025 x86_64
User: xnsbb3110 (1041)
PHP: 8.1.33
Disabled: NONE
Upload Files
File: //usr/local/CyberCP/plogical/getSystemInformation.py
import platform
import os
import datetime
import math
import argparse

class SystemInformation:
    now = datetime.datetime.now()
    olsReport = ""

    @staticmethod
    def cpuLoad():
        return os.getloadavg()

    @staticmethod
    def getOSName():

        OSName = platform.platform()
        data =  OSName.split("-")

        checker = 0
        finalOSName = ""

        for items in data:

            if checker == 1:
                finalOSName = items
                break

            if items == "with":
                checker = 1

        return finalOSName

    @staticmethod
    def getCurrentSystemTime():
        return SystemInformation.now.strftime("%I:%M")

    @staticmethod
    def currentWeekDay():
        return SystemInformation.now.strftime("%a")

    @staticmethod
    def currentMonth():
        return SystemInformation.now.strftime("%B")

    @staticmethod
    def currentYear():
        return SystemInformation.now.strftime("%Y")

    @staticmethod
    def currentDay():
        return SystemInformation.now.strftime("%d")

    @staticmethod
    def getAllInfo():
        OSName = SystemInformation.getOSName()
        loadAverage = SystemInformation.cpuLoad()
        currentTime = SystemInformation.getCurrentSystemTime()
        weekDayNameInString = SystemInformation.currentWeekDay()
        currentMonthName = SystemInformation.currentMonth()
        currentDayInDecimal = SystemInformation.currentDay()
        currentYear = SystemInformation.currentYear()
        loadAverage = list(loadAverage)
        one = loadAverage[0]
        two = loadAverage[1]
        three = loadAverage[2]

        data = {"weekDayNameInString": weekDayNameInString, "currentMonthName": currentMonthName,
         "currentDayInDecimal": currentDayInDecimal, "currentYear": currentYear, "OSName": OSName,
         "loadAVG": loadAverage, "currentTime": currentTime, "one":one,"two":two,"three":three}

        return data


    @staticmethod
    def getSystemInformation():
        try:
            import psutil
            
            # Get usage percentages
            ram_percent = int(math.floor(psutil.virtual_memory()[2]))
            cpu_percent = int(math.floor(psutil.cpu_percent()))
            disk_percent = int(math.floor(psutil.disk_usage('/')[3]))
            
            # Get total system information
            cpu_cores = psutil.cpu_count()
            ram_total_mb = int(psutil.virtual_memory().total / (1024 * 1024))
            disk_total_gb = int(psutil.disk_usage('/').total / (1024 * 1024 * 1024))
            disk_free_gb = int(psutil.disk_usage('/').free / (1024 * 1024 * 1024))
            
            # Get uptime
            uptime_seconds = int(psutil.boot_time())
            current_time = int(datetime.datetime.now().timestamp())
            uptime_diff = current_time - uptime_seconds
            
            days = uptime_diff // 86400
            hours = (uptime_diff % 86400) // 3600
            minutes = (uptime_diff % 3600) // 60
            
            if days > 0:
                uptime_str = f"{days}D, {hours}H, {minutes}M"
            else:
                uptime_str = f"{hours}H, {minutes}M"
            
            SystemInfo = {
                'ramUsage': ram_percent, 
                'cpuUsage': cpu_percent, 
                'diskUsage': disk_percent,
                'cpuCores': cpu_cores,
                'ramTotalMB': ram_total_mb,
                'diskTotalGB': disk_total_gb,
                'diskFreeGB': disk_free_gb,
                'uptime': uptime_str
            }
            return SystemInfo
        except:
            SystemInfo = {'ramUsage': 0,
                          'cpuUsage': 0,
                          'diskUsage': 0,
                          'cpuCores': 0,
                          'ramTotalMB': 0,
                          'diskTotalGB': 0,
                          'diskFreeGB': 0,
                          'uptime': 'N/A'}
            return SystemInfo

    @staticmethod
    def cpuRamDisk():
        try:
            import psutil
            SystemInfo = {'ramUsage': int(math.floor(psutil.virtual_memory()[2])),
                          'cpuUsage': int(math.floor(psutil.cpu_percent())),
                          'diskUsage': int(math.floor(psutil.disk_usage('/')[3]))}
        except:
            SystemInfo = {'ramUsage': 0,
                          'cpuUsage': 0,
                          'diskUsage': 0}

        return SystemInfo

    @staticmethod
    def GetRemainingDiskUsageInMBs():
        import psutil

        total_disk = psutil.disk_usage('/').total / (1024 * 1024)  # Total disk space in MB
        used_disk = psutil.disk_usage('/').used / (1024 * 1024)  # Used disk space in MB
        free_disk = psutil.disk_usage('/').free / (1024 * 1024)  # Free disk space in MB
        percent_used = psutil.disk_usage('/').percent  # Percentage of disk used

        return used_disk, free_disk, percent_used

    @staticmethod
    def populateOLSReport():
        SystemInformation.olsReport = open("/tmp/lshttpd/.rtreport", "r").readlines()



def main():

    parser = argparse.ArgumentParser(description='CyberPanel Installer')
    parser.add_argument('function', help='Specific a function to call!')

    args = parser.parse_args()

    if args.function == "populateOLSReport":
        SystemInformation.populateOLSReport()


if __name__ == "__main__":
    main()