PyWhatsapp | Whatsapp Automation

by Shaurya Uppal

Python Automation using Selenium & Scheduling of messages and media

REPOSITORY LINK:

https://github.com/shauryauppal/PyWhatsapp

Objective:

Pywhatsapp is used to Automate Whatsapp through Whatsapp web. We can add a number of contacts whom we want to send messages or Media attachments ( like Video or Images). Selenium, Autoit, and Schedule have been used one from Automation and other for Scheduling messages.

Use Case:

We can schedule Good Morning or Good night messages with a nice Picture at a particular time to our loved ones. We can set reminders. Suppose at 12 o’clock you want to wish your friend happy birthday so schedule your messages and sleep peacefully.

Install

$ pip install -r requirements.txt

OR

$ pip install selenium

$ pip install schedule

$ pip install PyAutoIt

Platform: Windows

ChromeDriver used: If this versions becomes outdated or gives problem download the latest version from Download Link

For Sending Attachments you need to Install AutoIt (Optional if you only what to send messages):

You may install from the links given below or Install from the folder named “Install Auto-It for Sending Attachments” in the repository.

Official Website Download Webpage

Installation Link of AutoIt.exe

AutoitScript Editor (optional to install)

Installation is pretty Simple no changes in setting are required keep everything default. Few clicks on Next and you are done.

Code:

input_contacts()

In this functions Contacts list can be hard coded or you can give input accordingly.(Make changes in Contact array according to you)

1.Enter Saved Contact number->
2.Enter Unsaved Contact number->
Enter your choice(1 or 2):->1
# For saved Contacts
Enter number of Contacts to add(count)->1
Enter contact name(text)->Shaurya
# For unsaved Contacts
Enter number of unsaved Contacts to add(count)->1
Enter unsaved contact number with country code(integer)->919899123456

NOTE: For unsaved contacts:

Do enter your country code then contact number.

Use: 919899123456

Don’t Use: +919899123456

input_message()

In this function we take input of message to send to all the Contacts list from user.

Example:

Enter the msg to send-> Good morning

Enter choice whether to send attachments or not.

Would you like to send attachment(yes/no): yes Answer the input with yes or no.

send_attachments()

NOTE: Add Photos & Videos in the Media Folder.

image_path = os.getcwd() +”\Media\” + ‘goodmorning.jpg’

Example path to send goodmorning image to your listed Contacts.

  • “hour” variable is used to check current Hour on the clock and according image is sent to the Contact.
  • If time is after 5am and before 11am schedule goodmorning.jpg image.
  • If time is after 9pm schedule goodnight image.
  • If time is anyother send howareyou image.

You can set your own photos at a particular time feel free to do that.

send_files()

NOTE: Add the document in the documents folder.

Would you file to send a Document file(yes/no): yes

Enter the Document file name you want to send: opportunity

  • If the document file names are same then write the document name with extension like opportunity.pdf or opportunity.txt

Schedule messages and Attachments

schedule.every().Monday.at(“06:00”).do(sender)

schedule.every().Tuesday.at(“07:00”).do(sender)

schedule.every().Friday.at(“07:30”).do(sender)

schedule.every().day.at(“08:30”).do(sender)

  • You make change these schedule days and time according to you.

Input Screenshot:

Demo of Working (GIF)

Contributions

Issues and Pull requests are most welcome.

License

License Code and documentation are available according to the Apache License (see LICENSE).

Author:

Shaurya Uppal

shauryauppal00111@gmail.com

Feel free to mail me for any queries (After you have tried finding your solution).

--

--

--

Data Scientist @ Inmobi | ex-1mg, epiFi | https://www.linkedin.com/in/shaurya-uppal/

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Shaurya Uppal

Shaurya Uppal

Data Scientist @ Inmobi | ex-1mg, epiFi | https://www.linkedin.com/in/shaurya-uppal/

More from Medium

Creating an EC2 Instance with an Apache Web Server Using AWS CLI

Understand AWS Fargate costing with an experiment.

Hosting a static website With S3 and CloudFront

Amazon Rekognition With Nodejs Part 1