scripts/impression/etat_imprimante.py
2014-09-19 00:36:29 +02:00

40 lines
1 KiB
Python

#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
etat_imprimante.py
Récupère, filtre et formate l'état actuel de l'imprimante
Copyright (c) 2006, 2007, 2008, 2009 by Cr@ns (http://www.crans.org)
"""
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 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()