#!/usr/bin/python
# -*- coding: utf-8 -*-
# fede diaz aka nordri (nordri en gmail dot com)
# Programilla que me avisa de versiones nuevas en los documentos de Gentoo.

import os
from xml.dom.minidom import parse

mens = open("/tmp/mens.txt", "w")
mens.write("Resumen de las versiones de la documentación\n")

# Actualizamos el repositorio
cvs = os.system("cd /home/nordri/Cosas/linux/docs &&" \
                "cvs -d :pserver:anonymous@anoncvs.gentoo.org/var/cvsroot co gentoo")

# Recibe una lista de nodos del árbol xml y devuelve el texto del campo.
def getText(nodelist):
  rc = ""
  for node in nodelist:
    if node.nodeType == node.TEXT_NODE:
      rc = rc + node.data
  return rc

# Controla si hay nuevas versiones
nuevasVersiones = 0

CVSPATH = '/home/nordri/Cosas/linux/docs/gentoo/xml/htdocs/doc'

if cvs == 0: # Si la sincronización ha sido correcta

  # Versiones de xfce
  vxfce_en = getText(((parse(CVSPATH + '/en/xfce-config.xml')).getElementsByTagName('version'))[0].childNodes)
  vxfce_es = getText(((parse(CVSPATH + '/es/xfce-config.xml')).getElementsByTagName('version'))[0].childNodes)
	
  if vxfce_en != vxfce_es:
    mens.write("Las versiones de xfce no coinciden" + vxfce_en, vxfce_es)
    nuevasVersiones = 1
	
  # Versiones de gcc
  vgcc_en = getText(((parse(CVSPATH + '/en/gcc-optimization.xml')).getElementsByTagName('version'))[0].childNodes)
  vgcc_es = getText(((parse(CVSPATH + '/es/gcc-optimization.xml')).getElementsByTagName('version'))[0].childNodes)
	
  if vgcc_en != vgcc_es:
    mens.write("Las versiones de gcc no coinciden" + vgcc_en, vgcc_es)
    nuevasVersiones = 1
	
  # Versiones de Bluetooth
  vblue_en = getText(((parse(CVSPATH + '/en/bluetooth-guide.xml')).getElementsByTagName('version'))[0].childNodes)
  vblue_es = getText(((parse(CVSPATH + '/es/bluetooth-guide.xml')).getElementsByTagName('version'))[0].childNodes)
	
  if vblue_en != vblue_es:
    mens.write("Las versiones de bluetooth no coinciden" + vblue_en, vblue_es)
    nuevasVersiones = 1
	
  # Versiones de Xen	
  vxen_en = getText(((parse(CVSPATH + '/en/xen-guide.xml')).getElementsByTagName('version'))[0].childNodes)
  vxen_es = getText(((parse(CVSPATH + '/en/xen-guide.xml')).getElementsByTagName('version'))[0].childNodes)
	
  if vxen_en != vxen_es:
    mens.write("Las versiones de xen no coinciden" + vxen_en, vxen_es)
    nuevasVersiones = 1
	
else:
  mens.write("Error de sincronización con el cvs. Se aborta la operacion")
	
mens.close()

# Enviamos un correo si hay versiones nuevas.
if nuevasVersiones:
  os.system("cat /tmp/mens.txt | email -s \"Nuevas versiones de la documentacion\" nordri_gmail.com"