crunk
4 years ago
commit
3a52870cc2
4 changed files with 150 additions and 0 deletions
@ -0,0 +1,28 @@ |
|||
# NOTE: you have to use single-quoted strings in TOML for regular expressions. |
|||
# It's the equivalent of r-strings in Python. Multiline strings are treated as |
|||
# verbose regular expressions by Black. Use [ ] to denote a significant space |
|||
# character. |
|||
|
|||
[tool.black] |
|||
line-length = 79 |
|||
target-version = ['py37', 'py38'] |
|||
include = '\.pyi?$' |
|||
exclude = ''' |
|||
/( |
|||
\.eggs |
|||
| \.git |
|||
| \.hg |
|||
| \.mypy_cache |
|||
| \.tox |
|||
| \.venv |
|||
| _build |
|||
| buck-out |
|||
| build |
|||
| dist |
|||
|
|||
# The following are specific to Black, you probably don't want those. |
|||
| blib2to3 |
|||
| tests/data |
|||
| profiling |
|||
)/ |
|||
''' |
@ -0,0 +1,12 @@ |
|||
███████████████████████████████████████████████████████████████████████████████ |
|||
██╔════════════╗█╔════════════╗█╔════════════╗█╔════════════╗█╔════════════╗███ |
|||
██║ ▄▄▄▄ ▄▄▄ ║█║ ▄▄▄▄▄▄▄▄▄▄ ║█║ ██████████ ║█║ ██████████ ║█║ ██████████ ║███ |
|||
██║ ████ ████ ║█║ ██████████ ║█║ ██████████ ║█║ ▀▀▀▀▀▀▀▀▀▀ ║█║ ██████████ ║███ |
|||
██║ ████ ████ ║█║ ███ ███ ║█║ ██ ███▀ ║█║ ▄▄▄▄▄▄▄▄▄▄ ║█║ ███ ███ ║███ |
|||
██║ ████ ████ ║█║ ██████████ ║█║ ████████ ║█║ ██████ ║█║ ██████████ ║███ |
|||
██║ ████ ████ ║█║ ████▌▐████ ║█║ █████████ ║█║ ██████ ║█║ ████▌▐████ ║███ |
|||
██║ ▓███ ▄████ ║█║ ▓███▌▐████ ║█║ ▓███▌▐███ ║█║ ██████ ║█║ ▓███▌▐████ ║███ |
|||
██║ ▒▓███████▀ ║█║ ▒▓██▌▐████ ║█║ ▒▓██▌▐███ ║█║ ▓█████ ║█║ ▒▓██▌▐████ ║███ |
|||
██║ ░▒▓█████▀ ║█║ ░▒▓█▌▐████ ║█║ ░▒▓█▌▐████ ║█║ ░▒▓█████▄▄ ║█║ ░▒▓█▌▐████ ║███ |
|||
██╚════════════╝█╚════════════╝█╚════════════╝█╚════════════╝█╚════════════╝███ |
|||
███████████████████████████████████████████████████████████████████████████████ |
@ -0,0 +1,110 @@ |
|||
import curses |
|||
import time |
|||
|
|||
# Using readlines() |
|||
file1 = open("test", "r") |
|||
lines = file1.readlines() |
|||
debug_text = False |
|||
|
|||
|
|||
def show_debug_text(stdscr, width, height, start_x_file): |
|||
"""debug text for the tomb of doom""" |
|||
whstr = "Width: {}, Height: {}".format(width, height) |
|||
stdscr.addstr(0, 0, whstr, curses.color_pair(1)) |
|||
file_string = "X position of text: {}".format(start_x_file) |
|||
stdscr.addstr(1, 0, file_string, curses.color_pair(1)) |
|||
|
|||
|
|||
def draw_scroll(stdscr): |
|||
# Clear and refresh the screen for a blank screen |
|||
# Set delay to no, to not wait for keyboard press |
|||
stdscr.nodelay(1) |
|||
stdscr.clear() |
|||
stdscr.refresh() |
|||
start_x_file = 80 |
|||
rotation = 1 |
|||
# Start colors in curses |
|||
curses.start_color() |
|||
curses.init_pair(1, curses.COLOR_CYAN, curses.COLOR_BLACK) |
|||
curses.init_pair(2, curses.COLOR_RED, curses.COLOR_BLACK) |
|||
curses.init_pair(3, curses.COLOR_GREEN, curses.COLOR_BLACK) |
|||
curses.init_pair(4, curses.COLOR_BLUE, curses.COLOR_BLACK) |
|||
curses.init_pair(5, curses.COLOR_MAGENTA, curses.COLOR_BLACK) |
|||
curses.init_pair(6, curses.COLOR_YELLOW, curses.COLOR_BLACK) |
|||
|
|||
while True: |
|||
# Loop where k is the last character pressed |
|||
stdscr.clear() |
|||
height, width = stdscr.getmaxyx() |
|||
|
|||
# Declaration of strings |
|||
title = "Curses horizontal scroller test"[: width - 1] |
|||
subtitle = "Crunk Varia"[: width - 1] |
|||
|
|||
hwidth = width // 2 |
|||
# Centering calculations |
|||
start_x_title = int((hwidth) - (len(title) // 2) - len(title) % 2) |
|||
start_x_subtitle = int( |
|||
(hwidth) - (len(subtitle) // 2) - len(subtitle) % 2 |
|||
) |
|||
start_y = int((height) - 2) |
|||
if debug_text: |
|||
show_debug_text(stdscr, width, height, start_x_file) |
|||
|
|||
line_count = 0 |
|||
for line in lines: |
|||
ch_count = 0 |
|||
for character in line: |
|||
if ( |
|||
ch_count + start_x_file < width |
|||
and ch_count + start_x_file > 0 |
|||
): |
|||
stdscr.addch( |
|||
3 + line_count, |
|||
start_x_file + ch_count, |
|||
character, |
|||
curses.color_pair(rotation), |
|||
) |
|||
ch_count += 1 |
|||
line_count += 1 |
|||
|
|||
# Turning on attributes for title |
|||
stdscr.attron(curses.color_pair(2)) |
|||
stdscr.attron(curses.A_BOLD) |
|||
|
|||
# Rendering title |
|||
stdscr.addstr(start_y, start_x_title, title) |
|||
|
|||
# Turning off attributes for title |
|||
stdscr.attroff(curses.color_pair(2)) |
|||
stdscr.attroff(curses.A_BOLD) |
|||
|
|||
stdscr.addstr(start_y + 1, start_x_subtitle, subtitle) |
|||
# Refresh the screen |
|||
stdscr.refresh() |
|||
time.sleep(1.0 / 30) |
|||
|
|||
start_x_file -= 1 |
|||
if start_x_file < -80: |
|||
start_x_file = 80 |
|||
rotation += 1 |
|||
if rotation > 6: |
|||
rotation = 1 |
|||
|
|||
key_pressed = stdscr.getch() != -1 |
|||
if key_pressed: |
|||
raise KeyboardInterrupt() |
|||
|
|||
|
|||
def main(): |
|||
curses.wrapper(draw_scroll) |
|||
|
|||
|
|||
if __name__ == "__main__": |
|||
try: |
|||
main() |
|||
except KeyboardInterrupt: |
|||
curses.endwin() |
|||
curses.curs_set(1) |
|||
curses.reset_shell_mode() |
|||
curses.echo() |
Loading…
Reference in new issue