def test_pauseabort(): for x in range(0, 50): ttyio.echo("x=%r" % (x)) ch = ttyio.getch(noneok=True, echoch=False) if ch == "/" or ch == "Q": ttyio.echo("*aborted*") break elif ch == " ": ch = ttyio.inputchar("*paused*", "Q/ ", "", echoch=False) ttyio.echo("{CHA}{EL}", end="") if ch == "Q" or ch == "/": ttyio.echo("*aborted*") break
import ttyio4 as ttyio def test_pauseabort(): for x in range(0, 50): ttyio.echo("x=%r" % (x)) ch = ttyio.getch(noneok=True, echoch=False) if ch == "/" or ch == "Q": ttyio.echo("*aborted*") break elif ch == " ": ch = ttyio.inputchar("*paused*", "Q/ ", "", echoch=False) ttyio.echo("{CHA}{EL}", end="") if ch == "Q" or ch == "/": ttyio.echo("*aborted*") break def testinputchar(): ch = ttyio.inputchar("prompt: ", "ABCDE", noneok=True) ttyio.echo("ch=%r" % (ch)) try: test_pauseabort() # testinputchar() except KeyboardInterrupt: ttyio.echo("INTR") except EOFError: ttyio.echo("EOF")
# https://unicode.org/emoji/charts/full-emoji-list.html # https://www.ascii-codes.com/ # https://en.wikipedia.org/wiki/Code_page_437 import ttyio4 as ttyio # ttyio.echo(":100:") buf = "" for k in ttyio.emoji.keys(): buf += "\"%s\": :%s: " % (k, k) ttyio.echo(buf)
#!/usr/bin/env python import ttyio4 as ttyio ttyio.echo("{decstbm:2,10}") ttyio.echo("{curpos:2,0}") #for x in range(0,10): # ttyio.echo("abcdefghijklmnopqrstuvwxyz")
import ttyio4 as ttyio terminalwidth = ttyio.getterminalwidth() ttyio.echo("{home}{clear}", end="") ttyio.echo("{curpos:0,0}", end="") ttyio.echo("foo bar baz bing foo bar baz bing foo bar baz bing ".ljust( terminalwidth - 2, "*"), end="") ttyio.echo("{home}alpha bravo charlie delta{el}{f6}")
import ttyio4 as ttyio debug = False done = False pos = 0 prompt = "prompt: " ttyio.echo(prompt, end="", flush=True) buf = "" while not done: ch = ttyio.getch(noneok=False) # ttyio.echo("ch=%r" % (ch)) if ch == "": continue elif ch == "\n": break elif ch == "\004": ttyio.echo("{/all}EOF") break elif ch == "\007": ttyio.echo("{bell}", end="", flush=True) continue elif ch == chr(127): ttyio.echo(ch, flush=True, end="") # ttyio.echo("backspace, pos=%d" % (pos)) if pos > 0: pos -= 1 ttyio.echo(chr(8) + " " + chr(8), flush=True, end="") buf = buf[:len(buf) - 1] else:
import ttyio4 as ttyio ttyio.echo("{cursorup:5}abcde{wait:1}", end="", flush=True) ttyio.echo("{cursorright:15}fghijk{wait:1}", end="", flush=True) ttyio.echo("{cursordown:10}lmnop{wait:1}", end="", flush=True) ttyio.echo("{cursorleft:10}qrstuv{wait:1}", flush=True)
import ttyio4 as ttyio ttyio.echo("{F6:10}abcde")
import ttyio4 as ttyio terminalwidth = ttyio.getterminalwidth() ttyio.echo("{darkgray}{unicode:lightshade}", end="") # 1 ttyio.echo("{darkgray}{unicode:mediumshade}", end="") # 2 ttyio.echo("{gray}{unicode:lightshade}", end="") # 3 ttyio.echo("{gray}{unicode:mediumshade}", end="") # 4 ttyio.echo("{gray}{unicode:darkshade}", end="") # 5 ttyio.echo("{lightgray}{unicode:mediumshade}", end="") # 6 ttyio.echo("{white}{unicode:solidblock}", end="") # 7 ttyio.echo("{bgwhite}{black}%s{/all}" % ("happy birthday 2021, mom!".center(terminalwidth - 14)), end="") ttyio.echo("{white}{unicode:solidblock}", end="") # 7 ttyio.echo("{lightgray}{unicode:mediumshade}", end="") # 6 ttyio.echo("{gray}{unicode:darkshade}", end="") # 5 ttyio.echo("{gray}{unicode:mediumshade}", end="") # 4 ttyio.echo("{gray}{unicode:lightshade}", end="") # 3 ttyio.echo("{darkgray}{unicode:mediumshade}", end="") # 2 ttyio.echo("{darkgray}{unicode:lightshade}", end="") # 1 ttyio.echo("{/all}")
#!/usr/bin/env python import ttyio4 as ttyio ttyio.echo("hijklmnop") ttyio.echo("{curpos:10,0}abcdefg")
def main(): ttyio.echo("{u:heart:10}{u:diamond:2}") ttyio.echo("{u:dv}{u:sv:42}") ttyio.echo("{u:heart}{u:diamond}{u:club}{u:spade}") ttyio.echo("{u:drdvcorner}{u:dhline:10}{u:dldvcorner}") ttyio.echo("{u:dvline} {u:dvline}") ttyio.echo("{u:dvdhrtee}{u:dhline:10}{u:dvdhltee}") ttyio.echo("{u:dvshrtee}{acs:hline:10}{u:dvshltee}") ttyio.echo("{unicode:dvdrcorner}{u:dhline:10}{u:dvdlcorner}{bggray}x" ) # {unicode:dvdhcross}") ttyio.echo("{/all}") return
import ttyio4 as ttyio # ttyio.echo("1{wait:1}2{wait:1}3{wait:3}") ttyio.echo("4{wait:1}", end="", flush=True) ttyio.echo("5{wait:2}", end="", flush=True) ttyio.echo()
import ttyio4 as ttyio ttyio.echo("{unicode:heart}{wait}", end="", flush=True) ttyio.echo("{unicode:club}{unicode:spade}{unicode:diamond}")
def main(): parser = argparse.ArgumentParser(prog="achilles") parser.add_argument("--verbose", default=True, action="store_true", help="use verbose mode") parser.add_argument("--debug", default=False, action="store_true", help="run debug mode") parser.add_argument("--dry-run", dest="dryrun", action="store_true", default=True, help="dry run (no database changes)") # @todo: address 'zoidweb4' as hardcoded database name bbsengine.buildargdatabasegroup(parser) args = parser.parse_args() mainmenu = ( ("L", "List"), ("A", "Add"), ("K", "Kill"), ("E", "Edit") ) done = False while not done: bbsengine.title("achilles - food item - terminal interface", hrcolor="{green}", titlecolor="{bggray}{white}") buf = "" for m in mainmenu: buf += "{bgdarkgray}{white}[{yellow}%s{white}]{/all} -- %s{F6}" % (m[0], m[1]) buf += "{F6}{bgdarkgray}{white}[{yellow}Q{white}]{/all} -- Quit{F6}" ttyio.echo(buf) try: ch = ttyio.inputchar("achilles main [LAKEQ]: {lightgreen}", "LAKEQ", "") except (EOFError, KeyboardInterrupt) as e: ttyio.echo("Quit") return finally: pass # ttyio.echo("{/all}") if ch == "Q": ttyio.echo("Quit") done = True continue elif ch == "L": ttyio.echo("List") elif ch == "A": ttyio.echo("Add") add() elif ch == "E": ttyio.echo("Edit") edit() return
def testinputchar(): ch = ttyio.inputchar("prompt: ", "ABCDE", noneok=True) ttyio.echo("ch=%r" % (ch))
import ttyio4 as ttyio #ttyio.setvariable("foo", "{var:color}") ttyio.setvariable("color", "{green}") ttyio.setvariable("test", "{var:color}eggs") buf = """ Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. {var:test}{/all}At elementum eu facilisis sed odio morbi. Interdum consectetur libero id faucibus nisl tincidunt eget nullam. Nunc mattis enim ut tellus. Faucibus purus in massa tempor nec feugiat. Diam phasellus vestibulum lorem sed risus ultricies tristique. Euismod quis viverra nibh cras. Amet massa vitae tortor condimentum lacinia. Eu scelerisque felis imperdiet proin. Mauris pellentesque pulvinar pellentesque habitant morbi tristique senectus. Eleifend quam adipiscing vitae proin sagittis. Mattis vulputate enim nulla aliquet porttitor lacus. Neque aliquam vestibulum morbi blandit. Nisi porta lorem mollis aliquam ut porttitor. """ ttyio.echo(buf, wordwrap=True)
import os import ttyio4 as ttyio import bbsengine4 as bbsengine from dateutil.tz import tzlocal from datetime import datetime from time import strftime t = datetime.now(tzlocal()) # pg_dump -Fc zoidbo > zoidbo-cyclops-`datestamp`.pgdump datestamp = bbsengine.datestamp(t, format="%Y%m%d%H%M") ttyio.echo("datestamp=%s" % (datestamp)) os.system( "pg_dump -Fc zoidbo > /srv/backups/cyclops/zoidbo-cyclops-%s.pgdump" % (datestamp)) os.system( "pg_dump -Fc zoidweb4 > /srv/backups/cyclops/zoidweb4-cyclops-%s.pgdump" % (datestamp))
import ttyio4 as ttyio ttyio.echo("""Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer ligula velit, semper egestas tincidunt in, sagittis eu dolor. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum posuere est id erat fringilla, sed pulvinar diam vulputate. Curabitur vitae nisi a nisl interdum blandit. Maecenas tincidunt justo ut varius elementum. In sit amet nisi arcu. Cras non orci ullamcorper, lacinia sem nec, volutpat orci.{f6} Praesent risus leo, dignissim ac aliquam a, condimentum sed nulla. Etiam quis ultrices augue. Sed metus mauris, tempus ut ex vitae, egestas lacinia ante. In facilisis dolor ut nisi interdum, eu ornare augue sagittis. Aliquam condimentum ante ex, et semper nisi placerat sed. Aenean est enim, venenatis eu pulvinar id, suscipit eget mauris. Etiam at metus vel mi dapibus egestas. Nunc id porta lacus, vitae sodales tellus. Nam aliquam auctor odio eu condimentum. Suspendisse interdum ante quis vulputate tristique. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Cras ultrices ullamcorper placerat. Nullam vitae massa eu dolor porttitor volutpat non et urna.{f6} Curabitur cursus quis urna quis molestie. Nulla facilisi. Fusce ornare, augue at tempor viverra, elit turpis scelerisque eros, vitae venenatis erat mauris eget justo. Maecenas justo dui, eleifend quis massa vitae, sagittis ornare arcu. Phasellus purus nisl, ultrices vel est ut, dignissim vestibulum elit. Sed ut scelerisque dui. Duis sed ultricies justo, id interdum est. Quisque volutpat vestibulum elit, a venenatis ipsum tincidunt id. Morbi euismod dolor ac condimentum ullamcorper. Pellentesque mollis ut urna quis consequat.{f6} Aenean posuere sapien sit amet ipsum sollicitudin bibendum. Vivamus eget est consequat, elementum mi quis, sollicitudin risus. Praesent eleifend justo id justo auctor, sit amet hendrerit lacus semper. Aenean viverra massa ac velit euismod, ultricies hendrerit ex porttitor. Aenean iaculis nisi turpis, lacinia venenatis nunc scelerisque vitae. Vivamus arcu nisi, gravida a felis ac, commodo malesuada elit. In hac habitasse platea dictumst. Maecenas vel purus eget turpis posuere facilisis. Duis blandit ligula elit, vitae finibus odio aliquam vitae. Sed quam mauris, mollis ac eleifend id, ultricies sit amet quam. Pellentesque placerat sagittis erat a pretium.{f6} Integer consequat purus elit, ac auctor felis fermentum in. Phasellus varius turpis purus, in finibus nisi feugiat et. Etiam consequat mattis dui, id porttitor lectus pharetra vitae. Sed dictum tempor mi vitae hendrerit. Pellentesque neque tortor, efficitur non augue id, consectetur vehicula risus. In sit amet tellus non lacus congue vestibulum ac ut neque. Aenean fringilla eleifend ante. {f6}""", end="")
import ttyio4 as ttyio buf = """{F6:2} {{testwhite}}{white}Lorem {{ipsum}} dolor sit amet,{F6}consectetur adipiscing elit. Qu{blink}isqu{/blink}e ac risus tempor, {orange}porttitor diam id, ullamcorper ipsum. Maecenas quis sapien eget massa finibus auctor. Aliquam purus ligula, commodo ac tellus vitae, tincidunt molestie nisi. Duis dapibus sit amet enim laoreet rutrum. Nunc in sem posuere, tincidunt mi vitae, bibendum nisl. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Suspendisse potenti. Vestibulum molestie elementum sapien non consectetur. Praesent in auctor felis. Ut nec eros ac nunc porttitor aliquam id ornare ante. Orci varius natoque {blue}penatibus et {red}magnis dis parturient montes, nascetur ridiculus mus. Integer imperdiet id lorem sit amet sollicitudin. Maecenas sollicitudin efficitur leo, quis vulputate metus bibendum ornare. Fusce vel ex vehicula libero scelerisque lobortis. Etiam at nibh purus. Aliquam ac neque volutpat, condimentum nibh nec, eleifend dolor. {yellow}Aenean feugiat, mauris at tempor convallis, leo neque feugiat arcu, sed tincidunt ipsum felis et ligula. Vivamus sed consectetur ipsum. Donec augue velit, maximus in libero accumsan, hendrerit blandit mauris. Nunc lobortis faucibus accumsan. Maecenas varius arcu ut bibendum ultrices. Sed semper scelerisque lorem, sed vulputate nisi rutrum at. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Donec et suscipit elit. Cras hendrerit mauris ut odio faucibus, eget maximus elit auctor. {/all}""" ttyio.echo(buf, width=80)
#!/usr/bin/env python import ttyio4 as ttyio ttyio.echo("{acs:vline:100}")
import time import ttyio4 ttyio4.echo("{bell}") time.sleep(1) ttyio4.echo("{BELL:2}{lightred}foo!{/all}{bell:2}")
#!/usr/bin/env python import sys import time import ttyio4 as ttyio import bbsengine5 as bbsengine terminalheight = ttyio.getterminalheight() ttyio.echo("{DECSTBM:2,%d}" % (terminalheight - 2)) terminalwidth = ttyio.getterminalwidth() topstatus = "{bggray}{white}%s{/bgcolor}" % ( "status here".ljust(terminalwidth)) ttyio.echo("{decsc}{home}%s{decrc}" % (topstatus), end="") ttyio.echo("{blink}") for x in range(0, 75): ttyio.echo("%s" % (str(x)), end="") topbar = "{bggray}{white}%s{/bgcolor}" % (str(x).ljust(terminalwidth)) bbsengine.updatetopbar(topbar) #ttyio.echo("{DECSC}{HOME}{clreol}{white}{reverse}%s{/reverse}{decrc}" % (topstatus.ljust(terminalwidth)), end="") time.sleep(0.250) #ttyio.echo("{decsc}{yellow}------------------------------cursor saved here") # ttyio.echo("{DECSC}{CURPOS:0}cursor y is zero{DECRC}") #ttyio.echo("{decrc}{lightred}cursor restored to here") ttyio.echo("{reset}")
import ttyio4 as ttyio ttyio.echo("this is a test", level="debug")
import ttyio4 as ttyio ttyio.echo("testing success", level="success")
def main(): ttyio.echo( "{green}{bggray}green{/all}{bell}{wait:2}{syntaxerror}{f6:10}foo{bell:2}" )