Advertisement
Guest User

Untitled

a guest
Sep 20th, 2018
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.26 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6. using System.Windows.Forms;
  7. using TLSharp.Core;
  8. using static BlastGram.Utility;
  9. using static BlastGram.TGUtility;
  10. using TeleSharp.TL;
  11. using System.IO;
  12. using System.Diagnostics;
  13.  
  14. namespace BlastGram
  15. {
  16. public class Sender
  17. {
  18. private List<string> Box;
  19. private List<string> Senders;
  20. private List<string> Notsend;
  21. private List<string> Send;
  22. private int ID;
  23. private string HASH;
  24. private bool stop_send;
  25. private int Devider;
  26.  
  27. public Sender(List<string> b, List<string> u, int API_ID, string API_HASH, int Dev)
  28. {
  29. Box = b;
  30. Senders = u;
  31. ID = API_ID;
  32. HASH = API_HASH;
  33. Devider = Dev;
  34. }
  35.  
  36. public void StopWork()
  37. {
  38. stop_send = true;
  39. }
  40.  
  41. public List<string> Comparer(List<string> input, int i)
  42. {
  43. int sum = Devider * i;
  44. List<string> outer = new List<string>();
  45.  
  46. for(int j = 0; j<sum; j++)
  47. {
  48. try
  49. {
  50. outer.Add(input[input.Count-1]);
  51. input.RemoveAt(input.Count - 1);
  52. }
  53. catch
  54. {
  55. break;
  56. }
  57. }
  58. return outer;
  59. }
  60.  
  61. public async Task DoWork(string SFor, string STo, string AFor, string ATo, string DFor, string DTo, string msg)
  62. {
  63. List<string> source = Comparer(Box, Senders.Count);
  64.  
  65.  
  66. Notsend = new List<string>();
  67. Send = new List<string>();
  68.  
  69. for(int i = 0; i < Senders.Count; i++)
  70. {
  71. if (stop_send == true)
  72. break;
  73. if (source.Count <= 0)
  74. break;
  75.  
  76.  
  77. var client = new TelegramClient(ID, HASH, new FileSessionStore(), SessionPath(Senders[i], false));
  78. await client.ConnectAsync();
  79. if (client.IsUserAuthorized() == true)
  80. {
  81. WriteLog($"[Рассылка] Аккаунт {Senders[i]} авторизован");
  82. WriteLog("[Рассылка] Рассылаем");
  83. for (int j = 0; j < Devider; j++)
  84. {
  85. if (stop_send == true)
  86. break;
  87. if (source.Count <= 0)
  88. break;
  89.  
  90. string message = Spin(msg);
  91. string contact = source[0];
  92. source.RemoveAt(0);
  93. string ch = CheckNumber(contact);
  94.  
  95. try
  96. {
  97. if(ch == "Number")
  98. {
  99. WriteLog("[Рассылка] Импортируем контакт");
  100. var usr = await ImportUser(client, contact);
  101. int delyr = GetDelayer(DFor, DTo);
  102. WriteLog($"[Рассылка] Пауза между действиями {delyr}");
  103. await TaskEx.Delay(delyr);
  104.  
  105. WriteLog($"[Рассылка] Отправляем сообщение юзеру {contact}");
  106. await SendMessage(client, usr, message);
  107. int dely = GetDelayer(DFor, DTo);
  108. WriteLog($"[Рассылка] Пауза между действиями {dely}");
  109. await TaskEx.Delay(delyr);
  110. }
  111. else
  112. {
  113. WriteLog("[Рассылка] Ищем пользователя");
  114. var usr = await SearchUser(client, contact);
  115. int delyr = GetDelayer(DFor, DTo);
  116. WriteLog($"[Рассылка] Пауза между действиями {delyr}");
  117. await TaskEx.Delay(delyr);
  118.  
  119. WriteLog($"[Рассылка] Отправляем сообщение юзеру {contact}");
  120. await SendMessage(client, usr, message);
  121. int dely = GetDelayer(DFor, DTo);
  122. WriteLog($"[Рассылка] Пауза между действиями {dely}");
  123. await TaskEx.Delay(delyr);
  124. }
  125. WriteLog($"[Рассылка] Отправили сообщение юзеру {contact}");
  126. Send.Add(contact);
  127. }
  128. catch(Exception b)
  129. {
  130. Notsend.Add(contact);
  131. WriteLog($"[Рассылка] {b.Message}");
  132. if (b.Message == "USER_DEACTIVATED")
  133. {
  134. WriteLog("[Рассылка] Аккаунт в бане, меняем");
  135. break;
  136. }
  137. }
  138. int delim = GetDelayer(SFor, STo);
  139. WriteLog($"[Рассылка] Пауза между сообщениями {delim}");
  140. await TaskEx.Delay(delim);
  141. }
  142. }
  143. else
  144. {
  145. WriteLog($"[Рассылка] Аккаунт {Senders[i]} не авторизован");
  146. }
  147. int delay_one = GetDelayer(AFor,ATo);
  148. WriteLog($"[Рассылка] Спим {delay_one} перед сменой аккаунта");
  149. await Task.Delay(delay_one);
  150. }
  151. File.WriteAllLines($"Sender/Sended({Timestamp()}).txt", Send);
  152. File.WriteAllLines($"Sender/Notsended({Timestamp()}).txt", Notsend);
  153. }
  154. }
  155. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement