/// <summary>動画を検索する</summary> /// <param name="Keyword">検索キーワード</param> /// <param name="SearchPage">検索ページの指定、1~nの間の数値を指定する</param> /// <param name="SearchType">検索方法を指定する</param> /// <param name="SearchOption">検索オプションを指定する、Filterメンバは無効</param> public Session<Response<VideoInfo[]>> Search( string Keyword, int SearchPage, SearchType SearchType, SearchOption SearchOption) { var session = new Session<Response<VideoInfo[]>>(); session.SetAccessers(new Func<byte[], APIs.IAccesser>[] { (data) => { var accesser = new APIs.search.Accesser(); accesser.Setting( context.CookieContainer, SearchType.ToKey(), Keyword, SearchPage.ToString(), SearchOption.SortOrder.ToKey(), SearchOption.SortTarget.ToKey()); return accesser; } }, (data) => Converter.VideoInfoResponse(context, new APIs.search.Parser().Parse(data))); return session; }
/// <summary>動画を検索する</summary> /// <param name="Keyword">検索キーワード</param> /// <param name="SearchPage">検索ページの指定、1~nの間の数値を指定する</param> /// <param name="SearchType">検索方法を指定する</param> /// <param name="SearchOption">検索オプションを指定する、Filterメンバは無効</param> public Session <Response <VideoInfo[]> > Search( string Keyword, int SearchPage, SearchType SearchType, SearchOption SearchOption) { return(new Session <Response <VideoInfo[]> >((flow) => { var accessor = new APIs.search_page_html.Accessor(); accessor.Setting( context.CookieContainer, SearchType.ToKey(), Keyword, SearchPage.ToString(), SearchOption.SortOrder.ToKey(), SearchOption.SortTarget.ToKey()); flow.Return(accessor); var parser = new APIs.search_page_html.Parser(); return Converter.VideoInfoResponse(context, parser.Parse(parser.Parse(flow.GetResult()))); })); }
/// <summary>動画を検索するストリームを取得する</summary> /// <param name="Keyword">検索キーワード</param> /// <param name="SearchPage">検索ページの指定、1~nの間の数値を指定する</param> /// <param name="SearchType">検索方法を指定する</param> /// <param name="SearchOption">検索オプションを指定する</param> public Streams <Video.VideoInfoResponse> OpenSearchStreams( string Keyword, int SearchPage, SearchType SearchType, SearchOption SearchOption) { var serialize = new DataContractJsonSerializer(typeof(Serial.Search.Contract)); var streamDataList = new List <StreamData>(); Video.VideoInfoResponse lastData = null; streamDataList.Add( new StreamData() { StreamType = StreamType.Read, GetStream = () => { return(context.Client.OpenDownloadStream( String.Format( ApiUrls.VideoSearch, SearchType.ToKey(), Keyword, SearchPage, SearchOption.ToKey()))); }, SetReadData = (data) => { lastData = converter.ConvertVideoInfoResponse( (Serial.Search.Contract)serialize.ReadObject(new MemoryStream(data))); } }); return(new Streams <Video.VideoInfoResponse>( streamDataList.ToArray(), () => lastData)); }
/// <summary>動画を検索するストリームを取得する</summary> /// <param name="Keyword">検索キーワード</param> /// <param name="SearchPage">検索ページの指定、1~nの間の数値を指定する</param> /// <param name="SearchType">検索方法を指定する</param> /// <param name="SearchOption">検索オプションを指定する</param> public Streams<Video.VideoInfoResponse> OpenSearchStreams( string Keyword, int SearchPage, SearchType SearchType, SearchOption SearchOption) { var serialize = new DataContractJsonSerializer(typeof(Serial.Search.Contract)); var streamDataList = new List<StreamData>(); Video.VideoInfoResponse lastData = null; streamDataList.Add( new StreamData() { StreamType = StreamType.Read, GetStream = () => { return context.Client.OpenDownloadStream( String.Format( ApiUrls.VideoSearch, SearchType.ToKey(), Keyword, SearchPage, SearchOption.ToKey())); }, SetReadData = (data) => { lastData = converter.ConvertVideoInfoResponse( (Serial.Search.Contract)serialize.ReadObject(new MemoryStream(data))); } }); return new Streams<Video.VideoInfoResponse>( streamDataList.ToArray(), () => lastData); }