Muss mich einfalten

Lasse meine Texte umschichten; hoffe, sie klappen gut zusammen und leben noch am Ende. Dafür nutze ich dies:

import random
import tkinter as tk

def insert_connections(text):
    connections = ["in", "oder", ":", "hier"]
    words = text.split()
    
    new_words = []
    for i in range(len(words)):
        new_words.append(words[i])
        # Füge alle 15 Wörter eine Verbindung hinzu
        if (i + 1) % 15 == 0:
            new_words.append(random.choice(connections))
    
    return ' '.join(new_words)

def count_words(text):
    word_count = len(text.split())
    return f"{word_count} Patchkabel"

def swap_words(text):
    words = text.split()
    if len(words) < 3:
        return text  # Nichts zu vertauschen
    words[1], words[2] = words[2], words[1]
    return insert_random_line_breaks(' '.join(words))

def sort_words(text):
    words = text.split()
    sorted_words = sorted(words)
    return insert_random_line_breaks(' '.join(sorted_words))

def insert_random_line_breaks(text):
    words = text.split()
    new_text = []
    for i in range(len(words)):
        new_text.append(words[i])
        # Füge zufällige Absätze nach 2 bis 5 Wörtern hinzu
        if (i + 1) % random.randint(2, 5) == 0:
            new_text.append('\n\n')  # Doppelte Zeilenumbrüche für Absätze
    return ' '.join(new_text)

def process_text():
    input_text = text_input.get("1.0", "end-1c")
    output_text = input_text
    
    if var_swap.get():
        output_text = swap_words(output_text)
    
    if var_sort.get():
        output_text = sort_words(output_text)
        
    if var_connections.get():
        output_text = insert_connections(output_text)

    word_count = count_words(output_text)
    output_text += f"\n\n{word_count}"
    
    output_display.delete("1.0", "end")
    output_display.insert("1.0", output_text)

# GUI Setup
root = tk.Tk()
root.title("Textbearbeitungs-Tool")

text_input = tk.Text(root, height=10, width=50)
text_input.pack()

var_swap = tk.BooleanVar()
var_sort = tk.BooleanVar()
var_connections = tk.BooleanVar()

swap_check = tk.Checkbutton(root, text="Worte vertauschen", variable=var_swap)
swap_check.pack()

sort_check = tk.Checkbutton(root, text="Wörter sortieren", variable=var_sort)
sort_check.pack()

connections_check = tk.Checkbutton(root, text="Verbindungen hinzufügen", variable=var_connections)
connections_check.pack()

process_button = tk.Button(root, text="Text bearbeiten", command=process_text)
process_button.pack()

output_display = tk.Text(root, height=10, width=50)
output_display.pack()

root.mainloop()

Der Kater gähnt ausgiebig und stellt sich halbgewichtet auf die Shifttaste. Sein Atem riecht nach einem zugedeckten Fisch.