public void AddFriendByPhone(Filter filter) { try { var canAddedFriendToday = (Settings.MaxFriendAddedPerDay - DbContext.GetAddedFriendCount(Settings.User.Username)); var numberOfAction = filter.NumberOfAction > canAddedFriendToday ? canAddedFriendToday : filter.NumberOfAction; if (numberOfAction == 0) { ZaloHelper.Output("Kết bạn tối đa trong ngày rồi"); return; } var countSuccess = 0; var phonelist = new Stack <string>(filter.IncludePhoneNumbers.Split(";,|".ToArray())); while (countSuccess < numberOfAction) { ZaloHelper.Output("Đang mở trang kết bạn qua số điện thoại"); GotoPage(Activity.FindFriendByPhoneNumber); var success = false; while (!success) { if (phonelist.Count == 0) { return; } var phoneNumber = phonelist.Pop(); if (DbContext.LogRequestAddFriendSet.FirstOrDefault(x => x.PhoneNumber == phoneNumber && x.Account == Settings.User.Username) != null) { ZaloHelper.Output($"Bỏ qua. Số điện thoại {phoneNumber} đã có tên trong danh sách"); continue; } Thread.Sleep(800); ZaloHelper.Output($"Đang xóa ô nhập chữ"); DeleteWordInFocusedTextField(); ZaloHelper.Output($"Đang nhập số điện thoại :{phoneNumber}"); SendText(phoneNumber); SendKey(KeyCode.AkeycodeEnter); Thread.Sleep(4000); //check is not available ZaloHelper.Output("!Kiểm tra thông báo"); if (ZaloImageProcessing.HasFindButton(CaptureScreenNow(), Screen)) { ZaloHelper.Output("!Lỗi, Số đt chưa có tài khoản ZALO"); } else { var profile = GrabProfileInfo(); profile.PhoneNumber = phoneNumber; string reason; if (!filter.IsValidProfile(profile, out reason)) { ZaloHelper.Output("Bỏ qua bạn này, lý do: " + reason); TouchAtIconTopLeft(); continue; } else { var addSuccess = AddFriendViaIconButton(profile, filter); ZaloHelper.Output($"!Thêm bạn bằng số đt: {phoneNumber} thành công."); if (addSuccess) { countSuccess++; success = true; } } } } } } catch (Exception ex) { _log.Error(ex); } finally { ZaloHelper.SendCompletedTaskSignal(); } }
public void SendMessageByPhoneNumber(Filter filter) { try { var canSentToday = Settings.MaxMessageStrangerPerDay - DbContext.GetMessageToStragerCount(Settings.User.Username); var numberOfAction = filter.NumberOfAction > canSentToday ? canSentToday : filter.NumberOfAction; if (numberOfAction <= 0) { ZaloHelper.Output("đã gửi hết số bạn trong ngày rồi"); return; } var phonelist = filter.IncludePhoneNumbers.Split(";,|".ToArray()).Where(x => !string.IsNullOrWhiteSpace(x)).ToArray(); var countSuccess = 0; var stack = new Stack <string>(phonelist); while (countSuccess < numberOfAction) { GotoPage(Activity.FindFriendByPhoneNumber); var success = false; while (!success) { if (stack.Count == 0) { return; } var phoneNumber = stack.Pop(); ZaloHelper.Output($"Tiến hành gửi tin qua số đt {phoneNumber}"); if (DbContext.LogMessageSentToStrangerSet.FirstOrDefault(x => x.PhoneNumber == phoneNumber && x.Account == Settings.User.Username) != null) { ZaloHelper.Output($"Đã gửi tin cho số đt '{phoneNumber}' rồi"); continue; } Thread.Sleep(100); DeleteWordInFocusedTextField(); SendText(phoneNumber); SendKey(KeyCode.AkeycodeEnter); Thread.Sleep(4000); ZaloHelper.Output("!đang kiểm tra số điện thoại khả dụng"); if (ZaloImageProcessing.HasFindButton(CaptureScreenNow(), Screen)) { ZaloHelper.Output("!Lỗi, số đt không có"); } else { var profile = GrabProfileInfo(); profile.PhoneNumber = phoneNumber; string reason; if (!filter.IsValidProfile(profile, out reason)) { ZaloHelper.Output("Bỏ qua bạn này, lý do: " + reason); TouchAtIconTopLeft(); //Go back to phone Entry Delay(400); } else { var request = new ChatRequest { Profile = profile, Objective = ChatObjective.StrangerByPhone }; TouchAt(Screen.IconBottomLeft); Delay(800); if (Chat(request, filter)) { countSuccess++; DbContext.AddProfile(request.Profile, Settings.User.Username); success = true; } TouchAtIconTopLeft();//GO BACK FRIENDLIST } } } } } catch (Exception ex) { _log.Error(ex); } finally { ZaloHelper.SendCompletedTaskSignal(); } }