Ejemplo n.º 1
0
        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 提供
        }
Ejemplo n.º 2
0
        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
            });
        }
Ejemplo n.º 4
0
        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
            });
        }