Exemplo n.º 1
0
async def chat(target):
    logger.info("Chatting with target")
    page, _ = await browser_config.configure_browser_and_load_whatsapp()

    if target is not None:
        try:
            await target_search.search_and_select_target(page, target)
        except Exception as e:
            print(e)
            await target_search.search_and_select_target_without_new_chat_button(
                page, target)
    else:
        await target_select.manual_select_target(page)

    print("\033[91m {}\033[00m".format(
        "\nType '...' in a new line or alone in the message to change target person.\n\n"
    ))

    while True:
        message: list[str] = io.ask_user_for_message_breakline_mode()

        if '...' in message:
            message.remove('...')
            await io.send_message(page, message)
            target = input("\n\nNew Target Name: ")
            if target is not None:
                await target_search.search_and_select_target(page, target)
            else:
                await target_select.manual_select_target(page)
            message = io.ask_user_for_message_breakline_mode()

        await io.send_message(page, message)
Exemplo n.º 2
0
async def msgTimer(target):
    page, _ = await browser_config.configure_browser_and_load_whatsapp()

    await target_search.search_and_select_target(page, target)

    #region INPUTS
    message_type_numbers = int(
        input("How many types of messages will you send? "))
    messages = list()
    for _ in range(message_type_numbers):
        messages.append(io.ask_user_for_message_breakline_mode())
    number_of_messages = int(input("Enter the number of messages to send: "))
    minimumTimeInterval = int(
        input("Enter minimum interval number in seconds: "))
    maximumTimeInterval = int(
        input("Enter maximum interval number in seconds: "))
    #endregion

    random.seed()
    for _ in range(number_of_messages):
        if not messages:
            break
        await io.send_message(
            page, messages[random.randrange(0, message_type_numbers)])
        if minimumTimeInterval != maximumTimeInterval:
            time.sleep(
                random.randrange(minimumTimeInterval, maximumTimeInterval))
        else:
            time.sleep(minimumTimeInterval)
Exemplo n.º 3
0
async def blast(target):
    page, _ = await browser_config.configure_browser_and_load_whatsapp()
    await target_search.search_and_select_target(page, target)
    message = io.ask_user_for_message_breakline_mode()
    number_of_messages = int(input("Enter the number of messages to blast: "))
    for _ in range(number_of_messages):
        await io.send_message(page, message)
Exemplo n.º 4
0
async def message_timer(target):
    page, _ = await browser_config.configure_browser_and_load_whatsapp()
    if target is not None:
        try:
            await target_search.search_and_select_target(page, target)
        except Exception as e:
            print(e)
            await page.reload()
            await target_search.search_and_select_target_without_new_chat_button(page, target)
    else:
        await target_select.manual_select_target(page)
    # Region INPUTS
    __logger.info("Input message information for message timer")
    message_type_numbers : int = int(
        input("How many types of messages will you send? "))
    messages : list[str] = list()
    for _ in range(message_type_numbers):
        messages.append(io.ask_user_for_message_breakline_mode())
    number_of_messages : int = int(input("Enter the number of messages to send: "))
    minimumTimeInterval : int = int(
        input("Enter minimum interval number in seconds: "))
    maximumTimeInterval : int = int(
        input("Enter maximum interval number in seconds: "))
    # Endregion

    random.seed()
    for _ in range(number_of_messages):
        if not messages:
            break
        await io.send_message(page, messages[random.randrange(0, message_type_numbers)])
        if minimumTimeInterval != maximumTimeInterval:
            time.sleep(random.randrange(minimumTimeInterval, maximumTimeInterval))
        else:
            time.sleep(minimumTimeInterval)
Exemplo n.º 5
0
async def chat(target):
    page, _ = await browser_config.configure_browser_and_load_whatsapp()

    await target_search.search_and_select_target(page, target)

    while True:
        message = io.ask_user_for_message_breakline_mode()
        await io.send_message(page, message)
Exemplo n.º 6
0
async def chat(target):
    initial_minimize = True
    __logger.info("Chatting with target")
    page, _ = await browser_config.configure_browser_and_load_whatsapp()

    if target is not None:
        try:
            await target_search.search_and_select_target(page, target)
        except Exception as e:
            print(e)
            await page.reload()
            await target_search.search_and_select_target_without_new_chat_button(
                page, target)
    else:
        target = await target_select.manual_select_target(page)

    print("\033[91m {}\033[00m".format(
        "\nType '...' in a new line or alone in the message to change target person.\nType '#_FILE' to send Image/Video/Documentd etc.\n"
    ))

    while True:
        if (initial_minimize):
            browser_config.minimize()
            initial_minimize = False

        await getMessages(page, target)
        message: list[str] = io.ask_user_for_message_breakline_mode()

        if '...' in message:
            message.remove('...')
            await io.send_message(page, message)
            target = input("\n\nNew Target Name: ")
            if target is not None:
                await target_search.search_and_select_target(page, target)
            else:
                await target_select.manual_select_target(page)
            message = io.ask_user_for_message_breakline_mode()

        # File Share:
        if '#_FILE' in message:
            message.remove('#_FILE')
            await io.send_file(page)
        await getMessages(page, target)
        await io.send_message(page, message)
Exemplo n.º 7
0
async def chat(target):
    logger.info("Chatting with target")
    page, _ = await browser_config.configure_browser_and_load_whatsapp()
    if target is not None:
        await target_search.search_and_select_target(page, target)
    else:
        await target_select.manual_select_target(page)

    while True:
        message = io.ask_user_for_message_breakline_mode()
        await io.send_message(page, message)
