#!/usr/bin/env python
#Desarrollado por RadicalEd
import sys, os
import pynotify, MySQLdb
#Tomado nuevamente del blog de Daniel Garcia Moreno
comando = 'zenity --text "Kilometraje actual" --entry'
entrada, salida = os.popen2(comando)
kmact = salida.read()
kmact = int(kmact.strip())#Lo convertimos a entero
#Nos conectamos a la DB
conn = MySQLdb.connect(host="localhost", user="usdist", passwd="clio1214", db="paginafiles")
#Creamos un cursor para ejecutar las sentencias SQL
cursor = conn.cursor()
#El script a ejecutar
cursor.execute('SELECT * FROM gasto')
registros = int(cursor.rowcount)
#Instanciamos variables
#Se que dieciocho mil pesos en mi moto son 450km de gasolina (100%)
dinerogas, kmgasolina = 18000, 450.0
#Se que trece mil cuatrocientos en mi moto son 1500km de aceite (100%)
dineroace, kmaceite = 13400, 1500.0
gasolina = 0
aceite = 0
mostrar = '' #Mensaje a mostrar
#Campos de la DB
for x in range(registros):
row = cursor.fetchone()
gasto = row[4] #Tipo de gasto
#Para hacer la suma de cuanto llevamos en GASOLINA y en ACEITE
if gasto == 'GASOLINA':
gasolina += int(row[2])
ultkmgas = int(row[3]) #Ultimo kilometraje gasolina
ultfechagas = row[1] #Ultima fecha gasolina
elif gasto == 'ACEITE':
aceite += int(row[2])
ultkmace = int(row[3]) #Ultimo kilometraje aceite
ultfechaace = row[1] #Ultima fecha aceite
#Calculos
gastogas = kmact - ultkmgas #Gasto gasolina
kmrestgas = kmgasolina - gastogas #Kilometros restantes gasolina
porcentgas = (kmrestgas / kmgasolina) * 100 #Porcentaje restante gasolina
gastoace = kmact - ultkmace #Gasto aceite
kmrestace = kmaceite - gastoace #Kilometros restantes aceite
porcentace = (kmrestace / kmaceite) * 100 #Porcentaje restante gasolina
#Alertas para gasolina y aceite
if kmrestgas <= 20:
mostrar += 'Favor tanquear a tiempo, solo queda el %d%s restante de gasolina' % (porcentgas, chr(37))
if kmrestace <= 100:
mostrar += 'nnFavor cambiar aceite a tiempo, solo queda el %d%s restante de este' % (porcentace, chr(37))
mostrar += "nnHas gastado %dkm en Aceite, te queda un %d%s osea %dkm" % (gastoace, porcentace, chr(37), kmrestace)
mostrar += "nnHas gastado %dkm en Gasolina, te queda un %d%s osea %dkm" % (gastogas, porcentgas, chr(37), kmrestgas)
if __name__ == '__main__':
if not pynotify.init("Al no iniciarse"):
#Nos salimos
sys.exit(1)
n = pynotify.Notification(mostrar)
n.set_timeout(15000) #Que se muestre el mensaje durante 15 segundos
#Sino se muestra
if not n.show():
print "Fallo al mostrar la info"
sys.exit(1)