Ejemplo n.º 1
0
        private static string ParseResponse(TulingResponseData response)
        {
            var result  = string.Empty;
            var builder = new StringBuilder();

            builder.Append(result);
            foreach (var res in response.Results)
            {
                switch (res.ResultType)
                {
                case "text":
                    builder.Append(res.Values.Text);
                    break;

                case "image":
                    builder.Append(CodeApi.Code_Image(res.Values.Image));
                    break;

                case "voice":
                    builder.Append(CodeApi.Code_Voice(res.Values.Voice));
                    break;

                case "url":
                    builder.Append($" {res.Values.Url} ");
                    break;
                }
            }

            result = builder.ToString();
            return(result);
        }
Ejemplo n.º 2
0
        protected override void Parse()
        {
            var root = document.DocumentNode;

            var query = SearchNodes(root, n => n.Name == "div" && n.ChildAttributes("class").Any(p => p.Value == "xz_cont"));

            if (query.IsNullOrEmpty())
            {
                return;
            }

            var node = query.First();
            var imgs = SearchNodes(node, n => n.Name == "img");

            if (imgs.IsNullOrEmpty() || imgs.Count < 4)
            {
                return;
            }

            var msg  = node.InnerText;
            var srcs = imgs.Select(i => CodeApi.Code_Image(i.Attributes.First(a => a.Name == "src").Value) + "\r\n").ToList();

            for (var i = 0; i < Dims.Length; i++)
            {
                var index = msg.IndexOf(Dims[i], StringComparison.Ordinal);
                index += Dims[i].Length;
                msg    = msg.Insert(index, srcs[i]);
            }

            Content = msg;
        }
Ejemplo n.º 3
0
        private string FortunePrintString(MajFortuneCache fortune)
        {
            var msg = "今日麻将运势:" + $"\r\n整体运势:{GetStarString(fortune.FortuneStar)} " + $"\r\n吉位:{fortune.Position} "
                      + $"\r\n牌运:{fortune.Kind} " + $"\r\n代表人物:{fortune.CharactorName} "
                      + $"\r\n{CodeApi.Code_Image(fortune.CharactorPath)}";

            return(msg);
        }
Ejemplo n.º 4
0
        public bool RandomMajFortune(MsgInformationEx MsgDTO, object[] param)
        {
            var fortune = RapidCacher.GetCache($"MajFortune:{MsgDTO.FromQQ}", CommonUtil.UntilTommorow(), () => NewFortune(MsgDTO.FromQQ));
            var msg     = "今日麻将运势:" + $"\r\n整体运势:{Utility.LevelToStars(fortune.FortuneStar)} " + $"\r\n吉位:{fortune.Position} "
                          + $"\r\n牌运:{fortune.Kind} " + $"\r\n代表人物:{fortune.CharactorName} "
                          + $"\r\n{CodeApi.Code_Image(fortune.CharactorPath)}";

            MsgSender.PushMsg(MsgDTO, msg);
            return(true);
        }
Ejemplo n.º 5
0
        private static void SendTarotFortune(MsgInformationEx MsgDTO, TarotFortuneDataModel data)
        {
            if (data == null)
            {
                return;
            }

            var msg = $"{CodeApi.Code_Image(TarotServerPath + data.PicSrc)}\r\n";

            msg += $"牌名:{data.Name}\r\n";
            msg += data.IsPos ? "正位解释:" : "逆位解释:";
            msg += data.Description;

            MsgSender.PushMsg(MsgDTO, msg, true);
        }
Ejemplo n.º 6
0
        private static void SendMultiMediaHello(MsgInformationEx MsgDTO, MultiMediaHelloRecord hello)
        {
            var path = hello.Location switch
            {
                ResourceLocationType.LocalAbsolute => hello.ContentPath,
                ResourceLocationType.LocalRelative => new FileInfo(hello.ContentPath).FullName,
                ResourceLocationType.Network => hello.ContentPath,
                _ => ""
            };

            var msg = hello.MediaType switch
            {
                MultiMediaResourceType.Image => CodeApi.Code_Image(path),
                MultiMediaResourceType.Voice => CodeApi.Code_Voice(path),
                _ => ""
            };

            MsgSender.PushMsg(MsgDTO, msg);
        }