我正在尝试根据他的Discord ID向发出命令/利润的用户提供自动完成消息:例如,如果他的用户ID是
3217621823178213
,那么他得到的自动完成与具有的用户不同身份证854848548854
.
@bot.slash_command(name="profit", description="Calculate profit of NFT Flip")
async def animal_command(
ctx: discord.ApplicationContext,
collection: discord.Option(str, autocomplete=discord.utils.basic_autocomplete(get_list_from_db))
):
我的问题是我不知道如何在get_list_from_db
上获取
User ID,因为如果我使用
ctx.author.id
我会得到以下错误:
AttributeError: 'AutocompleteContext' object has no attribute 'author'
代码:
async def get_list_from_db(ctx: discord.AutocompleteContext):
collectionNames = []
R = requests.get("API")
if (R.status_code == 201 or R.status_code == 200):
parse = json.loads(R.text)
closedPositions = parse['data']['traderData']['closedPositions']
openPositions = parse['data']['traderData']['openPositions']
for p in closedPositions:
if p['nftContractName'] not in collectionNames:
collectionNames.insert(0,p['nftContractName'])
return collectionNames
基本上我需要在
get_list_from_db
上选择用户 ID 或者可能将 userid 传递给该函数的方法。
提前感谢您的任何建议!