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

#tiempo
import time

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

ip = IPv4Address("10.50.1.23")  # 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='elecciones2024',
                              host='10.0.0.70',
                              user='postgres',
                              password='1234',
                              port='5432')
cursor = connection.cursor()
cursor.execute(" select * from telefonos2 where verdadero = False  ")
#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()

num = 0
for i in range(len(everything)):
    try:
        
        time.sleep(20) 

        num = num + 1
        cursor = connection.cursor()
        cursor.execute("INSERT INTO envio (numero) VALUES ('"+str(num)+"')")
        connection.commit()
        
        msj = f"""¡Hola! {everything[i][1]} estas incluido en el 1x10 del Inces con {everything[i][2]}. Ubica y registra tus 10 votos ingresando a elecciones2024.inces.gob.ve
                    ¡A ganar este 28 de Julio! #EsperanzaQueTransforma"""

        print('+58'+everything[i][0], msj)
        service.send_message('+58'+everything[i][0], msj)
        cursor = connection.cursor()
        cursor.execute("UPDATE telefonos2 SET verdadero = True WHERE telefono_hijo = '"+str(everything[i][0])+"' ")
        connection.commit()
        

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

connection.close()
    

    