Exemplo n.º 8
0
async def message_blast(target: str):
    page, _ = await browser_config.configure_browser_and_load_whatsapp()
    if target is not None:
        await target_search.search_and_select_target_all_ways(page, target)  
    else:
        await target_select.manual_select_target(page)
    message : List[str] = io.ask_user_for_message_breakline_mode()
    number_of_messages : int = int(input("Enter the number of messages to blast: "))
    __logger.debug("Blasting messages")
    for _ in range(number_of_messages):
        await io.send_message(page, message)
Exemplo n.º 9
0
async def blast(target):
    page, _ = await browser_config.configure_browser_and_load_whatsapp()
    if target is not None:
        await target_search.search_and_select_target(page, target)
    else:
        await target_select.manual_select_target(page)
    message = io.ask_user_for_message_breakline_mode()
    number_of_messages = int(input("Enter the number of messages to blast: "))
    for _ in range(number_of_messages):
        logger.info("Blasting messages")
        await io.send_message(page, message)
Exemplo n.º 10
0
async def broadcast():
    __logger.info("Broadcast message.")
    page, _ = await browser_config.configure_browser_and_load_whatsapp()
    numbers = ProcessNumbers()
    message: List[str] = io.ask_user_for_message_breakline_mode()

    for number in numbers:
        if await search_target_by_number(page, number):
            await io.send_message(page, message)

    __logger.info("Messages broadcasted successfully!")
    print("Messages broadcasted successfully!")
Exemplo n.º 11
0
async def blast(target):
    page, _ = await browser_config.configure_browser_and_load_whatsapp()
    if target is not None:
        try:
            await target_search.search_and_select_target(page, target)
        except Exception as e:
            print(e)
            await page.reload()
            await target_search.search_and_select_target_without_new_chat_button(
                page, target)
    else:
        await target_select.manual_select_target(page)
    message: list[str] = io.ask_user_for_message_breakline_mode()
    number_of_messages: int = int(
        input("Enter the number of messages to blast: "))
    for _ in range(number_of_messages):
        logger.info("Blasting messages")
        await io.send_message(page, message)
Exemplo n.º 12
0
async def schedule_message(target):
    page, _ = await browser_config.configure_browser_and_load_whatsapp()
    if target is not None:
        await target_search.search_and_select_target(page, target)
    else:
        await target_select.manual_select_target(page)
    time_ = input("Enter the schedule time in HH:MM:SS format-> ")
    hour, minute, second = time_.split(':')
    current_time = datetime.now()
    delta_hour: int = int(hour) - current_time.hour
    delta_min: int = int(minute) - current_time.minute
    delta_second: int = int(second) - current_time.second
    total_seconds: int = delta_hour * 3600 + delta_min * 60 + delta_second
    if total_seconds < 0:
        print("Current time is ahead of the scheduled time")
        sys.exit()
    message: list[str] = io.ask_user_for_message_breakline_mode()
    print("Your message is scheduled at : ", time_)
    time.sleep(total_seconds)
    await io.send_message(page, message)
Exemplo n.º 13
0
async def chat(target):
    __logger.info("Chatting with target")
    page, _ = await browser_config.configure_browser_and_load_whatsapp()

    if target is not None:
        try:
            await target_search.search_and_select_target(page, target)
        except Exception as e:
            print(e)
            await page.reload()
            await target_search.search_and_select_target_without_new_chat_button(page, target)
    else:
        target = await target_select.manual_select_target(page)

    # selectors
    selector_values = "#main > div > div > div > div > div > div > div > div"
    selector_sender = "#main > div > div > div > div > div > div > div > div > div.copyable-text"

    # Getting all the messages of the chat
    try:
        __logger.info("Printing recent chat")
        await page.waitForSelector(selector_values)
        values = await page.evaluate(f'''() => [...document.querySelectorAll('{selector_values}')]
                                                    .map(element => element.textContent)''')
        sender = await page.evaluate(f'''() => [...document.querySelectorAll('{selector_sender}')]
                                                    .map(element => element.getAttribute("data-pre-plain-text"))''')
        new_values = [x[:-8] for x in values]
        new_list = [a + b for a, b in zip(sender, new_values)]
        final_list = new_list[-6:]
        for s in final_list:
            print("%s\n" % s)
    except Exception as e:
        print(e)

    print("\033[91m {}\033[00m".format("\nType '...' in a new line or alone in the message to change target person.\nType '#_FILE' to send Image/Video/Documentd etc.\nType '#_TTS' to convert text to speech and send audio file.\nType '#_FWD' to foward your last message received"))

    while True:
        await getMessages(page, target)
        message: list[str] = io.ask_user_for_message_breakline_mode()

        # Target Change
        if "..." in message:
            message.remove('...')
            await io.send_message(page, message)
            target = input("\n\nNew Target Name: ")
            if target is not None:
                await target_search.search_and_select_target(page, target)
            else:
                await target_select.manual_select_target(page)
            message = io.ask_user_for_message_breakline_mode()

        # Be an Intermediator
        if "#_FWD" in message:
            await target_search.search_and_select_target(page, intermediary.rec)
            await io.send_message(page, getMessages.foward_message)
            message = io.ask_user_for_message_breakline_mode()

        # Text to speech
        if "#_TTS" in message:
            await text_to_speech.text_to_speech(target)
            await io.send_file(page)

        # File Share:
        if "#_FILE" in message:
            message.remove("#_FILE")
            await io.send_file(page)

        await getMessages(page, target)
        await io.send_message(page, message)