Example #1
0
    def get_activation(self):
        # try get phone for youla.io
        activation = GetNumber(service=SmsService().Telegram,
                               country=SmsTypesPlus.Country.PA,
                               operator=SmsTypesPlus.Operator.any).request(
                                   self.wrapper)
        # show activation id and phone for reception sms
        print('id: {} phone: {}'.format(str(activation.id),
                                        str(activation.phone_number)))

        return activation
Example #2
0
wrapper = Sms('59f99Af3754fd7c9b5dA932840473d0A')

# getting balance
balance = GetBalance().request(wrapper)
# show balance
print('На счету {} руб.'.format(balance))

# getting free slots (count available phone numbers for each services)
available_phones = GetFreeSlots(country=SmsTypes.Country.UA).request(wrapper)
# show for vk.com, whatsapp and youla.io)
print('Telegram: {} номеров'.format(available_phones.Telegram.count))

# try get phone for youla.io
activation = GetNumber(
    service=SmsService().Telegram,
    country=SmsTypes.Country.UA,
    #operator=SmsTypes.Operator.Beeline
).request(wrapper)

print('id: {} phone: {}'.format(str(activation.id),
                                str(activation.phone_number)))

# getting and show current activation status
response = GetStatus(id=activation.id).request(wrapper)
print(response)
tel2 = open("tel2.txt", "w")
tel2.write(activation.phone_number)
tel2.close()

cpass = configparser.RawConfigParser()
Example #3
0
def google(driver, wait, sms_service=SMS_ACTIVATE, country='RU'):
    # Нажатие на кнопку Создать аккаунт для себя
    # wait_element_by_id(wait, 'ow313')
    # click(driver.find_element_by_id('ow313'))
    # pyautogui.press('down')
    # pyautogui.press('enter')

    # Ждём загрузку страницы
    wait_element_by_id(wait, 'firstName')

    # Генерируем данные
    faker = Faker()
    first_name = faker.first_name()
    last_name = faker.last_name()
    username = (first_name + last_name + str(faker.pyint()) +
                str(faker.pyint())).lower()
    password = faker.password()

    # Заполняем данные и переходим на следующую страницу
    logger.log('Ввожу имя')
    fill_field(driver.find_element_by_id('firstName'), first_name)
    logger.log('Ввожу фамилию')
    fill_field(driver.find_element_by_id('lastName'), last_name)
    logger.log('Ввожу никнейм')
    fill_field(driver.find_element_by_id('username'), username)
    logger.log('Ввожу пароль')
    fill_field(driver.find_element_by_name('Passwd'), password)
    logger.log('Ввожу ещё раз пароль')
    fill_field(driver.find_element_by_name('ConfirmPasswd'), password)
    click(driver.find_element_by_id('accountDetailsNext'))

    # Ждём загрузку страницы
    wait_element_by_id(wait, 'phoneNumberId')

    btn_next = driver.find_element_by_css_selector('#view_container button')

    logger.log('Ввожу номер телефона')

    count_number = 10
    index_number = 0
    skip = False
    while index_number < count_number:
        # Получаем номер телефона
        if sms_service == SMS_ACTIVATE:
            # noinspection PyBroadException
            try:
                wrapper = Sms('de4f456560f752027Ae21ce8238f4c85')
                activation = GetNumber(
                    service=SmsService().Gmail,
                    country=SmsTypes.Country().__getattribute__(
                        country)).request(wrapper)
                country_code = '+'
                number_phone = activation.phone_number
            except Exception:
                skip = True
                break
        elif sms_service == SMS_PVA:
            smspva = SmsPva()
            has_number = False
            while not has_number:
                time.sleep(70)
                response = smspva.get_number(country=country)
                if response['response'] == '5':
                    continue
                number_phone = response['number']
                phone_id = response['id']
                country_code = response['CountryCode']
                if number_phone is not None:
                    has_number = True

        # Вводим номер телефона и переходим на следующую страницу
        phone_number = driver.find_element_by_id('phoneNumberId')
        fill_field(phone_number, country_code + str(number_phone))
        # logger.log(country.lower())
        # action = ActionChains(driver)
        # action.click(driver.find_element_by_class_name('#countryList div[data-value="' + country.lower() + '"]'))
        # action.perform()
        click(btn_next)

        # noinspection PyBroadException
        try:
            while True:
                phone_number = driver.find_element_by_id('phoneNumberId')
                if phone_number.get_attribute('aria-invalid') != 'false':
                    logger.log('Деактивируем номер ' + country_code +
                               str(number_phone))
                    if sms_service == SMS_ACTIVATE:
                        activation.mark_as_used()
                    elif sms_service == SMS_PVA:
                        smspva.denial(phone_id)
                    break
                else:
                    time.sleep(1)
        except Exception:
            logger.log('+' + number_phone)
            logger.log('Переходим дальше')
            break

        index_number += 1

        if index_number == count_number:
            skip = True
            break

    if not skip:
        # Ждём загрузку страницы
        wait_element_by_id(wait, 'code')

        logger.log('Ввожу код из СМС')

        # Получаем код из СМС
        if sms_service == SMS_ACTIVATE:
            activation.was_sent()
            try:
                code = activation.wait_code(wrapper=wrapper)
            except Exception:
                close_browser(driver)
        elif sms_service == SMS_PVA:
            response = smspva.get_sms(phone_id)
            code = response['sms']
            while code == 'null':
                response = smspva.get_sms(phone_id)
                code = response['sms']

        # Вводим код из СМС и подтверждаем
        fill_field(driver.find_element_by_id('code'), code)

        btns = driver.find_elements_by_css_selector('#view_container button')
        click(btns[1])

        # Ждём следующую страницу
        wait_element_by_id(wait, 'day')

        emails = [
            '*****@*****.**', '*****@*****.**',
            '*****@*****.**', '*****@*****.**',
            '*****@*****.**', '*****@*****.**',
            '*****@*****.**'
        ]
        index = random.randint(0, len(emails) - 1)
        logger.log('Ввожу дполнительный email')
        fill_field(driver.find_element_by_css_selector('input[type="email"]'),
                   emails[index])

        # Заполняем дату рождения и выбираем пол
        logger.log('Ввожу дату рождения и пол')
        fill_field(driver.find_element_by_id('day'), str(random.randint(1,
                                                                        28)))
        click(driver.find_element_by_id('month'))

        month = random.randint(1, 12)
        i = 0
        while i < month:
            time.sleep(random.random() / 2)
            pyautogui.press('down')
            i += 1
        pyautogui.press('Enter')

        year = random.randint(20, 50)
        fill_field(driver.find_element_by_id('year'),
                   str(datetime.now().year - year))
        click(driver.find_element_by_id('gender'))
        pyautogui.press('down')
        time.sleep(random.random())
        pyautogui.press('down')
        time.sleep(random.random())
        pyautogui.press('Enter')

        # Нажимаем на кнопку далее
        btn_next = driver.find_element_by_css_selector(
            '#view_container button')
        click(btn_next)

        # Ждём загрузку страницы
        wait_element_by_id(wait, 'learnMore')

        # Пропускаем страницу
        btns = driver.find_elements_by_css_selector('#view_container button')
        click(btns[-1])

        # Ждём загрузку страницы
        wait_element_by_id(wait, 'termsofserviceNext')

        # Скроллим вниз страницы
        driver.execute_script(
            "window.scrollTo(0, document.body.scrollHeight);")
        time.sleep(1)

        file = open('google.txt', 'a')
        logger.log(username + '@gmail.com / ' + password)
        file.write(username + '@gmail.com / ' + password + "\r\n")
        file.close()

        # Нажимаем кнопку "Принимаю"
        logger.log('Принимаю условия')
        action = ActionChains(driver)
        checkbox = driver.find_element_by_id('selectionc0')
        action.move_to_element(checkbox)
        action.perform()
        checkbox.click()
        time.sleep(1)
        checkbox = driver.find_element_by_id('selectionc3')
        action.move_to_element(checkbox)
        action.perform()
        checkbox.click()
        time.sleep(1)
        confirm = driver.find_element_by_id('termsofserviceNext')
        action.move_to_element(confirm)
        action.perform()
        confirm.click()
        time.sleep(1)
        confirm = driver.find_element_by_id('confirmdialog-confirm')
        action.move_to_element(confirm)
        action.perform()
        confirm.click()
        return True

    return False
