public async Task DoShow() { var recipientsResult = await _instaApi.GetRankedRecipientsAsync(); if (!recipientsResult.Succeeded) { Console.WriteLine("Unable to get ranked recipients"); return; } Console.WriteLine($"Got {recipientsResult.Value.Items.Count} ranked threads"); foreach (var thread in recipientsResult.Value.Items) { Console.WriteLine($"Threadname: {thread.ThreadTitle}, users: {thread.Users.Count}"); } var inboxThreads = await _instaApi.GetDirectInboxAsync(); if (!inboxThreads.Succeeded) { Console.WriteLine("Unable to get inbox"); return; } Console.WriteLine($"Got {inboxThreads.Value.Inbox.Threads.Count} inbox threads"); foreach (var thread in inboxThreads.Value.Inbox.Threads) { Console.WriteLine($"Threadname: {thread.Title}, users: {thread.Users.Count}"); } var firstThread = inboxThreads.Value.Inbox.Threads.FirstOrDefault(); var sendMessageResult = await _instaApi.SendDirectMessage($"{firstThread.Users.FirstOrDefault()?.Pk}", firstThread.ThreadId, "test"); Console.WriteLine(sendMessageResult.Succeeded ? "Message sent" : "Unable to send message"); }
public async Task DoShow() { var recipientsResult = await _instaApi.GetRankedRecipientsAsync(); if (!recipientsResult.Succeeded) { Console.WriteLine("Unable to get ranked recipients"); return; } Console.WriteLine($"Got {recipientsResult.Value.Threads.Count} ranked threads"); foreach (var thread in recipientsResult.Value.Threads) { Console.WriteLine($"Threadname: {thread.ThreadTitle}, users: {thread.Users.Count}"); } var inboxThreads = await _instaApi.GetDirectInboxAsync(PaginationParameters.MaxPagesToLoad(2)); if (!inboxThreads.Succeeded) { Console.WriteLine("Unable to get inbox"); return; } Console.WriteLine($"Got {inboxThreads.Value.Inbox.Threads.Count} inbox threads"); foreach (var thread in inboxThreads.Value.Inbox.Threads) { Console.WriteLine($"Threadname: {thread.Title}, users: {thread.Users.Count}"); } var firstThread = inboxThreads.Value.Inbox.Threads.FirstOrDefault(); // send message to specific thread var sendMessageResult = await _instaApi.SendDirectMessage($"{firstThread.Users.FirstOrDefault()?.Pk}", firstThread.ThreadId, "test"); Console.WriteLine(sendMessageResult.Succeeded ? "Message sent" : "Unable to send message"); // just send message to user (thread not specified) sendMessageResult = await _instaApi.SendDirectMessage($"{firstThread.Users.FirstOrDefault()?.Pk}", string.Empty, "one more test"); Console.WriteLine(sendMessageResult.Succeeded ? "Message sent" : "Unable to send message"); }
private static async void RunDMTaskAsync(TaskModel t, IInstaApi api) { var users = new List <InstaUserShort>(); // get essential search results foreach (var search in t.Searches) { foreach (var inString in search.GetInStrings()) { var _temp = await api.SearchUsersAsync(inString); if (_temp.Succeeded) { users.AddRange(_temp.Value.ToList()); } } } var filteredUsers = await Helper.GetFilteredUsersAsync(users, t.Searches, api, 5); // Executing if (filteredUsers.Count > 0) { foreach (var user in filteredUsers) { if (!user.IsPrivate) { var result = await api.SendDirectMessage(user.UserName, "", await Helper.ConstructCaptionTextAsync(t.GetValues().Text, t.Searches, api)); if (result.Succeeded) { t.TaskExecuted(); Helper.Log($"Task Executed: {t.Name} - {t.TaskType.ToString()} {Environment.NewLine} {JsonConvert.SerializeObject(result.Value)}"); } else { Helper.Log(JsonConvert.SerializeObject(result.Info)); } } } } }
public static async void Routes(string UserName, int Delay) { _instaAPI = InstaApiBuilder.CreateBuilder() .SetUser(UserSessionData) .UseLogger(new DebugLogger(LogLevel.Exceptions)).Build(); var request = await _instaAPI.LoginAsync(); var userId = File.ReadAllLines("Users.txt").ToList(); if (request.Succeeded) { Console.ForegroundColor = ConsoleColor.Yellow; Log.Push($"Успешная авторизация: {UserName}"); while (true) { try { var user = await _instaAPI.GetUserAsync( userId[Random.Next(0, userId.Count)]); var message = File.ReadAllLines("messages.txt").ToList(); if (message.Count == 0) { Console.ForegroundColor = ConsoleColor.Red; Log.Push("Отсутствуют фразы."); break; } if (userId.Count == 0 || !File.Exists("Users.txt")) { Console.ForegroundColor = ConsoleColor.Red; Log.Push("База пользователей отсутствует или ещё не была содана."); break; } if (user.Value != null) { var sendMessage = await _instaAPI.SendDirectMessage(user.Value.Pk.ToString(), null, message[Random.Next(0, message.Count)]); Console.ForegroundColor = ConsoleColor.Cyan; if (sendMessage.Succeeded) { Log.Push($"Сообщение было успешно отправлено на аккаунте: {UserName}"); } else { Console.ForegroundColor = ConsoleColor.Red; Log.Push($"Ошибка при отправке сообщения:\n\tАккаунт: {UserName}\n\tСообщение {user.Info.Message}"); } } Thread.Sleep(Delay); } catch (Exception ex) { Console.ForegroundColor = ConsoleColor.Red; Log.Push($"Неизвестная ошибка: {ex.Message}"); _instaAPI = null; } } } else { Log.Push($"Ошибка авторизации: {request.Info.Message}"); } }
async System.Threading.Tasks.Task MassDirect() { Stat = true; userInfoLog = await api.GetCurrentUserAsync(); EventFromMyClass(this, new MyEventMessage($"[{userInfoLog.Value.UserName}][{DateTime.Now.ToString("HH:mm:ss")}][{Info()}] Рассылка сообщений запущена")); EventFromMyClass(this, new MyEventMessage( $"[{userInfoLog.Value.UserName}][{DateTime.Now:HH:mm:ss}][{Info()}] Загружаю базу.")); try { string[] stringID = System.IO.File.ReadAllLines(setting.FileNameBaseId); foreach (string str in stringID) { try { usersID.Add(Convert.ToInt64(str)); usersIDcopy.Add(Convert.ToInt64(str)); } catch { continue; } } } catch (Exception e) { EventFromMyClass(this, new MyEventMessage($"[{userInfoLog.Value.UserName}][{DateTime.Now.ToString("HH:mm:ss")}] ОШИБКА: {e.Message}")); } EventUpdateGrid(this, new UpdateGridEvent($"{userInfoLog.Value.UserName}:МассДирект:{CountMessage}/{usersID.Count}:{UpdateInfoUser(await api.GetUserInfoByIdAsync(userInfoLog.Value.Pk))}:" + $"Выполняется")); foreach (long id in usersID) { try { if (_source == null || _source.IsCancellationRequested) { break; } int random = rnd.Next(0, setting.Messages.Count); var x = await api.SendDirectMessage(id.ToString(), null, setting.Messages[random]); CountMessage++; CountPause++; EventFromMyClass(this, new MyEventMessage( $"[{userInfoLog.Value.UserName}][{DateTime.Now.ToString("HH:mm:ss")}][{Info()}] Oтправил сообщение пользователю {(await api.GetUserInfoByIdAsync(id)).Value.Username}. Kоличество сообщений: {CountMessage}")); EventUpdateGrid(this, new UpdateGridEvent( $"{userInfoLog.Value.UserName}:МассДирект:{CountMessage}/{usersID.Count}:{UpdateInfoUser(await api.GetUserInfoByIdAsync(userInfoLog.Value.Pk))}:" + $"Выполняется")); if (setting.ChekedDeleteBase) { usersIDcopy.Remove(id); } Delay(); if (setting.CheckedPause) //Учет паузы { if (setting.PauseLimit <= CountPause) { CountPause = 0; EventFromMyClass(this, new MyEventMessage( $"[{userInfoLog.Value.UserName}][{DateTime.Now.ToString("HH:mm:ss")}][{Info()}] Пауза на " + setting.PauseTime + " минут")); EventUpdateGrid(this, new UpdateGridEvent( $"{userInfoLog.Value.UserName}:МассДирект:{CountMessage}/{usersID.Count}:{UpdateInfoUser(await api.GetUserInfoByIdAsync(userInfoLog.Value.Pk))}:" + $"Пауза")); if (timer != null) { timer.Dispose(); } timer = new Timer(CancelDelay, null, 60000 * setting.PauseTime, Timeout.Infinite); ew.Reset(); ew.WaitOne(); } } } catch (Exception e) { EventFromMyClass(this, new MyEventMessage( $"[{userInfoLog.Value.UserName}][{DateTime.Now.ToString("HH:mm:ss")}][{Info()}] ОШИБКА: {e.Message}")); } } EventFromMyClass(this, new MyEventMessage($"[{userInfoLog.Value.UserName}][{DateTime.Now.ToString("HH:mm:ss")}][{Info()}] Выполнено")); EventUpdateGrid(this, new UpdateGridEvent($"{userInfoLog.Value.UserName}:МассДирект:{CountMessage}/{usersID.Count}:{UpdateInfoUser(await api.GetUserInfoByIdAsync(userInfoLog.Value.Pk))}:" + $"Завершено")); Stat = false; Save(); }