Esempio n. 1
0
        /// <summary>
        /// コメントをダウンロードする
        /// </summary>
        public Session <Response <Comment[]> > DownloadComment()
        {
            return(new Session <Response <Comment[]> >((flow) =>
            {
                if (!htmlCache.IsAvailab)
                {
                    var accessor = new APIs.video_page_html.Accessor();
                    accessor.Setting(
                        context.CookieContainer,
                        target.ID);
                    flow.Return(accessor);

                    var parser = new APIs.video_page_html.Parser();
                    htmlCache.Value = parser.Parse(parser.Parse(flow.GetResult()));
                }

                {
                    var accessor = new APIs.download_comment.Accessor();
                    accessor.Setting(
                        context.CookieContainer,
                        htmlCache.Value.comment.server.url,
                        htmlCache.Value.comment.threads[0].id.ToString());
                    flow.Return(accessor);
                }

                {
                    var Serial = new APIs.download_comment.Parser().Parse(flow.GetResult());
                    ticket = Serial.thread[0].ticket;
                    block_no = ((Serial.thread[0].last_res + 1) / 100).ToString();

                    return Converter.CommentResponse(Serial);
                }
            }));
        }
Esempio n. 2
0
        /// <summary>
        /// コメントをダウンロードする
        /// </summary>
        public Session<Response<Comment[]>> DownloadComment()
        {
            var session = new Session<Response<Comment[]>>();
            var accessorList = new List<Func<byte[], APIs.IAccesser>>();

            if (!videoCache.IsAvailab)
            {
                accessorList.Add((data) =>
                {
                    var accesser = new APIs.getflv.Accesser();
                    accesser.Setting(
                        context.CookieContainer,
                        target.ID);

                    return accesser;
                });
            }

            accessorList.AddRange(new Func<byte[], APIs.IAccesser>[]
            {
                (data) =>
                {
                    if (data != null)
                        videoCache.Value = new APIs.getflv.Parser().Parse(data);

                    var accesser = new APIs.download_comment.Accesser();
                    accesser.Setting(
                        context.CookieContainer,
                        videoCache.Value["ms"],
                        videoCache.Value["thread_id"]);

                    return accesser;
                },
            });

            session.SetAccessers(
                accessorList.ToArray(),
                (data) =>
                {
                    var Serial = new APIs.download_comment.Parser().Parse(data);
                    ticket = Serial.thread[0].ticket;
                    block_no = ((Serial.thread[0].last_res + 1) / 100).ToString();

                    return Converter.CommentResponse(Serial);
                });

            return session;
        }