grab2-0.py 7.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226
  1. from telethon import TelegramClient, events
  2. from colorama import Fore
  3. from pathlib import Path
  4. import asyncio
  5. import csv
  6. api_id =
  7. api_hash = ''
  8. try:
  9. with open('data.csv', 'r') as file:
  10. csvreader1 = csv.reader(file)
  11. for row1 in csvreader1:
  12. out_c10 = (row1[0])
  13. with open('data.csv', 'r') as file:
  14. csvreader1 = csv.reader(file)
  15. for row2 in csvreader1:
  16. inp_c10 = (row2[1])
  17. print(Fore.LIGHTMAGENTA_EX+"Your config of data.csv: "+"\033[39m")
  18. print(Fore.LIGHTWHITE_EX+"________________________________________")
  19. print(Fore.LIGHTCYAN_EX+"\nInput channel"+"\n"+inp_c10)
  20. print("\n"+Fore.LIGHTCYAN_EX+"\nOutput channel"+"\n"+out_c10)
  21. print(Fore.LIGHTWHITE_EX+"________________________________________")
  22. except FileNotFoundError:
  23. pass
  24. writing_csv = input("\n"+Fore.LIGHTGREEN_EX+"yes\nno\nl "+Fore.LIGHTYELLOW_EX+"= load previous configuration of REZdata"+"\033[39m"+Fore.LIGHTMAGENTA_EX+"\nDo you want to load the previous configuration?: "+"\033[39m")
  25. def if_writing1():
  26. if writing_csv == "no":
  27. print(Fore.LIGHTGREEN_EX+'ID - к примеру -11111111'+'\033[39m')
  28. out_c = int(input(Fore.LIGHTMAGENTA_EX+'ID канала куда будут кидаться посты: '+'\033[39m'))
  29. inp_string=input(Fore.LIGHTGREEN_EX+'Несколько каналов можно через ,\n'+Fore.LIGHTMAGENTA_EX+'ID каналов откуда будут браться посты: '+'\033[39m')
  30. lsttt=[]
  31. b=(inp_string.split(','))
  32. for x in b:
  33. lsttt.append(int(x))
  34. double_ch = [
  35. [out_c, inp_string],
  36. ]
  37. with open('data.csv', 'w', encoding='cp1251') as file:
  38. writer = csv.writer(file, delimiter=',')
  39. writer.writerow(
  40. ("1_ch", "2_ch")
  41. )
  42. for users in double_ch:
  43. with open('data.csv', 'a', encoding='cp1251') as file:
  44. writer = csv.writer(file, delimiter=',')
  45. writer.writerow(
  46. users
  47. )
  48. # Резервная копия
  49. path_to_file = 'REZdata.csv'
  50. path = Path(path_to_file)
  51. if path.is_file():
  52. with open('REZdata.csv', 'r') as file:
  53. csvreader1 = csv.reader(file)
  54. for row1 in csvreader1:
  55. out_c6 = (row1[1])
  56. with open('REZdata.csv', 'r') as file:
  57. csvreader1 = csv.reader(file)
  58. for row2 in csvreader1:
  59. out_c7 = (row2[0])
  60. print(Fore.LIGHTMAGENTA_EX+"Your config of data.csv: "+"\033[39m")
  61. print(Fore.LIGHTWHITE_EX+"________________________________________")
  62. print(Fore.LIGHTCYAN_EX+"\nInput channel"+"\n"+out_c6)
  63. print("\n"+Fore.LIGHTCYAN_EX+"\nOutput channel"+"\n"+out_c7)
  64. print(Fore.LIGHTWHITE_EX+"________________________________________")
  65. rez = input(Fore.LIGHTGREEN_EX+"Yes\nno"+"\033[39m"+Fore.LIGHTMAGENTA_EX+"\nDo you want to rewriting your REZdata?: "+"\033[39m")
  66. if rez == "no":
  67. pass
  68. if rez == "Yes":
  69. with open('REZdata.csv', 'w', encoding='cp1251') as file:
  70. writer = csv.writer(file, delimiter=',')
  71. writer.writerow(
  72. ("1_ch", "2_ch")
  73. )
  74. for users in double_ch:
  75. with open('REZdata.csv', 'a', encoding='cp1251') as file:
  76. writer = csv.writer(file, delimiter=',')
  77. writer.writerow(
  78. users
  79. )
  80. else:
  81. with open('REZdata.csv', 'w', encoding='cp1251') as file:
  82. writer = csv.writer(file, delimiter=',')
  83. writer.writerow(
  84. ("1_ch", "2_ch")
  85. )
  86. for users in double_ch:
  87. with open('REZdata.csv', 'a', encoding='cp1251') as file:
  88. writer = csv.writer(file, delimiter=',')
  89. writer.writerow(
  90. users
  91. )
  92. my_channel_id=out_c
  93. channels=b
  94. result = [int(item) for item in lsttt]
  95. my_channel_id=out_c
  96. channels=result
  97. client = TelegramClient('myGrab', api_id, api_hash)
  98. print("GRAB - Started")
  99. @client.on(events.NewMessage(chats=channels))
  100. async def my_event_handler(event):
  101. if event.message:
  102. await client.send_message(my_channel_id, event.message)
  103. client.start()
  104. client.run_until_disconnected()
  105. if_writing1()
  106. def if_writing2():
  107. if writing_csv == "yes":
  108. with open('data.csv', 'r') as file:
  109. csvreader = csv.reader(file)
  110. for row in csvreader:
  111. out_c = (row[0])
  112. with open('data.csv', 'r') as file:
  113. csvreader = csv.reader(file)
  114. for row in csvreader:
  115. inp_c = (row[1])
  116. out_c = int(out_c)
  117. lsttt=[]
  118. b=(inp_c.split(','))
  119. for x in b:
  120. lsttt.append(int(x))
  121. my_channel_id=out_c
  122. channels=b
  123. result = [int(item) for item in lsttt]
  124. my_channel_id=out_c
  125. channels=result
  126. client = TelegramClient('myGrab', api_id, api_hash)
  127. print("GRAB - Started")
  128. @client.on(events.NewMessage(chats=channels))
  129. async def my_event_handler(event):
  130. if event.message:
  131. await client.send_message(my_channel_id, event.message)
  132. client.start()
  133. client.run_until_disconnected()
  134. if_writing2()
  135. def if_writing3():
  136. if writing_csv == "l":
  137. with open('REZdata.csv', 'r') as file:
  138. csvreader1 = csv.reader(file)
  139. for row in csvreader1:
  140. out_c = (row[0])
  141. with open('REZdata.csv', 'r') as file:
  142. csvreader2 = csv.reader(file)
  143. for row in csvreader2:
  144. inp_c = (row[1])
  145. print("\n"+Fore.LIGHTMAGENTA_EX+"Your config of REZdata.csv: "+"\033[39m")
  146. print(Fore.LIGHTWHITE_EX+"________________________________________")
  147. print(Fore.LIGHTCYAN_EX+"\nInput channel"+"\n"+inp_c)
  148. print("\n"+Fore.LIGHTCYAN_EX+"\nOutput channel"+"\n"+out_c)
  149. print(Fore.LIGHTWHITE_EX+"________________________________________")
  150. rez = input(Fore.LIGHTGREEN_EX+"yes\nno"+Fore.LIGHTMAGENTA_EX+"\nDo you want to load REZdata?: "+"\033[39m")
  151. if rez == "no":
  152. exit()
  153. if rez == "yes":
  154. out_c = int(out_c)
  155. lsttt=[]
  156. b=(inp_c.split(','))
  157. for x in b:
  158. lsttt.append(int(x))
  159. my_channel_id=out_c
  160. channels=b
  161. result = [int(item) for item in lsttt]
  162. my_channel_id=out_c
  163. channels=result
  164. client = TelegramClient('myGrab', api_id, api_hash)
  165. print("GRAB - Started")
  166. @client.on(events.NewMessage(chats=channels))
  167. async def my_event_handler(event):
  168. if event.message:
  169. await client.send_message(my_channel_id, event.message)
  170. client.start()
  171. client.run_until_disconnected()
  172. if_writing3()