Skip to content

Instantly share code, notes, and snippets.

@matrixd
Last active November 1, 2017 19:16
Show Gist options
  • Select an option

  • Save matrixd/0f81856b121fa5c967b17d4aaa23e833 to your computer and use it in GitHub Desktop.

Select an option

Save matrixd/0f81856b121fa5c967b17d4aaa23e833 to your computer and use it in GitHub Desktop.
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