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)
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)
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)
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)
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)
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)
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)
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)
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)
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!")
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)
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)
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)