Exemple #1
0
 public void ViewThreadTest()
 {
     var method = new ViewThread()
     {
         ThreadID = 3063982
     };
     var result = ApiClient.Execute(method).Result;
 }
Exemple #2
0
        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();
            }
        }
Exemple #3
0
        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();
        }
Exemple #4
0
        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));
            }
        }
Exemple #5
0
 public void ViewThreadTest() {
     var method = new ViewThread() {
         ThreadID = 3063982
     };
     var result = ApiClient.Execute(method).Result;
 }
        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();
        }
Exemple #7
0
        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));
            }
        }
Exemple #8
0
        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));
            }
        }