我尝试了很多事情,但是我的大脑现在无法正常工作,我也不知道该怎么办。我已经搜索了互联网,但没有找到任何可以帮助我的东西。
如果您想要JSON API链接,则尝试使用Hits.ID获取随机搜索结果并从Hit中获取大图片网址,以便更好地了解我的工作。
搜索命令
[Command("search")]
public async Task Search(CommandContext ctx, string args)
{
WebClient n = new WebClient();
var json = n.DownloadString("https://pixabay.com/api/?key=###################&q=" + args + "&image_type=photo&pretty=true");
var root = JsonConvert.DeserializeObject<Root>(json);
var builder = new DiscordEmbedBuilder
{
Color = DiscordColor.Rose,
Description = "Search Result",
};
foreach (Hit hit in root.hits)
{
builder.WithImageUrl(hit.largeImageURL);
}
await ctx.RespondAsync(embed: builder.Build());
}
获取设置
public class Hit
{
public string largeImageURL { get; set; }
public int webformatHeight { get; set; }
public int webformatWidth { get; set; }
public int likes { get; set; }
public int imageWidth { get; set; }
public int id { get; set; }
public int user_id { get; set; }
public int views { get; set; }
public int comments { get; set; }
public string pageURL { get; set; }
public int imageHeight { get; set; }
public string webformatURL { get; set; }
public string type { get; set; }
public int previewHeight { get; set; }
public string tags { get; set; }
public int downloads { get; set; }
public string user { get; set; }
public int favorites { get; set; }
public int imageSize { get; set; }
public int previewWidth { get; set; }
public string userImageURL { get; set; }
public string previewURL { get; set; }
}
public class Root
{
public int totalHits { get; set; }
public List<Hit> hits { get; set; }
public int total { get; set; }
}
答案 0 :(得分:1)
要从“命中列表”中随机获取一个命中,可以使用Linq来获得这样的结果。
Hit randomHit = root.hits.ElementAt(new Random().Next(x.Count));
var randomUrl = randomHit.largeImageURL;
ElementAt
为您提供特定索引处的元素。使用介于0和该列表中的命中总数之间的随机数,您可以获得一个随机命中。一旦有了它,就可以获取该对象的userImageUrl。