Discord.py抓取没有API的twitch URL



我有一个不和谐的机器人。

我想让它做的是,当机器人检测到用户正在流媒体时,将他们流媒体的URL打印到聊天中。

我在试图找出如何获得用户的抽搐频道url时遇到了问题。。。

这就是我的

@client.event
async def on_member_update(before, after):
aname = after.display_name
aactivity = after.activity.type
mactivity = str(after.activities)
role = after.guild.get_role(736271867836498031)
channel = client.get_channel(736269005651836985)
memberinfo = after.activities.streaming.url
print(memberinfo)
if "Streaming name" in mactivity:
await after.add_roles(role)
await channel.send('{} has started streaming!'.format(after.display_name))
print(aname + " is streaming!")
else:
await after.remove_roles(role)
streamchannel = discord.Profile
await channel.send('{} is not streaming!'.format(after.display_name))
print(aname + " is not streaming.")
print('member updated status')

我有什么东西不见了吗?我根本不知道如何找到流媒体的URL,或者从他们的连接帐户中获取。

Member对象具有Activity属性。您可以检查before.activityafter.activity是否是Streaming类的实例
如果是,则用户停止或开始流式传输,我们可以在channel:中发送消息

from discord import Streaming
from discord.utils import get
@client.event
async def on_member_update(before, after):
if not before.activity.type == after.activity.type:
return
role = get(after.guild.roles, id=736271867836498031)
channel = get(after.guild.channels, id=736269005651836985)
if isinstance(after.activity, Streaming):
await after.add_roles(role)
await channel.send(f"{before.mention} is streaming on {activity.platform}: {activity.name}.nJoin here: {activity.url}")
elif isinstance(before.activity, Streaming):
await after.remove_roles(role)
await channel.send(f'{after.mention} is no longer streaming!')
else:
return

参考:不一致.py文档

最新更新