Пример #1
0
 def check_timer(self, browser):
     try:
         split_title = reg_exp.split(r'm', browser.title, maxsplit=1)
         browser.close()
         time_clock = int(split_title[0]) + 1
         fckng_wrd_dmn_it = ''
         if (time_clock % 10) == 1:
             fckng_wrd_dmn_it = ' минуту'
         elif time_clock < 5:
             fckng_wrd_dmn_it = ' минуты'
         else:
             fckng_wrd_dmn_it = ' минут'
         print("[+]Кажется, мне стоит попробовать еще раз через " + str(time_clock) + fckng_wrd_dmn_it)
         time_to_wait = time_clock * 60
         return time_to_wait
     except Exception as err:
         error_hook.fatal_err("Я до сих пор не могу найти кнопку [ROLL!]. Кажется, что-то пошло не так!", err)
         return None
Пример #2
0
def init_mulco():
    try:
        info_wb = openpyxl.load_workbook(filename=r'data\crane_stats.xlsx')
        info_sheet = info_wb['INFO']
    except Exception as err:
        error_hook.fatal_err(
            "Не могу получить доступ к crane_stats.xlsx/INFO. "
            "Убедитесь в наличии файла 'crane_stats.xlsx' в папке 'data' и повторите попытку."
            "\n Файл должен быть закрыт!", err)
        return None
    if not info_sheet.cell(row=10, column=10).value:
        error_hook.warn_err(
            "В ячейке 'J10' не указан пароль. Работа с сайтом multicoinfaucet.com невозможна"
        )
        return None
    else:
        mulco_pass = str(info_sheet.cell(row=10, column=10).value)
    mulco_user = MulCo(mulco_login, mulco_pass)
    return mulco_user
Пример #3
0
 def captcha_grabber(self, browser):
     from PIL import Image
     try:
         refresh = browser.find_element_by_id("adcopy-link-refresh")
         refresh.click()
     except Exception as err:
         error_hook.fatal_err("Не удалось обновить капчу", err)
         error_hook.screen_grab(browser)
         return None
     time.sleep(5)
     try:
         element = browser.find_element_by_id("adcopy-puzzle-image-image")
         if not element:
             element = browser.find_element_by_id("adcopy-puzzle-image")
         el_locate = element.location
         el_size = element.size
     except Exception as err:
         error_hook.fatal_err("Не удалось найти капчу", err)
         return None
     try:
         browser.save_screenshot("data/captcha_shots/" + self.captcha_image)
         captcha_to_solve = Image.open("data/captcha_shots/" + self.captcha_image)
         left = el_locate['x']
         top = el_locate['y']
         right = left + el_size['width']
         bottom = top + el_size['height']
         captcha_to_solve = captcha_to_solve.crop((left, top, right, bottom))
         captcha_to_solve.save("data/captcha_shots/" + self.captcha_image)
     except Exception as err:
         error_hook.fatal_err("Не удалось подготовить капчу к отправке", err)
         return RuCaptcha.captcha_grabber(self, browser)
     print("[+]Сохранил капчу с именем " + str(self.captcha_image))
     return 1
Пример #4
0
def init_doge():
    try:
        info_wb = openpyxl.load_workbook(filename=r'data\crane_stats.xlsx')
        info_sheet = info_wb['INFO']
    except Exception as err:
        error_hook.fatal_err(
            "Не могу получить доступ к crane_stats.xlsx/INFO. "
            "Убедитесь в наличии файла 'crane_stats.xlsx' в папке 'data' и повторите попытку."
            "\n Файл должен быть закрыт!", err)
        return None
    dogeco_cap_img = 'dgccap.png'
    if not info_sheet.cell(row=10, column=2).value:
        error_hook.warn_err(
            "В ячейке 'B10' не указан пароль. Работа с сайтом fredoge.co.in невозможна"
        )
        return None
    else:
        dogeco_pass = str(info_sheet.cell(row=10, column=2).value)
    if not info_sheet.cell(row=19, column=9).value:
        error_hook.warn_err(
            "В ячейке 'i19' не указан ключ каптчи. Работа с сайтом fredoge.co.in невозможна"
        )
        return None
    else:
        dogeco_cap_api = str(info_sheet.cell(row=19, column=9).value)
    if not info_sheet.cell(row=20, column=9).value:
        error_hook.warn_err(
            "В ячейке 'i20' не указан профиль. Работа с сайтом fredoge.co.in невозможна"
        )
        return None
    else:
        profile_dgc = FirefoxProfile(
            str(info_sheet.cell(row=20, column=9).value))
    dogeco_user = FreeDOGECO(dogeco_mail, dogeco_pass, profile_dgc,
                             dogeco_cap_img, dogeco_cap_api)
    return dogeco_user
