From 67a97e8e551fb6cf2328923f318671ef00d8e77c Mon Sep 17 00:00:00 2001 From: Toby Vincent Date: Tue, 4 Jun 2024 20:28:16 -0500 Subject: fix(i3blocks): add check for dbus mpris method calls --- i3blocks/.local/lib/i3blocks/i3blocks-mpris | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'i3blocks/.local/lib') diff --git a/i3blocks/.local/lib/i3blocks/i3blocks-mpris b/i3blocks/.local/lib/i3blocks/i3blocks-mpris index ed9279a..f58442c 100755 --- a/i3blocks/.local/lib/i3blocks/i3blocks-mpris +++ b/i3blocks/.local/lib/i3blocks/i3blocks-mpris @@ -5,11 +5,13 @@ import json import os import sys from asyncio import CancelledError, TaskGroup, run +from pprint import pprint from collections import defaultdict, deque from itertools import islice from dbus_next import Variant from dbus_next.aio import MessageBus +from dbus_next.errors import DBusError BUS_NAME_PREFIX = "org.mpris.MediaPlayer2." BUS_NAME_IGNORE = ["org.mpris.MediaPlayer2.playerctld"] @@ -274,11 +276,17 @@ class MPRIS: case {"button": 3}: self.cycle_player() case {"button": 4} if bus_name := self.active_player: - volume = await self.ifaces[bus_name].get_volume() - await self.ifaces[bus_name].set_volume(volume + 0.05) + iface = self.ifaces[bus_name] + if callable(getattr(iface.__class__, "get_volume", None)): + volume = await iface.get_volume() + if callable(getattr(iface.__class__, "set_volume", None)): + await iface.set_volume(volume + 0.05) case {"button": 5} if bus_name := self.active_player: - volume = await self.ifaces[bus_name].get_volume() - await self.ifaces[bus_name].set_volume(volume - 0.05) + iface = self.ifaces[bus_name] + if callable(getattr(iface.__class__, "get_volume", None)): + volume = await iface.get_volume() + if callable(getattr(iface.__class__, "set_volume", None)): + await self.ifaces[bus_name].set_volume(volume - 0.05) async def main(): -- cgit v1.2.3-70-g09d2