Discord.js 识别链接中的部件并在嵌入中重新格式化
我试图创建一个命令,从链接中标识站点名和用户名。例如,使用Discord.js 识别链接中的部件并在嵌入中重新格式化,discord.js,Discord.js,我试图创建一个命令,从链接中标识站点名和用户名。例如,使用!链接https://en.wikipedia.org/wiki/User:Example,!链接https://en.wikipedia.org/wiki/Special:Contributions/Example,或!链接https://en.wikipedia.org/wiki/User_talk:Example将创建一个 const embed = new Discord.MessageEmbed() .setColor('#bf
!链接https://en.wikipedia.org/wiki/User:Example
,!链接https://en.wikipedia.org/wiki/Special:Contributions/Example
,或!链接https://en.wikipedia.org/wiki/User_talk:Example
将创建一个
const embed = new Discord.MessageEmbed()
.setColor('#bf00ff')
.addTitle(`en.wikipedia.org`, [Wiki link](https://en.wikipedia.org/wiki/Main_Page))
.addField(`User info of Example`, `[Userpage](https://en.wikipedia.org/wiki/User:Example) | [User_talk](https://en.wikipedia.org/wiki/User_talk:Example) | [Logs](https://en.wikipedia.org/wiki/Special:Log/Example) | [User groups](https://en.wikipedia.org/wiki/Special:UserRights/Example) | [User contributions](https://en.wikipedia.org/wiki/Special:Contributions/Example) | [BlockLog](https://en.wikipedia.org/w/index.php?title=Special:Log/block&page=User:Example)
message.channel.send(embed)
此外,如果链接中没有用户:
、特殊:贡献/
、或用户对话:
、网站名(例如en.wikipedia.org
)和用户名,则创建一条错误消息
如果链接包含用户名后面的?useskin=monobook
,?useskin=vector
,?useskin=modern
,或?useskin=apex
,请忽略链接中的这些部分。例如,https://en.wikipedia.org/wiki/User_talk:Example?useskin=vector
应解释为https://en.wikipedia.org/wiki/User_talk:Example
,用户名也应解释为示例
,而不是示例?useskin=vector
我如何才能做到这一点?url必须包含所有这些元素,还是只有一个?是的,命令中的url必须包含带有/wiki的站点名称(例如
en.wikipedia.org/wiki
,www.mediawiki.org/wiki
,en.wiktionary.org/wiki
,等等)。wiki的url可以是其中的任何一个,只要它在站点名称后面有/wiki
。它还必须在同一链接中包含用户名。例如,https://en.wikipedia.org/wiki/Special:Contributions/Example
就是一个例子。