Пример #5
0
 def captcha_solver(self, image, api, browser):
     self.captcha_image = image
     self.captcha_api = api
     if not RuCaptcha.captcha_grabber(self, browser):
         return None
     url = 'http://rucaptcha.com/in.php'
     files_attrib = {"file": open("data/captcha_shots/" + self.captcha_image, "rb")}
     api_attrib = {"key": self.captcha_api}
     try:
         answer = requests.post(url, files=files_attrib, data=api_attrib)
     except Exception as err:
         error_hook.fatal_err("Не удалось отправить капчу", err)
         return RuCaptcha.captcha_solver(self, self.captcha_image, self.captcha_api, browser)
     print("[+]Отправил капчу на RuCaptcha \n[+]Ответили: " + answer.text)
     result_busy = reg_exp.match('ERROR_NO_SLOT_AVAILABLE', answer.text)
     result_ok = reg_exp.match('OK|', answer.text)
     if result_busy:
         print('[.]Все слоты заняты, нужно подождать...')
         time.sleep(5)
         return RuCaptcha.captcha_solver(self, self.captcha_image, self.captcha_api, browser)
     elif result_ok:
         try:
             captcha_id = answer.text.split("|")[1]
         except Exception as err:
             error_hook.fatal_err("Не удалось обработать ответ: " + answer.text, err)
             time.sleep(5)
             return RuCaptcha.captcha_solver(self, self.captcha_image, self.captcha_api, browser)
     else:
         error_hook.warn_err("Проблемы с RuCaptcha.")
         time.sleep(5)
         return RuCaptcha.captcha_solver(self, self.captcha_image, self.captcha_api, browser)
     url2 = 'http://rucaptcha.com/res.php?key='
     request_url = url2 + str(self.captcha_api) + '&action=get&id=' + captcha_id
     try:
         print("[+]Делаю запрос на " + request_url)
         solved = requests.get(request_url)
     except Exception as err:
         error_hook.fatal_err("Не удалось получить ответ от RuCaptcha", err)
         return RuCaptcha.captcha_solver(self, self.captcha_image, self.captcha_api, browser)
     captcha_answ = RuCaptcha.cap_check(self, solved, request_url)
     if not captcha_answ:
         RuCaptcha.captcha_solver(self, self.captcha_image, self.captcha_api, browser)
     else:
         return captcha_answ
Пример #6
0
            str(info_sheet.cell(row=20, column=9).value))
    dogeco_user = FreeDOGECO(dogeco_mail, dogeco_pass, profile_dgc,
                             dogeco_cap_img, dogeco_cap_api)
    return dogeco_user


# ________________________________________________________________________________________________________________

try:
    fdgc_sheet = openpyxl.load_workbook(filename=r'data\crane_stats.xlsx')
    fdgc_wb = fdgc_sheet['INFO']
    fdgc_wb['D5'] = ''
    fdgc_wb['L5'] = ''
except Exception as err:
    error_hook.fatal_err(
        "Не могу записать время начала пула. "
        "Убедитесь в наличии файла 'crane_stats.xlsx' в папке 'data' и повторите попытку."
        "\n Файл должен быть закрыт!", err)
    raise SystemExit(404)

