add twitch bonus script

This commit is contained in:
Dmitry Afanasyev 2022-02-27 03:00:25 +03:00
parent 889765c920
commit 0553e40711

View File

@ -1,16 +1,18 @@
import atexit
import os
import sys import sys
import time import time
import atexit
from loguru import logger from loguru import logger
from selenium import webdriver from selenium import webdriver
from selenium.webdriver.firefox.service import Service from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.firefox import options from selenium.webdriver.firefox import options
from selenium.webdriver.firefox.service import Service
from urllib3.exceptions import MaxRetryError from urllib3.exceptions import MaxRetryError
logger.remove() logger.remove()
logger.add(sink=sys.stdout, colorize=True, level='DEBUG', logger.add(sink=sys.stdout, colorize=True, level='DEBUG',
format="<cyan>{time:YYYY.MM.DD HH:mm:ss}</cyan> | <level>{level}</level> | " format="<cyan>{time:DD.MM.YYYY HH:mm:ss}</cyan> | <level>{level}</level> | "
"<magenta>{message}</magenta>") "<magenta>{message}</magenta>")
opt = options.Options() opt = options.Options()
@ -19,32 +21,43 @@ service = Service(executable_path=r'./geckodriver')
driver = webdriver.Firefox(service=service, options=opt) driver = webdriver.Firefox(service=service, options=opt)
class UserExitException(Exception):
"""We use this exception when user wants to exit."""
def exit_log(message: str): def exit_log(message: str):
logger.info(message)
try: try:
logger.info(message)
driver.close() driver.close()
sys.exit(0)
except MaxRetryError: except MaxRetryError:
pass pass
except SystemExit:
os.abort()
if __name__ == '__main__': if __name__ == '__main__':
try: try:
try: try:
driver.get("https://www.twitch.tv/lol4to22") driver.get("https://www.twitch.tv/lol4to22")
logger.info('you have 60 seconds to login') logger.info('you have 60 seconds to login')
time.sleep(60) time.sleep(60)
logger.info('time for login is up') logger.info('time for login is up')
except Exception as e: except Exception as e:
logger.error(f'Open page exception: {e}') logger.error(f'Open page exception: {e}')
total_bonus, clicks = 0, 0
while True: while True:
try: try:
elem = driver.find_element(by='css selector', value='[aria-label="Claim Bonus"]') elem = driver.find_element(by='css selector', value='[aria-label="Claim Bonus"]')
elem.click() elem.click()
logger.info('Bonus +50 has been clicked!') total_bonus += 50
except Exception as e: clicks += 1
pass logger.info(f'{clicks}-bonus +50 has been clicked! Total bonus: {total_bonus}')
time.sleep(15) time.sleep(60 * 15 - 2)
except NoSuchElementException:
time.sleep(1)
except UserExitException:
break
except KeyboardInterrupt as e: except KeyboardInterrupt as e:
atexit.register(exit_log, 'Exit script') atexit.register(exit_log, 'Exit script')