package com.alkor.vph.samples;
import com.alkor.vph.tasks.FriendInviteTask;
import com.alkor.vph.VKBot;
import com.alkor.vph.tasks.VKBotTask;
import com.alkor.vph.captcha.AntigateCaptchaParser;
import com.alkor.vph.vk.VKConnector;
import com.alkor.vph.vk.VKConnectorImpl;
import com.alkor.vph.vk.VKTokenProvider;
import com.alkor.vph.vk.VKTokenProviderImpl;
import com.alkor.vph.vk.entities.Group;
import com.alkor.vph.vk.entities.User;
import java.io.IOException;
import java.util.*;
/**
* Author: akorobitsyn
* Date: 29.07.13
* Time: 21:03
*/
public class FriendInviteBot {
private final String vkToken = "d15e7313f15314650e9d0111669e198d2c5ad43eee4a3b667f80e4f6846ee9303b42a6c0c804538dbff8c";
private final String antigateToken = "e36ae5781fbcd185906c0325d14e5156";
private String groupQuery = "Android";
private final String greetingTemplate = "Привет, %s! Меня зовут %s. Мы с тобой в одной групе '%s', так что нам будет о чем пообщаться, добавляй в друзья!";
// private final String greetingTemplate = "Hi, %s! My name is %s. We are in the one group with you '%s', so we've something to say each other, friend me!";
// private final String greetingTemplate = "Привет! Если у тебя есть смартфон на Android, вступай в группу http://vk.com/club41942656 ;)";
private final long timeOut = 5000;
private final int groupsCount = 10;
private final int usersCount = 1000;
private VKBot vkBot;
public static void main(String[] params) throws IOException, InterruptedException {
FriendInviteBot friendInviteBot = new FriendInviteBot();
if (params.length > 0) {
friendInviteBot.setGroupQuery(params[0]);
}
friendInviteBot.init();
friendInviteBot.run();
}
public void init() throws IOException, InterruptedException {
VKConnector vkConnector = VKConnectorImpl.createInstance();
VKTokenProvider vkTokenProvider = VKTokenProviderImpl.createInstance(vkToken);
User me = vkConnector.getUsers(null, vkTokenProvider.getToken()).get(0);
List<Group> groups = vkConnector.searchGroups(groupQuery, groupsCount, vkTokenProvider.getToken());
Set<Long> userIds = new HashSet<>();
List<VKBotTask> tasks = new ArrayList<>();
Map<Long, Group> userGroups = new HashMap<>();
for (Group group : groups) {
List<Long> groupMembers = vkConnector.getGroupMembers(group.getGid(), usersCount, vkTokenProvider.getToken());
for (Long userId : groupMembers) {
userGroups.put(userId, group);
}
userIds.addAll(groupMembers);
Thread.sleep(timeOut);
}
List<User> users = vkConnector.getUsers(userIds, vkTokenProvider.getToken());
for (User user : users) {
Group group = userGroups.get(user.getId());
if (group != null) {
tasks.add(new FriendInviteTask(vkConnector, user, String.format(greetingTemplate, user.getFirstName(), me.getFirstName(), group.getName())));
} else {
System.out.println(group);
}
}
vkBot = VKBot.createInstance(tasks, vkTokenProvider, "completed-tasks.txt", AntigateCaptchaParser.createInstance(antigateToken));
}
public String getGroupQuery() {
return groupQuery;
}
public void setGroupQuery(String groupQuery) {
this.groupQuery = groupQuery;
}
public void run() {
Thread thread = new Thread(vkBot);
thread.run();
}
}