Advertisement
Guest User

Untitled

a guest
Jan 17th, 2019
160
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.25 KB | None | 0 0
  1. # -*- coding: utf-8 -*-
  2. import requests, json, time, threading
  3. from bs4 import BeautifulSoup
  4. from colorama import init, Fore
  5.  
  6.  
  7.  
  8. init()
  9.  
  10.  
  11. def get_page(s, url, headers=None):
  12. if headers is None:
  13. return s.get(url)
  14. return s.get(url, headers=headers)
  15.  
  16.  
  17. def post_page(s, url, payload, headers=None):
  18. return s.post(url, data=payload, headers=headers, allow_redirects=True)
  19.  
  20. def post_invite(s, url, payload, headers=None):
  21. return s.post(url, data=payload, headers=headers, allow_redirects=True)
  22.  
  23. def post_poach(s, url, payload, headers=None):
  24. return s.post(url, data=payload, headers=headers, allow_redirects=True)
  25.  
  26.  
  27. def get_soup(page):
  28. return BeautifulSoup(page.content, 'html.parser')
  29.  
  30.  
  31. def get_history(page):
  32. return page.history
  33.  
  34.  
  35. def login_success(page):
  36. page_title = page.find('div', class_='page-title')
  37. if page_title is not None:
  38. if 'Вход в систему' in page_title.text:
  39. if page.find('div', attrs={'class': 'error-summary'}).get('style') is None:
  40. print('Логин или пароль не верный')
  41. print('Повторите вход')
  42. return False
  43. else:
  44. return True
  45.  
  46.  
  47. def load_cookies():
  48. with open('cookies.txt', 'r') as f:
  49. return requests.utils.cookiejar_from_dict(json.load(f))
  50.  
  51.  
  52. def save_cookies(s):
  53. with open('cookies.txt', 'w', encoding='utf-8') as f:
  54. json.dump(requests.utils.dict_from_cookiejar(s.cookies), f)
  55.  
  56.  
  57. def check_login_data():
  58. try:
  59. with open('login.txt', 'r') as f:
  60. line = f.readline(1)
  61. if not line:
  62. return
  63. else:
  64. return True
  65. except FileNotFoundError:
  66. return
  67.  
  68.  
  69. def read_login_data():
  70. with open('login.txt', 'r') as f:
  71. lines = [line.strip() for line in f.readlines()]
  72. return (lines[0], lines[1])
  73.  
  74.  
  75. def save_login_data():
  76. login = input('Введите логин: ').strip()
  77. password = input('Введите пароль: ').strip()
  78. with open('login.txt', 'w', encoding='utf-8') as f:
  79. f.write(login + '\n' + password)
  80.  
  81.  
  82.  
  83. def main():
  84. s = requests.Session()
  85. base_url = 'https://jugl.net/'
  86.  
  87. if not check_login_data():
  88. save_login_data()
  89.  
  90. while True:
  91. login, password = read_login_data()
  92.  
  93. headers = {
  94. 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36',
  95. 'accept-language': 'ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7'
  96. }
  97.  
  98. token = get_soup(get_page(s, base_url + 'login', headers=headers)).find('input', {'name': '_csrf'}).get('value')
  99. payload = {'_csrf': token, 'LoginForm[username]': login, 'LoginForm[password]': password}
  100. logged = login_success(get_soup(post_page(s, base_url + 'login', payload, headers)))
  101. if logged is False:
  102. s.cookies.clear()
  103. save_login_data()
  104. else:
  105. break
  106.  
  107. my_name = json.loads(get_page(s, base_url + 'api-user/status').text[6:]).get('first_name')
  108. my_last = json.loads(get_page(s, base_url + 'api-user/status').text[6:]).get('last_name')
  109. My_Name = (my_name +' '+ my_last)
  110. print(Fore.GREEN + 'Добро пожаловать', My_Name)
  111. print('Начинаю поиск новых людей...')
  112.  
  113. def inviteng_user():
  114. inviteng = False
  115. while inviteng:
  116. p1 = 'api-invite-my/list?country_ids=64,10,170,1,2,3,4,5,6,7,8,9,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196&pageNum=1'
  117. result = get_page(s, base_url + p1).text[6:]
  118. deco_invite = json.loads(result)
  119. items = deco_invite.get('log').get('items')
  120. First_name = items[0]['first_name']
  121. Last_name = items[0]['last_name']
  122. User_Invite = (First_name + ' ' + Last_name)
  123. if 'winner' not in items[0] and not inviteng:
  124. print('Пытаюсь пригласить: ' + User_Invite)
  125. payload = {'_csrf': token, 'id': Id}
  126. invite = get_soup(post_invite(s, base_url + 'api-invitation/become-member-invite', payload, headers)).text[6:]
  127. print(json.loads(invite))
  128. inviteng = False
  129. continue
  130. elif 'winner' not in items[0]:
  131. continue
  132. User_Winner = items[0]['winner']['userName']
  133. Id = items[0]['id']
  134.  
  135. if My_Name in User_Winner:
  136. print('Ура пригласил! ' + User_Invite)
  137. else:
  138. print('К сожалению не пригласил, будем переманивать: ' + User_Invite)
  139. # break
  140. # continue
  141. # poach_get = get_page(s, base_url + 'api-user-profile/index?id=' + str(Id), headers)
  142. # time.sleep(1)
  143. # print(poach_get.text)
  144. # payload = {'_csrf': token, 'userTeamRequest': {'user': {'name': User_Invite}, 'second_user_id': Id, 'text': "Приветствую Вас, приглашаю к себе в команду, буду во всем помогать для достижения успеха и больших заработков. Предоставлю Вам видео уроки"}}
  145. # poach = post_page(s, base_url + 'api-user-team-request/save-parent-to-referral', payload, headers)
  146. # print(poach)
  147. inviteng = False
  148. time.sleep(2)
  149.  
  150. inviUser = threading.Thread(target=inviteng_user)
  151. inviUser.daemon = True
  152.  
  153.  
  154.  
  155. global r
  156. r = True
  157.  
  158. inviUser.start()
  159.  
  160. if __name__ == '__main__':
  161. main()
  162.  
  163. input('Для отключения бота нажмите Enter')
  164.  
  165. r = False
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement