Advertisement
po0nz

tiwars bot \ битва титанов бот python

Mar 26th, 2018
314
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 5.88 KB | None | 0 0
  1. '''
  2.  
  3. Бот для http://tiwar.ru/
  4.  
  5. Пока фармится только на арене.
  6.  
  7. Нужна библа silenium.
  8. '''
  9.  
  10. #!/usr/bin/python
  11.  
  12. CONST_USERNAME = 'admin' #логин
  13. CONST_PASSWORD = 'pidoras' #пароль
  14. CONST_TIMEOUT = 60 #таймаут, сколько ждать пока восстановиться хелса и энергия
  15. CONST_GO_TO_CAVE = 0 # 1 -спускаться в пещеру если хелса кончилась
  16. CONST_COUNT_ATTACK = 1000 # кол-во сколько раз ебашиться на арене
  17.  
  18. from colorama import Fore, Back, Style, init
  19. init(autoreset=True)
  20.  
  21. from time import sleep
  22. import requests
  23. import argparse
  24. import datetime
  25. import time
  26. import os
  27.  
  28. print (Fore.MAGENTA+'@tiBot (http://tiwar.ru/)')
  29. sleep(0.2)
  30. print (Fore.MAGENTA+'@version '+Style.BRIGHT+'0.1.0.2'+Style.NORMAL)
  31. sleep(0.2)
  32. print (Fore.MAGENTA+'@last update '+Style.BRIGHT+'26.03.2018')
  33. sleep(0.5)
  34. print (Fore.MAGENTA+'@code by '+Style.BRIGHT+'po0n\n')
  35. sleep(1)
  36.  
  37. def showstatus(message, type="new"):
  38.     now = datetime.datetime.now().strftime("%H:%M:%S")
  39.     icon = "*"
  40.     if type == "warn":
  41.         icon = "!"
  42.     elif type == "new":
  43.         icon = "*"
  44.     elif type == "error":
  45.         icon = "x"
  46.     elif type == "bot":
  47.         icon = "tiBot"
  48.  
  49.     message = "[" + icon + "][" + now + "]" + " "+message
  50.     return message
  51.  
  52. def cls():
  53.     os.system('cls' if os.name=='nt' else 'clear')
  54.  
  55. print(showstatus("Подключение модулей ...", "new"))
  56.  
  57.  
  58. from msvcrt import getch
  59. from selenium import webdriver
  60. from selenium.webdriver.common.keys import Keys
  61. from selenium.webdriver.common.action_chains import ActionChains
  62. from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
  63.  
  64. print(showstatus("Запуск PhantomJs ...", "new"))
  65.  
  66. dcap = dict(DesiredCapabilities.PHANTOMJS)
  67. dcap['phantomjs.page.settings.userAgent'] = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.81 Safari/537.36'
  68. driver = webdriver.PhantomJS(desired_capabilities=dcap, service_args=['--ignore-ssl-errors=true', '--ssl-protocol=any'])
  69.  
  70. print(showstatus("Подключение к -> "+Fore.BLUE + Style.BRIGHT + "http://tiwar.ru/", "new"))
  71. driver.get('http://tiwar.ru/?sign_in=1')
  72.  
  73. sleep(1)
  74.  
  75. if "Имя персонажа:" in driver.page_source:
  76.     print(showstatus(Fore.GREEN + Style.BRIGHT + "Подключение успешно!", "new"))
  77.  
  78.     print(showstatus("Авторизация ...", "new"))
  79.  
  80.     driver.find_element_by_xpath("html/body/div[1]/div[1]/div[6]/form/div/input[1]").send_keys(CONST_USERNAME)
  81.     driver.find_element_by_xpath("html/body/div[1]/div[1]/div[6]/form/div/input[2]").send_keys(CONST_PASSWORD)
  82.     driver.find_element_by_xpath("html/body/div[1]/div[1]/div[6]/form/div/span/span/input").click()
  83.  
  84.     sleep(1)
  85.  
  86.     if "Мой герой" in driver.page_source:
  87.         print(showstatus(Fore.GREEN + Style.BRIGHT + "Авторизация прошла успешно!", "new"))
  88.         print('--------------------------------------')
  89.         BRIEF = "Доступные команды: /arena, /coliseum, /exit.\n"
  90.         #ENERGY = driver.find_element_by_xpath("//body//div[@class='main']/div[contains(@class,'head')]/span[contains(@class,'rght')]").text
  91.         #HEALTH = driver.find_element_by_xpath("//body//div[@class='main']/div[contains(@class,'head')]/span[contains(@class,'rght')]/span[@class='white']").text
  92.         print("\nПривет "+CONST_USERNAME+ "!") #"+Fore.RED + Style.BRIGHT +"♥"+HEALTH)
  93.         print(BRIEF)
  94.  
  95.         while True:
  96.             cmd = input("root@bot: ")
  97.             if cmd == "/close" or cmd == "/exit" or cmd == "/stop":
  98.                 cls()
  99.                 print(showstatus("Выполнение программы завершено.", "bot"))
  100.                 break
  101.             elif cmd == "/arena":
  102.                 print()
  103.                 print(showstatus("Подключение к -> "+Fore.BLUE + Style.BRIGHT + "http://tiwar.ru/arena/", "new"))
  104.                 driver.get('http://tiwar.ru/arena/')
  105.                 sleep(1)
  106.                 i = 0
  107.                 CONST_TIMEOUT_TEMP = CONST_TIMEOUT
  108.  
  109.                 print(showstatus('Установленное количество атак: ' + str(CONST_COUNT_ATTACK),'bot'))
  110.  
  111.                 while i < CONST_COUNT_ATTACK:
  112.                     if "Для нападения надо минимум" in driver.page_source and CONST_GO_TO_CAVE == 0:
  113.                         while CONST_TIMEOUT_TEMP > -1:
  114.                             print(showstatus('Востановление жизней и энергии, осталось '+ str(CONST_TIMEOUT_TEMP) + ' сек.',"bot"),end='\r')
  115.                             sleep(1)
  116.                             CONST_TIMEOUT_TEMP -= 1
  117.                         else:
  118.                             print()
  119.                             print(showstatus('Таймаут истек, пытаюсь войти на Арену ...','bot'))
  120.                             print(showstatus("Подключение к -> "+Fore.BLUE + Style.BRIGHT + "http://tiwar.ru/arena/", "new"))
  121.                             CONST_TIMEOUT_TEMP = CONST_TIMEOUT
  122.                             driver.get('http://tiwar.ru/arena/')
  123.                             sleep(1)
  124.                     else:
  125.                         driver.find_element_by_xpath("html/body/div[1]/div[1]/div[7]/a/span/span").click()
  126.                         if "Для нападения надо минимум" in driver.page_source:
  127.                             print(showstatus('Атака не удалась, мало жизней и энергии ...','bot'))
  128.                         else:
  129.                             i += 1
  130.                             enemyName = driver.find_element_by_xpath("//body//div[@class='main']/div[contains(@class,'block_zero')]/div[@class='float-left']").text
  131.                             #enemyName = enemyName.replace('#','')
  132.                             print(showstatus('Атакую противника ['+Fore.CYAN+Style.BRIGHT+str(enemyName)+' #'+str(i)+Fore.WHITE + Style.NORMAL +']','bot'))
  133.                         sleep(1)
  134.                 else:
  135.                     print(showstatus(Fore.GREEN + Style.BRIGHT + 'На арене убито '+str(CONST_COUNT_ATTACK)+' врагов, завершение ...','bot'))
  136.                     print()
  137.                     print(BRIEF)
  138.  
  139.     else:
  140.         print(showstatus("Ошибка авторизации, проверьте логин или пароль.", "error"))
  141.  
  142. else:
  143.     print(showstatus("Ошибка подключения к -> http://tiwar.ru/", "error"))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement