diff --git a/ApiFox/Dynamic.cs b/ApiFox/Dynamic.cs new file mode 100644 index 0000000..8f291fd --- /dev/null +++ b/ApiFox/Dynamic.cs @@ -0,0 +1,26 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; +using RustTools.muqing; + +namespace RustTools.ApiFox; + +public class Dynamic +{ + public static Task GetAllDynamic(string account,int limit = 0) + { + return wl.postAsync("/php/dynamic.php?action=getAllDynamic", [ + ["account", account], + ["limit", limit == 0 ? "0" : limit.ToString()] + ]); + } + public static Task Getlist(string account, int limit = 0) + { + return wl.postAsync("/php/dynamic.php?action=list", [ + ["account", account], + ["limit", limit == 0 ? "0" : limit.ToString()] + ]); + } +} diff --git a/DataList/MovingInfo.cs b/DataList/MovingInfo.cs index f35d37e..5765226 100644 --- a/DataList/MovingInfo.cs +++ b/DataList/MovingInfo.cs @@ -1,13 +1,77 @@ namespace RustTools.DataList; +/// +/// 动态信息 +/// public class MovingInfo { - public class Data - { - public string name; - public Data(string name) - { - this.name = name; - } + public int Code + { + get; set; + } + public string Message + { + get; set; + } + public List Data + { + get; set; + } + + + public class DynamicRecord + { + public string Id + { + get; set; + } + public string Account + { + get; set; + } + public string Content + { + get; set; + } + public bool Visible + { + get; set; + } + public DateTime Time + { + get; set; + } + public string Location + { + get; set; + } + public string UserName + { + get; set; + } + public string HeadIcon + { + get; set; + } + public string Email + { + get; set; + } + public int Permission + { + get; set; + } + public DateTime LoginTime + { + get; set; + } + public int Gender + { + get; set; + } // -1 未知, 0 女, 1 男 + public bool Enable + { + get; set; + } } } diff --git a/Styles/ItemView.xaml b/Styles/ItemView.xaml index 79a5b9c..7ccf959 100644 --- a/Styles/ItemView.xaml +++ b/Styles/ItemView.xaml @@ -1,5 +1,8 @@ - + - + - + + + + Text="{Binding Time}" /> + + Text="{Binding Content}" /> communitylist = new(); - public ObservableCollection MovingInfoList = new(); + public ObservableCollection communitylist = []; + public ObservableCollection MovingInfoList = []; private bool IsLogin = false; public ConcernPage() { @@ -54,7 +54,8 @@ public sealed partial class ConcernPage : Page var a = new CommunityList.Data { UserName = "ȫ", - HeadIcon = "/Assets/tool.png" + HeadIcon = "/Assets/tool.png", + Account = account }; communitylist.Add(a); foreach (var item in response.data) @@ -81,17 +82,55 @@ public sealed partial class ConcernPage : Page /// /// ÿעĶ̬Ϣ /// - private void dongtaixiaoxi() + private void dongtaixiaoxi(string account, bool ALL) { MovingInfoList.Clear(); - MovingInfoList.Add(new MovingInfo.Data("Ѿд")); - MovingInfoList.Add(new MovingInfo.Data("Ѿд")); - MovingInfoList.Add(new MovingInfo.Data("Ѿд")); - MovingInfoList.Add(new MovingInfo.Data("Ѿд")); - MovingInfoList.Add(new MovingInfo.Data("Ѿд")); - MovingInfoList.Add(new MovingInfo.Data("Ѿд")); - MovingInfoList.Add(new MovingInfo.Data("Ѿд")); - MovingInfoList.Add(new MovingInfo.Data("Ѿд")); + if (account == null) + { + return; + }; + if (ALL) + { + ApiFox.Dynamic.GetAllDynamic(account).ContinueWith((task) => + { + var value = task.Result; + if (string.IsNullOrEmpty(value)) return; + + // ʹ Newtonsoft.Json зл + var response = JsonConvert.DeserializeObject(value); + + if (response != null && response.Code == 0) + { + foreach (var item in response.Data) + { + // 滻ͷе·Ϊ· + item.HeadIcon = item.HeadIcon.Replace("..", wl.api); + + // ļ¼ӵ ObservableCollection + MovingInfoList.Add(item); + } + } + else if (response != null) + { + Console.WriteLine($"Error: {response.Message}"); + } + }, TaskScheduler.FromCurrentSynchronizationContext()); // ȷUI̸߳ + } + else + { + ApiFox.Dynamic.Getlist(account).ContinueWith((task) => + { + var value = task.Result; + if (value == string.Empty) return; + var response = JsonConvert.DeserializeObject(value); + foreach (var item in response.Data) + { + item.HeadIcon = item.HeadIcon.Replace("..", wl.api); + MovingInfoList.Add(item); + } + },TaskScheduler.FromCurrentSynchronizationContext()); + + } } @@ -123,7 +162,8 @@ public sealed partial class ConcernPage : Page { // ȡǰѡеĿ var selectedItem = ListViewA.SelectedItem; - gj.sc(selectedItem); - dongtaixiaoxi(); + var data = selectedItem as CommunityList.Data; + gj.sc(data?.Account); + dongtaixiaoxi(data?.Account, data.UserName.Equals("ȫ")); } }