From 871dc5f5f0b9bca401262fb2773f5627d6a97bdb Mon Sep 17 00:00:00 2001 From: Leonardo Robol Date: Wed, 27 Feb 2013 15:53:17 +0100 Subject: [PATCH] Aggiunto supporto for le nuove stampanti del dipartimento. --- DrPrintBackend.py | 20 +++++++++++++++++--- DrPrintGui/MainWin.py | 3 ++- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/DrPrintBackend.py b/DrPrintBackend.py index 239e0d0..87f7d68 100644 --- a/DrPrintBackend.py +++ b/DrPrintBackend.py @@ -38,6 +38,8 @@ class Backend(gobject.GObject): connection to the server and parse lpq -Pprinter output """ + host, printer = self.split_name(printer) + try: client = paramiko.SSHClient() client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) @@ -52,7 +54,7 @@ class Backend(gobject.GObject): except: raise RuntimeError('Impossibile connettersi a %s' % remote_host) - stdin, stdout, stderr = client.exec_command("lpq -P%s" % printer) + stdin, stdout, stderr = client.exec_command("lpq -h %s -P%s" % (host, printer)) output = stdout.read() # Parse output @@ -84,11 +86,23 @@ class Backend(gobject.GObject): def cancel_transfer(self, widget): self.__abort_transfer = True + def split_name(self, printer): + host = "lasker.dm.unipi.it" + if "@" in printer: + pos = printer.index("@") + host = printer[pos+1:] + printer = printer[:pos] + else: + printer = printer + + return host, printer + def send_print(self, printer, username, password, page_per_page, filename, page_range, copies, orientation, sides, remote_host): self.__abort_transfer = False - + host, printer = self.split_name(printer) + # Get connection try: client = paramiko.SSHClient() @@ -121,7 +135,7 @@ class Backend(gobject.GObject): cmd = cmd + "-# %s " % copies - cmd_opts = "" + cmd_opts = " -H %s " % host ## Pagine logiche per pagine if not page_per_page == 1: diff --git a/DrPrintGui/MainWin.py b/DrPrintGui/MainWin.py index c14229c..27e7ca5 100644 --- a/DrPrintGui/MainWin.py +++ b/DrPrintGui/MainWin.py @@ -26,6 +26,7 @@ class MainWin(gtk.Window): self.filename = filename gtk.Window.__init__(self, gtk.WINDOW_TOPLEVEL) + self.set_title("DrPrint") self.set_title = "DrPrint 1.0-rc1" self.set_border_width(10) @@ -93,7 +94,7 @@ class MainWin(gtk.Window): label.show() # Piano terra e secondo piano - printers = ['cdcpt', 'cdcpp'] + printers = ['cdcpt@printserver', 'cdcpp@printserver'] # Le stampanti numerate printers.extend(map(lambda x : "cdc"+str(x), range(1,12))) -- 2.1.4