Exemple #1
0
        internal ChanThreadLibrary(string board, string threadId)
        {
            _boardName = board;

            WebClient wc       = new WebClient();
            string    jsondata = wc.DownloadString(String.Format("http://a.4cdn.org/{0}/thread/{1}.json", board, threadId));
            JObject   jo       = JObject.Parse(jsondata);

            var firstPosts = jo.GetValue("posts").Select(d => d.ToObject <ChanPost>()).ToList();

            _postTitle = ChanUtil.StripComment(firstPosts.First().Com);

            Images = new ObservableCollection <ImageData>();

            foreach (ChanPost post in firstPosts.Where(d => d.Filename != null))
            {
                string strippedComment = ChanUtil.StripComment(post.Com);
                Images.Add(new ImageData
                {
                    FileName = (post == firstPosts.First() ? "OP" :
                                (String.IsNullOrWhiteSpace(strippedComment) ? post.Filename + post.Ext : strippedComment)),
                    LastModified = Util.UnixTimeStampToDateTime(post.Time),
                    Path         = String.Format("http://i.4cdn.org/{0}/{1}{2}", board, post.Tim, post.Ext)
                });
            }

            _sourceUrl = String.Format("http://boards.4chan.org/{0}/thread/{1}/", board, threadId);
        }
Exemple #2
0
        private ChanBoardLibrary(string board, int page)
        {
            _boardName = board;

            WebClient wc       = new WebClient();
            string    jsondata = wc.DownloadString(String.Format("http://a.4cdn.org/{0}/{1}.json", board, page));
            JObject   jo       = JObject.Parse(jsondata);

            var firstPosts = jo.SelectTokens("threads[*].posts[0]", true).ToList();

            Images = new ObservableCollection <ImageData>();

            foreach (ChanPost post in firstPosts.Select(d => d.ToObject <ChanPost>()).ToList())
            {
                string strippedComment = ChanUtil.StripComment(post.Com, 120);
                if (String.IsNullOrWhiteSpace(strippedComment))
                {
                    strippedComment = post.No.ToString();
                }

                Images.Add(new ImageData
                {
                    FileName     = strippedComment,
                    LastModified = Util.UnixTimeStampToDateTime(post.Time),
                    Path         = String.Format("http://i.4cdn.org/{0}/{1}{2}", board, post.Tim, post.Ext),
                    ExtraData    = new Dictionary <string, string>
                    {
                        { "ThreadNo", post.No.ToString() },
                        { "BoardName", board }
                    }
                });
            }

            _sourceUrl = String.Format("http://4chan.org/{0}", board);
        }