root / pykota / trunk / pykota / requesters / external.py @ 780

Revision 780, 1.8 kB (checked in by jalet, 21 years ago)

External requester should be ok (untested)
New syntax for configuration file wrt requesters

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1#! /usr/bin/env python
2
3# PyKota - Print Quotas for CUPS
4#
5# (c) 2003 Jerome Alet <alet@librelogiciel.com>
6# You're welcome to redistribute this software under the
7# terms of the GNU General Public Licence version 2.0
8# or, at your option, any higher version.
9#
10# You can read the complete GNU GPL in the file COPYING
11# which should come along with this software, or visit
12# the Free Software Foundation's WEB site http://www.fsf.org
13#
14# $Id$
15#
16# $Log$
17# Revision 1.3  2003/02/10 00:42:17  jalet
18# External requester should be ok (untested)
19# New syntax for configuration file wrt requesters
20#
21# Revision 1.2  2003/02/09 13:05:43  jalet
22# Internationalization continues...
23#
24# Revision 1.1  2003/02/07 13:15:01  jalet
25# External requester skeleton added.
26#
27#
28#
29
30import os
31from pykota.requester import PyKotaRequesterError
32
33class Requester :
34    """A class to send queries to printers via external commands."""
35    def __init__(self, config, printername, arguments) :
36        """Sets instance vars depending on the current printer."""
37        self.printername = printername
38        self.commandline = arguments[0]
39       
40    def getPrinterPageCounter(self, printer) :
41        """Returns the page counter from the printer via an external command.
42       
43           The external command must report the life time page number of the printer on stdout.
44        """
45        commandline = self.commandline % locals()
46        if printer is None :
47            raise PyKotaRequesterError, _("Unknown printer address in EXTERNAL(%s) for printer %s") % (commandline, self.printername)
48        answer = os.popen(commandline)
49        try :
50            pagecounter = int(answer.readline().strip())
51        except IndexError :   
52            raise PyKotaRequesterError, _("Unable to query printer %s via EXTERNAL(%s)") % (printer, commandline) 
53        answer.close()
54        return pagecounter
55       
Note: See TracBrowser for help on using the browser.