From f792c65eb1a4242dd40693647c6f4033b4332e1d Mon Sep 17 00:00:00 2001 From: Skullheadx <704277@pdsb.net> Date: Fri, 30 Dec 2022 17:22:38 -0500 Subject: [PATCH] Clean up files + hard stop for typer and support of multiple copypastas --- .../BeeMovieScript.txt | 0 .../YoshikageKira.txt | 0 apologies.txt => copy-pastas/apologies.txt | 0 .../astleyparadox.txt | 0 badjoke.txt => copy-pastas/badjoke.txt | 0 copy-pastas/eatingpizza.txt | 1 + .../grammaticalerror.txt | 0 .../notcopypasta.txt | 0 notgamer.txt => copy-pastas/notgamer.txt | 0 rickroll.txt => copy-pastas/rickroll.txt | 0 main.py | 41 ++++++++++++------ ...yping-14393.mp3 => reddit-admin-typing.mp3 | Bin test.txt | 4 -- typer_game.py | 8 ++-- 14 files changed, 34 insertions(+), 20 deletions(-) rename BeeMovieScript.txt => copy-pastas/BeeMovieScript.txt (100%) rename YoshikageKira.txt => copy-pastas/YoshikageKira.txt (100%) rename apologies.txt => copy-pastas/apologies.txt (100%) rename astleyparadox.txt => copy-pastas/astleyparadox.txt (100%) rename badjoke.txt => copy-pastas/badjoke.txt (100%) create mode 100644 copy-pastas/eatingpizza.txt rename grammaticalerror.txt => copy-pastas/grammaticalerror.txt (100%) rename notcopypasta.txt => copy-pastas/notcopypasta.txt (100%) rename notgamer.txt => copy-pastas/notgamer.txt (100%) rename rickroll.txt => copy-pastas/rickroll.txt (100%) rename reddit-admin-typing-14393.mp3 => reddit-admin-typing.mp3 (100%) delete mode 100644 test.txt diff --git a/BeeMovieScript.txt b/copy-pastas/BeeMovieScript.txt similarity index 100% rename from BeeMovieScript.txt rename to copy-pastas/BeeMovieScript.txt diff --git a/YoshikageKira.txt b/copy-pastas/YoshikageKira.txt similarity index 100% rename from YoshikageKira.txt rename to copy-pastas/YoshikageKira.txt diff --git a/apologies.txt b/copy-pastas/apologies.txt similarity index 100% rename from apologies.txt rename to copy-pastas/apologies.txt diff --git a/astleyparadox.txt b/copy-pastas/astleyparadox.txt similarity index 100% rename from astleyparadox.txt rename to copy-pastas/astleyparadox.txt diff --git a/badjoke.txt b/copy-pastas/badjoke.txt similarity index 100% rename from badjoke.txt rename to copy-pastas/badjoke.txt diff --git a/copy-pastas/eatingpizza.txt b/copy-pastas/eatingpizza.txt new file mode 100644 index 0000000..937c6eb --- /dev/null +++ b/copy-pastas/eatingpizza.txt @@ -0,0 +1 @@ +So here I was enjoying my favorite food (pizza) and watching YouTube having a good time when it started to taste funny. It turns out you were being super salty and now have ruined my pizza. Are you going to pay for another pizza or will I have to call the cops? This is serious. diff --git a/grammaticalerror.txt b/copy-pastas/grammaticalerror.txt similarity index 100% rename from grammaticalerror.txt rename to copy-pastas/grammaticalerror.txt diff --git a/notcopypasta.txt b/copy-pastas/notcopypasta.txt similarity index 100% rename from notcopypasta.txt rename to copy-pastas/notcopypasta.txt diff --git a/notgamer.txt b/copy-pastas/notgamer.txt similarity index 100% rename from notgamer.txt rename to copy-pastas/notgamer.txt diff --git a/rickroll.txt b/copy-pastas/rickroll.txt similarity index 100% rename from rickroll.txt rename to copy-pastas/rickroll.txt diff --git a/main.py b/main.py index 8740948..0289f73 100644 --- a/main.py +++ b/main.py @@ -1,41 +1,56 @@ import threading import time +import os from pygame import mixer from pynput import keyboard +TEXT_PATH = "copy-pastas/" -with open("badjoke.txt", "r") as f: - script = f.read() - script = script.replace("’", "'") +delay = 0.025 # delay between each character typed in seconds. +keys = {eval(f"keyboard.Key.f{i + 1}"): "" for i in range(12)} +scripts = [] +for root, dirs, files in os.walk(TEXT_PATH): + for i, x in enumerate(zip(files, keys)): + file, key = x + with open(os.path.join(TEXT_PATH, file), "r") as f: + keys[key] = f.read().replace("’", "'") +# Sound mixer.init() - -mixer.music.load("reddit-admin-typing-14393.mp3") +mixer.music.load("reddit-admin-typing.mp3") mixer.music.set_volume(0.5) -delay = 0.025 +# to stop typing before end. +stopped = False + -def typer(): +def typer(text): + global stopped mixer.music.play(-1) k = keyboard.Controller() - for char in script: + for char in text: if char == "\n": char = keyboard.Key.enter - # print(f"{char=}, {keyboard.Key.enter}", end='') k.press(char) time.sleep(delay) k.release(char) + if stopped: + break mixer.music.stop() def on_press(key): - if key == keyboard.Key.f5: - t = threading.Thread(target=typer) + global stopped + if key in keys: # having another thread so we can detect input while typing + stopped = False + t = threading.Thread(target=typer, args=[keys[key]]) t.start() - if key == keyboard.Key.esc: + elif key == keyboard.Key.pause: + stopped = True + elif key == keyboard.Key.esc: quit() -with keyboard.Listener(on_press=on_press) as listener: +with keyboard.Listener(on_press=on_press) as listener: # listening for events listener.join() diff --git a/reddit-admin-typing-14393.mp3 b/reddit-admin-typing.mp3 similarity index 100% rename from reddit-admin-typing-14393.mp3 rename to reddit-admin-typing.mp3 diff --git a/test.txt b/test.txt deleted file mode 100644 index d68dd40..0000000 --- a/test.txt +++ /dev/null @@ -1,4 +0,0 @@ -a -b -c -d diff --git a/typer_game.py b/typer_game.py index 02db396..5fe4937 100644 --- a/typer_game.py +++ b/typer_game.py @@ -46,7 +46,7 @@ class Words: self.index = 0 self.typed_words = [""] self.display_words = [self.font.render("", True, BLACK)] - self.position = pygame.Vector2(self.left_bound, HEIGHT/2) + self.position = pygame.Vector2(self.left_bound, HEIGHT / 2) self.draw_cursor = True self.time = 0 @@ -76,12 +76,12 @@ class Words: self.draw_cursor = not self.draw_cursor self.time = 0 self.time += delta + def add_new_line(self): self.position.y -= self.display_words[-1].get_height() self.typed_words.append("") self.display_words.append(self.font.render("", True, BLACK)) - def draw(self, surf): surf.fill(WHITE) prev = self.position.copy() @@ -95,7 +95,9 @@ class Words: # pygame.draw.line(surf, BLACK, (self.left_bound, 0), (self.left_bound, HEIGHT)) # pygame.draw.line(surf, BLACK, (self.right_bound, 0), (self.right_bound, HEIGHT)) if self.draw_cursor: - pygame.draw.line(surf, BLACK, (prev.x + self.display_words[-1].get_width(),prev.y - self.display_words[-1].get_height()),(prev.x + self.display_words[-1].get_width(),prev.y)) + pygame.draw.line(surf, BLACK, ( + prev.x + self.display_words[-1].get_width(), prev.y - self.display_words[-1].get_height()), + (prev.x + self.display_words[-1].get_width(), prev.y)) game = Words() -- 2.54.0