Last active
November 1, 2017 19:16
-
-
Save matrixd/0f81856b121fa5c967b17d4aaa23e833 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| package eraser; | |
| import com.google.gson.JsonElement; | |
| import com.vk.api.sdk.client.TransportClient; | |
| import com.vk.api.sdk.client.VkApiClient; | |
| import com.vk.api.sdk.client.actors.ServiceActor; | |
| import com.vk.api.sdk.client.actors.UserActor; | |
| import com.vk.api.sdk.httpclient.HttpTransportClient; | |
| import com.vk.api.sdk.objects.base.responses.OkResponse; | |
| import com.vk.api.sdk.objects.messages.responses.GetDialogsResponse; | |
| import com.vk.api.sdk.objects.wall.WallPostFull; | |
| import com.vk.api.sdk.objects.wall.responses.GetResponse; | |
| import java.util.ArrayList; | |
| import java.util.List; | |
| import java.util.stream.Collectors; | |
| public class Main { | |
| public static void main(String [] args) { | |
| final Integer appId = $app_id; | |
| final Integer userId = $your_userid; | |
| final String token = $token; | |
| TransportClient transportClient = HttpTransportClient.getInstance(); | |
| VkApiClient vk = new VkApiClient(transportClient); | |
| //ServiceActor actor = new ServiceActor(appId, token); | |
| UserActor actor = new UserActor(userId, token); | |
| Integer offset = 5; | |
| List<Integer> toDelete = new ArrayList<>(); | |
| while (true) { | |
| try { | |
| GetResponse getResponse = vk.wall().get(actor) | |
| .count(100) | |
| .ownerId(userId) | |
| .offset(offset) | |
| .execute(); | |
| System.out.println(getResponse.getCount()); | |
| System.out.println(getResponse.getItems().size()); | |
| offset += getResponse.getItems().size(); | |
| getResponse.getItems().stream() | |
| .filter(post -> post.getDate() < 1379980800) | |
| .map(post -> post.getId()) | |
| .collect(Collectors.toCollection(() -> toDelete)); | |
| if (offset > getResponse.getCount()) | |
| break; | |
| if (getResponse.getItems().size() == 0) { | |
| break; | |
| } | |
| System.out.println("already got: " + offset + " todelete: " + toDelete.size()); | |
| Thread.sleep(3500); | |
| } catch (Exception e) { | |
| System.out.println(e.toString()); | |
| break; | |
| } | |
| } | |
| System.out.println(toDelete.size() + " posts would be deleted"); | |
| Integer skip = 0; | |
| while (true) { | |
| try { | |
| final Integer limit = 25; | |
| JsonElement response = vk.execute().batch(actor, toDelete.stream() | |
| .skip(skip) | |
| .limit(limit) | |
| .map(id -> vk.wall().delete(actor) | |
| .postId(id) | |
| .ownerId(userId)) | |
| .collect(Collectors.toList())) | |
| .execute(); | |
| skip += limit; | |
| System.out.println(skip + " posts deleted"); | |
| System.out.println(response.toString()); | |
| if (skip > toDelete.size()) | |
| break; | |
| Thread.sleep(3500); | |
| } catch (Exception e) { | |
| System.out.println(e.toString()); | |
| break; | |
| } | |
| } | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment