public async Task<IEnumerable<VkVideo>> Search(string query, int count = 0, int offset = 0, bool hdOnly = false, VkAudioSortType sort = VkAudioSortType.DateAdded, bool adult = false) { if (_vkontakte.AccessToken == null || string.IsNullOrEmpty(_vkontakte.AccessToken.Token) || _vkontakte.AccessToken.HasExpired) throw new Exception("Access token is not valid."); if (count > 200) throw new ArgumentException("Maximum count is 200."); if (query == null) throw new ArgumentException("Query must not be null."); var parameters = new Dictionary<string, string>(); parameters.Add("q", query); if (hdOnly) parameters.Add("hd", "1"); parameters.Add("sort", ((int)sort).ToString(CultureInfo.InvariantCulture)); if (adult) parameters.Add("adult", "1"); if (count > 0) parameters.Add("count", count.ToString(CultureInfo.InvariantCulture)); else parameters.Add("count", MAX_VIDEO_COUNT.ToString(CultureInfo.InvariantCulture)); if (offset > 0) parameters.Add("offset", offset.ToString(CultureInfo.InvariantCulture)); parameters.Add("access_token", _vkontakte.AccessToken.Token); var response = await new VkRequest(new Uri(VkConst.MethodBase + "video.search"), parameters).Execute(); if (VkErrorProcessor.ProcessError(response)) return null; if (response["response"].HasValues) { return from v in response["response"] select VkVideo.FromJson(v); } return null; }
public async Task <IEnumerable <VkVideo> > Search(string query, int count = 0, int offset = 0, bool hdOnly = false, VkAudioSortType sort = VkAudioSortType.DateAdded, bool adult = false) { if (_vkontakte.AccessToken == null || string.IsNullOrEmpty(_vkontakte.AccessToken.Token) || _vkontakte.AccessToken.HasExpired) { throw new Exception("Access token is not valid."); } if (count > 200) { throw new ArgumentException("Maximum count is 200."); } if (query == null) { throw new ArgumentException("Query must not be null."); } var parameters = new Dictionary <string, string>(); parameters.Add("q", query); if (hdOnly) { parameters.Add("hd", "1"); } parameters.Add("sort", ((int)sort).ToString(CultureInfo.InvariantCulture)); if (adult) { parameters.Add("adult", "1"); } if (count > 0) { parameters.Add("count", count.ToString(CultureInfo.InvariantCulture)); } else { parameters.Add("count", MAX_VIDEO_COUNT.ToString(CultureInfo.InvariantCulture)); } if (offset > 0) { parameters.Add("offset", offset.ToString(CultureInfo.InvariantCulture)); } parameters.Add("access_token", _vkontakte.AccessToken.Token); var response = await new VkRequest(new Uri(VkConst.MethodBase + "video.search"), parameters).Execute(); if (VkErrorProcessor.ProcessError(response)) { return(null); } if (response["response"].HasValues) { return(from v in response["response"] select VkVideo.FromJson(v)); } return(null); }
/// <summary> /// Search audios. /// See also <see cref="http://vk.com/dev/audio.search"/> /// </summary> /// <param name="query">Query</param> /// <param name="count">Count</param> /// <param name="offset">Offset</param> /// <param name="sort">Sort</param> /// <param name="withLyricsOnly">If true will show only audios with lyrics</param> /// <param name="autoFix">If true will fix incorrect queries</param> /// <param name="artistOnly">If true will search only by artist</param> /// <param name="ownOnly">If true will search only in audios of current user</param> /// <returns></returns> public async Task <VkItemsResponse <VkAudio> > Search(string query, int count = 0, int offset = 0, VkAudioSortType sort = VkAudioSortType.DateAdded, bool withLyricsOnly = false, bool autoFix = true, bool artistOnly = false, bool ownOnly = false) { if (_vkontakte.AccessToken == null || string.IsNullOrEmpty(_vkontakte.AccessToken.Token) || _vkontakte.AccessToken.HasExpired) { throw new Exception("Access token is not valid."); } if (count > MAX_AUDIO_COUNT) { throw new ArgumentException("Maximum count is " + MAX_AUDIO_COUNT + "."); } if (query == null) { throw new ArgumentException("Query must not be null."); } var parameters = new Dictionary <string, string>(); parameters.Add("q", query); if (autoFix) { parameters.Add("auto_complete", "1"); } parameters.Add("sort", ((int)sort).ToString(CultureInfo.InvariantCulture)); if (withLyricsOnly) { parameters.Add("lyrics", "1"); } if (artistOnly) { parameters.Add("performer_only", "1"); } if (ownOnly) { parameters.Add("search_own", "1"); } if (count > 0) { parameters.Add("count", count.ToString(CultureInfo.InvariantCulture)); } else { parameters.Add("count", MAX_AUDIO_COUNT.ToString(CultureInfo.InvariantCulture)); } if (offset > 0) { parameters.Add("offset", offset.ToString(CultureInfo.InvariantCulture)); } _vkontakte.SignMethod(parameters); var response = await new VkRequest(new Uri(VkConst.MethodBase + "audio.search"), parameters).Execute(); if (VkErrorProcessor.ProcessError(response)) { return(null); } if (response.SelectToken("response.items") != null) { return(new VkItemsResponse <VkAudio>((from a in response["response"]["items"] where a.HasValues && !string.IsNullOrEmpty(a["url"].Value <string>()) select VkAudio.FromJson(a)).ToList(), response["response"]["count"].Value <int>())); } return(VkItemsResponse <VkAudio> .Empty); }
public async Task <IEnumerable <VkAudio> > Search(string query, int count = 0, int offset = 0, VkAudioSortType sort = VkAudioSortType.DateAdded, bool withLyricsOnly = false, bool autoFix = true) { if (count > 200) { throw new ArgumentException("Maximum count is 200."); } if (query == null) { throw new ArgumentException("Query must not be null."); } Dictionary <string, string> dictionary = new Dictionary <string, string>(); dictionary.Add("q", query); if (autoFix) { dictionary.Add("auto_complete", "1"); } Dictionary <string, string> arg_98_0 = dictionary; string arg_98_1 = "sort"; int num = (int)sort; arg_98_0.Add(arg_98_1, num.ToString(CultureInfo.InvariantCulture)); if (withLyricsOnly) { dictionary.Add("lyrics", "1"); } if (count > 0) { dictionary.Add("count", count.ToString(CultureInfo.InvariantCulture)); } else { dictionary.Add("count", 200.ToString(CultureInfo.InvariantCulture)); } if (offset > 0) { dictionary.Add("offset", offset.ToString(CultureInfo.InvariantCulture)); } dictionary.Add("access_token", Vkontakte.Instance.AccessToken.Token); JObject jObject = await new VkRequest(new Uri("https://api.vk.com/method/audio.search"), dictionary, "GET").Execute(); IEnumerable <VkAudio> result; if (VkErrorProcessor.ProcessError(jObject)) { result = null; } else { if (jObject["response"].HasValues) { result = Enumerable.Select <JToken, VkAudio>(Enumerable.Where <JToken>(jObject["response"], (JToken a) => a.HasValues && !string.IsNullOrEmpty(a["url"].Value <string>())), (JToken a) => VkAudio.FromJson(a)); } else { result = null; } } return(result); }
/// <summary> /// Search audios. /// See also <see cref="http://vk.com/dev/audio.search"/> /// </summary> /// <param name="query">Query</param> /// <param name="count">Count</param> /// <param name="offset">Offset</param> /// <param name="sort">Sort</param> /// <param name="withLyricsOnly">If true will show only audios with lyrics</param> /// <param name="autoFix">If true will fix incorrect queries</param> /// <param name="artistOnly">If true will search only by artist</param> /// <param name="ownOnly">If true will search only in audios of current user</param> /// <returns></returns> public async Task<VkItemsResponse<VkAudio>> Search(string query, int count = 0, int offset = 0, VkAudioSortType sort = VkAudioSortType.DateAdded, bool withLyricsOnly = false, bool autoFix = true, bool artistOnly = false, bool ownOnly = false) { if (_vkontakte.AccessToken == null || string.IsNullOrEmpty(_vkontakte.AccessToken.Token) || _vkontakte.AccessToken.HasExpired) throw new Exception("Access token is not valid."); if (count > MAX_AUDIO_COUNT) throw new ArgumentException("Maximum count is " + MAX_AUDIO_COUNT + "."); if (query == null) throw new ArgumentException("Query must not be null."); var parameters = new Dictionary<string, string>(); parameters.Add("q", query); if (autoFix) parameters.Add("auto_complete", "1"); parameters.Add("sort", ((int)sort).ToString(CultureInfo.InvariantCulture)); if (withLyricsOnly) parameters.Add("lyrics", "1"); if (artistOnly) parameters.Add("performer_only", "1"); if (ownOnly) parameters.Add("search_own", "1"); if (count > 0) parameters.Add("count", count.ToString(CultureInfo.InvariantCulture)); else parameters.Add("count", MAX_AUDIO_COUNT.ToString(CultureInfo.InvariantCulture)); if (offset > 0) parameters.Add("offset", offset.ToString(CultureInfo.InvariantCulture)); _vkontakte.SignMethod(parameters); var response = await new VkRequest(new Uri(VkConst.MethodBase + "audio.search"), parameters).Execute(); if (VkErrorProcessor.ProcessError(response)) return null; if (response.SelectToken("response.items") != null) { return new VkItemsResponse<VkAudio>((from a in response["response"]["items"] where a.HasValues && !string.IsNullOrEmpty(a["url"].Value<string>()) select VkAudio.FromJson(a)).ToList(), response["response"]["count"].Value<int>()); } return VkItemsResponse<VkAudio>.Empty; }
/// <summary> /// Search audios. /// See also <see cref="http://vk.com/dev/audio.search"/> /// </summary> /// <param name="query">Query</param> /// <param name="count">Count</param> /// <param name="offset">Offset</param> /// <param name="sort">Sort</param> /// <param name="withLyricsOnly">If true will show only audios with lyrics</param> /// <param name="autoFix">If true will fix incorrect queries</param> /// <param name="artistOnly">If true will search only by artist</param> /// <param name="ownOnly">If true will search only in audios of current user</param> /// <returns></returns> public async Task <VkItemsResponse <VkAudio> > Search(string query, int count = 0, int offset = 0, VkAudioSortType sort = VkAudioSortType.DateAdded, bool withLyricsOnly = false, bool autoFix = true, bool artistOnly = false, bool ownOnly = false) { if (count > MAX_AUDIO_COUNT) { throw new ArgumentException("Maximum count is " + MAX_AUDIO_COUNT); } if (query == null) { throw new ArgumentException("Query must not be null."); } var parameters = new Dictionary <string, string>(); parameters["q"] = query; if (autoFix) { parameters["auto_complete"] = "1"; } parameters["sort"] = ((int)sort).ToString(CultureInfo.InvariantCulture); if (withLyricsOnly) { parameters["lyrics"] = "1"; } if (artistOnly) { parameters["performer_only"] = "1"; } if (ownOnly) { parameters["search_own"] = "1"; } if (count > 0) { parameters["count"] = count.ToString(CultureInfo.InvariantCulture); } else { parameters["count"] = MAX_AUDIO_COUNT.ToString(CultureInfo.InvariantCulture); } if (offset > 0) { parameters["offset"] = offset.ToString(CultureInfo.InvariantCulture); } _vkontakte.SignMethod(parameters); var response = await VkRequest.GetAsync(VkConst.MethodBase + "audio.search", parameters); if (response.SelectToken("response.items") != null) { return(new VkItemsResponse <VkAudio>((from a in response["response"]["items"] where a.HasValues && !string.IsNullOrEmpty(a["url"].Value <string>()) select VkAudio.FromJson(a)).ToList(), response["response"]["count"].Value <int>())); } return(VkItemsResponse <VkAudio> .Empty); }