import subprocess as sp  
import os
import sys
import re
def alert(arg):
    sys.stderr.write("%d%d%d" % (arg, arg, arg))

ram_total=sp.Popen('systeminfo | findstr /C:"Total Physical Memory"',stdin=sp.PIPE,shell=True,stdout=sp.PIPE)
ram_total=ram_total.communicate()[0]
ram_total=re.findall("\d,\d+",ram_total)
ram_total=int(ram_total[0].replace(',',''))
ram_avail=sp.Popen('systeminfo | findstr /C:"Available Physical Memory"',stdin=sp.PIPE,shell=True,stdout=sp.PIPE)
ram_avail=ram_avail.communicate()[0]
ram_avail=re.findall("\d,\d+",ram_avail)
ram_avail=int(ram_avail[0].replace(',',''))
ram_usage=(int(ram_total)-int(ram_avail))
#ram_usage
ram_90=int(ram_total)*0.9
ram_90=int(ram_90)

cpu_usage=os.popen('wmic cpu get loadpercentage').read()
cpu_usage=int(cpu_usage.split()[1])

# print (type(ram_90),type(ram_usage))
# print (type(cpu_usage))
if ram_usage < ram_90 and cpu_usage < 90 :
     print alert(0)
elif ram_usage >ram_90 and cpu_usage<90:
    
    process3=os.popen('tasklist | sort /R /+58 >C:\ProgramData\output.txt').read()
    lines=5
    f = open("C:\ProgramData\output.txt", "r")
    print("Ram Usage\t\n")
    for i in range(lines):
        line=f.readline()
        print line
    print alert(1)
elif ram_usage <ram_90 and cpu_usage>90:
    process4=os.popen('Powershell.exe -Command "Get-Process | Sort-Object CPU -Descending | select -First 3 ; (Get-Date).DateTime"').read()
    print process4
    print alert(1)
else:
    process3=os.popen('tasklist | sort /R /+58 >C:\ProgramData\output.txt').read()
    lines=5
    f = open("C:\ProgramData\output.txt", "r")
    print("Ram Usage\t\n")
    for i in range(lines):
        line=f.readline()
        print line
    process4=os.popen('Powershell.exe -Command "Get-Process | Sort-Object CPU -Descending | select -First 3 ; (Get-Date).DateTime"').read()
    print process4
    print alert(1)
    