from ipaddress import IPv4Address  # for your IP address
from pyairmore.request import AirmoreSession  # to create an AirmoreSession
from pyairmore.services.messaging import MessagingService  # to send messages
#import psycopg2
import psycopg2
from psycopg2 import DatabaseError
#from decouple import config

#tiempo
import time

# Medium article https://medium.com/@erayerdin/send-sms-with-python-eab7a5854d3a

ip = IPv4Address("10.60.0.162")  # let's create an IP address object
#ip = IPv4Address("10.50.1.20")  # let's create an IP address object
# now create a session
session = AirmoreSession(ip)
# if your port is not 2333
# session = AirmoreSession(ip, 2334)  # assuming it is 2334

print(session.is_server_running)  # True if Airmore is running

was_accepted = session.request_authorization()
print(was_accepted)  # True if accepted

service = MessagingService(session)
connection = psycopg2.connect(database='elecciones2025',
                              host='10.0.0.70',
                              user='postgres',
                              password='1234',
                              port='5432')
cursor = connection.cursor()
cursor.execute("SELECT * FROM sms WHERE enviado = False ORDER BY id ASC")
#cursor.execute("select * from mensaje where idmsj in (32250,32251,32252) ")
#cursor.execute("select * from mensaje order by idmsj DESC limit 16124 ")
everything = cursor.fetchall()


msj = '''
Caracas! Vamos con toda la energía para consolidar la victoria contundente en nuestra ciudad! Vamos a votar, que nadie se quede en casa 

Dip Nicolás Ernesto Maduro
'''


num = 0
while True:
     

    try:   
        for i in range(len(everything)):
            num = num + 1
            #cursor = connection.cursor()
            #cursor.execute("INSERT INTO sms_envio (numero) VALUES ('"+str(num)+"')")
            #connection.commit()
            print(f'+58{everything[i][0]}', msj)
            service.send_message(f'+58{everything[i][0]}', msj)
            cursor = connection.cursor()
            cursor.execute("UPDATE sms SET enviado = True WHERE numero_telefono = '"+str(everything[i][0])+"'")
            connection.commit()
            time.sleep(30)
    except ConnectionError:
        print('Error conexion')

#except Exception as ex:
    #cursor = connection.cursor()
    #cursor.execute("INSERT INTO sms_errores (mensaje, numero_telefono) VALUES ('"+str(ex)+"', '"+str(everything[i][1])+"')")
    #connection.commit()
 #   raise Exception(ex)

connection.close()
    

    
