def detTemperature():
     # Pegando temperatura
     temperature = "Error"
     try:
         temperature = syscall(
             "cat /sys/devices/virtual/thermal/thermal_zone0/temp"
         )[0].replace('\n', '')
         if syscall(
                 """uname -a | awk '{print $3}'""")[0] == '4.14.18-sunxi':
             temperature = int(temperature) / 1000
         else:
             temperature = int(temperature)
         return str(temperature)
     except Exception as exc:
         temperature = "Error"
         print("Erro na coleta da temperatura - Exception = %s" %
               (str(exc)))
         exceptionLogger("HWinfo.py", "detTemperature",
                         getframeinfo(currentframe()).lineno, exc)
         return "-1"
 def detUptime():
     # Pegando uptime
     uptime = "Error"
     try:
         uptime = syscall("uptime -p")[0].replace('\n', '')
         return str(uptime)
     except Exception as exc:
         uptime = "Error"
         print("Erro na coleta da uptime - Exception = %s" % (str(exc)))
         exceptionLogger("HWinfo.py", "uptime",
                         getframeinfo(currentframe()).lineno, exc)
         return "-1"
 def detInterface():
     # Pegando interface wlan
     interface = "Error"
     try:
         interface = syscall(
             """iw dev | awk '$1=="Interface"{print $2}'""")[0].replace(
                 '\n', '')
         return str(interface)
     except Exception as exc:
         interface = "None"
         print("Erro na coleta da interface - Exception = %s" % (str(exc)))
         exceptionLogger("HWinfo.py", "interface",
                         getframeinfo(currentframe()).lineno, exc)
         return interface
 def detMemory():
     # Pegando memory
     mem = "Error"
     try:
         mem = syscall(
             "free | grep Mem | awk '{usage=($3/$2)*100} END {print usage \"%\"}'"
         )[0].replace('\n', '')
         return str(mem)
     except Exception as exc:
         mem = "Error"
         print("Erro na coleta da memory - Exception = %s" % (str(exc)))
         exceptionLogger("HWinfo.py", "mem",
                         getframeinfo(currentframe()).lineno, exc)
         return "-1"
 def detCPU():
     # Pegando CPU%
     cpu = "Error"
     try:
         cpu = syscall(
             "grep 'cpu ' /proc/stat | awk '{usage=($2+$4)*100/($2+$4+$5)} END {print usage \"%\"}'"
         )[0].replace('\n', '')
         return str(cpu)
     except Exception as exc:
         cpu = "Error"
         print("Erro na coleta da cpu - Exception = %s" % (str(exc)))
         exceptionLogger("HWinfo.py", "detCPU",
                         getframeinfo(currentframe()).lineno, exc)
         return "-1"
    def detMAC():
        # Pegando mac
        mac = "Error"
        try:
            mac = syscall("cat /sys/class/net/eth0/address")[0].replace(
                '\n', '')
            return str(mac)

        except Exception as exc:
            mac = "None"
            print("Erro na coleta do mac - Exception = %s" % (str(exc)))
            exceptionLogger("HWinfo.py", "mac",
                            getframeinfo(currentframe()).lineno, exc)
            return mac
    def serviceStatus():
        try:
            try:
                arp_block_status = syscall("""systemctl | grep arp_block | awk '{print $3}'""")[0]
                arp_block_status = {"arp_block": str(arp_block_status)}
            except Exception as exc:
                arp_block_status = {"arp_block": str("stopped")}

            try:
                nginx_status = syscall("""systemctl | grep nginx | awk '{print $3}'""")[0]
                nginx_status = {"nginx": str(nginx_status)}
            except Exception as exc:
                nginx_status = {"nginx": str("stopped")}

            try:
                gunicorn_status = syscall("""systemctl | grep gunicorn | awk '{print $3}'""")[0]
                gunicorn_status = {"gunicorn": str(gunicorn_status)}
            except Exception as exc:
                gunicorn_status = {"gunicorn": str("stopped")}

            try:
                hostapd_status = syscall("""systemctl | grep hostapd | awk '{print $3}'""")[0]
                hostapd_status = {"hostapd": str(hostapd_status)}
            except Exception as exc:
                hostapd_status = {"hostapd": str("stopped")}

            try:
                dnsmasq_status = syscall("""systemctl | grep dnsmasq | awk '{print $3}'""")[0]
                dnsmasq_status = {"dnsmasq": str(dnsmasq_status)}
            except Exception as exc:
                dnsmasq_status = {"dnsmasq": str("stopped")}

            try:
                flaskAPIBridge_status = syscall("""systemctl | grep flaskAPIBridge | awk '{print $3}'""")[0]
                flaskAPIBridge_status = {"flaskAPIBridge": str(flaskAPIBridge_status)}
            except Exception as exc:
                flaskAPIBridge_status = {"flaskAPIBridge": str("stopped")}

            response = [arp_block_status, nginx_status, gunicorn_status, hostapd_status, dnsmasq_status,
                        flaskAPIBridge_status]
            return response
        except Exception as exc:
            exceptionLogger("General_Info.py", "serviceStatus", getframeinfo(currentframe()).lineno, exc)
            arp_block_status = {"arp_block": str("had exception")}
            nginx_status = {"nginx": str("had exception")}
            gunicorn_status = {"gunicorn": str("had exception")}
            hostapd_status = {"hostapd": str("had exception")}
            dnsmasq_status = {"dnsmasq": str("had exception")}
            flaskAPIBridge_status = {"flaskAPIBridge": str("had exception")}
            response = [arp_block_status, nginx_status, gunicorn_status, hostapd_status, dnsmasq_status,
                        flaskAPIBridge_status]
            return response
    def networking():
        try:
            try:
                interface = syscall(
                    """iw dev | awk '$1=="Interface"{print $2}'""")[0].replace(
                        '\n', '')
                interface = {"interface": str(interface)}
            except Exception as exc:
                interface = {"interface": str("error")}

            try:
                date = syscall("date +\"%d/%m/%Y %H:%M:%S\"")[0].replace(
                    "\n", "")
                date = {"datetime": str(date)}
            except Exception as exc:
                date = {"datetime": str("error")}

            try:
                wlan = str(
                    syscall(
                        """lsusb | grep '003 Device 002' | awk '{print $7}'""")
                    [0]).replace("\n", "")
                if wlan == 'Linux' or wlan == '':
                    wlan = "None"
                else:
                    wlan = {"antena": wlan}
            except Exception as exc:
                wlan = {"antena": str("None")}

            try:
                public_ip_file = open('/root/info/public_ip', 'r')
                public_ip = public_ip_file.read().replace("\n", "")
                public_ip_file.close()
                if public_ip == "\n" or public_ip == "":
                    public_ip = "error"
                public_ip = {'public_ip': str(public_ip)}
            except Exception as exc:
                public_ip = {'public_ip': str("error")}

            try:  # ifstat wlan tx rx
                speed_file = open('/root/info/download', 'r')
                download_speed = str(speed_file.read())
                speed_file.close()
                try:
                    if download_speed.split(' ')[0] == "Download:":
                        upload_speed = download_speed.split("\n")[1].replace(
                            "Upload: ", "")
                        upload_speed = {'upload_speed': upload_speed}
                        download_speed = download_speed.split("\n")[0].replace(
                            "Download: ", "")
                        download_speed = {'download_speed': download_speed}
                    else:
                        download_speed = {"download_speed": str("N/A")}
                        upload_speed = {"upload_speed": str("N/A")}
                except Exception as exc:
                    print(exc)
                    download_speed = {"download_speed": str("N/A")}
                    upload_speed = {"upload_speed": str("N/A")}
            except Exception as exc:
                print(exc)
                download_speed = {"download_speed": str("N/A")}
                upload_speed = {"upload_speed": str("N/A")}
            try:
                ping_uol = str(
                    syscall(
                        """ping -c 1 www.uol.com.br | head -2 | tail -1 | awk '{print $8 $9}' | sed 's/time//g' | sed 
                    's/=//g'""")[0]).replace("\n", "")
                ping_uol = {"ping_uol.com.br": ping_uol}
            except Exception as exc:
                ping_uol = {"ping_uol.com.br": str("fail")}

            try:
                ping_connecty = str(
                    syscall(
                        """ping -c 1 18.228.62.35 | head -2 | tail -1 | awk '{print $7 $8}' | sed 's/time//g' | sed 
                    's/=//g'""")[0]).replace("\n", "")
                ping_connecty = {"ping_api.connecty": ping_connecty}
            except Exception as exc:
                ping_connecty = {"ping_api.connecty": str("fail")}

            response = [
                date, wlan, interface, public_ip, download_speed, upload_speed,
                ping_uol, ping_connecty
            ]
            return response

        except Exception as exc:
            exceptionLogger("GeneralNetworking.py", "serviceStatus",
                            getframeinfo(currentframe()).lineno, exc)
            date = {"datetime": str("had exception")}
            wlan = {"antena": str("had exception")}
            interface = {"interface": str("had exception")}
            public_ip = {"public_ip": str("had exception")}
            upload_speed = {'upload_speed': str("had exception")}
            download_speed = {'download_speed': str("had exception")}
            ping_uol = {"ping_uol.com.br": str("had exception")}
            ping_connecty = {"ping_api.connecty": str("had exception")}
            response = [
                date, wlan, interface, public_ip, download_speed, upload_speed,
                ping_uol, ping_connecty
            ]
            return response