package com.alkor.vph.tasks; import com.alkor.vph.vk.VKConnector; import com.alkor.vph.vk.entities.AddFriendResult; import com.alkor.vph.vk.entities.Captcha; import com.alkor.vph.vk.entities.MethodResult; import com.alkor.vph.vk.entities.User; import java.io.IOException; import java.util.Calendar; import java.util.Date; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; /** * Author: akorobitsyn * Date: 09.07.13 * Time: 19:40 */ public class FriendInviteTask implements VKBotTask { private static final long MIN_AGE = 18l * 365l * 24l * 60l * 60l * 1000l; private DateFormat formatter = new SimpleDateFormat("d.M.yyyy"); private VKConnector vkConnector; private User user; private String greeting; public FriendInviteTask(VKConnector vkConnector, User user, String greeting) { this.vkConnector = vkConnector; this.user = user; this.greeting = greeting; } @Override public String getTaskId() { return "firend-invite-" + user.getId(); } @Override public MethodResult post(Captcha captcha, String token) throws IOException, InterruptedException { AddFriendResult addFriendResult = vkConnector.addFriend(user.getId(), greeting, captcha, token); return addFriendResult.getMethodResult(); } @Override public boolean shouldBeSkipped() { if (user.getCityId() != 1 && user.getCityId() != 2) { return true; } if (user.getBdate() == null) { return true; } try { Date date = formatter.parse(user.getBdate()); if (Calendar.getInstance().getTime().getTime() - date.getTime() < MIN_AGE) { return true; } System.out.println(); } catch (ParseException e) { return true; } return false; } @Override public String toString() { return "FriendInviteTask{" + "vkConnector=" + vkConnector + ", user=" + user + ", greeting='" + greeting + '\'' + '}'; } }