vk execute
Родил, наконец-то, следующее детище Франкенштейна:
- взято за основу: https://toster.ru/q/234399
Этот скрипт позволяет форматировать первый аргумент – строку-список с post_id типа “53288,53303,53306,53288,” (обязательно с запятой вконце, чтобы ометить конец строки) – в понятный для vk execute – array – список айди постов, и потом, до тех пор, пока длина этого списка не будет равна 0 – он будет получать комментарии с каждого элемента этого списка и сохранять их в переменной all_comments и в свою очередь, если кол-во комментов под постов больше 100 – запускать второй while до тех пор, пока счетчик comments_cnt(сколько комментов в посте) не сравняется со счетчиком offset_comments(на сколько сдвигать выборку).
Результат обработки 4-х постов с комментами (305, 13, 5, 6): = 329 комментариев
var myList = Args.post_id_array_str; var listSeparator = ","; var listItemsType = "integer"; var result = []; var charsLength = myList.length; var currentPosition = 0; var previousSeparatorPosition = -1; var item; while (currentPosition < charsLength) { if (myList.substr(currentPosition, 1) == listSeparator) { item = myList.substr(previousSeparatorPosition + 1, currentPosition - previousSeparatorPosition - 1); if (listItemsType == "integer") { item = parseInt(item); } result.push(item); previousSeparatorPosition = currentPosition; } currentPosition = currentPosition + 1; } var post_id; var posts = result; var all_comments = []; while (posts.length != 0){post_id = posts.shift(); var owner_id = Args.owner_id; var comments = API.wall.getComments( {"owner_id":(owner_id), "post_id":(post_id), "need_likes":"1", "offset":"0", "count":"100", "sort":"asc", "preview_length":"1", "extended":"0", "v":"5.27"}); var comments_cnt = comments.count; comments = comments.items; var offset_comments = 100; while (offset_comments < comments_cnt) {comments = comments + API.wall.getComments( {"owner_id":(owner_id), "post_id":(post_id), "need_likes":"1", "offset":(offset_comments), "count":"100", "sort":"asc", "preview_length":"1", "extended":"0", "v":"5.27"} ).items; offset_comments = offset_comments + 100;}; all_comments = all_comments+comments; }; return all_comments;
Хух блять, пользуйтесь, кому попадется.