/// <summary> /// Получение фотографий из альбома /// </summary> /// <param name="str">Ссылка на альбом массив</param> public static void GetPhoto(string[] str) { JObject jObject = JObject.Parse(Vkapi.Get("photos.get", string.Concat(new object[] { "owner_id=", str[0], "&album_id=", str[1], "&extended=1&offset=", Offset }))); JArray jArray = JArray.Parse(jObject["response"]["items"].ToString()); for (int i = 0; i < jArray.Count; i++) { string text = jObject["response"]["items"][i]["text"].ToString(); if (text.IndexOf("vk.com", StringComparison.Ordinal) >= 0) { ListAdd(jObject["response"]["items"][i], text); } else { if (int.Parse(jObject["response"]["items"][i]["comments"]["count"].ToString()) > 0) { List <Photo.Comment> comments; text = PhotosGetComments(jObject["response"]["items"][i]["owner_id"].ToString(), jObject["response"]["items"][i]["id"].ToString(), out comments); if (text.Length > 0) { ListAdd(jObject["response"]["items"][i], text, comments); } } } allcount++; } }
/// <summary> /// Просмотр комментарий у фото /// </summary> /// <param name="ownerId">id владельца</param> /// <param name="photoId">id фото</param> /// <returns>Комментарий с ссылкой</returns> public static string PhotosGetComments(string ownerId, string photoId, out List <Photo.Comment> comments) { Thread.Sleep(500); string param = string.Concat(new string[] { "owner_id=", ownerId, "&photo_id=", photoId, "&count=100", "&extended=1", }); JObject jObject = JObject.Parse(Vkapi.Get("photos.getComments", param)); int num = jObject["response"]["count"].Value <int>(); string lastComment = string.Empty; var profile = jObject["response"]["profiles"]; var group = jObject["response"]["groups"]; comments = new List <Photo.Comment>(); for (int i = 0; i < num; i++) { var comm = jObject["response"]["items"][i]; string text = comm["text"].ToString(); var user = profile.SelectToken("$.[?(@.id == " + comm["from_id"] + ")]") ?? group.SelectToken("$.[?(@.id == " + Math.Abs(comm["from_id"].Value <int>()) + ")]"); var comment = (user["first_name"] != null) ? new Photo.Comment(user["first_name"].ToString(), user["last_name"].ToString(), text) : new Photo.Comment(user["name"].ToString(), "", text); if (text.IndexOf("vk.com", StringComparison.Ordinal) >= 0) { lastComment = text; } comments.Add(comment); } return(lastComment); }
/// <summary> /// Парсинг альбома /// </summary> /// <param name="str">Ссылка на алььбом мыссив где [0] - id владельца, [1] - id альбома</param> public static void Parsing(string[] str) { JObject jObject = JObject.Parse(Vkapi.Get("photos.get", string.Concat("owner_id=", str[0], "&album_id=", str[1], "&count=1"))); if (jObject["error"] != null) { switch (jObject["error"]["error_code"].Value <int>()) { case 100: MessageBox.Show("Один из пармметров не верен"); break; case 200: MessageBox.Show("нет доступа к альбому"); break; } Th.Abort(); } count = jObject["response"]["count"].Value <int>(); double num = Math.Ceiling(count / 1000.0); //вычесляем количество повторов вызова так макс фотополучение 1000 то делим коли на 1000 и округляем в большую сторону, чтобы выполнилось хотя бы один раз int num2 = 0; while (num2 < num) { GetPhoto(str); Offset += 1000; num2++; } }
private void MainForm_Load(object sender, EventArgs e) { AuthForm autch = new AuthForm(); autch.ShowDialog(); label4.Text = User.Default.Id.ToString(); Vkapi.Get("stats.trackVisitor", ""); }