import requests, json, sys, urllib3,os,csv
from os import path
import time
import pandas as pd
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from datetime import datetime

dir_path = path.dirname(path.realpath(__file__))
# Load contacts
df = pd.read_excel("E:/DevEnv/wp/contacts.xlsx")  # Must have a column 'Phone'

# Set up Chrome WebDriver
options = Options()
options.add_argument("--no-sandbox")
options.add_argument("--disable-dev-shm-usage")
# options.add_argument("--user-data-dir=C:/Users/sumit/AppData/Local/Google/Chrome/User Data")
# options.add_argument("--profile-directory=Default")

driver_path = "C:/tools/chromedriver.exe"  # Make sure this path is correct
driver = webdriver.Chrome(service=Service(driver_path), options=options)

# Open WhatsApp Web
driver.get("https://web.whatsapp.com")
input("Scan QR code and press ENTER here when ready...")
#creating LOG file
def log(note, timestamp):
	with open(f'{dir_path}/log.txt', 'a+') as f:
		f.write(f'{note}, {timestamp} \n')
# Send messages
for i, row in df.iterrows():
    try:
        name = row["NAME"]
        number = row["Phone"]
        msg = (
            f"🙏 नमस्कार {name} 🙏%0A%0A"
            "अत्यंत हर्ष का विषय है की मालवीय लोहार समाज – उदयपुर शहर, चोखला की कार्यकारिणी का चुनाव संपन्न होने जा रहा है।%0A"
            "इस चुनाव में अध्यक्ष, उपाध्यक्ष एवं महामंत्री पदों हेतु मतदान संपन्न होगा।%0A"
            "आप सभी समाजबंधुओं से विनम्र अनुरोध है कि आप पधारकर अपने अमूल्य मत द्वारा समाज की भावी दिशा तय करने में अपना सक्रिय योगदान प्रदान करें।%0A%0A"
            "दिनांक: 13 अप्रैल (रविवार)%0A🕗 प्रातः 8 बजे से सांय 4 बजे तक%0A📍 स्थान: भगवान रूप नारायण मंदिर, मोतीचोहट्टा उदयपुर %0A%0A"
            "आपकी उपस्थिति – हमारा संबल %0A%0A निवेदक : दीपक गोराणा (महामंत्री पद उमीदवार) चुनाव चिन्ह टेलीफोन ☎️"
        )
        url = f"https://web.whatsapp.com/send?phone={number}&text={msg}"
        driver.get(url)
        time.sleep(10)  # Wait for chat to load

        try:
            send_btn = driver.find_element(By.XPATH, '//span[@data-icon="send"]')
            send_btn.click()
            print(f"{i}✅ Message sent to {number}")
            log(f"{i} Message sent to {number}", datetime.now())
        except Exception as e:
            print(f"{i}❌ Could not send to {number}: {e}")
            log(f"{i} Could not send to {number}", datetime.now())


        time.sleep(7)  # Delay between messages
    except Exception as e:
        print(f"{i} Skip Number {number}: {e}")
        log(f"{i} Skip Number {number}", datetime.now())

driver.quit()
