From 920fe012394e3d0330b7b117f58d37fa5323fb9b Mon Sep 17 00:00:00 2001 From: Ultrabug Date: Fri, 7 Aug 2015 15:01:53 +0200 Subject: dropbox_status module QA and cache_timeout support --- py3status/modules/dropboxd_status.py | 35 ++++++++++++++++++++++------------- 1 file changed, 22 insertions(+), 13 deletions(-) diff --git a/py3status/modules/dropboxd_status.py b/py3status/modules/dropboxd_status.py index df1d6a6..763399e 100644 --- a/py3status/modules/dropboxd_status.py +++ b/py3status/modules/dropboxd_status.py @@ -1,9 +1,10 @@ # -*- coding: utf-8 -*- """ -Displays dropboxd status. +Display dropboxd status. Configuration parameters: - - format : Prefix text for the dropbox status + - cache_timeout : how often we refresh this module in seconds (10s default) + - format: prefix text for the dropbox status Valid status values include: - Dropbox isn't running! @@ -16,31 +17,39 @@ Requires: - the 'dropbox-cli' command @author Tjaart van der Walt (github:tjaartvdwalt) -@license BSD 2-Clause License -- http://opensource.org/licenses/BSD-2-Clause +@license BSD """ + +import shlex import subprocess +from time import time class Py3status: - format = "Dropbox: {}" + """ + """ + # available configuration parameters + cache_timeout = 10 + format = 'Dropbox: {}' - def dropbox(self, i3status_output_json, i3status_config): - response = {} + def dropbox(self, i3s_output_list, i3s_config): + response = {'cached_until': time() + self.cache_timeout} - lines = subprocess.check_output(["dropbox-cli", "status"]).decode( - "utf-8").split("\n") + lines = subprocess.check_output( + shlex.split('dropbox-cli status')).decode('utf-8').split('\n') status = lines[0] full_text = self.format.format(str(status)) response['full_text'] = full_text - if (status == "Dropbox isn't running!"): - response.update({'color': i3status_config['color_bad']}) - elif (status == "Up to date"): - response.update({'color': i3status_config['color_good']}) + if status == "Dropbox isn't running!": + response['color'] = i3s_config['color_bad'] + elif status == "Up to date": + response['color'] = i3s_config['color_good'] else: - response.update({'color': i3status_config['color_degraded']}) + response['color'] = i3s_config['color_degraded'] return response + if __name__ == "__main__": from time import sleep x = Py3status() -- cgit v1.3