X-Git-Url: http://dolda2000.com/gitweb/?a=blobdiff_plain;f=fulbank%2Fauth.py;h=deb065c0a49cfcb5f4f7f647b2ff1de8c2bb2129;hb=HEAD;hp=1a9f13d0589d81ee9ef7eeaea720b5e63ac1e22b;hpb=f4de0bf1d44ae1db7c4e1bc6d2a664436e12b78f;p=fulbank.git diff --git a/fulbank/auth.py b/fulbank/auth.py index 1a9f13d..deb065c 100644 --- a/fulbank/auth.py +++ b/fulbank/auth.py @@ -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