# getting balance
balance = GetBalance().request(wrapper)
# show balance
print('На счету {} руб.'.format(balance))

# getting free slots (count available phone numbers for each services)
available_phones = GetFreeSlots(country=SmsTypes.Country.RU).request(wrapper)
# show for vk.com, whatsapp and youla.io)
print('vk.com: {} номеров'.format(available_phones.VkCom.count))
print('whatsapp: {} номеров'.format(available_phones.Whatsapp.count))
print('youla.io: {} номеров'.format(available_phones.Youla.count))

# try get phone for youla.io
activation = GetNumber(service=SmsService().Youla,
                       country=SmsTypes.Country.RU,
                       operator=SmsTypes.Operator.Beeline).request(wrapper)
# show activation id and phone for reception sms
print('id: {} phone: {}'.format(str(activation.id),
                                str(activation.phone_number)))

# getting and show current activation status
response = GetStatus(id=activation.id).request(wrapper)
print(response)

# .. send phone number to you service
user_action = input('Press enter if you sms was sent or type "cancel": ')
if user_action == 'cancel':
    set_as_cancel = SetStatus(id=activation.id,
                              status=SmsTypes.Status.Cancel).request(wrapper)
    print(set_as_cancel)
# ------------------------------ #

# getting free slots (count available phone numbers for each services)
available_phones = GetFreeSlots(
    country=SmsTypes.Country.RU,
    operator=SmsTypes.Operator.TELE2).request(wrapper)
# show for vk.com, whatsapp and youla.io)
print('vk.com: {} номеров'.format(available_phones.VkCom.count))
print('whatsapp: {} номеров'.format(available_phones.Whatsapp.count))
print('youla.io: {} номеров'.format(available_phones.Youla.count))

# ------------------------------ #

# try get phone for youla.io
activation = GetNumber(service=SmsService().Youla,
                       country=SmsTypes.Country.RU,
                       operator=SmsTypes.Operator.Beeline).request(wrapper)

# show activation id and phone for reception sms
print('id: {} phone: {}'.format(str(activation.id),
                                str(activation.phone_number)))

# .. send phone number to you service
user_action = input('Press enter if you sms was sent or type "cancel": ')
if user_action == 'cancel':
    activation.cancel()
    exit(1)

# set current activation status as SmsSent (code was sent to phone)
activation.was_sent()