From ac3b4e36e1db26651e9803afd5944dde2d0d0b22 Mon Sep 17 00:00:00 2001 From: Daniel STAN Date: Fri, 19 Sep 2014 00:36:29 +0200 Subject: [PATCH] =?UTF-8?q?imprimante:=20petite=20info=20d'=C3=A9tat?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- impression/etat_imprimante.py | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/impression/etat_imprimante.py b/impression/etat_imprimante.py index ad52e366..ce6eac48 100644 --- a/impression/etat_imprimante.py +++ b/impression/etat_imprimante.py @@ -9,14 +9,32 @@ """ +import BeautifulSoup +import requests +import HTMLParser import sys from hptools import snmp +STATUS_URL = 'https://imprimante.adm.crans.org/hp/device/DeviceStatus/Index' +CA = '/etc/ssl/certs/cacert.org.pem' + class ErreurCommunication(Exception): """Si une erreur est survenue lors de la communication avec l'imprimante""" pass def etat(): - return ["L'imprimante est en cours de test. L'interfaçage n'est pas encore terminé, mais l'impression fonctionne dans la plupart des cas."] + return \ + ["L'imprimante est test. L'interfaçage n'est pas encore terminé.", + "Aucune notification de fin d'impression n'est envoyée pour le moment", + _http_status()] +def _http_status(): + try: + req = requests.get(STATUS_URL, verify=CA) + doc = BeautifulSoup.BeautifulSoup(req.text) + status_tag = doc.find(attrs={'id': 'MachineStatus'}) + h = HTMLParser.HTMLParser() + return h.unescape(status_tag.text) + except: + raise ErreurCommunication()