From d24061218398e8aee488e8a7bf21638aa8f01378 Mon Sep 17 00:00:00 2001 From: Pratyush Desai Date: Fri, 21 Nov 2025 00:56:59 +0530 Subject: [PATCH] Fix Instance Creation fix client instance initialization. Signed-off-by: Pratyush Desai --- plugin.py | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/plugin.py b/plugin.py index 3b4a589..417ed21 100644 --- a/plugin.py +++ b/plugin.py @@ -40,17 +40,21 @@ _ = PluginInternationalization("ListenBrainz") class ListenBrainz(callbacks.Plugin): """Fetches scrobbled metadata for users.""" - threaded = True + def __init__(self, irc): + self.__parent = super(Tripsit, self) + self.__parent.__init__(irc) + self.client = liblistenbrainz.ListenBrainz() + self.DISPLAY_LIMIT = 3 + @wrap(["text"]) def np(self, irc, msg, args, user): """ Announces the track currently being played by . """ - client = liblistenbrainz.ListenBrainz() - listen = client.get_playing_now(user) + listen = self.client.get_playing_now(user) if listen is None: response = f"{user} doen't seem to be listening to anything" else: @@ -67,8 +71,7 @@ class ListenBrainz(callbacks.Plugin): Announces total number of tracks scrobbled by """ - client = liblistenbrainz.ListenBrainz() - count = client.get_user_listen_count(user) + count = self.client.get_user_listen_count(user) if count is None: response = "Nothing recorded" else: @@ -81,27 +84,23 @@ class ListenBrainz(callbacks.Plugin): 's top listened to album releases. """ - client = liblistenbrainz.ListenBrainz() try: - data = client.get_user_recordings(user) + data = self.client.get_user_recordings(user) payload = data.get("payload", {}) except Exception as e: irc.error(f"An unexpected error occurred: {e}", Raise=True) return - + total_tracks = payload.get("total_recording_count", "N/A") recordings = payload.get("recordings", []) - if not recordings: irc.reply(f"{user} has no recorded tracks.") return top_tracks = recordings[:3] - header = f"{user}'s Top {len(top_tracks)} Tracks (Total unique tracks: {total_tracks:,}):" irc.reply(header) - for i, track in enumerate(top_tracks): rank = i + 1 artist = track.get("artist_name", "Unknown Artist") @@ -124,9 +123,8 @@ class ListenBrainz(callbacks.Plugin): Announces the top albums/releases listened to by . """ - client = liblistenbrainz.ListenBrainz() try: - data = client.get_user_releases(user) + data = self.client.get_user_releases(user) payload = data.get("payload", {}) except Exception as e: irc.error(f"An unexpected error occurred: {e}", Raise=True) @@ -139,7 +137,7 @@ class ListenBrainz(callbacks.Plugin): irc.reply(f"{user} has no recorded releases.") return - top_releases = releases[:3] + top_releases = releases[:DISPLAY_LIMIT] header = f"{user}'s Top {len(top_releases)} Releases (Total unique releases: {total_albums:,}):" irc.reply(header)