From f6e9e4d456ff94494703c24635d4f391bd391876 Mon Sep 17 00:00:00 2001 From: Argish42 Date: Wed, 6 Aug 2014 23:57:06 +0200 Subject: [PATCH] Uptime --- i3pystatus/uptime.py | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 i3pystatus/uptime.py diff --git a/i3pystatus/uptime.py b/i3pystatus/uptime.py new file mode 100644 index 0000000..3127bec --- /dev/null +++ b/i3pystatus/uptime.py @@ -0,0 +1,40 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +from i3pystatus import IntervalModule + +class Uptime(IntervalModule): + """ + Outputs Uptime + It's possible to include hours, minutes and seconds as: {h},{m} and {s} + """ + + settings = ( + ("format","Format string"), + ("color","String color"), + ("alert","If you want the string to change color"), + ("seconds_alert","How many seconds necessary to start the alert"), + ("color_alert","Alert color"), + ) + + file = "/proc/uptime" + format = "up {h} hours {m} min" + color = "#ffffff" + alert = False + seconds_alert = 3600 + color_alert = "#ff0000" + + def run(self): + with open(self.file,'r') as f: + data = f.read().split()[0] + seconds = float(data) + m, s = divmod(int(seconds), 60) + h, m = divmod(int(m), 60) + + if self.alert: + if seconds > self.seconds_alert: + self.color = self.color_alert + self.output = { + "full_text": self.format.format(h=h,m=m,s=s), + "color": self.color + }