Skip to content

Instantly share code, notes, and snippets.

@juleskuehn
Created September 6, 2024 22:12
Show Gist options
  • Select an option

  • Save juleskuehn/8bdf4953ec261076e85576928c41c639 to your computer and use it in GitHub Desktop.

Select an option

Save juleskuehn/8bdf4953ec261076e85576928c41c639 to your computer and use it in GitHub Desktop.
import os
import random
import time
paragraphs = [
"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas porta, metus eu sagittis euismod, neque augue ultrices ipsum, eu sagittis mi orci vitae felis. Praesent cursus sem a urna fringilla placerat eu sit amet ipsum. Nulla venenatis dapibus commodo. Suspendisse potenti. Maecenas non libero dapibus velit mattis ultrices non id dui. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per inceptos himenaeos. Fusce vitae porta magna, a aliquam nunc. Vestibulum sem magna, congue eget efficitur non, molestie vestibulum massa. Fusce tristique rutrum justo, nec feugiat enim mattis quis. Nam consectetur dictum malesuada. Aenean elementum ultricies vulputate.",
"Curabitur eu enim eros. Morbi id tempus est, a egestas ipsum. Mauris ut nisl vestibulum, ullamcorper leo nec, gravida velit. Nam pellentesque ligula a urna cursus, ac pharetra massa auctor. Quisque dignissim, orci at dapibus rutrum, nisi nibh sollicitudin tortor, vitae interdum enim elit et sapien. Nullam vestibulum ex vitae leo pretium iaculis. Curabitur dapibus nulla leo, nec pulvinar lectus hendrerit quis. Maecenas egestas porta nibh eget rutrum. In aliquet, elit sit amet pretium accumsan, turpis orci efficitur velit, sit amet finibus libero orci at sapien. Morbi vel luctus nisl. Sed eget malesuada tortor. Integer aliquet pretium neque quis ultrices. In non enim ligula. In hac habitasse platea dictumst. Pellentesque tempor vel arcu vel mattis. Nullam non convallis enim, eu elementum sapien.",
"Vestibulum felis odio, tempor ac elementum a, pretium eu libero. Nulla convallis neque sit amet feugiat ullamcorper. Integer blandit turpis velit, vel vestibulum turpis vehicula nec. Integer est ante, aliquam quis lacinia sed, eleifend a sapien. Vivamus et mi maximus, auctor ante quis, aliquam nisl. Sed mollis, sem non vehicula aliquam, neque enim elementum nisi, quis vulputate erat diam id felis. Nunc molestie pellentesque turpis vitae rhoncus. Aliquam erat volutpat. Maecenas turpis nisl, tincidunt et posuere et, mollis id diam. Aenean ullamcorper, leo vitae eleifend blandit, dui turpis tempor tortor, quis laoreet libero turpis sit amet dolor. Phasellus risus orci, maximus eu leo sed, feugiat mollis mi. Aenean venenatis leo non sapien pellentesque porta. Suspendisse nisl magna, dictum eget blandit cursus, aliquet at enim.",
]
def clear_screen():
if os.name == "nt":
os.system("cls")
else:
os.system("clear")
def stream_text(text):
chunk_length = random.randint(3, 10)
full_text = ""
for i in range(0, len(text), chunk_length):
full_text += text[i : i + chunk_length]
time.sleep(0.005)
yield full_text
def combine_streams(streams):
streams = [{"stream": stream, "status": "running"} for stream in streams]
try:
final_streams = [""] * len(streams)
while any([stream["status"] == "running" for stream in streams]):
for i, stream in enumerate(streams):
try:
if stream["status"] == "running":
final_streams[i] = next(stream["stream"])
except StopIteration:
stream["status"] = "stopped"
clear_screen()
print("\n\n".join(final_streams))
except KeyboardInterrupt:
pass
combine_streams([stream_text(p) for p in paragraphs])
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment