Example #1
0
        /// <summary>
        /// 查询Souler信息
        /// </summary>
        /// <param name="userIdEcpt"></param>
        /// <returns></returns>
        public static QuerySoulerInfoResponse QuerySoulerInfo(string userIdEcpt)
        {
            string json = Sender.Get($"https://api.soulapp.cn/html/v2/user/info?userIdEcpt={userIdEcpt}");
            QuerySoulerInfoResponse response = JsonConvert.DeserializeObject <QuerySoulerInfoResponse>(json);

            return(response);
        }
        public SoulerForm(string uid, QuerySoulerInfoResponse soulerInfo, Image img)
        {
            InitializeComponent();
            soulerID = uid;

            // 标题
            this.Text = $"{soulerInfo.data.signature} - {Application.ProductName}";

            // 用户头像
            picSouler.Image     = img;
            picSouler.BackColor = ((Bitmap)img).GetPixel(0, 0);

            QuerySoulerHomepageResponse response = SoulAPI.QuerySoulerHomepage(uid);

            foreach (DataItem data in response.data)
            {
                KeyValueListItem item = new KeyValueListItem();

                var nowTime = new DateTime(1970, 1, 1, 8, 0, 0).AddMilliseconds(data.createTime);

                item.Key   = $"{nowTime.Month}月{nowTime.Day}日";
                item.Value = data.content;

                msgList.Items.Add(item);
            }
        }
        private void OpenSoulerForm(string uid, QuerySoulerInfoResponse soulerInfo, Image img)
        {
            SoulerForm form = new SoulerForm(uid, soulerInfo, img);

            this.Hide();
            form.ShowDialog();
            this.Show();
        }
        private void Settings_Load(object sender, EventArgs e)
        {
            // 设置窗体可拖动范围
            mmc.Form = this;
            mmc.Add(new Control[] { this, panelContent, panelTitle, labTitle });

            // 加载配置文件
            ReadSettingsFile();

            // 获取Souler信息
            foreach (string uid in settings.Soulers)
            {
                try
                {
                    // 获取数据
                    QuerySoulerInfoResponse response = SoulAPI.QuerySoulerInfo(uid);

                    // 用户性别和人称代词
                    string gender  = response.data.gender == 1 ? "女" : "男";
                    string pronoun = response.data.gender == 1 ? "她" : "他";

                    // 实例化SoulerItem对象
                    SoulerItem item = new SoulerItem();
                    item.Tag     = response;
                    item.Title   = response.data.signature;
                    item.TagText = $"[{response.data.postCount}个瞬间]";
                    item.Content = $"{pronoun}来到Soul已有{response.data.registerDays}天";
                    item.Image   = SoulAPI.GetSoulerImageByAvatarName(response.data.avatarName);

                    // 为快捷菜单选项添加事件
                    item.tsmiCopySignature.Click  += (s, args) => { Clipboard.SetDataObject(response.data.signature); Toast.Show("已复制到粘贴板"); };
                    item.tsmiCopyAvatarName.Click += (s, args) => { Clipboard.SetDataObject(response.data.avatarName); Toast.Show("已复制到粘贴板"); };
                    item.tsmiOpenWeb.Click        += (s, args) => { System.Diagnostics.Process.Start($"https://w3.soulapp-inc.cn/activity/#/web/user?targetUserId=-1&userIdEcpt={uid}"); };
                    item.tsmiDelete.Click         += (s, args) => { DeleteSouler(uid, item); };
                    item.tsmiOpen.Click           += (s, args) => { OpenSoulerForm(uid, response, item.Image); };
                    item.Click += (s, args) => { OpenSoulerForm(uid, response, item.Image); };

                    // 将SoulerItem控件加入面板
                    panelSoulerList.Controls.Add(item);
                }
                catch (Exception ex)
                {
                    DialogBoxes.MsgBox("获取Souler信息失败", ex.Message);
                }
            }
        }