private async Task SendPictureAsync2(IMiraiHttpSession session, string path) // 发图, 不同的是使用 IMessageChainBuilder 构造消息链 { IImageMessage msg = await session.UploadPictureAsync(UploadTarget.Group, path); Builders.IMessageChainBuilder builder = session.GetMessageChainBuilder(); builder.Add(msg); await session.SendGroupMessageAsync(0, builder); // 自己填群号, 一般由 IGroupMessageEventArgs 提供 }
private async Task SendPictureAsync(IMiraiHttpSession session, string path) // 发图 { // 你也可以使用另一个重载 UploadPictureAsync(PictureTarget, Stream) // 当 mirai-api-http 在v1.7.0以下时将使用本地的HttpListener做图片中转 // UploadTarget.Friend 对应 IMiraiSession.SendFriendMessageAsync IImageMessage msg = await session.UploadPictureAsync(UploadTarget.Group, path); IChatMessage[] chain = new IChatMessage[] { msg }; // 数组里边可以加上更多的 IMessageBase, 以此达到例如图文并发的情况 await session.SendGroupMessageAsync(0, chain); // 自己填群号, 一般由 IGroupMessageEventArgs 提供 }
public static ImageMessage ToImageMessage(this IImageMessage self) { if (self.Url == null) { throw new InvalidOperationException("The url cannot be null."); } if (self.PreviewUrl == null) { throw new InvalidOperationException("The preview url cannot be null."); } if (self is ImageMessage imageMessage) { return(imageMessage); } return(new ImageMessage() { Url = self.Url, PreviewUrl = self.PreviewUrl }); }
internal static ImageMessage Convert(IImageMessage message) { if (message.Url == null) { throw new InvalidOperationException("The url cannot be null."); } if (message.PreviewUrl == null) { throw new InvalidOperationException("The preview url cannot be null."); } if (message is ImageMessage imageMessage) { return(imageMessage); } return(new ImageMessage() { Url = message.Url, PreviewUrl = message.PreviewUrl }); }