def update(self): try: self.__get_song() if self.__bus_name == "spotifyd": bus = self.__bus.get_object( "org.mpris.MediaPlayer2.spotifyd", "/org/mpris/MediaPlayer2" ) else: bus = self.__bus.get_object( "org.mpris.MediaPlayer2.spotify", "/org/mpris/MediaPlayer2" ) for widget in self.widgets(): if widget.name == "spotify.pause": playback_status = str( dbus.Interface( bus, "org.freedesktop.DBus.Properties", ).Get("org.mpris.MediaPlayer2.Player", "PlaybackStatus") ) if playback_status == "Playing": widget.set("state", "playing") else: widget.set("state", "paused") elif widget.name == "spotify.song": widget.set("state", "song") widget.full_text(self.__song) except Exception as e: self.__song = ""
def update(self): try: playback_status = str( util.cli.execute(self.__cmd + "status 2>&1 || true", shell=True)).strip() if playback_status == "No players found": playback_status = None except Exception as e: logging.exception(e) playback_status = None for widget in self.widgets(): if playback_status: if widget.name == "playerctl.pause": if playback_status == "Playing": widget.set("state", "playing") elif playback_status == "Paused": widget.set("state", "paused") elif playback_status == "Stopped": widget.set("state", "stopped") else: widget.set("state", "") elif widget.name == "playerctl.next": widget.set("state", "next") elif widget.name == "playerctl.prev": widget.set("state", "prev") elif widget.name == "playerctl.song": widget.full_text(self.__get_song()) else: widget.set("state", "") widget.full_text(" ")
def update(self): try: self.clear_widgets() self.__get_song() widget_map = {} for widget_name in self.__layout: widget = self.add_widget(name=widget_name) if widget_name == "spotify.prev": widget_map[widget] = { "button": core.input.LEFT_MOUSE, "cmd": self.__cmd + "Previous", } widget.set("state", "prev") elif widget_name == "spotify.pause": widget_map[widget] = { "button": core.input.LEFT_MOUSE, "cmd": self.__cmd + "PlayPause", } playback_status = str( dbus.Interface( dbus.SessionBus().get_object( "org.mpris.MediaPlayer2.spotify", "/org/mpris/MediaPlayer2", ), "org.freedesktop.DBus.Properties", ).Get("org.mpris.MediaPlayer2.Player", "PlaybackStatus")) if playback_status == "Playing": widget.set("state", "playing") else: widget.set("state", "paused") elif widget_name == "spotify.next": widget_map[widget] = { "button": core.input.LEFT_MOUSE, "cmd": self.__cmd + "Next", } widget.set("state", "next") elif widget_name == "spotify.song": widget.set("state", "song") widget.full_text(self.__song) else: raise KeyError( "The spotify module does not have a {widget_name!r} widget" .format(widget_name=widget_name)) for widget, callback_options in widget_map.items(): core.input.register(widget, **callback_options) except Exception: self.__song = ""
def test_usedonly_parameter(self): module = build_module(['-p', 'memory.usedonly=true']) module.update() widget = memory_widget(module) assert widget.full_text() == '1.00MiB' assert module.state(widget) == None
def test_custom_critical_parameter(self): module = build_module(['-p', 'memory.critical=50']) module.update() widget = memory_widget(module) assert widget.full_text() == '4.00MiB/8.00MiB (50.02%)' assert module.state(widget) == 'critical'
def test_custom_warning_parameter(self): module = build_module(['-p', 'memory.warning=20']) module.update() widget = memory_widget(module) assert widget.full_text() == '1.00MiB/4.00MiB (25.10%)' assert module.state(widget) == 'warning'
def test_default_critical_state(self): module = build_module() module.update() widget = memory_widget(module) assert widget.full_text() == '2.00MiB/2.00MiB (100.00%)' assert module.state(widget) == 'critical'
def test_default_warning_state(self): module = build_module() module.update() widget = memory_widget(module) assert widget.full_text() == '7.00MiB/8.00MiB (87.51%)' assert module.state(widget) == 'warning'
def test_default_healthy_state(self): module = build_module() module.update() widget = memory_widget(module) assert widget.full_text() == '1.00MiB/2.00MiB (50.00%)' assert module.state(widget) == None
def test_gb_unit(self): module = build_module() module.update() widget = memory_widget(module) assert widget.full_text() == '1.00GiB/2.00GiB (50.00%)' assert module.state(widget) == None
def test_format_parameter_with_percent(self): module = build_module(['-p', 'memory.format={percent}%']) module.update() widget = memory_widget(module) assert widget.full_text() == '50.0%' assert module.state(widget) == None
def test_format_parameter(self): module = build_module(['-p', 'memory.format={used}.{total}']) module.update() widget = memory_widget(module) assert widget.full_text() == '1.00MiB.2.00MiB' assert module.state(widget) == None
def update(self): try: self.__get_song() for widget in self.widgets(): if widget.name == "playerctl.pause": playback_status = str( util.cli.execute(self.__cmd + "status")).strip() if playback_status != "": if playback_status == "Playing": widget.set("state", "playing") else: widget.set("state", "paused") elif widget.name == "playerctl.song": widget.set("state", "song") widget.full_text(self.__song) except Exception as e: logging.exception(e) self.__song = ""
def __update_widget(self, widget): if widget.get("field", "") == "": return # nothing to do data = self.__data[widget.get("adapter")][widget.get("package")][ widget.get("field")] if "temp" in widget.get("field"): widget.full_text("{:0.01f}°C".format(data["input"])) elif "fan" in widget.get("field"): widget.full_text("{:0.0f}RPM".format(data["input"])) else: widget.full_text("{:0.0f}".format(data["input"]))
def test_callable_fulltext(mocker): callback = mocker.MagicMock(return_value="callback returns") widget = core.widget.Widget(full_text=callback) assert widget.full_text() == "callback returns" callback.assert_called_once_with(widget)
def test_text_fulltext(): widget = core.widget.Widget(full_text="this is some value") assert widget.full_text() == "this is some value"