while 1:
    a = time.strftime("%H:%M:%S", time.localtime())
    print("\n\n_____[+]|" + str(a) +
          "|Начинаю работу с сайтом freedoge.co.in_____")
    dogeco_user = init_doge()
    dgc_cooldown = 3600
    if dogeco_user:
        dgc_cooldown = FreeDOGECO.roller(dogeco_user)
        a = time.strftime("[%H:%M:%S]", time.localtime())
        if not dgc_cooldown:
            a = time.strftime("%H:%M:%S", time.localtime())
            error_hook.fatal_err(
Пример #7
0
    def roller(self, browser):
        start_mulco = datetime.now()
        try:
            balance = browser.find_element_by_xpath(
                '//*[@id="balance_global"]')
            balance = balance.text
        except:
            error_hook.warn_err("Не удалось узнать баланс")
            error_hook.screen_grab(browser)
        else:
            print("[+]Ваш текущий баланс = " + balance + " BTC")
            self.permanent_balance = float(balance)
            try:
                fdgc_wb = openpyxl.load_workbook(
                    filename=r'data\crane_stats.xlsx')
                fdgc_sheet = fdgc_wb['INFO']
                fdgc_sheet.cell(row=4,
                                column=12).value = "%.8f" % float(balance)
                fdgc_wb.save(r'data\crane_stats.xlsx')
            except Exception as err:
                error_hook.fatal_err(
                    "Не могу получить доступ к crane_stats.xlsx/INFO", err)

        try:
            time_to_wait = browser.find_element_by_xpath(
                '/html/body/section'
                '/div/div/div/div/div'
                '/div/div[12]/center/span[2]/b')
        except Exception:
            print('[.]Ожидание не требуется - приступаю к работе')
        else:
            try:
                minute = re.split(' ', time_to_wait.text)
                print("[.]Нужно подождать " + minute[5] + " min")
                secs_to_wait = int(minute[5]) * 60
                browser.close()
                return secs_to_wait
            except Exception as err:
                browser.close()
                error_hook.fatal_err("", err)
                return None

        for i in range(1, 100):
            time.sleep(1)
            try:
                guess = browser.find_element_by_xpath(
                    '//*[@id="visualCaptcha-img-0"]')
                print("[.]Пытаюсь угадать капчу...")
                guess.click()
            except Exception as err:
                error_hook.warn_err("Не удалось найти картинку капчи")
                try:
                    resp = browser.find_element_by_xpath(
                        '//*[@id="responseMessage"]')
                    print("[+]Пул окончен")
                    print("[%]\n" + resp.text + "\n[%]")
                    break
                except:
                    error_hook.fatal_err("Не удалось сделать пул", err)
                    error_hook.screen_grab(browser)
                    browser.close()
                    return None
            try:
                button = browser.find_element_by_xpath(
                    '/html/body/section'
                    '/div/div/div/div/div/div'
                    '/div[12]/center/form/div/input')
                button.click()
                time.sleep(2)
                resp = browser.find_element_by_xpath(
                    '//*[@id="responseMessage"]')
                trouble_cap = re.match(
                    'CAPTCHA failed: No CAPTCHA data recieved '
                    'in POST..Please retry', resp.text)
                if trouble_cap:
                    print("[.]Обновляю POST-запрос...")
                    browser.get(browser.current_url)
            except Exception as err:
                error_hook.warn_err("Не могу найти кнопку ROLL")
            else:
                print("[.]Не угадал, попробую еще раз")
                continue
        try:
            balance = browser.find_element_by_xpath(
                '//*[@id="balance_global"]')
            balance = balance.text
        except:
            error_hook.warn_err("Не удалось узнать баланс")
            error_hook.screen_grab(browser)
        else:
            print("[+]Ваш текущий баланс = " + balance + " BTC")
            income = float(balance) - float(self.permanent_balance)
            try:
                fdgc_wb = openpyxl.load_workbook(
                    filename=r'data\crane_stats.xlsx')
                fdgc_sheet = fdgc_wb['INFO']
                fdgc_sheet.cell(row=4,
                                column=12).value = "%.8f" % float(balance)
                fdgc_wb.save(r'data\crane_stats.xlsx')
            except Exception as err:
                error_hook.fatal_err(
                    "Не могу получить доступ к crane_stats.xlsx/INFO", err)
            print("[+]Ваша прибыль +%.8f" % float(income) + " BTC")
            self.permanent_balance = float(balance)
            try:
                fdgc_wb = openpyxl.load_workbook(
                    filename=r'data\crane_stats.xlsx')
                fdgc_sheet = fdgc_wb['INFO']
                fdgc_sheet.cell(row=5,
                                column=12).value = "%.8f" % float(income)
                if float(fdgc_sheet.cell(row=5, column=12).value) > float(
                        fdgc_sheet.cell(row=6, column=12).value):
                    fdgc_sheet.cell(row=6,
                                    column=12).value = "%.8f" % float(income)
                fdgc_wb.save(r'data\crane_stats.xlsx')
            except Exception as err:
                error_hook.fatal_err(
                    "Не могу получить доступ к crane_stats.xlsx/INFO", err)
        browser.close()
        end_mulco = datetime.now()
        total_mulco = end_mulco - start_mulco
        total_mulco = int(total_mulco.total_seconds())
        print("[+]Цикл занял " + str(total_mulco) + " sec")
        return 3600
Пример #8
0
 def start(self):
     a = time.strftime("%H:%M:%S", time.localtime())
     try:
         fdgc_wb = openpyxl.load_workbook(filename=r'data\crane_stats.xlsx')
         fdgc_sheet = fdgc_wb['INFO']
         fdgc_sheet['L15'] = str(a)
         fdgc_wb.save(r'data\crane_stats.xlsx')
     except Exception as err:
         error_hook.fatal_err(
             "Не могу получить доступ к файлу 'crane_stats.xlsx'. "
             "Убедитесь в наличии файла 'crane_stats.xlsx' в папке 'data' и повторите попытку."
             "\n Файл должен быть закрыт!", err)
     try:
         browser = webdriver.Firefox()
         browser.get("https://multicoinfaucet.com")
     except Exception as err:
         error_hook.fatal_err("Не могу зайти на сайт", err)
         return None
     time.sleep(2)
     try:
         login_but = browser.find_element_by_xpath(
             '/html/body/section[1]/div/div[3]/a[1]')
         login_but.click()
     except Exception as err:
         error_hook.fatal_err("Не могу найти объект", err)
         return None
     time.sleep(2)
     for i in range(1, 100):
         try:
             login_inp = browser.find_element_by_xpath(
                 '//*[@id="username"]')
             login_inp.send_keys(self.mail)
             pass_inp = browser.find_element_by_xpath('//*[@id="password"]')
             pass_inp.send_keys(self.passw)
         except Exception as err:
             error_hook.fatal_err("Не могу найти объект", err)
             return None
         try:
             guess = browser.find_element_by_xpath(
                 '//*[@id="visualCaptcha-img-0"]')
             print("[.]Пытаюсь угадать капчу...")
             guess.click()
         except Exception as err:
             error_hook.fatal_err("Не удалось найти картинку капчи", err)
             error_hook.screen_grab(browser)
         try:
             login_but = browser.find_element_by_xpath(
                 '/html/body/div[2]'
                 '/section/div/div/div'
                 '/form/input[5]')
             login_but.click()
             time.sleep(2)
             goto_btc = browser.find_element_by_xpath(
                 '/html/body/section[1]/div/div[1]/a')
             goto_btc.click()
             break
         except:
             print("[.]Не угадал, попробую еще раз")
             continue
     try:
         goto_roll = browser.find_element_by_xpath(
             '/html/body/div[3]/div/div[2]/div[1]/div/div/a')
         goto_roll.click()
     except Exception as err:
         error_hook.fatal_err("Не могу найти объект", err)
         return None
     time.sleep(2)
     print('[+]Я зашел на сайт')
     return MulCo.roller(self, browser)
Пример #9
0
    def roller(self):
        a = time.strftime("%H:%M:%S", time.localtime())
        try:
            fdgc_wb = openpyxl.load_workbook(filename=r'data\crane_stats.xlsx')
            fdgc_sheet = fdgc_wb['INFO']
            fdgc_sheet['D15'] = str(a)
            fdgc_wb.save(r'data\crane_stats.xlsx')
        except Exception as err:
            error_hook.fatal_err(
                "Не могу записать время начала пула. "
                "Убедитесь в наличии файла 'crane_stats.xlsx' в папке 'data' и повторите попытку."
                "\n Файл должен быть закрыт!", err)
        try:
            browser = webdriver.Firefox(firefox_profile=self.profile)
            browser.get("https://freedoge.co.in/?op=home")
        except Exception as err:
            error_hook.fatal_err("Не могу зайти на сайт", err)
            return None
        start_rollFDCO = datetime.now()
        time.sleep(3)
        bal_1 = 0.0
        bal_2 = 0.0
        try:
            balance = browser.find_element_by_xpath("//*[@id='balance']")
            bal_1 = float(balance.text)
            print("[+]Текущий баланс " + str(bal_1) + " DOGE")
            try:
                fdgc_wb = openpyxl.load_workbook(filename=r'data\crane_stats.xlsx')
                fdgc_sheet = fdgc_wb['INFO']
                fdgc_sheet.cell(row=4, column=4).value = "%.8f" % bal_1
                fdgc_wb.save(r'data\crane_stats.xlsx')
            except Exception as err:
                error_hook.fatal_err("Не могу получить доступ к crane_stats.xlsx/INFO", err)
        except Exception:
            error_hook.warn_err("Не удалось узнать баланс")
        time.sleep(5)
        try:
            element = browser.find_element_by_xpath('//*[@id="free_play_captcha_types"]')
            all_options = element.find_elements_by_tag_name("option")
            print("[+]Выбор из: ")
            for option in all_options:
                print("\t - %s" % option.get_attribute("value"))
                if option.get_attribute("value") == self.captcha_to_use:
                    print("[+]Выбрал " + self.captcha_to_use)
                    option.click()
        except Exception:
            error_hook.warn_err("Не удалось выбрать капчу")
            return FreeDOGECO.check_timer(self, browser)
        time.sleep(8)
        solved_cap = RuCaptcha.captcha_solver(self.CAP, self.cap_img, self.cap_api, browser)
        if not solved_cap:
            error_hook.warn_err("Не удалось решить капчу")
            browser.close()
            return None
        try:
            captcha_point = browser.find_element_by_id("adcopy_response")
            captcha_point.clear()
            captcha_point.send_keys(str(solved_cap))
        except Exception as err:
            error_hook.fatal_err("Не удалось ввести капчу",err)
            browser.close()
            return FreeDOGECO.roller(self)
        try:
            # rollbutton = browser.find_element_by_xpath("/html/body/div[3]/div[1]/div[1]/div[2]/p[2]/input[1]")
            rollbutton = browser.find_element_by_xpath('//*[@id="free_play_form_button"]')
            browser.execute_script("return arguments[0].scrollIntoView();", rollbutton)
            rollbutton.click()
        except Exception:
            error_hook.warn_err("Не могу найти кнопку [ROLL!].Попробую еще раз...")
            return FreeDOGECO.check_timer(self, browser)
        print("[+]Я заролил!")
        time.sleep(2)
        try:
            closebutton = browser.find_element_by_xpath("/html/body/div[11]/a[1]")
            closebutton.click()
        except Exception:
            error_hook.warn_err("Не удалось закрыть всплывающее окно")
        try:
            browser.refresh()
            balance = browser.find_element_by_xpath("//*[@id='balance']")
            bal_2 = float(balance.text)
            print("[+]Баланс  =  " + str(bal_2) + " DOGE")
            try:
                fdgc_wb = openpyxl.load_workbook(filename=r'data\crane_stats.xlsx')
                fdgc_sheet = fdgc_wb['INFO']
                fdgc_sheet.cell(row=4, column=4).value = "%.8f" % float(bal_2)
                fdgc_wb.save(r'data\crane_stats.xlsx')
            except Exception as err:
                error_hook.fatal_err("Не могу получить доступ к crane_stats.xlsx/INFO", err)
            winnings = float(bal_2) - float(bal_1)
            print("[+]Прибыль = +" + ("%.2f" % winnings) + " DOGE")
            try:
                fdgc_wb = openpyxl.load_workbook(filename=r'data\crane_stats.xlsx')
                fdgc_sheet = fdgc_wb['INFO']
                fdgc_sheet.cell(row=5, column=4).value = "%.8f" % float(winnings)
                if float(fdgc_sheet.cell(row=5, column=4).value) > float(fdgc_sheet.cell(row=6, column=4).value):
                    fdgc_sheet.cell(row=6, column=4).value = "%.8f" % float(winnings)
                fdgc_wb.save(r'data\crane_stats.xlsx')
            except Exception as err:
                error_hook.fatal_err("Не могу получить доступ к crane_stats.xlsx/INFO", err)
        except Exception:
            error_hook.warn_err("Не удалось узнать баланс")


        end_rollFDCO = datetime.now() - start_rollFDCO
        browser.close()
        print("[%]Время, затраченное на ролл: " + str(end_rollFDCO))
        print("[.]Ожидаю следующего ролла...\n\n")
        return 3600