-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathbattiboy.py
More file actions
executable file
·56 lines (54 loc) · 1.7 KB
/
battiboy.py
File metadata and controls
executable file
·56 lines (54 loc) · 1.7 KB
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
#!/usr/bin/env python
import subprocess
import os
import tempfile
import time
def batteryStatus():
statusFile = open("/sys/class/power_supply/BAT0/status", 'r')
status = statusFile.readline()
if status == "Charging\n":
status = "⚡"
elif status == "Discharging\n":
status = "⌁"
else:
status = ""
return status
def batteryRemainingTime():
ibam = subprocess.getoutput("ibam --batteryadaptive").split()
#ibam output is different wether the bat is chargin or discharging, if
#charging Adapted bat time left is first line, else is last
if ibam[0] == "Adapted":
ibam = ibam[4]
else:
ibam = ibam[-1]
ibam = time.strptime(ibam, "%H:%M:%S")
return ibam
def iscritical():
if batteryRemainingTime() < time.strptime("00:05:00", "%H:%M:%S"):
for f in os.listdir("/tmp"):
if f.endswith(".pybat"):
return False
exit
else:
return True
else:
#check if battery as recharged and deletes batpy files that flag it as
#critical
for f in os.listdir("/tmp"):
if f.endswith(".pybat"):
os.remove(''.join(("/tmp/",f)))
exit
return False
ibam = ibam[-1]
ibam = time.strptime(ibam, "%H:%M:%S")
return ibam
def iscritical():
if batteryRemainingTime() <= time.gmtime(300):
for f in os.listdir("/tmp"):
if f.endswith(".pybat"):
return True
exit
if iscritical():
subprocess.call(["notify-send, 'BATTERY', 'Bayyery low, you dig ?'"])
tempfile.mkstemp(suffix='.pybat')
print(batteryStatus(),time.strftime("%H:%M", batteryRemainingTime()))