diff --git a/pywhatkit/core/core.py b/pywhatkit/core/core.py index a6edea4..d4514e4 100644 --- a/pywhatkit/core/core.py +++ b/pywhatkit/core/core.py @@ -10,6 +10,9 @@ from pywhatkit.core.exceptions import InternetException +import pyperclip +from emoji.core import is_emoji + WIDTH, HEIGHT = size() @@ -100,20 +103,26 @@ def _web(receiver: str, message: str) -> None: open("https://web.whatsapp.com/accept?code=" + receiver) -def send_message(message: str, receiver: str, wait_time: int) -> None: +def send_message(message: str, receiver: str, wait_time: int, use_copy_paste=False) -> None: """Parses and Sends the Message""" _web(receiver=receiver, message=message) time.sleep(7) - click(WIDTH / 2, HEIGHT / 2 + 15) + click(WIDTH / 2, HEIGHT / 2) time.sleep(wait_time - 7) if not check_number(number=receiver): - for char in message: - if char == "\n": - hotkey("shift", "enter") - else: - typewrite(char) - findtextbox() + if not use_copy_paste: + for char in message: + if char == "\n": + hotkey("shift", "enter") + elif char_is_emoji(char): + pyperclip.copy(char) + hotkey("ctrl","v") + else: + typewrite(char) + else: + pyperclip.copy(message) + hotkey("ctrl","v") press("enter") @@ -193,3 +202,7 @@ def send_image(path: str, caption: str, receiver: str, wait_time: int) -> None: time.sleep(1) findtextbox() press("enter") + +def char_is_emoji(character) -> bool: + """Determines if a char is a emoji or not""" + return is_emoji(character) diff --git a/pywhatkit/whats.py b/pywhatkit/whats.py index 4f823b2..91349f5 100755 --- a/pywhatkit/whats.py +++ b/pywhatkit/whats.py @@ -177,6 +177,7 @@ def sendwhatmsg_to_group( wait_time: int = 15, tab_close: bool = False, close_time: int = 3, + use_copy_paste=False, ) -> None: """Send WhatsApp Message to a Group at a Certain Time""" @@ -201,7 +202,7 @@ def sendwhatmsg_to_group( f"In {sleep_time} Seconds WhatsApp will open and after {wait_time} Seconds Message will be Delivered!" ) time.sleep(sleep_time) - core.send_message(message=message, receiver=group_id, wait_time=wait_time) + core.send_message(message=message, receiver=group_id, wait_time=wait_time, use_copy_paste=use_copy_paste) log.log_message(_time=current_time, receiver=group_id, message=message) if tab_close: core.close_tab(wait_time=close_time) @@ -213,12 +214,13 @@ def sendwhatmsg_to_group_instantly( wait_time: int = 15, tab_close: bool = False, close_time: int = 3, + use_copy_paste=False, ) -> None: """Send WhatsApp Message to a Group Instantly""" current_time = time.localtime() time.sleep(4) - core.send_message(message=message, receiver=group_id, wait_time=wait_time) + core.send_message(message=message, receiver=group_id, wait_time=wait_time, use_copy_paste=use_copy_paste) log.log_message(_time=current_time, receiver=group_id, message=message) if tab_close: core.close_tab(wait_time=close_time) diff --git a/requirements.txt b/requirements.txt index 84c627c..aa94010 100755 --- a/requirements.txt +++ b/requirements.txt @@ -8,3 +8,4 @@ flask~=2.2.2 setuptools~=62.1.0 pyperclip~=1.8.2 keyboard~=0.13.5 +emoji==2.6.0 \ No newline at end of file