alert-battery-to-maintain-h.../src/__main__.py

64 lines
1.7 KiB
Python
Raw Normal View History

2021-08-29 11:58:28 +02:00
__version__ = '1.0.0'
2021-08-18 22:00:16 +02:00
2021-08-29 11:58:28 +02:00
# Dependencies
import os
from tempfile import gettempdir
2021-08-18 22:00:16 +02:00
from notifypy import Notify
import psutil
2021-08-29 11:58:28 +02:00
# Variables
LIMIT_ABOVE_BATTERY = 85
2021-09-19 12:10:00 +02:00
MESSAGE_LIMIT_ABOVE_BATTERY = "Disconnect your charger, has enough 🌹"
2021-08-29 11:58:28 +02:00
LIMIT_BELOW_BATTERY = 15
2021-09-19 12:10:00 +02:00
MESSAGE_LIMIT_BELOW_BATTERY = "Connect your charger, needs energy 🥀"
2021-08-29 11:58:28 +02:00
FILE_NAME_TEMP = "alert_battery_to_maintain_health"
PATH_FILE_NAME_TEMP = os.path.join(gettempdir(), FILE_NAME_TEMP)
def get_sensor_battery():
"""Get object data sensor battery"""
return psutil.sensors_battery()
2021-09-19 12:10:00 +02:00
def send_notification(message, title="🔋Battery🔋"):
2021-08-29 11:58:28 +02:00
"""Send native notification"""
2021-09-19 12:33:04 +02:00
os.system(f"echo '{title}: {message}' > /dev/pts/0")
2021-08-29 11:58:28 +02:00
def create_file_block():
"""Make temp file not repeat notification"""
open(PATH_FILE_NAME_TEMP, 'w').close()
def get_battery_percent():
"""Gets the percentage of battery charge"""
return int(get_sensor_battery().percent)
def is_plugged():
"""It tells you if it is charging or not."""
return get_sensor_battery().power_plugged
2021-08-18 22:00:16 +02:00
if __name__ == '__main__':
2021-08-29 11:58:28 +02:00
# Is battery
if get_sensor_battery() :
# It has not been previously warned
if not os.path.exists(PATH_FILE_NAME_TEMP):
# Below
if LIMIT_BELOW_BATTERY > get_battery_percent() and not is_plugged():
send_notification(MESSAGE_LIMIT_BELOW_BATTERY)
create_file_block()
2021-08-18 22:00:16 +02:00
2021-08-29 11:58:28 +02:00
# Above
if LIMIT_ABOVE_BATTERY < get_battery_percent() and is_plugged():
send_notification(MESSAGE_LIMIT_ABOVE_BATTERY)
create_file_block()
2021-08-18 22:00:16 +02:00
2021-08-29 11:58:28 +02:00
# Unlock to warned
elif LIMIT_BELOW_BATTERY < get_battery_percent() < LIMIT_ABOVE_BATTERY:
2021-08-31 08:36:14 +02:00
os.remove(PATH_FILE_NAME_TEMP)