ch


SUBMITTED BY: Cronus

DATE: Feb. 15, 2024, 9:14 a.m.

UPDATED: Feb. 19, 2024, 2:09 p.m.

FORMAT: Text only

SIZE: 4.4 kB

HITS: 1882

  1. import time
  2. import random
  3. from selenium import webdriver
  4. from selenium.webdriver.common.by import By
  5. from selenium.webdriver.support.ui import WebDriverWait
  6. from selenium.webdriver.support import expected_conditions as EC
  7. from colorama import Fore, Style
  8. # Função para gerar nomes de usuário aleatórios
  9. def generate_random_username():
  10. first_names = ["maria", "joao", "ana", "pedro", "carlos", "luis", "fernanda", "julia", "gabriel", "rafael"]
  11. last_names = ["silva", "santos", "oliveira", "pereira", "costa", "rodrigues", "almeida", "nascimento", "azevedo", "ferreira"]
  12. username = random.choice(first_names) + "-" + random.choice(last_names)
  13. return username
  14. # Função para gerar URLs completos de email
  15. def generate_email_url(username):
  16. return f"https://tuamaeaquelaursa.com/{username}"
  17. # Função para abrir o Chrome
  18. def open_chrome():
  19. driver = webdriver.Chrome()
  20. return driver
  21. # Função para verificar se a mensagem "Tua mãe, aquela ursa não encontrou tuas cartas." está presente
  22. def check_for_error_message(driver):
  23. try:
  24. WebDriverWait(driver, 15).until(EC.visibility_of_element_located((By.XPATH, '//p[contains(text(), "Tua mãe, aquela ursa não encontrou tuas cartas.")]')))
  25. return True
  26. except:
  27. return False
  28. # Função para imprimir os resultados em cores diferentes usando colorama
  29. def print_result(username, email_url, account_exists):
  30. if account_exists:
  31. print(Fore.GREEN + f"A conta com o username {username} existe. URL do email: {email_url}" + Style.RESET_ALL)
  32. else:
  33. print(Fore.RED + f"A conta com o username {username} não existe. URL do email: {email_url}" + Style.RESET_ALL)
  34. # Função para solicitar o tempo de espera ao usuário
  35. def get_wait_time():
  36. print("Escolha o tempo de espera antes de verificar se a página está carregada completamente:")
  37. print("1. 5 segundos")
  38. print("2. 10 segundos")
  39. print("3. 15 segundos")
  40. print("4. 20 segundos")
  41. print("5. 25 segundos")
  42. print("6. 30 segundos")
  43. choice = int(input("Digite o número correspondente ao tempo desejado: "))
  44. if choice == 1:
  45. return 5
  46. elif choice == 2:
  47. return 10
  48. elif choice == 3:
  49. return 15
  50. elif choice == 4:
  51. return 20
  52. elif choice == 5:
  53. return 25
  54. elif choice == 6:
  55. return 30
  56. else:
  57. print("Opção inválida. Usando o tempo padrão de 15 segundos.")
  58. return 15
  59. # Função para mostrar o menu inicial
  60. def show_menu():
  61. print("Bem-vindo ao gerador de contas de email!")
  62. print("Por favor, escolha uma das opções abaixo:")
  63. print("1. Começar a gerar contas de email")
  64. print("2. Sair do programa")
  65. # Função principal
  66. def main():
  67. while True:
  68. show_menu()
  69. choice = input("Digite o número da opção desejada: ")
  70. if choice == '1':
  71. generate_email_accounts()
  72. elif choice == '2':
  73. print("Obrigado por usar nosso programa. Até mais!")
  74. break
  75. else:
  76. print("Opção inválida. Por favor, escolha uma opção válida.")
  77. # Função para gerar as contas de email
  78. def generate_email_accounts():
  79. # Solicita ao usuário o tempo de espera desejado
  80. wait_time = get_wait_time()
  81. # Entrada da quantidade de contas a serem geradas
  82. num_accounts = int(input("Digite a quantidade de contas que deseja gerar: "))
  83. # Loop para gerar e verificar as contas
  84. for _ in range(num_accounts):
  85. # Geração de nome de usuário aleatório
  86. username = generate_random_username()
  87. # Abre o Chrome
  88. driver = open_chrome()
  89. # Abre a página do email
  90. email_url = generate_email_url(username)
  91. driver.get(email_url)
  92. # Espera o tempo escolhido antes de verificar se a página está carregada completamente
  93. time.sleep(wait_time)
  94. # Verifica se a mensagem de erro está presente na página
  95. error_message_exists = check_for_error_message(driver)
  96. # Determina se a conta existe com base na presença da mensagem de erro
  97. account_exists = not error_message_exists
  98. # Imprime o resultado
  99. print_result(username, email_url, account_exists)
  100. # Fecha o navegador após a verificação
  101. driver.quit()
  102. # Executa o programa
  103. if __name__ == "__main__":
  104. main()

comments powered by Disqus