diff --git a/frontend/public/wordlist.json b/frontend/public/wordlist.json new file mode 100644 index 0000000..a1e28df --- /dev/null +++ b/frontend/public/wordlist.json @@ -0,0 +1,994 @@ +{ + "words": [ + "Abbau", + "Abend", + "Abgas", + "Abhub", + "Abruf", + "Absud", + "Abtei", + "Abweg", + "Abzug", + "Achse", + "Acker", + "Acryl", + "Adept", + "Adern", + "Adler", + "Affen", + "After", + "Agave", + "Agent", + "Agrar", + "Ahorn", + "Akten", + "Aktie", + "Aktor", + "Alarm", + "Alben", + "Album", + "Algen", + "Alibi", + "Alien", + "Allee", + "Almen", + "Alpen", + "Altar", + "Amber", + "Ampel", + "Amsel", + "Anbau", + "Anden", + "Angel", + "Anime", + "Anker", + "Anmut", + "Anode", + "Anruf", + "Anzug", + "Aorta", + "Apfel", + "Apnoe", + "April", + "Arbon", + "Arche", + "Areal", + "Arena", + "Argon", + "Armee", + "Armut", + "Aroma", + "Arsen", + "Asche", + "Asiat", + "Asien", + "Assel", + "Astro", + "Atlas", + "Atoll", + "Atome", + "Audio", + "Audit", + "Augen", + "Autor", + "Axiom", + "Azubi", + "Bagel", + "Bambi", + "Bande", + "Banjo", + "Barde", + "Basar", + "Basis", + "Baske", + "Bauch", + "Bauer", + "Bayer", + "Bazar", + "Beere", + "Beete", + "Beile", + "Beine", + "Belag", + "Beleg", + "Beppo", + "Beruf", + "Besen", + "Beton", + "Bezug", + "Bibel", + "Biber", + "Biene", + "Biere", + "Biest", + "Biker", + "Bilge", + "Bimbo", + "Bingo", + "Binom", + "Birke", + "Birne", + "Bison", + "Bisse", + "Blatt", + "Blech", + "Blick", + "Blitz", + "Block", + "Blues", + "Bluff", + "Blume", + "Bluse", + "Board", + "Boden", + "Bohle", + "Bohne", + "Bojen", + "Bombe", + "Bongo", + "Bonus", + "Bonze", + "Borax", + "Borde", + "Borke", + "Borna", + "Boson", + "Botox", + "Bowle", + "Boxer", + "Brand", + "Brass", + "Brief", + "Brigg", + "Brise", + "Brite", + "Brote", + "Bruch", + "Brust", + "Buben", + "Buden", + "Buggy", + "Bulle", + "Burka", + "Busch", + "Busen", + "Busse", + "Bussi", + "Butan", + "Caddy", + "Celle", + "Cello", + "Ceran", + "Chaos", + "Chaot", + "Chemo", + "Chili", + "China", + "Chlor", + "Chrom", + "Civil", + "Clone", + "Cloud", + "Clown", + "Coach", + "Cobol", + "Comic", + "Corso", + "Couch", + "Curry", + "Cyber", + "Dachs", + "Damen", + "Dampf", + "Datei", + "Daten", + "Dativ", + "Datum", + "Daube", + "Dauer", + "Daune", + "Degen", + "Deich", + "Dekan", + "Dekor", + "Delir", + "Demut", + "Depot", + "Derby", + "Diebe", + "Diele", + "Dildo", + "Diner", + "Dingo", + "Diode", + "Dirne", + "Disco", + "Disko", + "Dispo", + "Docht", + "Dogma", + "Dolch", + "Donau", + "Dorne", + "Dosen", + "Dosis", + "Draht", + "Drama", + "Dreck", + "Dress", + "Drill", + "Drink", + "Droge", + "Duden", + "Duell", + "Duett", + "Dummy", + "Dunst", + "Durst", + "Dusel", + "Ebola", + "Echse", + "Eifel", + "Eifer", + "Eimer", + "Eisen", + "Eiter", + "Eklat", + "Ekzem", + "Elfen", + "Elite", + "Ellen", + "Elsas", + "Emoji", + "Engel", + "Enkel", + "Enten", + "Enzym", + "Erbin", + "Erbse", + "Esche", + "Eseln", + "Essig", + "Etage", + "Etats", + "Ether", + "Ethik", + "Ethos", + "Eulen", + "Euter", + "Event", + "Exile", + "Fabel", + "Fahne", + "Fakir", + "Falke", + "Fanta", + "Farbe", + "Farce", + "Farne", + "Fasan", + "Faser", + "Fauna", + "Faust", + "Fazit", + "Feder", + "Feger", + "Fehde", + "Feier", + "Felge", + "Felle", + "Femen", + "Femur", + "Ferme", + "Ferse", + "Feten", + "Fetus", + "Feuer", + "Fibel", + "Fiber", + "Figur", + "Filet", + "Finne", + "Finte", + "Firma", + "Fisch", + "Fjord", + "Flaum", + "Fleck", + "Flirt", + "Flora", + "Fluch", + "Fluge", + "Fluor", + "Fluse", + "Flush", + "Fluss", + "Flyer", + "Fokus", + "Folie", + "Foren", + "Forst", + "Forum", + "Foyer", + "Frack", + "Freak", + "Frist", + "Front", + "Frost", + "Frust", + "Fuchs", + "Fuhre", + "Funde", + "Furie", + "Furor", + "Fusel", + "Futon", + "Futur", + "Gabel", + "Galle", + "Gamer", + "Garde", + "Gasse", + "Gassi", + "Gatte", + "Gaube", + "Gaudi", + "Gauen", + "Geber", + "Gebet", + "Gecko", + "Geier", + "Geist", + "Gelee", + "Gemme", + "Genie", + "Genom", + "Genre", + "Geste", + "Getto", + "Gicht", + "Gilde", + "Glanz", + "Gleis", + "Glied", + "Golem", + "Gosse", + "Gouda", + "Gramm", + "Graph", + "Greis", + "Grimm", + "Grips", + "Grube", + "Gruft", + "Grund", + "Gummi", + "Gunst", + "Gyros", + "Hader", + "Hades", + "Hafen", + "Hafer", + "Hagel", + "Haiku", + "Halde", + "Handy", + "Harem", + "Harfe", + "Hartz", + "Hasch", + "Hasen", + "Haube", + "Hauer", + "Haupt", + "Hebel", + "Heber", + "Hecht", + "Heere", + "Heide", + "Hesse", + "Hexer", + "Hirse", + "Hirte", + "Hitze", + "Hobby", + "Hobel", + "Hoden", + "Honig", + "Horde", + "Hosen", + "Hotel", + "Hufen", + "Humor", + "Humus", + "Hydra", + "Hydro", + "Ideen", + "Idiom", + "Idiot", + "Idyll", + "Ikone", + "Imker", + "Inbus", + "Index", + "Insel", + "Intro", + "Inuit", + "Islam", + "Jacke", + "Japan", + "Jeans", + "Jesus", + "Joint", + "Joker", + "Jubel", + "Judas", + "Jumbo", + "Juror", + "Juwel", + "Kabel", + "Kader", + "Kakao", + "Kamel", + "Kamin", + "Kampf", + "Kanal", + "Kanne", + "Kanon", + "Karat", + "Karma", + "Kasse", + "Kater", + "Katze", + "Kebab", + "Kekse", + "Kelch", + "Kelle", + "Kelte", + "Kerle", + "Kerne", + "Kerze", + "Kieme", + "Kimme", + "Kiosk", + "Kippa", + "Kiste", + "Klima", + "Klotz", + "Kluft", + "Knabe", + "Knast", + "Knauf", + "Knick", + "Knopf", + "Koala", + "Kobra", + "Kodex", + "Kohle", + "Kojen", + "Kokon", + "Kokos", + "Kolik", + "Komet", + "Komik", + "Komma", + "Kopie", + "Koran", + "Krach", + "Krake", + "Kranz", + "Kraut", + "Krebs", + "Kreis", + "Krill", + "Krimi", + "Kripo", + "Krise", + "Krone", + "Kufen", + "Kugel", + "Kuhle", + "Kunde", + "Kunst", + "Kuppe", + "Kurse", + "Kutte", + "Labor", + "Lachs", + "Lager", + "Laich", + "Laien", + "Laken", + "Lampe", + "Lanze", + "Larve", + "Laser", + "Lasso", + "Lasur", + "Latex", + "Latte", + "Laube", + "Lauch", + "Laune", + "Leder", + "Leier", + "Leine", + "Lemur", + "Lende", + "Lepra", + "Lesbe", + "Leser", + "Leute", + "Level", + "Lexus", + "Liesl", + "Lilie", + "Limbo", + "Limit", + "Linie", + "Lippe", + "Liter", + "Lobby", + "Lodge", + "Logik", + "Lokus", + "Lolli", + "Lotto", + "Lotus", + "Luchs", + "Luder", + "Lumen", + "Lunge", + "Lunte", + "Lurch", + "Luxus", + "Lyrik", + "Macho", + "Macke", + "Maden", + "Mafia", + "Magen", + "Magma", + "Mainz", + "Major", + "Makel", + "Maler", + "Mambo", + "Manta", + "Mappe", + "Marke", + "Markt", + "Maske", + "Masse", + "Media", + "Meile", + "Meise", + "Memme", + "Mensa", + "Meter", + "Metro", + "Meute", + "Miene", + "Mikro", + "Milbe", + "Milch", + "Miliz", + "Minze", + "Mixer", + "Model", + "Modem", + "Modul", + "Modus", + "Mogul", + "Molke", + "Monat", + "Moped", + "Mopps", + "Moral", + "Motiv", + "Motor", + "Motte", + "Motto", + "Muffe", + "Mulch", + "Mulde", + "Mumie", + "Mumms", + "Mumps", + "Murks", + "Musik", + "Nabel", + "Nacht", + "Nadel", + "Nagel", + "Nager", + "Namen", + "Narbe", + "Natur", + "Nebel", + "Neffe", + "Nelke", + "Nexus", + "Niere", + "Ninja", + "Nisse", + "Nixen", + "Nomen", + "Nonne", + "Notar", + "Notiz", + "Novum", + "Nudel", + "Nugat", + "Nylon", + "Obhut", + "Ochse", + "Ohren", + "Oktan", + "Oktav", + "Oldie", + "Olymp", + "Onkel", + "Opiat", + "Opium", + "Optik", + "Orbit", + "Orden", + "Order", + "Organ", + "Orgel", + "Orgie", + "Orion", + "Orkan", + "Ornat", + "Osten", + "Otter", + "Oxide", + "Ozean", + "Pacht", + "Paket", + "Palme", + "Pampa", + "Pampe", + "Panda", + "Panik", + "Panne", + "Papst", + "Paris", + "Parka", + "Party", + "Pasta", + "Paste", + "Pater", + "Pegel", + "Penis", + "Penny", + "Pesto", + "Pfahl", + "Pfalz", + "Pfand", + "Pfeil", + "Pferd", + "Pflug", + "Pfote", + "Pfund", + "Phase", + "Pille", + "Pilot", + "Pilze", + "Pippi", + "Pirat", + "Piste", + "Pixel", + "Pizza", + "Platz", + "Pluto", + "Pocke", + "Pokal", + "Poker", + "Polio", + "Polka", + "Polle", + "Polyp", + "Popel", + "Poren", + "Porno", + "Porto", + "Posse", + "Prinz", + "Prise", + "Profi", + "Promi", + "Prosa", + "Protz", + "Proxy", + "Prunk", + "Psalm", + "Pudel", + "Puder", + "Pulli", + "Punkt", + "Puppe", + "Pussy", + "Pylon", + "Pyrit", + "Qualm", + "Quark", + "Quarz", + "Quell", + "Quirl", + "Quote", + "Rabbi", + "Rache", + "Radar", + "Radau", + "Radio", + "Radon", + "Rampe", + "Ranch", + "Raser", + "Rasse", + "Rasur", + "Ratte", + "Raudi", + "Rauke", + "Raupe", + "Regal", + "Regel", + "Regie", + "Remix", + "Rente", + "Reste", + "Revue", + "Rille", + "Rinde", + "Rippe", + "Rispe", + "Ritus", + "Rodeo", + "Rollo", + "Roman", + "Rosen", + "Rotor", + "Route", + "Rover", + "Rowdy", + "Rubin", + "Rudel", + "Ruder", + "Rugby", + "Ruine", + "Rumpf", + "Runen", + "Sache", + "Sakko", + "Salat", + "Saldo", + "Salon", + "Salsa", + "Salto", + "Salut", + "Salve", + "Samba", + "Samen", + "Satan", + "Satin", + "Satyr", + "Sauce", + "Sauna", + "Scala", + "Schaf", + "Schar", + "Schub", + "Schuh", + "Schur", + "Seele", + "Segel", + "Segen", + "Seher", + "Seide", + "Seite", + "Sekte", + "Senat", + "Sense", + "Sepia", + "Serie", + "Serum", + "Sesam", + "Shirt", + "Sicht", + "Siele", + "Silbe", + "Sinus", + "Sippe", + "Sirup", + "Sitte", + "Skala", + "Slang", + "Snack", + "Socke", + "Sohle", + "Sohne", + "Sonar", + "Sonde", + "Sorte", + "Spalt", + "Spatz", + "Speck", + "Speer", + "Spion", + "Spore", + "Sport", + "Spott", + "Spray", + "Spreu", + "Sprit", + "Spurt", + "Staat", + "Stadt", + "Stall", + "Stamm", + "Start", + "Staub", + "Steak", + "Stein", + "Stern", + "Stiel", + "Stier", + "Stift", + "Stirn", + "Stock", + "Stoff", + "Strom", + "Stube", + "Stuhl", + "Sturm", + "Sturz", + "Stuss", + "Stute", + "Sumpf", + "Suppe", + "Szene", + "Tabak", + "Tacho", + "Tadel", + "Tafel", + "Tanga", + "Tango", + "Tanne", + "Tante", + "Tapir", + "Tarif", + "Tarot", + "Taser", + "Tasse", + "Tatze", + "Tegel", + "Teich", + "Tempo", + "Tenor", + "Theke", + "Thema", + "These", + "Tiger", + "Tilde", + "Tinte", + "Tirol", + "Tisch", + "Titan", + "Titel", + "Titte", + "Toast", + "Tobak", + "Toner", + "Tonic", + "Tonne", + "Toxin", + "Trafo", + "Traum", + "Treff", + "Trend", + "Trick", + "Troll", + "Tropf", + "Trost", + "Truck", + "Truhe", + "Trupp", + "Tubus", + "Tukan", + "Tulpe", + "Tumor", + "Tuner", + "Tupel", + "Turbo", + "Tutor", + "Twist", + "Uhren", + "Umbau", + "Umweg", + "Umzug", + "Unart", + "Unfug", + "Union", + "Unmut", + "Unrat", + "Unruh", + "Untat", + "Vasen", + "Vater", + "Venen", + "Venus", + "Verse", + "Video", + "Viech", + "Villa", + "Vinyl", + "Viper", + "Viren", + "Virus", + "Visum", + "Vogel", + "Votum", + "Vulva", + "Waage", + "Waben", + "Wachs", + "Waden", + "Waffe", + "Wagon", + "Waise", + "Wampe", + "Wange", + "Wanne", + "Wanst", + "Wanze", + "Warze", + "Watte", + "Weber", + "Wedel", + "Welpe", + "Wesen", + "Wespe", + "Weste", + "Wille", + "Witwe", + "Witze", + "Woche", + "Wohle", + "Wolke", + "Wonne", + "Wrack", + "Wucht", + "Wulst", + "Wurst", + "Xenon", + "Xerox", + "Yacht", + "Zacke", + "Zange", + "Zarge", + "Zebra", + "Zecke", + "Zeder", + "Zehen", + "Zeile", + "Zelle", + "Zelot", + "Ziege", + "Zitat", + "Zitze", + "Zonen", + "Zubau", + "Zucht", + "Zunft", + "Zunge", + "Zuruf", + "Zweck", + "Zweig", + "Zwerg", + "Zwirn", + "Zwist", + "Zyste" + ] +} diff --git a/src/main.rs b/src/main.rs index 3d03ae3..8b6c185 100644 --- a/src/main.rs +++ b/src/main.rs @@ -13,6 +13,7 @@ use tower_http::services::ServeDir; use tracing::info; #[shuttle_runtime::main] +#[allow(clippy::unused_async)] async fn main() -> shuttle_axum::ShuttleAxum { let cors = CorsLayer::new() .allow_origin(Any) // Allow all origins; adjust as necessary @@ -30,7 +31,7 @@ async fn main() -> shuttle_axum::ShuttleAxum { async fn word() -> String { let mut rng = rand::thread_rng(); - WORDS.choose(&mut rng).unwrap().to_string() + WORDS.choose(&mut rng).map_or_else(String::new, |w| (*w).to_string()) } async fn log_ip(req: Request, next: Next) -> Response {