我正在尝试打印当前activity(s)用户。如果我在听Spotify,它应该返回(Spotify)。我通过侦听Spotify并在自己身上运行命令进行了测试,但是它会打印一个空的元组。如果我在一个朋友上使用此命令,并且他们已经发现或正在运行任何游戏,它将返回那里所有当前活动。
主脚本(/bot/Main.py)
loop = asyncio.get_event_loop()
extensions = ['cogs.bot']
selfbot = commands.Bot(command_prefix='!',self_bot=True)
loop.create_task(selfbot.start(personalToken, bot=False))
if __name__ == '__main__':
selfbot.load_extension(extensions[1])
loop.run_forever()
齿轮(/bot/cogs/bot.py)
class bot(commands.Cog):
def __init__(self, bot):
self.bot = bot
@commands.command()
async def activities(self, ctx, user=None):
if user == None:
user = ctx.author
else:
user = ctx.message.mentions[0]
for activity in user.activities:
print('activity:', activity)
def setup(bot):
bot.add_cog(bot(bot))
如何使它打印出我的活动,为什么不将其与当前代码一起打印出来?
答案 0 :(得分:0)
我已经用不同的方式尝试了多次,并且遇到了同样的问题,经过一番搜索,我发现这是一个不和谐的问题,您无法看到自己的状态,因为机器人可以不能获得自己的地位。
答案 1 :(得分:0)
好吧,您可以查看自己的活动(以及您自己的状态和自定义状态)。有多种方法可以做到这一点,但我建议使用 discum,这是一种用于 selfbots/userbots 的 API 包装器。请注意,discum 仅适用于 selfbots/userbots,不适用于实际的 BOT 帐户。
这是一个例子(使用光盘):
import discum
bot = discum.Client(token='your token here')
@bot.gateway.command
def helloworldsomething(resp):
if resp.event.session_replaced:
print(f"activities: {bot.gateway.session.userSettings['activities']}")
bot.gateway.run()
此外,在网关运行时,您可以使用以下方法获取客户端的当前状态和自定义状态:
bot.gateway.session.userSettings['status']
和
bot.gateway.session.userSettings['custom_status']