Example #1
0
        private Session<Response<Tag[]>> EditTag(Tag EditTag, string cmd)
        {
            var session = new Session<Response<Tag[]>>();
            var accessorList = new List<Func<byte[], APIs.IAccesser>>();

            if (!htmlCache.IsAvailab)
            {
                accessorList.Add(new Func<byte[], APIs.IAccesser>((byte[] data) =>
                {
                    var accesser = new APIs.video_page_html.Accesser();
                    accesser.Setting(
                        context.CookieContainer,
                        target.ID);

                    return accesser;
                }));
            }

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

                if (token == "")
                    token = new APIs.video_page_html.csrf_token().Parse(htmlCache);

                if (watch_auth_key == "")
                    watch_auth_key = new APIs.video_page_html.watch_auth_key().Parse(htmlCache);

                var accesser = new APIs.tag_edit.UploadAccesser();
                accesser.Setting(
                    context.CookieContainer,
                    target.ID,
                    "json",
                    cmd,
                    EditTag.Name,
                    token,
                    watch_auth_key,
                    (EditTag.IsLock == true) ? "1" : "0");

                return accesser;
            }));

            session.SetAccessers(
                accessorList.ToArray(),
                (data) =>
                    Converter.TagsResponse(new APIs.tag_edit.Parser().Parse(data)));

            return session;
        }
Example #2
0
        /// <summary>
        /// 動画の詳細情報を取得する
        /// </summary>
        public Session<Response<VideoInfo>> DownloadVideoInfo(DownloadVideoInfoUseAPI DownloadVideoInfoUseAPI)
        {
            var session = new Session<Response<VideoInfo>>();

            switch (DownloadVideoInfoUseAPI)
            {
                case DownloadVideoInfoUseAPI.html:
                    #region
                    var accessorList = new List<Func<byte[], APIs.IAccesser>>();

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

                            return accesser;
                        });
                    }

                    session.SetAccessers(
                        accessorList.ToArray(),
                        (data) =>
                        {
                            if (data != null)
                                htmlCache.Value = new APIs.video_page_html.Parser().Parse(data);

                            var result = new Response<VideoInfo>();
                            result.Status = Status.OK;
                            result.Result = context.IDContainer.GetVideoInfo(target.ID);
                            result.Result.Description = new APIs.video_page_html.html_video_info().Parse(htmlCache);

                            return result;
                        });

                    #endregion
                    break;
                case DownloadVideoInfoUseAPI.getthumbinfo:
                    #region
                    session.SetAccessers(new Func<byte[], APIs.IAccesser>[]
                    {
                        (data) =>
                        {
                            var accesser = new APIs.getthumbinfo.Accesser();
                            accesser.Setting(
                                context.CookieContainer,
                                target.ID);

                            return accesser;
                        }
                    },
                    (data) =>
                        Converter.VideoInfoResponse(context, new APIs.getthumbinfo.Parser().Parse(data)));
                    #endregion
                    break;
                default: throw new Exception();
            }

            return session;
        }
Example #3
0
        /// <summary>
        /// 動画をダウンロードする
        /// </summary>
        public Session<WebResponse> DownloadVideo()
        {
            var session = new Session<WebResponse>();
            var accessorList = new List<Func<byte[], APIs.IAccesser>>();
            var isVideoCacheProgress = false;
            var isHtmlCacheProgress = false;

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

                    return accesser;
                });
            }

            if (!htmlCache.IsAvailab)
            {
                isHtmlCacheProgress = true;
                accessorList.Add(
                    (data) =>
                    {
                        if (data != null)
                            videoCache.Value = new APIs.getflv.Parser().Parse(data);

                        var accesser = new APIs.video_page_html.Accesser();
                        accesser.Setting(
                            context.CookieContainer,
                            target.ID);

                        return accesser;
                    });
            }

            accessorList.Add(
                (data) =>
                {
                    if (data != null)
                        if (isHtmlCacheProgress)
                            htmlCache.Value = new APIs.video_page_html.Parser().Parse(data);
                        else if (isVideoCacheProgress)
                            videoCache.Value = new APIs.getflv.Parser().Parse(data);

                    var accesser = new APIs.getvideo.Accesser();
                    accesser.Setting(
                        context.CookieContainer,
                        videoCache.Value["url"]);

                    return accesser;
                });

            session.SetAccessers(accessorList.ToArray(), null);
            return session;
        }