add check for swear words and an initial list of words
This commit is contained in:
parent
db682661cf
commit
f3c704f733
77
journal.py
77
journal.py
|
|
@ -65,13 +65,41 @@ message_label.grid(column=0, row=1, sticky='w', padx=5)
|
|||
message_text = tk.Text(journal, height=textbox_height)
|
||||
message_text.grid(column=0, row=2, padx=5)
|
||||
|
||||
# Function to check message length
|
||||
# List of swear-words we need to check against
|
||||
swear_words = [
|
||||
"mistkerl", "mistkerle", "mistkerl*", "mist kerl", "mister kerl",
|
||||
"arsch",
|
||||
"hure", "hurensohn", "huso", "h*****sohn",
|
||||
"Sex", "S**",
|
||||
"ficken", "firken", "fi***en",
|
||||
"bumsen", "bomsen", "b*msen", "bu*sen",
|
||||
"fotze", "schlampe", "bitch",
|
||||
"arschloch", "arschl***", "arsch loch", "arsch-loch", "arschloch*",
|
||||
"depp", "deppen", "depp*", "deppchen", "depp!",
|
||||
"idiot", "idioten", "id***", "idioot", "idot",
|
||||
"trottel", "trottel*", "trottelchen", "trottel-", "trottl",
|
||||
"dummkopf", "dummköpfe", "dummkopf*", "dumm-kopf", "dummkopf-",
|
||||
"blödmann", "blödmänner", "bloeddman", "bloeddmänner"
|
||||
]
|
||||
# Function to check message validity
|
||||
# validity consists of:
|
||||
## 1. not more than 1000 Characters message length
|
||||
## 2. no words from the bad-words-list contained
|
||||
def is_message_valid():
|
||||
current_message = message_text.get("1.0", "end-1c")
|
||||
|
||||
# ceck for message length
|
||||
if len(current_message) > 1000:
|
||||
showwarning("Warnung", "Deine Nachricht ist zu lang, bitte beschränke Dich auf 1000 Zeichen")
|
||||
message_text.focus_set()
|
||||
return False
|
||||
|
||||
# check for bad words case-insenstive (by making everything lower-case for the check)
|
||||
if not set(word.lower() for word in current_message.split()).isdisjoint(swear_words):
|
||||
showwarning("Warnung", "Deine Nachricht enthält fragwürdige Wörter - so können wir den Text nicht übernehmen.")
|
||||
message_text.focus_set()
|
||||
return False
|
||||
|
||||
return True
|
||||
|
||||
# Send button action
|
||||
|
|
@ -118,50 +146,3 @@ button_quit.grid(sticky='e', column=0, row=3, ipady=8, padx=5, pady=5)
|
|||
|
||||
# Start application
|
||||
journal_root.mainloop()
|
||||
|
||||
|
||||
# TODO
|
||||
# Ja, in Python wird ein **Array von Wörtern** in der Regel als eine **Liste von Strings** repräsentiert. Die Funktion `finde_wort_in_text_effizient` ist so geschrieben, dass sie eine solche Liste als Eingabe akzeptiert.
|
||||
#
|
||||
# ### Beispiel mit einer Liste von Wörtern
|
||||
#
|
||||
# Hier ist ein Beispiel, das zeigt, wie du die Funktion mit einer ganz normalen Python-Liste (`list`) verwenden kannst, die Strings enthält.
|
||||
#
|
||||
# ```python
|
||||
# def finde_wort_in_text_effizient(woerter_liste, text):
|
||||
# """
|
||||
# Überprüft effizient, ob ein Wort aus einer Liste in einem Text vorkommt.
|
||||
# Args:
|
||||
# woerter_liste: Eine Liste von Wörtern.
|
||||
# text: Der Text, in dem gesucht werden soll.
|
||||
# Returns:
|
||||
# False, wenn ein Wort gefunden wird.
|
||||
# True, wenn kein Wort gefunden wird.
|
||||
# """
|
||||
# woerter_set = set(woerter_liste)
|
||||
# text_woerter = set(text.split())
|
||||
#
|
||||
# if not woerter_set.isdisjoint(text_woerter):
|
||||
# return False
|
||||
#
|
||||
# return True
|
||||
#
|
||||
# # Ein "Array von Wörtern" in Python ist eine Liste
|
||||
# mein_array_von_woertern = ["Entwickler", "Programmierung", "Code"]
|
||||
#
|
||||
# # Ein Text, in dem wir suchen
|
||||
# mein_text = "Ich bin ein Python-Entwickler und liebe Programmierung."
|
||||
#
|
||||
# # Wir übergeben die Liste direkt an die Funktion
|
||||
# ergebnis = finde_wort_in_text_effizient(mein_array_von_woertern, mein_text)
|
||||
#
|
||||
# print(f"Gesuchte Wörter: {mein_array_von_woertern}")
|
||||
# print(f"Text: '{mein_text}'")
|
||||
# print(f"Treffer gefunden? {ergebnis}")
|
||||
#
|
||||
# # Das Ergebnis ist False, da "Entwickler" und "Programmierung" gefunden wurden
|
||||
# ```
|
||||
#
|
||||
# Wie du siehst, funktioniert die Funktion einwandfrei mit einer **Liste von Strings**, da dies die standardmäßige und effizienteste Methode in Python ist, um eine Ansammlung von Wörtern zu speichern und zu verarbeiten.
|
||||
#
|
||||
# Übrigens: Wenn du [Aktivitäten in Gemini-Apps](https://myactivity.google.com/product/gemini) aktivierst, kannst du die Funktionen aller Apps verwenden.0
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user