netbank: Changed login syntax.
[fulbank.git] / fulbank / auth.py
index 1a9f13d..deb065c 100644 (file)
@@ -1,4 +1,7 @@
-import sys, os, io, termios
+import sys, os, io, termios, tempfile, subprocess
+
+class autherror(Exception):
+    pass
 
 class conv(object):
     msg_notice = 0
@@ -11,6 +14,8 @@ class conv(object):
         pass
     def prompt(self, prompt, echo, default=None):
         return default
+    def image(self, image):
+        pass
 
 class termconv(conv):
     def __init__(self, ifp, ofp):
@@ -46,10 +51,18 @@ class termconv(conv):
                 return ret[:-1]
             finally:
                 termios.tcsetattr(self.ifp.fileno(), termios.TCSANOW, bka)
+    def image(self, image):
+        fd, fn = tempfile.mkstemp()
+        try:
+            with os.fdopen(fd, "wb") as fp:
+                image.save(fp, "PNG")
+            subprocess.call(["sxiv", fn])
+        finally:
+            os.unlink(fn)
 
-class ctermconv(conv):
+class ctermconv(termconv):
     def __init__(self, fp):
-        super().__init__(fp)
+        super().__init__(fp, fp)
         self.cfp = fp
 
     def close(self):
@@ -64,7 +77,7 @@ null = conv()
 stdioconv = termconv(sys.stdin, sys.stdout)
 
 def ttyconv():
-    return ctermconv(io.TextIOWrapper(io.FileIO(os.open("/dev/tty", os.O_RDWR | os.O_NCTTY), "r+")))
+    return ctermconv(io.TextIOWrapper(io.FileIO(os.open("/dev/tty", os.O_RDWR | os.O_NOCTTY), "r+")))
 
 def default():
     return null