From 9a6887adf8607fae9bc5598d39a68725c88e9eab Mon Sep 17 00:00:00 2001 From: "Darius St. Clair" <52074319+DariusStClair@users.noreply.github.com> Date: Thu, 26 Mar 2020 10:54:33 -0500 Subject: [PATCH] [uinfo] Add support for multiple activities; Omit nickname if there's none (#100) --- tools/info.json | 2 +- tools/tools.py | 50 ++++++++++++++++++++++++------------------------- 2 files changed, 26 insertions(+), 26 deletions(-) diff --git a/tools/info.json b/tools/info.json index 0532817..8629f42 100644 --- a/tools/info.json +++ b/tools/info.json @@ -5,7 +5,7 @@ ], "description": "Mod and admin tools.", "install_msg": "Thanks for installing. Use `[p]help` Tools to get started.", - "min_python_version": [3, 6, 0], + "min_python_version": [3, 8, 0], "permissions" : [ "ban_members", "manage_channels" diff --git a/tools/tools.py b/tools/tools.py index 9a67a3b..07001cd 100644 --- a/tools/tools.py +++ b/tools/tools.py @@ -737,39 +737,39 @@ class Tools(commands.Cog): waiting = await ctx.send(load) data = "```ini\n" - data += "[Name]: {}\n".format(cf.escape(str(user))) - data += "[Nickname]: {}\n".format(cf.escape(str(user.nick))) - data += "[ID]: {}\n".format(user.id) - data += "[Status]: {}\n".format(user.status) - data += "[Servers]: {} shared\n".format(seen) - act = user.activity - if act is None: - pass - - elif act.type == discord.ActivityType.playing: - data += "[Playing]: {}\n".format(cf.escape(str(act.name))) - elif act.type == discord.ActivityType.listening: - if isinstance(act, discord.Spotify): - _form = act.title + data += "[Name]: {}\n".format(cf.escape(str(user))) + if user.nick is not None: + data += "[Nickname]: {}\n".format(cf.escape(str(user.nick))) + data += "[ID]: {}\n".format(user.id) + data += "[Status]: {}\n".format(user.status) + data += "[Servers]: {} shared\n".format(seen) + if actplay := discord.utils.get(user.activities, type=discord.ActivityType.playing): + data += "[Playing]: {}\n".format(cf.escape(str(actplay.name))) + if actlisten := discord.utils.get(user.activities, type=discord.ActivityType.listening): + if isinstance(actlisten, discord.Spotify): + _form = actlisten.title else: - _form = act.name - data += "[Listening]: {}\n".format(cf.escape(_form)) - elif act.type == discord.ActivityType.listening: - data += "[Watching]: {}\n".format(cf.escape(str(user.activity.name))) - else: + _form = actlisten.name + data += "[Listening]: {}\n".format(cf.escape(_form)) + if actwatch := discord.utils.get(user.activities, type=discord.ActivityType.watching): + data += "[Watching]: {}\n".format(cf.escape(str(actwatch.name))) + if actstream := discord.utils.get(user.activities, type=discord.ActivityType.streaming): data += "[Streaming]: [{}]({})\n".format( - cf.escape(str(user.activity.name)), cf.escape(user.activity.url) + cf.escape(str(actstream.name)), cf.escape(actstream.url) ) + if actcustom := discord.utils.get(user.activities, type=discord.ActivityType.custom): + if actcustom.name is not None: + data += "[Custom status]: {}\n".format(cf.escape(str(actcustom.name))) passed = (ctx.message.created_at - user.created_at).days - data += "[Created]: {}\n".format(self._dynamic_time(user.created_at)) + data += "[Created]: {}\n".format(self._dynamic_time(user.created_at)) joined_at = self.fetch_joined_at(user, ctx.guild) if caller != "invoke": - data += "[Joined]: {}\n".format(self._dynamic_time(joined_at)) - data += "[Roles]: {}\n".format(", ".join(roles)) - data += "[In Voice]: {}\n".format( + data += "[Joined]: {}\n".format(self._dynamic_time(joined_at)) + data += "[Roles]: {}\n".format(", ".join(roles)) + data += "[In Voice]: {}\n".format( user.voice.channel if user.voice is not None else None ) - data += "[AFK]: {}\n".format(user.voice.afk if user.voice is not None else False) + data += "[AFK]: {}\n".format(user.voice.afk if user.voice is not None else False) data += "```" await asyncio.sleep(1) await waiting.edit(content=data)