Discord.Net-C#正在下载附件



因此,基本上,我有这样的代码,我的机器人程序可以下载与命令一起发送的URL。

[Command("jpg")]
private async Task Jpg([Remainder] string text)
{
string filetype = Path.GetExtension(text);
if (!text.StartsWith("http") || !text.StartsWith("https"))
{
return;
}
using (var client = new WebClient())
{
client.DownloadFileAsync(new Uri(text), "img\a" + filetype);
}
/* Image stuff etc */
}

我想让它从消息中获取图像附件,而不是依赖URL,但尝试使用Context.message.Attachments会给我一个错误。

Context.Message.Attachments是附件的集合,您可以获取每个附件的URL(这些附件位于上传图像的discord服务器上(,并使用此URL而不是基于消息的URL。

您可以循环浏览附件,也可以只获取第一个附件的URL。

抓取第一个附件URL(考虑到它有附件(:

string URL = Context.Message.Attachments.ElementAt(0).Url;

循环获取URL的完整列表:

string[] urlArray = {};
foreach(IAttachment attachment in Context.Message.Attachments){
urlArray.Append(attachment.Url);
}
// Handle the URLs as you did before.

或者你可以用一种在foreach中下载它们的方式来实现循环(使用你的DownloadFileAsync,因为我认为它对你有效——如果不考虑我之前对这条消息的编辑的话(

using (var client = new WebClient()) {
foreach(IAttachment attachment in Context.Message.Attachments){
string filetype = Path.GetExtension(attachment.Url);
client.DownloadFileAsync(new Uri(attachment.Url), "img\a" + filetype);
}
}

相关内容

  • 没有找到相关文章

最新更新