#!/usr/bin/env python
# encoding: UTF-8
#### notification gmail
#### Crabman juillet 2012
#### minimal script pour conky par exemple.
#### python 2.
import os,sys
import urllib2
import base64
import ConfigParser
from xml.dom.minidom import parse
home = os.environ.get("HOME")
fichier_ini = "%s/.mailnotifier/mailnotifier.ini" % (home)
### syntaxe du fichier "/home/user/.mailnotifier/mailnotifier.ini"
"""
[gmail]
USER:addresse@gmail.com
PASS:mot_de_passe
"""
try:
config = ConfigParser.ConfigParser()
config.read(fichier_ini)
section = dict(config.items("gmail"))
user = section["user"]
password = section["pass"]
except:
print ("Impossible d'accèder au fichier qui contient les infos de connection\nle fichier: %s" % (fichier_ini))
sys.exit(1)
def gmail_unread_count(user, password):
try:
# Build the authentication string
b64auth = base64.encodestring("%s:%s" % (user, password))
auth = "Basic " + b64auth
req = urllib2.Request("https://mail.google.com/mail/feed/atom/")
req.add_header("Authorization", auth)
handle = urllib2.urlopen(req)
except:
return ("impossible de ce connecter au compte")
try:
dom = parse(handle)
handle.close()
# Get the "fullcount" xml object
count_obj = dom.getElementsByTagName("fullcount")[0]
# get its text and convert it to an integer
nb = int(count_obj.firstChild.wholeText)
except:
return ("impossible de parser le résultat")
##commenter si décommente pour afficher les info
return (nb)
# #### pour afficher les info sur les messages#####
# #################################################
# if nb == 0:
# return ("Vous n'avez pas de messages")
# elif nb > 0:
# try:
# entry = dom.getElementsByTagName("entry")
# except:
# return ("problème pour identifier les informations.")
#
# info = ("Vous avez %d nouveaux messages" % (nb))
# i = 1
# for message in entry:
# nom = message.getElementsByTagName("name")[0].firstChild.wholeText
# mail = message.getElementsByTagName("email")[0].firstChild.wholeText
# title = message.getElementsByTagName("title")[0].firstChild.wholeText
# letout = ("message de %s <%s>\ntitre \"%s\"" %(nom, mail, title))
# info += '\n\n' + letout
# i += 1
# if i > 4:
# break
# return (info)
# ###############################################
# ###############################################
print(gmail_unread_count(user, password))