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

Revision 789, 2.0 kB (checked in by jalet, 21 years ago)

Moved some code down into the 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.5  2003/02/10 11:47:39  jalet
18# Moved some code down into the requesters
19#
20# Revision 1.4  2003/02/10 10:36:33  jalet
21# Small problem wrt external requester
22#
23# Revision 1.3  2003/02/10 00:42:17  jalet
24# External requester should be ok (untested)
25# New syntax for configuration file wrt requesters
26#
27# Revision 1.2  2003/02/09 13:05:43  jalet
28# Internationalization continues...
29#
30# Revision 1.1  2003/02/07 13:15:01  jalet
31# External requester skeleton added.
32#
33#
34#
35
36import os
37from pykota.requester import PyKotaRequesterError
38
39class Requester :
40    """A class to send queries to printers via external commands."""
41    def __init__(self, config, printername, arguments) :
42        """Sets instance vars depending on the current printer."""
43        self.printername = printername
44        self.commandline = arguments.strip()
45       
46    def getPrinterPageCounter(self, printer) :
47        """Returns the page counter from the printer via an external command.
48       
49           The external command must report the life time page number of the printer on stdout.
50        """
51        commandline = self.commandline % locals()
52        if printer is None :
53            raise PyKotaRequesterError, _("Unknown printer address in EXTERNAL(%s) for printer %s") % (commandline, self.printername)
54        answer = os.popen(commandline)
55        try :
56            pagecounter = int(answer.readline().strip())
57        except ValueError :   
58            raise PyKotaRequesterError, _("Unable to query printer %s via EXTERNAL(%s)") % (printer, commandline) 
59        answer.close()
60        return pagecounter
61       
Note: See TracBrowser for help on using the browser.