public void ViewThreadTest() { var method = new ViewThread() { ThreadID = 3063982 }; var result = ApiClient.Execute(method).Result; }
static async void Test() { ApiClient.SetBaseUrl("http://192.168.10.242/discuz"); var method = new ForumIndex(); var catalogs = await ApiClient.Execute(method); foreach (ForumCatalog c in catalogs) { Console.WriteLine(c.Name); foreach (Forum f in c.SubFourms) { Console.WriteLine("--" + f.Name); var method2 = new ForumDisplay() { ForumID = f.ID }; var threads = await ApiClient.Execute(method2); foreach (ThreadSummary s in threads) { Console.WriteLine(" =========="); Console.WriteLine(" " + s.Subject); var method3 = new ViewThread() { ThreadID = s.ID }; var posts = await ApiClient.Execute(method3); foreach (ThreadPost p in posts) { if (!p.IsFirst) { continue; } Console.WriteLine(" " + p.Content.Replace("\r\n", "")); if (p.Attachments != null) { foreach (KeyValuePair <string, Attachement> a in p.Attachments) { Console.WriteLine(" ** " + a.Value.Url); } } Console.WriteLine(); } } } Console.WriteLine(); } }
private async void LoadData(bool isRefresh) { var hud = DependencyService.Get <IToast>(); hud.Show("正在加载, 现在展示的不是最新数据"); if (isRefresh) { this.Page = 1; } else { this.Page++; } this.InRefresh = true; this.NotifyOfPropertyChange(() => this.InRefresh); var method = new ViewThread() { ThreadID = this.ThreadID, Page = this.Page }; var datas = await ApiClient.Execute(method); var vms = datas.Select(d => new PostDetailViewModel(d)); if (isRefresh) { this.Datas = new BindableCollection <PostDetailViewModel>(vms); } else { this.Datas.AddRange(vms); } this.NotifyOfPropertyChange(() => this.Datas); this.OldID = this.ThreadID; this.InRefresh = false; this.NotifyOfPropertyChange(() => this.InRefresh); hud.Close(); }
public async void GetReplies(int tid, EventHandler <DiscuzEventArgs> eHandler) { List <MessageProfile> replies = new List <MessageProfile>(); try { var methodViewThread = new ViewThread() { ThreadID = tid }; var posts = await ApiClient.Execute(methodViewThread); //浏览帖子内容 foreach (ThreadPost p in posts) { if (!p.IsFirst) { //回复 var replyPostID = p.ID; var replyTitle = "reply"; var replyContent = p.Content; var replyAuthor = p.Author; var replyAuthorID = p.AuthorID; var replyAuthorImgURL = p.AuthorImg; var replyImgLocalPath = LocalTmpUsersIcon() + "/" + replyAuthor + ".gif"; SaveAndCloseStream(replyImgLocalPath, await GetPhotoResponse(GetUserImgUrl(replyAuthorID))); replies.Add(new MessageProfile(new UserInfo(replyImgLocalPath, replyAuthor), replyPostID, replyTitle, replyContent)); } } } catch (Exception e) { Console.WriteLine(e); replies = null; } finally { eHandler(this, new DiscuzEventArgs(replies)); } }
private async void LoadData(bool isRefresh) { var hud = DependencyService.Get<IToast>(); hud.Show("正在加载, 现在展示的不是最新数据"); if (isRefresh) this.Page = 1; else this.Page++; this.InRefresh = true; this.NotifyOfPropertyChange(() => this.InRefresh); var method = new ViewThread() { ThreadID = this.ThreadID, Page = this.Page }; var datas = await ApiClient.Execute(method); var vms = datas.Select(d => new PostDetailViewModel(d)); if (isRefresh) this.Datas = new BindableCollection<PostDetailViewModel>(vms); else { this.Datas.AddRange(vms); } this.NotifyOfPropertyChange(() => this.Datas); this.OldID = this.ThreadID; this.InRefresh = false; this.NotifyOfPropertyChange(() => this.InRefresh); hud.Close(); }
public async void GetMessages(int page, EventHandler <DiscuzEventArgs> eHandler) { List <MessageProfile> Messages = new List <MessageProfile>(); try { var methodForumDisplay = new ForumDisplay() { ForumID = this.formID }; var threads = await ApiClient.Execute(methodForumDisplay); //获得所有板块中的所有帖子 foreach (ThreadSummary s in threads) { var methodViewThread = new ViewThread() { ThreadID = s.ID }; //帖子id var posts = await ApiClient.Execute(methodViewThread); //获得当前帖子的内容 var PostID = s.ID; var Title = s.Subject; var Content = ""; var Author = s.Author; var AuthorID = s.AuthorID; var AuthorImgURL = s.AuthorImg; List <Dictionary <string, string> > messagePhotos = new List <Dictionary <string, string> >(); //浏览帖子内容 foreach (ThreadPost p in posts) { if (p.IsFirst) { Content = p.Content; if (p.Attachments != null) { foreach (KeyValuePair <string, Attachement> a in p.Attachments) { var Attachments = new Dictionary <string, string>() { { "src", a.Value.Url } }; messagePhotos.Add(Attachments); } } } else { break; //不是首帖,直接退出 } } //图像保存 var AuthorImgLocalPath = LocalTmpUsersIcon() + "/" + Author + ".gif"; SaveAndCloseStream(AuthorImgLocalPath, await GetPhotoResponse(GetUserImgUrl(AuthorID))); for (int i = 0; i < messagePhotos.Count; i++) { var photoURL = baseUrl + "/" + messagePhotos[i]["src"]; var fileName = photoURL.Substring(photoURL.LastIndexOf('/') + 1); var localDir = String.Format("{0}/{1}/", LocalTmpPosts(), Title); var photoLocalPath = localDir + fileName; if (!Directory.Exists(localDir)) { Directory.CreateDirectory(localDir); } //文件夹不存在,则创建文件夹 SaveAndCloseStream(photoLocalPath, GetPhotoResponse(photoURL).Result); messagePhotos[i]["src"] = photoLocalPath; } Messages.Add(new MessageProfile(new UserInfo(AuthorImgLocalPath, s.Author), PostID, Title, Content, messagePhotos)); } } catch (Exception e) { Console.WriteLine(e); Messages = null; } finally { eHandler(this, new DiscuzEventArgs(Messages)); } }
public async void GetContent(int tid, EventHandler <DiscuzEventArgs> eHandler) { MessageDetail messageDetial = new MessageDetail(); try { var methodViewThread = new ViewThread() { ThreadID = tid }; var posts = await ApiClient.Execute(methodViewThread); var PostID = posts.First().ID; var Title = posts.First().ThreadID.ToString(); var Content = posts.First().Content; var Author = posts.First().Author; var AuthorID = posts.First().AuthorID; var AuthorImgURL = posts.First().AuthorImg; List <Dictionary <string, string> > messagePhotos = new List <Dictionary <string, string> >(); var AuthorImgLocalPath = LocalTmpUsersIcon() + "/" + Author + ".gif"; SaveAndCloseStream(AuthorImgLocalPath, await GetPhotoResponse(GetUserImgUrl(AuthorID))); //浏览帖子内容 foreach (ThreadPost p in posts) { //获取所有回复 if (!p.IsFirst) { var replyPostID = posts.First().ID; var replyTitle = "reply"; var replyContent = posts.First().Content; var replyAuthor = posts.First().Author; var replyAuthorID = posts.First().AuthorID; var replyAuthorImgURL = posts.First().AuthorImg; var replyImgLocalPath = LocalTmpUsersIcon() + "/" + replyAuthor + ".gif"; SaveAndCloseStream(replyImgLocalPath, await GetPhotoResponse(GetUserImgUrl(replyAuthorID))); messageDetial.AddReply(new MessageProfile(new UserInfo(replyImgLocalPath, replyAuthor), replyPostID, replyTitle, replyContent)); } //获取附件 if (p.Attachments != null) { foreach (KeyValuePair <string, Attachement> a in p.Attachments) { var Attachments = new Dictionary <string, string>() { { "src", a.Value.Url } }; messagePhotos.Add(Attachments); } } } //保存附件图像 for (int i = 0; i < messagePhotos.Count; i++) { var photoURL = baseUrl + "/" + messagePhotos[i]["src"]; var fileName = photoURL.Substring(photoURL.LastIndexOf('/') + 1); var localDir = String.Format("{0}/{1}/", LocalTmpPosts(), Title); var photoLocalPath = localDir + fileName; if (!Directory.Exists(localDir)) { Directory.CreateDirectory(localDir); } //文件夹不存在,则创建文件夹 SaveAndCloseStream(photoLocalPath, GetPhotoResponse(photoURL).Result); messagePhotos[i]["src"] = photoLocalPath; } messageDetial.SetMessageMainBody(new MessageProfile(new UserInfo(AuthorImgLocalPath, Author), PostID, Title, Content, messagePhotos)); } catch (Exception e) { Console.WriteLine(e); messageDetial = null; } finally { eHandler(this, new DiscuzEventArgs(messageDetial)); } }