import requests
from requests.auth import HTTPDigestAuth
import logging
import csv

# Configure logging
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')

# Replace with your actual Buyer/Seller username and API Key for Digest Authentication
username = ''
password = ''

# CSV file setup
csv_filename = 'lookup_results.csv'

def write_to_csv(phone_number, data):
    with open(csv_filename, mode='a', newline='') as file:
        writer = csv.writer(file)
        writer.writerow([phone_number, data])

def lookup_phone_number(phone_number):
    url = f"https://apiv2.neutrafix.telin.net/buyers/hlr/lookup/{phone_number}"
    try:
        response = requests.post(url, auth=HTTPDigestAuth(username, password), data={'i_account': '35'})

        if response.status_code == 200:
            logging.info(f"Successful lookup for {phone_number}")
            return response.json()
        else:
            logging.error(f"Failed lookup for {phone_number}: {response.status_code}, {response.text}")
            return None
    except requests.RequestException as e:
        logging.error(f"Request exception for {phone_number}: {e}")
        return None

# List of phone numbers
phone_numbers = ['19542405401', '19542405402', '19542405403'] # Add more numbers as needed

print("Starting phone number lookup script...")

# Create or clear the CSV file before starting the lookups
with open(csv_filename, mode='w', newline='') as file:
    writer = csv.writer(file)
    writer.writerow(["Phone Number", "Response"])

# Iterate over the list of phone numbers and perform lookups
for number in phone_numbers:
    print(f"Processing {number}...")
    result = lookup_phone_number(number)
    if result:
        write_to_csv(number, result)
        print(f"Lookup result for {number} saved to CSV.")

print("Script completed.")