Ejemplo n.º 1
0
        private async ValueTask <EventResult <BaseMsgQuickOperation> > Handler(BaseMessageEventArgs args, IOneBotApi api)
        {
            if (args.RawMessage.Equals(_globalService.BiliSetting.HotCos.Command,
                                       StringComparison.CurrentCultureIgnoreCase))
            {
                var result = await BiliApi.GetCosHotAsync();

                if (result.Any())
                {
                    _logger.LogDebug("{Command}数量:{Count}", _globalService.BiliSetting.HotCos.Command, result.Length);
                    var cqCodes = new List <CQCode>();
                    var tasks   = result.Select(url => Task.Run(async() =>
                    {
                        try
                        {
                            cqCodes.Add(await CQHelper.Image(url, CQFileType.Base64));
                        }
                        catch (Exception e)
                        {
                            _logger.LogWarning("[SendImage]下载图片失败:{Url}\r\nError: {Error}", e.ToString(), url);
                        }
                    }));

                    await Task.WhenAll(tasks);

                    return(1, cqCodes.ToArray());
                }
            }

            return(null);
        }
Ejemplo n.º 2
0
        private async ValueTask <EventResult <BaseMsgQuickOperation> > Handler(BaseMessageEventArgs args, IOneBotApi api)
        {
            long?groupId = null;
            long?userId  = null;

            if (args is GroupMsgEventArgs groupArgs)
            {
                groupId = groupArgs.GroupId;
            }
            else
            {
                userId = args.UserId;
            }

            if (args.RawMessage.Equals(_globalService.YandeSetting.HotImg.Command,
                                       StringComparison.CurrentCultureIgnoreCase))
            {
                var(data, rating) = await _yandeService.Value.GetHotImgAsync(_globalService.YandeSetting.HotImg.Rating);

                var replay = CQCode.CQImage("base64://" + Convert.ToBase64String(data));
                return(1, replay);
            }

            foreach (var customTags in _globalService.YandeSetting.CustomTags)
            {
                if (args.RawMessage.Equals(customTags.Command, StringComparison.CurrentCultureIgnoreCase))
                {
                    var page = await _yandeService.Value.GetTagsPageAsync(customTags.Tag);

                    for (var i = 0; i < customTags.Count; i++)
                    {
                        var _ = Task.Run(async() =>
                        {
                            var(data, rating) = await _yandeService.Value.GetImageByTagsAsync(customTags.Tag, page, customTags.Rating);
                            await api.SendMsg(userId, groupId, new[] { CQCode.CQImage("base64://" + Convert.ToBase64String(data)) });
                        });
                    }

                    return(1);
                }
            }

            return(null);
        }
Ejemplo n.º 3
0
 private void OnLogicMessagedRaised(object sender, BaseMessageEventArgs e)
 {
     ResultMessages.Document.Blocks.Add(new Paragraph(new Run(e.Message)));
     ResultMessages.ScrollToEnd();
 }