From 87ef9a6ba0c24ddae05d155ed441e3bc247312ae Mon Sep 17 00:00:00 2001 From: Asger Geel Weirsoee Date: Sun, 18 Oct 2026 12:59:29 +0200 Subject: [PATCH] =?UTF-8?q?Fest:=20sp=C3=B8rgsm=C3=A5l=20til=20unge,=20zoo?= =?UTF-8?q?mer-hjerne=20og=20zoomer-drillerier?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fest-pakken handler nu om ungdomskultur: "Fest: slang" (årets ord, slangens oprindelse, dansk ungdomssprog) og "Fest: internettet" (memes, creators, spil), ved siden af "Fest: nu". "Fest: retro" er taget ud. Hjernen får sin egen fest-instruks (zoomer-speaker, tår må nævnes), så afsløringens replikker og kommentarer også taler zoomer. Telefonens drillerier har en fest-pulje, og de sidste faste replikker har fået fest-udgaver. Claude-Session: https://claude.ai/code/session_01JmhJG6JnhXfzNiKv8f2vHu --- fupogfakta/data/questions_d_fest.json | 1863 +++++++++++++++++-------- fupogfakta/narrator/lines.json | 45 + party/brain/game.py | 46 +- party/management/commands/tts_warm.py | 4 +- party/narrator.py | 7 + party/rooms.py | 6 +- party/tests/test_brain.py | 37 + 7 files changed, 1396 insertions(+), 612 deletions(-) diff --git a/fupogfakta/data/questions_d_fest.json b/fupogfakta/data/questions_d_fest.json index b754e8f..cde6b59 100644 --- a/fupogfakta/data/questions_d_fest.json +++ b/fupogfakta/data/questions_d_fest.json @@ -1,602 +1,4 @@ [ - { - "category": "Fest: retro", - "packs": [ - "fest" - ], - "prompt": "Før Aqua slog igennem med Barbie Girl, hed gruppen _____ og udgav en cover af Itsy Bitsy Spider. Lowkey cursed origin story.", - "answer": "Joyspeed", - "alternatives": [ - "joyspeed", - "joy speed" - ], - "decoys": [ - "Bubblegum", - "Splashdance", - "Candyrain", - "Seastar" - ], - "note": "No cap, Aqua hed Joyspeed før de blev Aqua, og singlen Itsy Bitsy Spider kom på hitlisten i Sverige. It's giving børnehave-rave for real.", - "source": "https://da.wikipedia.org/wiki/Aqua_(band)", - "pitch": { - "Joyspeed": "Lyder som en energidrik fra 1989, og det er en kompliment.", - "Bubblegum": "[chuckles] Tyggegummipop før det var cool, bestie.", - "Splashdance": "Et bandnavn der danser, før musikken starter.", - "Candyrain": "[excited] Regnvejr af slik, peak 90'er-æstetik.", - "Seastar": "Havtema før Aqua? Det er bare logisk, no cap." - } - }, - { - "category": "Fest: retro", - "packs": [ - "fest" - ], - "prompt": "Da Mattel sagsøgte Aquas pladeselskab over Barbie Girl, sluttede den amerikanske dommer afgørelsen med ordene: \"The parties are advised to _____.\"", - "answer": "chill", - "alternatives": [ - "chill", - "to chill" - ], - "decoys": [ - "dance", - "grow up", - "make up", - "shut up" - ], - "note": "Dommer Alex Kozinski ate totalt: \"The parties are advised to chill.\" Main character energy i en amerikansk retssal, og Mattel brugte senere selv sangen i reklamer.", - "source": "https://en.wikipedia.org/wiki/Mattel,_Inc._v._MCA_Records,_Inc.", - "pitch": { - "chill": "[laughs] En dommer med rizz? Det ville være peak.", - "dance": "Det er en Aqua-sag, selvfølgelig skal de danse.", - "grow up": "Lyder som en træt far til to plastikdukker.", - "make up": "[mischievously] Barbie og Ken-energi, kys og bliv venner.", - "shut up": "Hård dommer-energi, ingen pjat i retten." - } - }, - { - "category": "Fest: retro", - "packs": [ - "fest" - ], - "prompt": "Whigfield, kvinden bag 90'er-bangeren Saturday Night, er dansk og hedder i virkeligheden _____ Carlson.", - "answer": "Sannie", - "alternatives": [ - "sannie", - "sannie charlotte" - ], - "decoys": [ - "Mette", - "Linnea", - "Tanja", - "Bettina" - ], - "note": "Whigfield er Sannie Charlotte Carlson fra Skælskør, bestie. Saturday Night gik nr. 1 i UK, og i MGP 2018 stillede hun op som bare Sannie.", - "source": "https://en.wikipedia.org/wiki/Whigfield", - "pitch": { - "Sannie": "Et navn så sjældent, at det må være sandt.", - "Mette": "Den mest danske 90'er-pige, no cap.", - "Linnea": "Lyder lidt svensk, og Carlson hjælper jo.", - "Tanja": "[sarcastic] Tanja fra Skælskør, it's giving lokal stjerne.", - "Bettina": "Bettina Carlson? Det er giving eurodance-dronning." - } - }, - { - "category": "Fest: retro", - "packs": [ - "fest" - ], - "prompt": "Andrea Fuentealba Valbak skiftede i 2005 navn til Medina efter at have spurgt en _____ til råds.", - "answer": "numerolog", - "alternatives": [ - "numerolog", - "numerologist", - "numerologen" - ], - "decoys": [ - "clairvoyant", - "astrolog", - "tarotlægger", - "spåkone" - ], - "note": "Hun konsulterede en numerolog og blev til Medina Danielle Oona Valbak. Lidt delulu måske, men Kun for mig blev årets bedst sælgende single i 2009, så hun ate.", - "source": "https://da.wikipedia.org/wiki/Medina_(sanger)", - "pitch": { - "numerolog": "[whispers] Tallene lyver aldrig, bestie.", - "clairvoyant": "Hun så navnet i en vision, lowkey creepy.", - "astrolog": "Stjernetegnet bestemte det, obviously.", - "tarotlægger": "[mischievously] Kortene blev lagt, og Medina kom op.", - "spåkone": "Spåkone med krystalkugle, peak 2005-vibe." - } - }, - { - "category": "Fest: retro", - "packs": [ - "fest" - ], - "prompt": "Lukas Forchhammer fra Lukas Graham spillede som barn rollen som _____ i de første tre film om Krummerne.", - "answer": "Grunk", - "alternatives": [ - "grunk" - ], - "decoys": [ - "Krumme", - "Pjevs", - "Snusser", - "Lillebror" - ], - "note": "Lukas var Grunk i de tre første Krummerne-film, og senere lagde han dansk stemme til Andy i Toy Story 2 og 3. Childhood unlocked, no cap.", - "source": "https://en.wikipedia.org/wiki/Lukas_Forchhammer", - "pitch": { - "Grunk": "[chuckles] Det lyder som en lyd, ikke et navn, og det passer.", - "Krumme": "Hovedrollen, selvfølgelig, main character fra start.", - "Pjevs": "Et navn der skriger 90'er-familiefilm.", - "Snusser": "Sød lille rolle, giving barnestjerne.", - "Lillebror": "Den klassiske lillebror-rolle, bestie." - } - }, - { - "category": "Fest: retro", - "packs": [ - "fest" - ], - "prompt": "Brødrene Olsens Eurovision-vinder Fly on the Wings of Love hed oprindeligt på dansk \"_____\".", - "answer": "Smuk som et stjerneskud", - "alternatives": [ - "smuk som et stjerneskud" - ], - "decoys": [ - "Flyv på kærlighedens vinger", - "Højt over skyerne", - "Vinger af guld", - "Du er min engel" - ], - "note": "Den danske titel var Smuk som et stjerneskud, og Jørgen var 50 år, da de vandt i 2000. Boomer-rizz på absolut max, de slayede Stockholm.", - "source": "https://en.wikipedia.org/wiki/Olsen_Brothers", - "pitch": { - "Smuk som et stjerneskud": "[sighs] Ren poesi, onkel-romantik i topform.", - "Flyv på kærlighedens vinger": "Den direkte oversættelse, it's giving Google Translate.", - "Højt over skyerne": "Lyder som noget, man synger i en flyver.", - "Vinger af guld": "Guld og vinger, Eurovision-bingo, no cap.", - "Du er min engel": "[excited] Peak dansk schlager, jeg græder." - } - }, - { - "category": "Fest: retro", - "packs": [ - "fest" - ], - "prompt": "Før solokarrieren og Engel rappede Rasmus Seebach sammen med storebror Nicolai i hiphopgruppen _____.", - "answer": "G-Bach", - "alternatives": [ - "g-bach", - "gbach", - "g bach" - ], - "decoys": [ - "Seebach Boyz", - "Bach & Co.", - "Tommys Drenge", - "Brødrene Beat" - ], - "note": "Rasmus og Nicolai var hiphopgruppen G-Bach og udgav albummet Skakmat i 1999. Engel-Rasmus som rapper er lowkey Ohio, men det er sandt.", - "source": "https://da.wikipedia.org/wiki/Rasmus_Seebach", - "pitch": { - "G-Bach": "[laughs] Klassisk musik møder gangsta-rap, det er giving.", - "Seebach Boyz": "Boyband-navn med z, peak 90'er cringe.", - "Bach & Co.": "Et firmanavn mere end et band, men okay.", - "Tommys Drenge": "[sarcastic] Far Tommy ville være så stolt.", - "Brødrene Beat": "To brødre og en beat, no cap logisk." - } - }, - { - "category": "Fest: retro", - "packs": [ - "fest" - ], - "prompt": "Christophers karriere tog fart i 2011, da hans YouTube-cover af Robyns \"_____\" gik viralt.", - "answer": "Call Your Girlfriend", - "alternatives": [ - "call your girlfriend" - ], - "decoys": [ - "Dancing on My Own", - "With Every Heartbeat", - "Show Me Love", - "Be Mine!" - ], - "note": "Christopher og en ven lavede et cover af Robyns Call Your Girlfriend, som eksploderede på YouTube og fik ham hen til EMI. Main character arc via webcam, bestie.", - "source": "https://da.wikipedia.org/wiki/Christopher_(sanger)", - "pitch": { - "Call Your Girlfriend": "[mischievously] En lidt sus titel for en teenager, hehe.", - "Dancing on My Own": "[sighs] Den mest gråd-i-klubben-sang ever.", - "With Every Heartbeat": "Hjerteslag og strygere, det er giving viral.", - "Show Me Love": "Klassisk 90'er-Robyn, ren nostalgi.", - "Be Mine!": "Kort og catchy, perfekt til YouTube." - } - }, - { - "category": "Fest: retro", - "packs": [ - "fest" - ], - "prompt": "Før de blev Nik & Jay, stillede drengene fra Værløse op til rapkonkurrencer under navnet _____.", - "answer": "Bagmændene", - "alternatives": [ - "bagmændene", - "bagmaendene" - ], - "decoys": [ - "Forstadsdrengene", - "Rimbanditterne", - "Værløse Vandaler", - "Lækkerdrengene" - ], - "note": "De hed Bagmændene i 1998-99 og rebrandede til Nik & Jay i 2002. Debutalbummet blev det bedst sælgende danske rap/R&B-debutalbum nogensinde, slay.", - "source": "https://da.wikipedia.org/wiki/Nik_%26_Jay", - "pitch": { - "Bagmændene": "[whispers] Lyder sus, men det er bare rap.", - "Forstadsdrengene": "Forstads-energi, det er giving Værløse.", - "Rimbanditterne": "Rim og røverhistorier, no cap.", - "Værløse Vandaler": "[laughs] Alliteration-rizz på max.", - "Lækkerdrengene": "Lækker før Lækker, ret logisk faktisk." - } - }, - { - "category": "Fest: retro", - "packs": [ - "fest" - ], - "prompt": "Som blot 16-årig startede Burhan G sin karriere som korsanger for _____.", - "answer": "Outlandish", - "alternatives": [ - "outlandish" - ], - "decoys": [ - "Nik & Jay", - "Jokeren", - "Aqua", - "Infernal" - ], - "note": "Burhan G sang kor for Outlandish i 1999, og før det var han solosopran i Københavns Drengekor. Glow up arc, no cap.", - "source": "https://da.wikipedia.org/wiki/Burhan_G", - "pitch": { - "Outlandish": "Brøndby-forbindelse, det giver bare mening.", - "Nik & Jay": "[chuckles] R&B-drengen med rap-drengene, logisk.", - "Jokeren": "Han kunne ramme de lyse toner, for real.", - "Aqua": "[excited] Barbie Girl med kor? Ja tak.", - "Infernal": "Dancepop-kor, det er giving 90'er." - } - }, - { - "category": "Fest: retro", - "packs": [ - "fest" - ], - "prompt": "Alphabeat fra Silkeborg hed oprindeligt _____, men skiftede navn for ikke at blive forvekslet med et tysk band.", - "answer": "Sodastar", - "alternatives": [ - "sodastar", - "soda star" - ], - "decoys": [ - "Glitterbox", - "Silkebeat", - "Popsicle", - "Starfizz" - ], - "note": "De hed Sodastar fra 2003, men en tysk navnebror fik dem til at skifte i 2006. It's giving sodavand, men Alphabeat ate med Fascination.", - "source": "https://da.wikipedia.org/wiki/Alphabeat", - "pitch": { - "Sodastar": "[excited] Brus og stjerner, det er så dem.", - "Glitterbox": "Glimmer i kassen, peak indiepop.", - "Silkebeat": "[chuckles] Silkeborg-rizz i bandnavnet.", - "Popsicle": "Ispind-energi, sommer hele året.", - "Starfizz": "Fizz og stjerner, giving sodavand." - } - }, - { - "category": "Fest: retro", - "packs": [ - "fest" - ], - "prompt": "Outlandish-rapperen Lenny Martinez kom som 14-årig til Brøndby Strand fra _____.", - "answer": "Honduras", - "alternatives": [ - "honduras" - ], - "decoys": [ - "Chile", - "Colombia", - "Cuba", - "Peru" - ], - "note": "Lenny er født i Honduras og flyttede til Brøndby Strand i 1991. Outlandish var Honduras, Marokko og Pakistan i én crew, bestie, multikulti slay.", - "source": "https://da.wikipedia.org/wiki/Outlandish", - "pitch": { - "Honduras": "Mellemamerika-vibes, det giver mening.", - "Chile": "Mange chilenere kom til Danmark, logisk.", - "Colombia": "[mischievously] Latin-flow, det er giving Colombia.", - "Cuba": "Salsa og rap, no cap.", - "Peru": "Andes-energi i Brøndby, why not." - } - }, - { - "category": "Fest: retro", - "packs": [ - "fest" - ], - "prompt": "Som blot 10-årig startede Joey Moe sit første boyband, som fik det ydmyge navn _____.", - "answer": "Nothing Special", - "alternatives": [ - "nothing special" - ], - "decoys": [ - "Not Ready Yet", - "Just Kidding", - "Almost Famous", - "No Big Deal" - ], - "note": "Han dannede boybandet Nothing Special i 1996 med Theis Keller, der senere kom i Fu:el. Navnet er lowkey humble, men så kom Yo-Yo.", - "source": "https://en.wikipedia.org/wiki/Joey_Moe", - "pitch": { - "Nothing Special": "[laughs] Det mest ydmyge navn nogensinde.", - "Not Ready Yet": "Ærligt navn for en 10-årig, no cap.", - "Just Kidding": "[chuckles] Boyband med selvironi, slay.", - "Almost Famous": "Manifesting før det var en trend.", - "No Big Deal": "Chill navn for chill drenge." - } - }, - { - "category": "Fest: retro", - "packs": [ - "fest" - ], - "prompt": "MGP-vinderen Basim har skrevet sange for boybandet Generations from Exile Tribe, der gik nummer ét i _____.", - "answer": "Japan", - "alternatives": [ - "japan" - ], - "decoys": [ - "Sydkorea", - "Tyrkiet", - "Brasilien", - "Filippinerne" - ], - "note": "Basim skrev til det japanske boyband Generations from Exile Tribe, nr. 1 i Japan i 2016. Fra Cliche Love Song til J-pop, it's giving global rizz.", - "source": "https://da.wikipedia.org/wiki/Basim", - "pitch": { - "Japan": "[excited] J-pop-energi, det giver bare mening.", - "Sydkorea": "K-pop-boyband, obviously, bestie.", - "Tyrkiet": "Boyband-kultur er kæmpe dér, no cap.", - "Brasilien": "[chuckles] Samba-boyband? Lowkey iconic.", - "Filippinerne": "Popmarked i vild vækst, for real." - } - }, - { - "category": "Fest: retro", - "packs": [ - "fest" - ], - "prompt": "Ida Corr vandt som 11-årig det allerførste børne-MGP sammen med bandet _____.", - "answer": "Årgang 77", - "alternatives": [ - "årgang 77", - "årgang '77", - "aargang 77", - "argang 77" - ], - "decoys": [ - "Klasse 5B", - "Generation 88", - "Skolegården", - "Nørrebro Kids" - ], - "note": "Ida Corr vandt det første børne-MGP som 11-årig med bandet Årgang 77. Senere sang hun kor for Gnags og Sanne, slay.", - "source": "https://en.wikipedia.org/wiki/Ida_Corr", - "pitch": { - "Årgang 77": "Retro-navn med tal, peak 80'er-vibe.", - "Klasse 5B": "[chuckles] Klasse-band, det er giving skolekoncert.", - "Generation 88": "Futuristisk navn for børn, lowkey cool.", - "Skolegården": "Frikvarter-energi, peak børne-MGP.", - "Nørrebro Kids": "[excited] Storby-kids med swag, no cap." - } - }, - { - "category": "Fest: retro", - "packs": [ - "fest" - ], - "prompt": "Rasmus Nøhr fik sit gennembrud med en duet med Ida Corr, der hedder \"_____\".", - "answer": "Det glade pizzabud", - "alternatives": [ - "det glade pizzabud", - "glade pizzabud" - ], - "decoys": [ - "Den sure buschauffør", - "Kærlighed på dåse", - "Fredag på Vesterbro", - "Den sidste kebab" - ], - "note": "Gennembruddet var Det glade pizzabud med Ida Corr. En kærlighedssang om et pizzabud er skibidi-levering, men den virkede for real.", - "source": "https://en.wikipedia.org/wiki/Rasmus_N%C3%B8hr", - "pitch": { - "Det glade pizzabud": "[laughs] Ingen ville finde på det, derfor er det sandt.", - "Den sure buschauffør": "Hverdagspoesi, det er så Nøhr.", - "Kærlighed på dåse": "[sighs] Romantik fra Netto-hylden, bestie.", - "Fredag på Vesterbro": "Vesterbro-vibes, det er giving dansk pop.", - "Den sidste kebab": "Natlig snack-romantik, no cap." - } - }, - { - "category": "Fest: retro", - "packs": [ - "fest" - ], - "prompt": "Folk tror, Saybia betyder \"say\" plus \"phobia\", men bandet har sagt, at navnet faktisk kom fra logoet på et _____.", - "answer": "bækken", - "alternatives": [ - "bækken", - "bækkenet", - "sabian-bækken", - "sabian bækken", - "cymbal" - ], - "decoys": [ - "ølkrus", - "keyboard", - "pladecover", - "fodboldtrøje" - ], - "note": "Bandet fra Nyborg har sagt, at navnet er inspireret af logoet på et Sabian-bækken. Trommeslager-rizz, no cap, og debutalbummet gik direkte ind som nr. 1.", - "source": "https://da.wikipedia.org/wiki/Saybia", - "pitch": { - "bækken": "[whispers] Trommeslagerens hævn, bestie.", - "ølkrus": "Øvelokale-kultur, det giver mening.", - "keyboard": "Synth-æra, it's giving 2002.", - "pladecover": "Inspireret af et andet band? Lowkey sus.", - "fodboldtrøje": "[chuckles] Nyborg-fodbold, det er giving lokal." - } - }, - { - "category": "Fest: retro", - "packs": [ - "fest" - ], - "prompt": "Suspekt kaldte deres album fra 2017, inspireret af Orgi-E's rejse i Brasilien, for \"_____\".", - "answer": "100% Jesus", - "alternatives": [ - "100% jesus", - "100 procent jesus", - "100 % jesus" - ], - "decoys": [ - "Tropisk Tabu", - "Samba Suspekt", - "Amen Albertslund", - "Himmelfart" - ], - "note": "Albummet hed 100% Jesus og var inspireret af Orgi-E's tur til Brasilien. Gangsta-rap med kristus-tema er lowkey Ohio, men det slog.", - "source": "https://da.wikipedia.org/wiki/Suspekt", - "pitch": { - "100% Jesus": "[laughs] Ingen bandnavn-ironi, bare fuld tro.", - "Tropisk Tabu": "Tabu Records-nik, det er giving.", - "Samba Suspekt": "[mischievously] Albertslund møder Rio, no cap.", - "Amen Albertslund": "Hellig forstad, peak Suspekt-humor.", - "Himmelfart": "Spirituelt rap-arc, bestie." - } - }, - { - "category": "Fest: retro", - "packs": [ - "fest" - ], - "prompt": "Cut'N'Moves cover af KC and the Sunshine Bands Give It Up lå nummer ét i fire uger i _____.", - "answer": "Australien", - "alternatives": [ - "australien", - "australia" - ], - "decoys": [ - "Canada", - "Sydafrika", - "Mexico", - "Island" - ], - "note": "Give It Up gik nr. 1 i Australien i fire uger i 1994 og fem uger i Danmark. Danske 90'er-dance bangers rejste langt, slay.", - "source": "https://en.wikipedia.org/wiki/Cut_%27N%27_Move", - "pitch": { - "Australien": "[excited] Down under elsker eurodance, no cap.", - "Canada": "Næsten amerikansk, det giver mening.", - "Sydafrika": "Sommerland på den anden halvkugle, slay.", - "Mexico": "[chuckles] Fiesta-energi, it's giving dance.", - "Island": "Små lande elsker dansk pop, for real." - } - }, - { - "category": "Fest: retro", - "packs": [ - "fest" - ], - "prompt": "I 2002 sang Malene Mortensen Tell Me Who You Are ved Eurovision i Tallinn og gav Danmark noget helt nyt: _____.", - "answer": "sidstepladsen", - "alternatives": [ - "sidstepladsen", - "sidste plads", - "sidsteplads", - "sidste pladsen" - ], - "decoys": [ - "nul point", - "en diskvalifikation", - "en delt sejr", - "en buh-orkan" - ], - "note": "Danmarks første sidsteplads nogensinde, nr. 24 af 24 med 7 point. Ick fra Europa, men Malene var stadig main character.", - "source": "https://en.wikipedia.org/wiki/Denmark_in_the_Eurovision_Song_Contest_2002", - "pitch": { - "sidstepladsen": "[sighs] Historisk på den forkerte måde, bestie.", - "nul point": "[gasps] Den mest ikoniske Eurovision-skam.", - "en diskvalifikation": "Reglerne er stramme, det er giving drama.", - "en delt sejr": "Fair for alle, lowkey wholesome.", - "en buh-orkan": "Publikum var ikke fans, no cap." - } - }, - { - "category": "Fest: retro", - "packs": [ - "fest" - ], - "prompt": "Før Me & My og Dub-I-Dub optrådte søstrene Pernille og Susanne Georgi i slut 80'erne som _____.", - "answer": "SuPer Sisters", - "alternatives": [ - "super sisters", - "supersisters" - ], - "decoys": [ - "Georgi Girls", - "Sweet Sisters", - "Double Trouble", - "Pop Søstrene" - ], - "note": "Søstrene hed SuPer Sisters og udgav albums i 1989 og 1990. Senere var Me & My årets bedst sælgende kunstner i Japan, slay.", - "source": "https://da.wikipedia.org/wiki/Me_%26_My", - "pitch": { - "SuPer Sisters": "[excited] Superhelte-søskende, it's giving.", - "Georgi Girls": "Efternavnet som brand, smart move.", - "Sweet Sisters": "[chuckles] Slik-pop-navn, peak 80'er.", - "Double Trouble": "Søskende-kaos, det er bare logisk.", - "Pop Søstrene": "Hjemmestrikket og dansk, no cap." - } - }, - { - "category": "Fest: retro", - "packs": [ - "fest" - ], - "prompt": "Før From Paris to Berlin var Infernal kendt for at proppe _____ ind i dancehits som Kalinka og Highland Fling.", - "answer": "sækkepiber", - "alternatives": [ - "sækkepiber", - "sækkepibe", - "bagpipes" - ], - "decoys": [ - "panfløjter", - "harmonikaer", - "kobjælder", - "blokfløjter" - ], - "note": "Infernal var berømt for sækkepiber i deres tidlige hits som Kalinka og Highland Fling. Skotsk rave i København, lowkey iconic.", - "source": "https://da.wikipedia.org/wiki/Infernal", - "pitch": { - "sækkepiber": "[laughs] Skotsk dance-energi, ingen kan stoppe det.", - "panfløjter": "Panfløjte-trance, peak 90'er.", - "harmonikaer": "Kalinka kræver harmonika, no cap.", - "kobjælder": "[mischievously] Kobjælder i klubben, it's giving.", - "blokfløjter": "Skolemusik-rave, lowkey nostalgisk." - } - }, { "category": "Fest: nu", "packs": [ @@ -613,7 +15,7 @@ "Elias", "Noah" ], - "note": "Fr for real, Gilli hedder Kian Rosenberg Larsson på papiret. Kian fra Rødovre, it's giving folkeskoleklasse, ikke rapgud, men aura'en er stadig enorm.", + "note": "For real, Gilli hedder Kian Rosenberg Larsson på papiret. Kian fra Rødovre, it's giving folkeskoleklasse, ikke rapgud, men aura'en er stadig enorm.", "source": "https://en.wikipedia.org/wiki/Gilli_(rapper)", "pitch": { "Kian": "Kian fra Rødovre lyder bare som en dreng med rizz, no cap.", @@ -1157,5 +559,1268 @@ "statister": "Statister i publikum, lowkey en origin story.", "værter": "Værter med mikrofon, de øvede bare." } + }, + { + "category": "Fest: slang", + "packs": [ + "fest" + ], + "prompt": "Ifølge Oxford er rizz dannet af _____ af ordet charisma, ligesom flu af influenza. Lowkey genialt.", + "answer": "midten", + "alternatives": [ + "midten", + "midterste del", + "den midterste del", + "midtersektionen" + ], + "decoys": [ + "slutningen", + "starten", + "en stavefejl", + "et anagram" + ], + "note": "No cap, rizz er klippet ud af midten af charisma. Det blev Oxfords årets ord i 2023.", + "source": "https://www.npr.org/2023/12/04/1216950808/rizz-oxford-word-of-the-year-swiftie", + "pitch": { + "midten": "Cha-RIS-ma. Lyt lige efter, bestie.", + "slutningen": "[chuckles] Charis-MA, rizz-ma, det rimer jo.", + "starten": "Cha-ris, man har bare tabt et h.", + "en stavefejl": "Folk stavede charisma forkert på TikTok, simpelthen.", + "et anagram": "Bland bogstaverne lidt, så står der rizz." + } + }, + { + "category": "Fest: slang", + "packs": [ + "fest" + ], + "prompt": "Brain rot, Oxfords årets ord 2024, blev første gang skrevet allerede i 1854 af _____.", + "answer": "Henry David Thoreau", + "alternatives": [ + "henry david thoreau", + "thoreau", + "henry thoreau" + ], + "decoys": [ + "Charles Dickens", + "Mark Twain", + "Edgar Allan Poe", + "Oscar Wilde" + ], + "note": "It's giving tidsrejse. Thoreau klagede over brain rot i bogen Walden, 170 år før TikTok.", + "source": "https://corp.oup.com/news/brain-rot-named-oxford-word-of-the-year-2024/", + "pitch": { + "Henry David Thoreau": "Han flyttede ud i skoven for at slippe væk.", + "Charles Dickens": "Dickens var lowkey victoriansk doomscroller.", + "Mark Twain": "[sarcastic] Twain roastede alt, også hjerner.", + "Edgar Allan Poe": "Poe og hjerner der rådner? Peak Poe.", + "Oscar Wilde": "Wilde havde altid den perfekte one-liner." + } + }, + { + "category": "Fest: slang", + "packs": [ + "fest" + ], + "prompt": "6-7, Dictionary.coms årets ord 2025, kommer fra Skrillas rapsang _____. Ja, det er et tal.", + "answer": "Doot Doot", + "alternatives": [ + "doot doot", + "doot doot (6 7)", + "doot doot 6 7" + ], + "decoys": [ + "Beep Beep", + "Brr Brr", + "Ring Ring", + "Skrrt Skrrt" + ], + "note": "Six seven! Det kommer fra Skrillas Doot Doot, og Dictionary.com valgte det som årets ord, selvom ingen ved hvad det betyder.", + "source": "https://www.dictionary.com/e/word-of-the-year-2025/", + "pitch": { + "Doot Doot": "Lyder som en trompet med sus i.", + "Beep Beep": "Beep beep, som en bil der bakker ind i memes.", + "Brr Brr": "[chuckles] Brr brr, gen alpha-lydeffekt nummer et.", + "Ring Ring": "Ring ring, nogen ringer med seks syv.", + "Skrrt Skrrt": "Skrrt skrrt er da drill-standard." + } + }, + { + "category": "Fest: slang", + "packs": [ + "fest" + ], + "prompt": "Oxford valgte rage bait som årets ord 2025, og i finalen var også aura farming og _____.", + "answer": "biohack", + "alternatives": [ + "biohack", + "biohacking" + ], + "decoys": [ + "looksmaxxing", + "vibe coding", + "clanker", + "delulu" + ], + "note": "Real ones ved det: finalen var rage bait, aura farming og biohack. Så nej, ikke looksmaxxing denne gang.", + "source": "https://www.euronews.com/2025/12/01/rage-bait-crowned-oxfords-word-of-the-year-for-2025", + "pitch": { + "biohack": "Wellness-bros med kolde bade, very 2025.", + "looksmaxxing": "Looksmaxxing og aura farming, samme univers.", + "vibe coding": "Alle vibe codede i 2025, det er fakta.", + "clanker": "[sarcastic] Clanker til robotterne, obviously.", + "delulu": "Delulu er evigt, bestie." + } + }, + { + "category": "Fest: slang", + "packs": [ + "fest" + ], + "prompt": "Merriam-Webster kårede i 2025 _____ som årets ord, om lavkvalitetsindhold lavet af AI.", + "answer": "slop", + "alternatives": [ + "slop", + "ai slop" + ], + "decoys": [ + "spam", + "junk", + "goop", + "mush" + ], + "note": "Ikke slop at vide: Merriam-Webster valgte slop i 2025, fordi alle var trætte af AI-fyld i feedet.", + "source": "https://www.fox9.com/news/merriam-webster-word-year-2025-slop", + "pitch": { + "slop": "Grisemad til dit feed. Passer perfekt.", + "spam": "Spam er comeback-kongen, ngl.", + "junk": "Junk lyder som junk food, bare digitalt.", + "goop": "[laughs] Goop, ligesom klistret AI-indhold.", + "mush": "Mush, fordi hjernen bliver til grød." + } + }, + { + "category": "Fest: slang", + "packs": [ + "fest" + ], + "prompt": "Cambridge Dictionarys årets ord 2025 var parasocial, et ord sociologer fandt på allerede i år _____.", + "answer": "1956", + "alternatives": [ + "1956" + ], + "decoys": [ + "1989", + "1971", + "2004", + "1999" + ], + "note": "Parasocial er fra 1956 og handlede om tv-seere. Nu handler det om dig og din yndlingsstreamer, bestie.", + "source": "https://www.cam.ac.uk/news/cambridge-dictionary-reveals-word-of-the-year-2025", + "pitch": { + "1956": "Tv-boomet i halvtredserne, det giver mening.", + "1989": "Talkshow-æraen i firserne, very plausible.", + "1971": "Halvfjerdsernes tv-stjerner startede det hele.", + "2004": "[impressed] Myspace-året. Helt oplagt.", + "1999": "Lige før internettet tog over. Klassisk." + } + }, + { + "category": "Fest: slang", + "packs": [ + "fest" + ], + "prompt": "Collins' årets ord 2024 brat betød før et uartigt barn, nu betyder det en selvsikker, selvstændig og _____ attitude.", + "answer": "hedonistisk", + "alternatives": [ + "hedonistisk", + "hedonistic", + "nydelsessyg" + ], + "decoys": [ + "kaotisk", + "ironisk", + "rodet", + "uimponeret" + ], + "note": "Brat summer var ægte: Collins definerer brat som selvsikker, selvstændig og hedonistisk. Charli XCX ate.", + "source": "https://gcn.ie/brat-collins-word-of-the-year/", + "pitch": { + "hedonistisk": "Fest, nydelse, ingen undskyldninger. Peak brat.", + "kaotisk": "Brat er kaos i limegrøn, obviously.", + "ironisk": "[chuckles] Alt er ironisk i brat-universet.", + "rodet": "Rodet makeup, rodet liv, rodet attitude.", + "uimponeret": "Brat er at være totalt uimponeret." + } + }, + { + "category": "Fest: slang", + "packs": [ + "fest" + ], + "prompt": "Dictionary.coms årets ord 2024 var _____, takket være Jools Lebrons TikToks om at være very mindful.", + "answer": "demure", + "alternatives": [ + "demure", + "very demure" + ], + "decoys": [ + "classy", + "cutesy", + "humble", + "mysterious" + ], + "note": "Very demure, very mindful. Ordet steg tolv hundrede procent og blev Dictionary.coms årets ord 2024.", + "source": "https://www.dictionary.com/e/word-of-the-year-2024/", + "pitch": { + "demure": "Very blank, very mindful. Det sidder i øret.", + "classy": "Very classy, very mindful. Lyder rigtigt.", + "cutesy": "[whispers] Very cutesy, very mindful.", + "humble": "Very humble, very mindful, giver mening.", + "mysterious": "Very mysterious, very mindful. Iconic." + } + }, + { + "category": "Fest: slang", + "packs": [ + "fest" + ], + "prompt": "Goblin mode vandt Oxfords første offentlige afstemning i 2022 med hele _____ af stemmerne.", + "answer": "93 procent", + "alternatives": [ + "93 procent", + "93", + "93%" + ], + "decoys": [ + "61 procent", + "78 procent", + "52 procent", + "87 procent" + ], + "note": "Goblin mode fik 93 procent af over 340.000 stemmer. Internettet valgte kaos, as it should.", + "source": "https://www.nbcnewyork.com/news/national-international/oxford-dictionaries-says-goblin-mode-is-2022-word-of-the-year/3984172/", + "pitch": { + "93 procent": "Næsten alle var i goblin mode. Relatable.", + "61 procent": "Et solidt flertal, men ikke landslide.", + "78 procent": "Stort, men metaverse fik også fans.", + "52 procent": "[dramatic] Lige over halvdelen. Thriller.", + "87 procent": "Massiv sejr, men ikke total." + } + }, + { + "category": "Fest: slang", + "packs": [ + "fest" + ], + "prompt": "Delulu startede som slang blandt _____-fans, der drømte om at date deres idoler.", + "answer": "K-pop", + "alternatives": [ + "k-pop", + "kpop", + "k pop" + ], + "decoys": [ + "Taylor Swift", + "Harry Potter", + "anime", + "One Direction" + ], + "note": "Delulu kommer fra K-pop-fans omkring 2014, der grinede af drømmen om at date en idol. Delulu is the solulu.", + "source": "https://www.koreajoongangdaily.com/korea/are-we-delulu-or-did-the-k-pop-fandom-just-add-a-word-to-the-dictionary/12149667", + "pitch": { + "K-pop": "Stans med lightsticks og store drømme.", + "Taylor Swift": "Swifties analyserer alt. Very delulu.", + "Harry Potter": "[laughs] Fans der stadig venter på Hogwarts-brevet.", + "anime": "Waifu-drømme, obviously delulu.", + "One Direction": "Directioners var de originale delulu-girlies." + } + }, + { + "category": "Fest: slang", + "packs": [ + "fest" + ], + "prompt": "Udtrykket the ick fandtes i Ally McBeal i 1998, men blev for alvor kendt i 2017 via realityshowet _____.", + "answer": "Love Island", + "alternatives": [ + "love island" + ], + "decoys": [ + "Paradise Hotel", + "Too Hot to Handle", + "Made in Chelsea", + "Big Brother" + ], + "note": "Olivia Attwood sagde det på Love Island i 2017, og nu har alle en liste over icks. It's giving dating-trauma.", + "source": "https://en.wikipedia.org/wiki/The_ick", + "pitch": { + "Love Island": "Villaen, solen og dating-drama. Obviously.", + "Paradise Hotel": "[excited] Hotellet hvor ingen holder sammen.", + "Too Hot to Handle": "Ingen kys, kun icks. Makes sense.", + "Made in Chelsea": "Britisk posh dating, ick-central.", + "Big Brother": "Alle opfører sig ick i huset." + } + }, + { + "category": "Fest: slang", + "packs": [ + "fest" + ], + "prompt": "Ballroom-slang som shade og reading blev forklaret for hele verden i dokumentaren _____ fra 1990.", + "answer": "Paris Is Burning", + "alternatives": [ + "paris is burning" + ], + "decoys": [ + "Harlem Nights", + "Vogue Nation", + "House of Shade", + "New York Is Glowing" + ], + "note": "Paris Is Burning viste New Yorks ballroom-scene, og den gav os slay, shade og reading. Mother ate.", + "source": "https://en.wikipedia.org/wiki/Paris_Is_Burning_(film)", + "pitch": { + "Paris Is Burning": "Klassikeren alle drag queens citerer.", + "Harlem Nights": "Harlem, ballroomens hjem. Logisk.", + "Vogue Nation": "Voguing er jo hele pointen.", + "House of Shade": "[dramatic] Shade i titlen, serve i filmen.", + "New York Is Glowing": "New York-ballroom i al sin glans." + } + }, + { + "category": "Fest: slang", + "packs": [ + "fest" + ], + "prompt": "Fanum tax er opkaldt efter streameren Fanum, og skatten betales med _____.", + "answer": "en bid af din mad", + "alternatives": [ + "en bid af din mad", + "mad", + "din mad", + "en bid mad" + ], + "decoys": [ + "din oplader", + "dine Robux", + "din sofaplads", + "din hættetrøje" + ], + "note": "Fanum tager en bid af vennernes mad som skat. Merriam-Webster kender det endda. Ingen snacks er safe.", + "source": "https://www.merriam-webster.com/dictionary/fanum%20tax", + "pitch": { + "en bid af din mad": "Snacks er hellige, men ikke for Fanum.", + "din oplader": "Mobilen på 2 procent, skatten er betalt.", + "dine Robux": "Gen alpha betaler alt i Robux, no cap.", + "din sofaplads": "[chuckles] Bedste plads i sofaen, klassisk move.", + "din hættetrøje": "Hoodien bliver bare lånt for evigt." + } + }, + { + "category": "Fest: slang", + "packs": [ + "fest" + ], + "prompt": "Mewing, hvor tungen presses mod ganen for en skarp kæbe, er opkaldt efter en britisk _____ ved navn John Mew.", + "answer": "ortodontist", + "alternatives": [ + "ortodontist", + "tandregulerer", + "tandreguleringsspecialist", + "tandlæge" + ], + "decoys": [ + "fitnesscoach", + "kiropraktor", + "sangpædagog", + "YouTuber" + ], + "note": "John Mew var ortodontist, altså tandreguleringsekspert. Internettet gjorde hans efternavn til et verbum.", + "source": "https://en.wikipedia.org/wiki/Mewing_(orthotropics)", + "pitch": { + "ortodontist": "Kæber er hans job. Det giver sig selv.", + "fitnesscoach": "Jawline-træning er gym for ansigtet.", + "kiropraktor": "Kæbe og nakke, kiropraktorens speciale.", + "sangpædagog": "[impressed] Tunge og gane, sangteknik deluxe.", + "YouTuber": "Selvfølgelig startede det på YouTube." + } + }, + { + "category": "Fest: slang", + "packs": [ + "fest" + ], + "prompt": "Ordet stan om en vild superfan kommer fra en sang fra år 2000 af _____.", + "answer": "Eminem", + "alternatives": [ + "eminem", + "slim shady", + "marshall mathers" + ], + "decoys": [ + "Dr. Dre", + "50 Cent", + "Snoop Dogg", + "Missy Elliott" + ], + "note": "Stan var titlen på en Eminem-sang om en lidt for dedikeret fan. Merriam-Webster optog ordet i 2019.", + "source": "https://stereogum.com/2040989/eminem-stan-dictionary/news", + "pitch": { + "Eminem": "Slim Shady og hans fans. Iconic.", + "Dr. Dre": "Dre producerede alt i 2000, obviously.", + "50 Cent": "[sarcastic] Fifty havde fans der gik for langt.", + "Snoop Dogg": "Snoop er alles yndlingsonkel.", + "Missy Elliott": "Missy var hundrede år foran alle." + } + }, + { + "category": "Fest: slang", + "packs": [ + "fest" + ], + "prompt": "Forkortelsen GOAT blev i 1992 navnet på et _____, som Muhammad Alis kone stiftede.", + "answer": "firma", + "alternatives": [ + "firma", + "selskab", + "virksomhed", + "aktieselskab" + ], + "decoys": [ + "sneakermærke", + "parfumemærke", + "boksehold", + "fitnesscenter" + ], + "note": "Lonnie Ali stiftede G.O.A.T. Inc. for at styre Alis rettigheder. Så GOAT startede som corporate. Lowkey boring, highkey legendarisk.", + "source": "https://en.wikipedia.org/wiki/GOAT_(sports_culture)", + "pitch": { + "firma": "Forretning først, legende bagefter.", + "sneakermærke": "Sneakers og sport, perfekt match.", + "parfumemærke": "[whispers] Duft af greatness.", + "boksehold": "Klart, boksere har hold.", + "fitnesscenter": "Træn som The Greatest. Giver mening." + } + }, + { + "category": "Fest: slang", + "packs": [ + "fest" + ], + "prompt": "Among Us gjorde sus kendt, men ifølge Dictionary.com blev ordet første gang registreret i _____.", + "answer": "1930'erne", + "alternatives": [ + "1930'erne", + "30'erne", + "1930erne", + "slutningen af 1930'erne" + ], + "decoys": [ + "1990'erne", + "1980'erne", + "1960'erne", + "2000'erne" + ], + "note": "Kinda sus, men sus er fra sidst i 1930'erne. Among Us gjorde det bare viralt i 2020.", + "source": "https://www.dictionary.com/browse/sus", + "pitch": { + "1930'erne": "Gamle krimifilm elskede mistænkelige typer.", + "1990'erne": "Britisk ungdomsslang i halvfemserne. Very plausible.", + "1980'erne": "[chuckles] Firsernes kriminalserier, klassisk.", + "1960'erne": "Hippietiden var fuld af sus.", + "2000'erne": "Forumtiden, hvor alt blev forkortet." + } + }, + { + "category": "Fest: slang", + "packs": [ + "fest" + ], + "prompt": "Wallah, som man siger når man sværger, betyder direkte oversat fra arabisk _____.", + "answer": "ved Gud", + "alternatives": [ + "ved gud", + "ved gud jeg sværger", + "ved allah" + ], + "decoys": [ + "på min mor", + "jeg lover", + "helt ærligt", + "min bror" + ], + "note": "Wallah betyder ved Gud, og ifølge Den Danske Ordbog har det været med i dansk siden 1999. Wallah, det er rigtigt.", + "source": "https://ordnet.dk/ddo/ordbog?query=wallah", + "pitch": { + "ved Gud": "Det er en ed, derfor sværger man.", + "på min mor": "Klassisk ed, alle har hørt den.", + "jeg lover": "[excited] Det er bare et løfte.", + "helt ærligt": "Ærlighed er hele pointen, bror.", + "min bror": "Det bliver brugt om alle de nære." + } + }, + { + "category": "Fest: slang", + "packs": [ + "fest" + ], + "prompt": "I Den Danske Ordbog står cringe som et _____, så \"det er så cringe\" er faktisk korrekt dansk.", + "answer": "adjektiv", + "alternatives": [ + "adjektiv", + "tillægsord" + ], + "decoys": [ + "udråbsord", + "navneord", + "udsagnsord", + "biord" + ], + "note": "Cringe er et adjektiv i Den Danske Ordbog og betyder tåkrummende pinlig. Ordbogen var lowkey on point.", + "source": "https://ordnet.dk/ddo/ordbog?query=cringe", + "pitch": { + "adjektiv": "Det beskriver noget, simpelt nok.", + "udråbsord": "Man råber det jo. Cringe!", + "navneord": "[sarcastic] Det er en ting, en cringe.", + "udsagnsord": "At cringe er noget man gør.", + "biord": "Det står ved siden af alt det pinlige." + } + }, + { + "category": "Fest: slang", + "packs": [ + "fest" + ], + "prompt": "Nice stammer fra latin nescius, som betød _____. Plot twist.", + "answer": "uvidende", + "alternatives": [ + "uvidende", + "dum", + "ikke vidende" + ], + "decoys": [ + "venlig", + "smuk", + "ren", + "rolig" + ], + "note": "Nice kommer fra latin nescius, uvidende. Betydningen vendte helt i 1600 og 1700-tallet, og ingen ved hvorfor.", + "source": "https://ordnet.dk/ddo/ordbog?query=nice", + "pitch": { + "uvidende": "Fra uvidende til godt. Big glow up.", + "venlig": "Venlig er jo det nice betyder.", + "smuk": "[impressed] Smuk, latinsk og nice.", + "ren": "Rent og pænt, very nice.", + "rolig": "Rolig og chill, det er nice." + } + }, + { + "category": "Fest: slang", + "packs": [ + "fest" + ], + "prompt": "Når du siger kæft, hvor nice, bruger du et ord, der ifølge Den Danske Ordbog egentlig betyder _____.", + "answer": "mund", + "alternatives": [ + "mund", + "munden", + "mule" + ], + "decoys": [ + "hals", + "skam", + "ånde", + "næse" + ], + "note": "Kæft betyder mund og kommer fra oldnordisk kjaptr. Så kæft hvor nice er basically mund hvor nice.", + "source": "https://ordnet.dk/ddo/ordbog?query=kæft", + "pitch": { + "mund": "Hold kæft betyder jo luk munden.", + "hals": "Man råber, så det kommer fra halsen.", + "skam": "[gasps] Kæft trit og retning, kæft skam.", + "ånde": "Man puster det ud, altså ånde.", + "næse": "Det sidder lige midt i ansigtet." + } + }, + { + "category": "Fest: slang", + "packs": [ + "fest" + ], + "prompt": "At ghoste kommer af ghost, fordi man ifølge Den Danske Ordbog gør sig _____ for den anden.", + "answer": "usynlig", + "alternatives": [ + "usynlig", + "usynlig for den anden" + ], + "decoys": [ + "uhyggelig", + "uskyldig", + "utilgængelig", + "ukendt" + ], + "note": "Den Danske Ordbog siger det: man gør sig usynlig. Kendt på dansk siden 2015. Ghosting er lowkey L-behavior.", + "source": "https://ordnet.dk/ddo/ordbog?query=ghoste", + "pitch": { + "usynlig": "Spøgelser ses ikke. Obviously.", + "uhyggelig": "Spøgelser er creepy, så er ghosting.", + "uskyldig": "[whispers] Man spiller uskyldig og forsvinder.", + "utilgængelig": "Svarer aldrig, total utilgængelig.", + "ukendt": "Man bliver en fremmed igen." + } + }, + { + "category": "Fest: slang", + "packs": [ + "fest" + ], + "prompt": "Navnet Generation Alpha kom fra en spørgeundersøgelse i _____, hvor folk selv foreslog navne.", + "answer": "Australien", + "alternatives": [ + "australien", + "australia" + ], + "decoys": [ + "Canada", + "Sverige", + "Japan", + "New Zealand" + ], + "note": "Forskeren Mark McCrindle spurgte australiere hvad generationen efter Z skulle hedde. Alpha won, no cap.", + "source": "https://en.wikipedia.org/wiki/Generation_Alpha", + "pitch": { + "Australien": "Down under fandt på det. Easy.", + "Canada": "Canadiere er høflige nok til at spørge.", + "Sverige": "Svenskerne elsker en survey.", + "Japan": "[excited] Japan navngiver alt først.", + "New Zealand": "Kiwierne var hurtige med den." + } + }, + { + "category": "Fest: internettet", + "packs": [ + "fest" + ], + "prompt": "Musikken i Skibidi Toilet er et mashup af Timbaland og en sang, der hedder _____. Absolut cinema.", + "answer": "Dom Dom Yes Yes", + "alternatives": [ + "dom dom yes yes", + "dom dom yes" + ], + "decoys": [ + "Bing Bong Yes Yes", + "Doop Doop Yeah", + "Skibidi Bop Bop", + "Bam Bam Oui Oui" + ], + "note": "No cap, det er Timbalands Give It to Me mixet med Dom Dom Yes Yes af Biser King. It's giving toilet-opera.", + "source": "https://en.wikipedia.org/wiki/Skibidi_Toilet", + "pitch": { + "Dom Dom Yes Yes": "[excited] Det lyder præcis som et Balkan-banger.", + "Bing Bong Yes Yes": "Bing Bong er basically lyden af toiletterne.", + "Doop Doop Yeah": "Doop Doop Yeah, klassisk TikTok-sound, trust.", + "Skibidi Bop Bop": "[laughs] Hvad ellers skulle den hedde, ærligt?", + "Bam Bam Oui Oui": "Bam Bam Oui Oui, fransk rizz i toilettet." + } + }, + { + "category": "Fest: internettet", + "packs": [ + "fest" + ], + "prompt": "Hele \"hvor tit tænker du på Romerriget\"-trenden startede hos en _____ reenactor på Instagram.", + "answer": "svensk", + "alternatives": [ + "svensk", + "fra sverige", + "svenske" + ], + "decoys": [ + "italiensk", + "britisk", + "græsk", + "tysk" + ], + "note": "Den startede hos svenske Artur Hulu, kendt som Gaius Flavius, i 2023. Our neighbours really said Roman Empire era.", + "source": "https://en.wikipedia.org/wiki/Gaius_Flavius", + "pitch": { + "svensk": "Svenskere og hobbyer, det er en hel personlighed.", + "italiensk": "Italienere tænker jo på Rom hele dagen.", + "britisk": "Briterne elsker et kostume og en tradition.", + "græsk": "[chuckles] Grækerne var der jo før romerne.", + "tysk": "Tyskerne tager reenactment dødseriøst, real talk." + } + }, + { + "category": "Fest: internettet", + "packs": [ + "fest" + ], + "prompt": "Flodhestebabyen Moo Deng har et navn, der på thai betyder _____. Iconic.", + "answer": "hoppende svinekød", + "alternatives": [ + "hoppende svinekød", + "bouncy pork", + "hoppende gris", + "bouncy pig" + ], + "decoys": [ + "lille vandkage", + "sur risbolle", + "glad sumpblomme", + "blød kokosnød" + ], + "note": "Moo Deng betyder bouncy pork, altså hoppende svinekød, og hendes søskende hedder også mad-navne. It's giving frokost.", + "source": "https://en.wikipedia.org/wiki/Moo_Deng", + "pitch": { + "hoppende svinekød": "[laughs] Thailændere navngiver alt efter mad, for real.", + "lille vandkage": "Hun er jo én stor vandkage, ikke?", + "sur risbolle": "Sur risbolle passer til hendes attitude.", + "glad sumpblomme": "Glad sumpblomme, det er lowkey poetisk.", + "blød kokosnød": "Blød kokosnød, det er hendes vibe præcis." + } + }, + { + "category": "Fest: internettet", + "packs": [ + "fest" + ], + "prompt": "Pedro Pedro Pedro-sangen, som vaskebjørnen danser til, blev oprindeligt sunget i 1980 af _____.", + "answer": "Raffaella Carrà", + "alternatives": [ + "raffaella carrà", + "raffaella carra", + "carrà", + "carra" + ], + "decoys": [ + "Laura Pausini", + "Sabrina Salerno", + "Gloria Estefan", + "Paola og Chiara" + ], + "note": "Pedro er en Raffaella Carrà-klassiker fra 1980, og to DJs remixede den i 2024. Vaskebjørnen ate.", + "source": "https://knowyourmeme.com/memes/raccoon-dancing-in-a-circle", + "pitch": { + "Raffaella Carrà": "Italiensk diva-energi, det giver total mening.", + "Laura Pausini": "[dramatic] Laura Pausini var jo ikonet dengang.", + "Sabrina Salerno": "Sabrina Salerno lavede alle de der bangers.", + "Gloria Estefan": "Gloria Estefan elsker et latin-omkvæd.", + "Paola og Chiara": "Paola og Chiara var italienske popdronninger." + } + }, + { + "category": "Fest: internettet", + "packs": [ + "fest" + ], + "prompt": "Tegneren bag Chill Guy er lowkey irriteret over, at folk kalder figuren _____.", + "answer": "My new character", + "alternatives": [ + "my new character", + "new character" + ], + "decoys": [ + "Just a dog", + "Sweater guy", + "Doggo chillin", + "Lil homie" + ], + "note": "Phillip Banks postede ham i 2023, og internettet kaldte ham My new character. Han vil helst bare have Chill Guy. Very chill of him.", + "source": "https://en.wikipedia.org/wiki/Chill_Guy", + "pitch": { + "My new character": "Det er jo præcis sådan, han blev postet.", + "Just a dog": "[sarcastic] Han er så meget mere end en hund.", + "Sweater guy": "Sweater guy er basically hele outfittet.", + "Doggo chillin": "Doggo chillin lyder som et ægte TikTok-navn.", + "Lil homie": "Lil homie, det sagde alle i kommentarerne." + } + }, + { + "category": "Fest: internettet", + "packs": [ + "fest" + ], + "prompt": "Tralalero Tralala er en haj med tre ben, som går rundt i _____.", + "answer": "Nike-sko", + "alternatives": [ + "nike sko", + "nike-sko", + "nikes", + "sneakers", + "nike sneakers" + ], + "decoys": [ + "Crocs", + "Gucci-loafers", + "rulleskøjter", + "badetøfler" + ], + "note": "Den originale AI-haj fra januar 2025 har tre ben og Nike-sko på. Italian brainrot patient zero, for real.", + "source": "https://en.wikipedia.org/wiki/Italian_brainrot", + "pitch": { + "Nike-sko": "Swoosh på alle tre ben, ikonisk.", + "Crocs": "[laughs] Crocs er peak brainrot-fodtøj.", + "Gucci-loafers": "Gucci, fordi den er italiensk, duh.", + "rulleskøjter": "Rulleskøjter, hvordan skulle den ellers glide?", + "badetøfler": "Badetøfler, den kommer jo fra stranden." + } + }, + { + "category": "Fest: internettet", + "packs": [ + "fest" + ], + "prompt": "Tung Tung Tung Sahur kommer fra Indonesien, hvor sahur betyder _____ under ramadanen.", + "answer": "måltidet før daggry", + "alternatives": [ + "måltid før daggry", + "morgenmåltidet", + "måltidet før solopgang", + "morgenmad" + ], + "decoys": [ + "fredagsbønnen", + "fasten om natten", + "trommen i moskeen", + "festen om aftenen" + ], + "note": "Sahur er måltidet før daggry, og tung tung er lyden af trommen, der vækker folk. Den vil bare have, at du spiser, bestie.", + "source": "https://knowyourmeme.com/memes/tung-tung-tung-sahur", + "pitch": { + "måltidet før daggry": "Han vækker dig, så du får spist, logisk.", + "fredagsbønnen": "Fredagsbønnen, derfor er han så seriøs.", + "fasten om natten": "[whispers] Han kommer kun om natten, ikke?", + "trommen i moskeen": "Tung tung er jo bare lyden af trommen.", + "festen om aftenen": "Festen om aftenen, han er en party-figur." + } + }, + { + "category": "Fest: internettet", + "packs": [ + "fest" + ], + "prompt": "Charli XCX's brat-cover med den lime-grønne baggrund er skrevet i fonten _____.", + "answer": "Arial Narrow", + "alternatives": [ + "arial narrow", + "arial" + ], + "decoys": [ + "Comic Sans", + "Times New Roman", + "Helvetica", + "Calibri" + ], + "note": "Det er Arial Narrow, strakt og sløret med vilje, så det så billigt ud. Brat summer var bevidst ugly, and it ate.", + "source": "https://en.wikipedia.org/wiki/Brat_(album)", + "pitch": { + "Arial Narrow": "Den mest kedelige font, derfor så genial.", + "Comic Sans": "[laughs] Comic Sans er peak anti-æstetik.", + "Times New Roman": "Times New Roman, skole-opgave-core.", + "Helvetica": "Helvetica, designernes go-to, obviously.", + "Calibri": "Calibri, standard Word-energi, very brat." + } + }, + { + "category": "Fest: internettet", + "packs": [ + "fest" + ], + "prompt": "En Stanley-kop overlevede en bilbrand med isen stadig i, så Stanley-chefen tilbød ejeren en ny _____.", + "answer": "bil", + "alternatives": [ + "bil", + "ny bil", + "en bil" + ], + "decoys": [ + "livstidsforsyning", + "sofa", + "ferie", + "telefon" + ], + "note": "Efter TikTokken med isen der raslede i 2023, tilbød Stanleys chef at erstatte hendes bil. Best marketing ever, no cap.", + "source": "https://www.deseret.com/2023/11/18/23966199/stanley-cup-with-ice-after-car-fire/", + "pitch": { + "bil": "Hun stod jo uden bil, det giver mening.", + "livstidsforsyning": "[excited] Livstidsforsyning af kopper, obviously.", + "sofa": "En sofa, hvis hun bare skulle chille.", + "ferie": "En ferie, så hun kunne komme sig.", + "telefon": "Telefonen brændte også, rimeligt tilbud." + } + }, + { + "category": "Fest: internettet", + "packs": [ + "fest" + ], + "prompt": "Dubai-chokoladen med pistacie og kataifi blev opfundet, fordi stifteren havde en _____.", + "answer": "graviditetstrang", + "alternatives": [ + "graviditetstrang", + "trang under graviditeten", + "gravid trang", + "cravings" + ], + "decoys": [ + "væddemål med sin bror", + "allergi over for nødder", + "bryllupsfest", + "spareplan" + ], + "note": "Sarah Hamouda var gravid og craved knafeh, så hun lavede Can't Get Knafeh of It. Pregnancy cravings changed the game.", + "source": "https://www.arabianbusiness.com/gcc/uae/dubai-viral-chocolate-fix-founder-sarah-hamouda-reveals-how-she-built-the-hermes-of-desserts", + "pitch": { + "graviditetstrang": "Cravings er den bedste produktudvikling.", + "væddemål med sin bror": "[chuckles] Søskende-væddemål starter alt.", + "allergi over for nødder": "Allergi, så hun fandt et alternativ.", + "bryllupsfest": "Den var lavet til en bryllupsfest først.", + "spareplan": "Hun skulle tjene penge hurtigt, real talk." + } + }, + { + "category": "Fest: internettet", + "packs": [ + "fest" + ], + "prompt": "Inden TikTok arbejdede Khaby Lame som _____ på en fabrik nær Torino.", + "answer": "CNC-operatør", + "alternatives": [ + "cnc operatør", + "cnc-operatør", + "maskinoperatør", + "cnc-maskinoperatør", + "maskinarbejder" + ], + "decoys": [ + "pizzabager", + "truckfører", + "lagermedarbejder", + "rengøringsassistent" + ], + "note": "Khaby styrede CNC-maskiner, blev fyret under corona i 2020 og blev så verdens største TikTokker. Main character arc.", + "source": "https://en.wikipedia.org/wiki/Khaby_Lame", + "pitch": { + "CNC-operatør": "Præcise håndbevægelser, se bare hans videoer.", + "pizzabager": "Italien plus Khaby, selvfølgelig pizza.", + "truckfører": "[impressed] Han har truckfører-ro i blikket.", + "lagermedarbejder": "Lager-job, klassisk før-berømt-historie.", + "rengøringsassistent": "Rengøring, derfor hans ansigt ved lifehacks." + } + }, + { + "category": "Fest: internettet", + "packs": [ + "fest" + ], + "prompt": "I 2024 overhalede MrBeast den indiske kanal _____ som YouTubes største.", + "answer": "T-Series", + "alternatives": [ + "t-series", + "tseries", + "t series" + ], + "decoys": [ + "Cocomelon", + "SET India", + "Zee Music", + "Sony Music India" + ], + "note": "Den 1. juni 2024 slog MrBeast T-Series, som havde stjålet tronen fra PewDiePie i 2019. Revenge arc complete.", + "source": "https://www.tubefilter.com/2024/06/03/mrbeast-jimmy-donaldson-most-subscribed-youtube-channel-passes-t-series-pewdiepie/", + "pitch": { + "T-Series": "[dramatic] PewDiePie-krigen fik endelig sin hævn.", + "Cocomelon": "Cocomelon er større end du tror, for real.", + "SET India": "SET India har kæmpe tal, trust.", + "Zee Music": "Zee Music var kongen i årevis.", + "Sony Music India": "Sony Music India, klassisk label-kanal." + } + }, + { + "category": "Fest: internettet", + "packs": [ + "fest" + ], + "prompt": "Creeperen i Minecraft opstod ved en fejl, da Notch prøvede at lave en _____.", + "answer": "gris", + "alternatives": [ + "gris", + "en gris", + "pig" + ], + "decoys": [ + "ko", + "zombie", + "busk", + "hund" + ], + "note": "Notch byttede om på højde og længde på grisen, og så var creeperen født. Biggest W fejl nogensinde.", + "source": "https://en.wikipedia.org/wiki/Creeper_(Minecraft)", + "pitch": { + "gris": "Fire små ben, det er lowkey en gris.", + "ko": "En ko med forkerte mål, totalt muligt.", + "zombie": "[sarcastic] Zombie, den eksploderer jo bare.", + "busk": "Den er grøn, så selvfølgelig en busk.", + "hund": "En hund, der var lidt for creepy." + } + }, + { + "category": "Fest: internettet", + "packs": [ + "fest" + ], + "prompt": "Travis Scotts koncert i Fortnite i 2020 havde _____ samtidige spillere.", + "answer": "12,3 millioner", + "alternatives": [ + "12,3 millioner", + "12.3 millioner", + "12 millioner", + "tolv millioner" + ], + "decoys": [ + "3,5 millioner", + "6,8 millioner", + "18,6 millioner", + "25 millioner" + ], + "note": "Astronomical samlede 12,3 millioner spillere på én gang, mere end noget Fortnite-event før. Sicko mode.", + "source": "https://tubefilter.com/2020/04/24/travis-scott-fortnite-concert-all-time-record/", + "pitch": { + "12,3 millioner": "Det var all time rekord, sindssygt.", + "3,5 millioner": "Lyder realistisk for en lockdown-koncert.", + "6,8 millioner": "[impressed] Næsten syv mio, stadig wild.", + "18,6 millioner": "Fortnite var peak i 2020, det giver mening.", + "25 millioner": "Hele verden sad inde, så 25 mio easy." + } + }, + { + "category": "Fest: internettet", + "packs": [ + "fest" + ], + "prompt": "Roblox-spillet Grow a Garden, som slog Fortnites spillerrekorder, blev kodet på få dage af en _____.", + "answer": "16-årig", + "alternatives": [ + "16-årig", + "16 årig", + "sekstenårig", + "teenager" + ], + "decoys": [ + "pensioneret lærer", + "11-årig", + "AI-chatbot", + "svensk mor" + ], + "note": "En anonym 16-årig byggede første version på få dage, og i juni 2025 havde spillet over 21 millioner samtidige spillere. Teen dev diff.", + "source": "https://insider-gaming.com/roblox-grow-a-garden-hits-incredible-record-of-11m-concurrent-players/", + "pitch": { + "16-årig": "Teenager med for meget fritid, classic.", + "pensioneret lærer": "[chuckles] Pensionister elsker havearbejde, ærligt.", + "11-årig": "En 11-årig, Roblox-kids er cracked.", + "AI-chatbot": "AI laver alt nu, så hvorfor ikke.", + "svensk mor": "En mor, der savnede sin køkkenhave." + } + }, + { + "category": "Fest: internettet", + "packs": [ + "fest" + ], + "prompt": "Kai Cenat blev i 2025 den første Twitch-streamer med over _____ aktive subs på én gang.", + "answer": "en million", + "alternatives": [ + "en million", + "1 million", + "1.000.000", + "million" + ], + "decoys": [ + "250.000", + "500.000", + "to millioner", + "fem millioner" + ], + "note": "Under Mafiathon 3 i september 2025 rundede Kai over én million aktive subs. Twitch history, chat went crazy.", + "source": "https://www.netinfluencer.com/kai-cenat-becomes-first-twitch-streamer-to-reach-1m-subscribers/", + "pitch": { + "en million": "[excited] Syv cifre, det var hele målet.", + "250.000": "Kvart million er allerede insane på Twitch.", + "500.000": "En halv million lyder som en real rekord.", + "to millioner": "To mio, han har en kæmpe fanbase.", + "fem millioner": "Fem millioner, Kai er bare built different." + } + }, + { + "category": "Fest: internettet", + "packs": [ + "fest" + ], + "prompt": "Pokimanes snack-brand Myna lancerede cookies, der blandt andet indeholdt _____.", + "answer": "svampepulver", + "alternatives": [ + "svampepulver", + "svampe", + "champignonpulver", + "mushroom powder" + ], + "decoys": [ + "proteinpulver", + "matcha", + "koffein", + "kollagen" + ], + "note": "Myna-cookies var glutenfri og lavet med svampepulver for D-vitaminens skyld. Snacking but make it wellness.", + "source": "https://www.businesswire.com/news/home/20231113316356/en/Myna-Snacks-Launches-to-Bring-Health-Flavor-and-Fun-to-Snacking-in-the-Digital-Age", + "pitch": { + "svampepulver": "Wellness-trend, alle putter svampe i alt nu.", + "proteinpulver": "Gamer-snack med protein, obviously.", + "matcha": "[chuckles] Matcha er clean girl-core.", + "koffein": "Koffein til lange streams, logisk.", + "kollagen": "Kollagen, fordi skincare er alt." + } + }, + { + "category": "Fest: internettet", + "packs": [ + "fest" + ], + "prompt": "Subway Surfers, som er lavet i København, var det første spil på Google Play med over _____ downloads.", + "answer": "en milliard", + "alternatives": [ + "en milliard", + "1 milliard", + "milliard" + ], + "decoys": [ + "100 millioner", + "500 millioner", + "fem milliarder", + "ti milliarder" + ], + "note": "Danske SYBO og Kiloo slog en milliard downloads i 2018 som det første spil nogensinde på Google Play. Dansk W, no cap.", + "source": "https://www.pocketgamer.biz/subway-surfers-becomes-first-game-to-hit-1-billion-downloads-on-google-play/", + "pitch": { + "en milliard": "[impressed] Ni nuller, dansk flex.", + "100 millioner": "100 mio var en milestone dengang.", + "500 millioner": "Halv milliard lyder rigtig for 2015.", + "fem milliarder": "Fem milliarder, det er på hver telefon.", + "ti milliarder": "Ti milliarder, split-screen-videoerne alene." + } + }, + { + "category": "Fest: internettet", + "packs": [ + "fest" + ], + "prompt": "Danske Astralis blev det første hold, der vandt _____ CS:GO Majors.", + "answer": "fire", + "alternatives": [ + "fire", + "4" + ], + "decoys": [ + "to", + "tre", + "fem", + "seks" + ], + "note": "Astralis vandt fire Majors, heraf tre i træk i 2018 og 2019. Danish dynasty, goated.", + "source": "https://en.wikipedia.org/wiki/Counter-Strike_Major_Championships", + "pitch": { + "fire": "Fire stykker, den danske dynasti-æra.", + "to": "To er allerede historisk, trust.", + "tre": "[dramatic] Tre i træk, det husker alle.", + "fem": "Fem, de var jo totalt urørlige.", + "seks": "Seks, Astralis var basically CS." + } + }, + { + "category": "Fest: internettet", + "packs": [ + "fest" + ], + "prompt": "Med over 130.000 deltagere bliver Roskilde Festival til Danmarks _____ største by.", + "answer": "fjerde", + "alternatives": [ + "fjerde", + "fjerdestørste", + "4." + ], + "decoys": [ + "anden", + "tredje", + "femte", + "sjette" + ], + "note": "Med over 130.000 mennesker er festivalen Danmarks fjerdestørste by i en uge. Større end Aalborg, lol.", + "source": "https://en.wikipedia.org/wiki/Roskilde_Festival", + "pitch": { + "fjerde": "Lige efter Odense, det lyder rigtigt.", + "anden": "[excited] Kun København er større, ikke?", + "tredje": "Tredje, den slår Odense easy.", + "femte": "Femte, Esbjerg slår den knap.", + "sjette": "Sjette, der er mange store byer." + } + }, + { + "category": "Fest: internettet", + "packs": [ + "fest" + ], + "prompt": "Too Good To Go blev grundlagt i København, fordi stifterne ville redde madspild fra _____.", + "answer": "buffetrestauranter", + "alternatives": [ + "buffetrestauranter", + "buffeter", + "buffet", + "buffetter" + ], + "decoys": [ + "skolekantiner", + "festivaler", + "bagerier", + "supermarkeder" + ], + "note": "Det startede med de enorme mængder mad, der blev smidt ud fra buffeter i Danmark. Nu er det en global app. Slay.", + "source": "https://www.toogoodtogo.com/en-gb/about-us/our-history", + "pitch": { + "buffetrestauranter": "Al-you-can-eat-spild er insane, ærligt.", + "skolekantiner": "Skolekantiner smider vildt meget ud.", + "festivaler": "[chuckles] Roskilde-camping, tænk på spildet.", + "bagerier": "Bagerier, derfor alle de magic bags.", + "supermarkeder": "Supermarkeder, det er der, appen bruges mest." + } + }, + { + "category": "Fest: internettet", + "packs": [ + "fest" + ], + "prompt": "En studentervogn med festende studenter må højst køre _____ i byen.", + "answer": "40 km/t", + "alternatives": [ + "40 km/t", + "40", + "fyrre", + "40 kilometer i timen" + ], + "decoys": [ + "15 km/t", + "25 km/t", + "30 km/t", + "50 km/t" + ], + "note": "Studentervogne må højst køre 40 i byen og 60 på landevejen, og aldrig på motorvejen. Slow ride, big vibes.", + "source": "https://www.tv2kosmopol.dk/spoerg-os/hvorfor-skal-en-flok-studenter-i-en-personbil-have-sele-pa-men-ikke-en-flok-studenter-pa-et-vognlad-eb746", + "pitch": { + "40 km/t": "Lidt under byfart, det giver mening.", + "15 km/t": "Gå-tempo plus lidt, for sikkerhed.", + "25 km/t": "[sarcastic] Cykel-fart, så ingen falder af.", + "30 km/t": "Tredive, ligesom i skolezoner.", + "50 km/t": "Normal byfart, de er jo bare en lastbil." + } } ] diff --git a/fupogfakta/narrator/lines.json b/fupogfakta/narrator/lines.json index abedd5b..5e73650 100644 --- a/fupogfakta/narrator/lines.json +++ b/fupogfakta/narrator/lines.json @@ -140,6 +140,13 @@ "[suspicious] Der var en, der skrev det rigtige svar. Det tæller ikke.", "Sandheden er ikke en løgn. Prøv igen." ], + "lie_was_truth_fest": [ + "Bro skrev sandheden. Det er ikke rizz, det er snyd. Prøv igen.", + "[sarcastic] Wow, ærlighed. Super mid. Skriv en løgn, bestie.", + "Nogen ramte sandheden. Lowkey sus. Gem den til gættefasen.", + "Det var faktisk sandt, no cap. Vi skal bruge en løgn, ikke en TED talk.", + "[gasps] Sandheden sneg sig ind. Delulu er fint her, skriv noget falsk." + ], "guess_start": [ "Én af dem er sand. Held og lykke. I får brug for det.", "Vælg det sande svar. Selvtillid er desværre en dårlig kildehenvisning.", @@ -345,6 +352,16 @@ "{svar}. Tænk lige over den.", "Og {svar}. Hvorfor ikke?" ], + "present_answer_fest": [ + "{svar}.", + "Måske {svar}.", + "Eller hvad med {svar}?", + "{svar}. Lowkey plausibelt.", + "{svar}? Hmm, it's giving.", + "Så er der {svar}.", + "[whispers] {svar}.", + "{svar}. Tænk lige over den, bestie." + ], "summary_cleanup": [ "De her løgne troede ingen på. Lad os lige rydde op.", "[sighs] Ingen faldt for de her. Væk med dem.", @@ -386,6 +403,13 @@ "{svar} fik flest reaktioner. Selv jeg måtte trække på smilebåndet.", "Stuen elskede {svar}. Så er det sagt." ], + "summary_favorite_fest": [ + "Publikums favorit var {svar}. I ate den op.", + "[laughs] {svar} fik hele festen til at gå amok. W.", + "Chatten var vild med {svar}. Main character energy.", + "{svar} fik flest reaktioner. Aura plus tusind.", + "I elskede {svar}. Slay, no cap." + ], "lie_progress_fast": [ "{navn} er allerede færdig. Mistænkeligt hurtigt.", "[suspicious] {navn} har allerede løjet. Det gik lidt for let.", @@ -398,6 +422,13 @@ "{navn} er færdig. Resten af jer kan godt mærke presset nu.", "[impressed] {navn} har allerede løjet. Imponerende. Og lidt bekymrende." ], + "lie_progress_fast_fest": [ + "{navn} er allerede færdig. Speedrun, any procent.", + "[suspicious] {navn} har løjet på rekordtid. Lowkey sus.", + "{navn} er klar. Sigma grindset.", + "[chuckles] {navn} er færdig allerede. Bro tænker ikke, bro gør bare.", + "Første løgn er inde, tak til {navn}. Resten af jer er cooked." + ], "lie_progress_retry": [ "{navn} er færdig. Andet forsøg sad i skabet.", "{navn} fik det til sidst. Øvelse gør mester.", @@ -408,6 +439,12 @@ "[sighs] {navn} er endelig færdig. Jeg var lige ved at blive bekymret.", "{navn} fandt en ny løgn. Den gamle var for ærlig." ], + "lie_progress_retry_fest": [ + "{navn} er færdig. Andet forsøg, and we ball.", + "[chuckles] {navn} prøvede igen, og nu sidder den. Character development.", + "{navn} kom i mål efter lidt bøvl. Det tæller stadig, bestie.", + "{navn} fandt en ny løgn. Den gamle var alt for ærlig." + ], "lie_progress": [ "{navn} er færdig. Lad os håbe, den er god.", "{navn} har løjet. Jeg tager det ikke personligt.", @@ -420,6 +457,14 @@ "{navn} er inde. Nu mangler vi bare resten af familien.", "[whispers] {navn} er færdig. Og jeg tror, den er lumsk." ], + "lie_progress_fest": [ + "{navn} er færdig. Lad os håbe, den slayer.", + "{navn} har løjet. Aura farmet.", + "[mischievously] {navn} har skrevet noget. Jeg siger intet, men it's giving.", + "{navn} er inde. Selvsikker. Det er et red flag.", + "[whispers] {navn} er færdig. Og den er lowkey lumsk.", + "En løgn mere i posen. W, {navn}." + ], "lobby_welcome_fest": [ "[excited] Yo yo yo, velkommen til festen! Telefonen frem, glasset fyldt, hjernen må gerne blive hjemme.", "Hvad så, besties? Det her er Fup og Fakta, festudgaven. Jeres lever har ikke sagt ja, men vi kører alligevel.", diff --git a/party/brain/game.py b/party/brain/game.py index 205660c..1339871 100644 --- a/party/brain/game.py +++ b/party/brain/game.py @@ -36,6 +36,32 @@ Regler for alt, du skriver: "Hele sofaen tog fejl. Sikke en sjælden form for enighed." "Ti sekunder. Det behøver ikke være godt. Bare forkert." - Brug gerne aftenens hukommelse til en pointe, der bygger videre på noget, der er sket tidligere.""" +# Fest-spillet (18+): samme spil, men speakeren er en hypet zoomer, og det handler om tår frem for point. +SYSTEM_FEST = """Du er speakeren i "Fup og Fakta: Fest", et dansk partyspil for unge voksne (18+) i stil med Fibbage. +Spillet: et kuriøst, sandt faktum vises med et hul. Alle skriver en troværdig løgn. Løgnene blandes med +sandheden, og man skal gætte sandheden. Falder man for en løgn, tager man en tår (to i runde to, en shot i +finalen). Finder ingen sandheden, drikker alle. Tårene betyder mere end pointene. + +Din stil: en hypet, memet zoomer-streamer fra København med brainrot-energi. Du taler dansk blandet med +zoomer- og internetslang: no cap, for real, lowkey, highkey, it's giving, slay, ate, rizz, aura, cooked, +delulu, NPC, main character energy, Ohio, sus, bestie, based, mid, W og L, skibidi, sigma, "hold da op, bro". +Brug slangen naturligt, et eller to udtryk pr. replik, ikke en ordsalat. Du roaster kærligt og hyper folk op. + +Regler for alt, du skriver: +- Mundret, skrevet til at blive LÆST HØJT af en stemme. Korte sætninger. +- Aldrig grimt, aldrig om udseende, køn, krop eller lignende. Intet groft eller seksuelt. Du må gerne nævne + tår, shots og at nogen skal drikke, men opfordr aldrig til at drikke sig fuld, og hyld gerne vand. +- Ingen tankestreger (hverken — eller - som indskud). Brug komma eller punktum. +- Skriv tal med bogstaver ("tre tår", ikke "3 tår"). +- Du må give stemmen en lyd-tag i firkantede klammer, fx "[laughs] Bro er cooked." Kun disse: [laughs] + [chuckles] [giggles] [sighs] [whispers] [excited] [mischievously] [sarcastic] [suspicious] [impressed] + [gasps] [dramatic] [cheering] [curious] [snorts]. Højst én pr. replik. Tags vises ikke på skærmen. +- Kald spillerne ved navn. Gæt aldrig køn ud fra et navn: ingen "han", "hun", "ham" eller "hende" om en spiller. +- Én pointe pr. replik. Konkret frem for abstrakt. +- Gode eksempler på tonen: "Sus faldt for den. Lowkey cooked, tag en tår, bestie." + "Ingen fandt sandheden. Kollektiv Ohio-moment. Alle drikker." "Mads skrev den løgn. Aura plus tusind, no cap." +- Brug gerne aftenens hukommelse til en pointe, der bygger videre på noget, der er sket tidligere.""" + def _schema(props: dict, required: list[str] | None = None) -> dict: return {"type": "object", "properties": props, "required": required or list(props), "additionalProperties": False} @@ -50,12 +76,14 @@ REVIEW = _schema({"lines": {"type": "array", "items": _schema({"player_id": {"ty class GameBrain: - def __init__(self, provider: Provider): + def __init__(self, provider: Provider, fest: bool = False): self.provider = provider + self.fest = fest + self.system = SYSTEM_FEST if fest else SYSTEM async def _ask(self, task: str, payload: dict, schema: dict, *, max_tokens: int, timeout: float): user = f"{task}\n\nData (JSON):\n{json.dumps(payload, ensure_ascii=False)}" - return await self.provider.complete_json(SYSTEM, user, schema, max_tokens=max_tokens, timeout=timeout) + return await self.provider.complete_json(self.system, user, schema, max_tokens=max_tokens, timeout=timeout) async def present_lines(self, question: dict, answers: list[dict]) -> dict[str, str]: """{answer_id: overbevisende kommentar} til oplæsningen. answers: [{id, text}] uden at sige hvilket der er sandt.""" @@ -104,9 +132,11 @@ class GameBrain: return await self._ask( "En spiller har afleveret en løgn. Afgør to ting. is_truth: er løgnen reelt sandheden (samme betydning, " "synonym, bøjning, stavefejl eller omskrivning af sandheden eller en af dens stavemåder)? En anden, " - "forkert ting er IKKE sandheden. inappropriate: er løgnen upassende for et familiespil med børn " - "(grov, seksuel, nedsættende, voldelig)? Fjollet og frækt-sjovt er fint. message: hvis en af dem er " - "sand, en kort, venlig besked til spilleren på dansk om at skrive en ny løgn; ellers tom streng.", + "forkert ting er IKKE sandheden. inappropriate: er løgnen upassende for " + + ("en fest blandt unge voksne (hadsk, nedsættende, grov seksuel, voldelig)? Fræk og plat er fint. " + if self.fest else "et familiespil med børn (grov, seksuel, nedsættende, voldelig)? Fjollet og frækt-sjovt er fint. ") + + "message: hvis en af dem er sand, en kort, venlig besked til spilleren på dansk om at skrive en ny " + "løgn; ellers tom streng.", {"spørgsmål": question.get("prompt"), "sandheden": question.get("answer"), "andre_stavemåder": question.get("alternatives", []), "løgn": lie}, JUDGE, max_tokens=200, timeout=settings.BRAIN_TIMEOUT_FAST) @@ -137,8 +167,8 @@ class GameBrain: return [(x["player_id"], x["line"].strip()) for x in res.get("lines", []) if x.get("player_id") in ids and x.get("line")] -@lru_cache(maxsize=1) -def get_brain() -> GameBrain | None: +@lru_cache(maxsize=2) +def get_brain(fest: bool = False) -> GameBrain | None: provider = build_provider(settings.BRAIN_PROVIDER, settings.BRAIN_MODEL, settings.BRAIN_API_KEY, settings.BRAIN_BASE_URL, settings.BRAIN_EFFORT, settings.BRAIN_WORKSPACE) - return GameBrain(provider) if provider else None + return GameBrain(provider, fest=fest) if provider else None diff --git a/party/management/commands/tts_warm.py b/party/management/commands/tts_warm.py index 66bdca5..9591db7 100644 --- a/party/management/commands/tts_warm.py +++ b/party/management/commands/tts_warm.py @@ -7,7 +7,7 @@ from django.conf import settings from fupogfakta.engine import RULES, RULES_FEST from fupogfakta.models import Category, Question from party import tts -from party.narrator import LINES, TEASES, Narrator, speakable_prompt +from party.narrator import LINES, TEASES, TEASES_FEST, Narrator, speakable_prompt def _expand_categories(lines: list[str], categories: list[str]) -> list[str]: @@ -44,7 +44,7 @@ class Command(BaseCommand): # fest-speakeren siger "_fest", og den almindelige replik, hvor der ikke er en fest-udgave keys = [k for k in LINES if k.endswith("_fest") or k + "_fest" not in LINES] fest_static = [line for k in keys for line in LINES[k] if not re.search(r"\{\w+\}", line)] - fest_static += TEASES + [r["say"] for r in RULES_FEST] + fest_static += TEASES_FEST + [r["say"] for r in RULES_FEST] ok = sum(1 for line in fest_static if tts.synth_sync(line, fest)) self.stdout.write(self.style.SUCCESS(f"{ok} af {len(fest_static)} faste fest-replikker ligger i cachen.")) if budget <= 0: diff --git a/party/narrator.py b/party/narrator.py index 590b209..fa804dc 100644 --- a/party/narrator.py +++ b/party/narrator.py @@ -81,6 +81,13 @@ TEASES = ["Buh!", "Hov hov, der røg du i!", "Avs, avs, avs!", "Snydt!", "Hihi, "Ups, der røg pointene.", "[mischievously] Tak for pointene!", "Godtroende!", "Sikke en naiv sjæl!", "Narret!", "Fanget med fingrene i løgnen!", "[gasps] Den troede du på?", "Lidt for tillidsfuld!", "Hjem og læs lektier!", "[sighs] Åh nej, ikke dig også.", "Den løgn sad lige i skabet!", "Bum! Fanget!"] +# Fest-spillets drillerier: samme idé, bare på zoomer, og der skal drikkes. +TEASES_FEST = ["Bro er cooked!", "[laughs] L, tag en tår!", "Ohio-moment! Skål!", "NPC-behavior!", "Aura minus tusind!", + "Du blev scammet, bestie!", "[gasps] Du troede på den? Delulu!", "Skibidi-snydt!", "Lowkey pinligt. Drik!", + "Det var ikke rizz, det var en løgn!", "[sarcastic] Big brain move. Not.", "Emotional damage! Skål!", + "Fanum tax på din tår!", "[chuckles] Mid gæt, fuld tår!", "Rip bozo. Drik!", "Ratio! Tag en tår!", + "Caught in 4K!", "[whispers] Sus. Meget sus.", "Den var for nem, bestie!", "It's giving godtroende!", + "Bussin' løgn, cooked gæt!", "[mischievously] Tak for tåren!", "No cap, du blev fooled!", "Main character? Nah, NPC!"] class Narrator: diff --git a/party/rooms.py b/party/rooms.py index 316d6a1..54c58ba 100644 --- a/party/rooms.py +++ b/party/rooms.py @@ -23,7 +23,7 @@ from fupogfakta.engine import Game from . import stt, tts from .assets import tease_images from .brain import get_brain -from .narrator import TEASES, Narrator, untag +from .narrator import TEASES, TEASES_FEST, Narrator, untag log = logging.getLogger(__name__) @@ -77,7 +77,7 @@ class Room: self._phase_key = game.phase_key() self._pending: dict[str, list[float]] = {} # fasenøgle -> starttider for replikker under generering # Hjernen og hukommelsen - self.brain = get_brain() + self.brain = get_brain(fest=game.fest) self.memory: list[str] = [] self._tease_texts: dict[str, str] = {} self.fooled_pairs: dict[tuple[str, str], int] = {} # (narret, forfatter) -> antal gange i aften @@ -642,7 +642,7 @@ class Room: g = self.game if g.phase != "reveal" or (g.round_idx, g.q_idx) != ident: return - text = self._tease_texts.get(pid) or self.narrator.rng.choice(TEASES) + text = self._tease_texts.get(pid) or self.narrator.rng.choice(TEASES_FEST if self.game.fest else TEASES) asyncio.get_running_loop().create_task(self._send_tease(pid, text)) async def _send_tease(self, pid: str, text: str): diff --git a/party/tests/test_brain.py b/party/tests/test_brain.py index 8388bb5..8b940a6 100644 --- a/party/tests/test_brain.py +++ b/party/tests/test_brain.py @@ -210,3 +210,40 @@ class PitchTests(SimpleTestCase): pitch = {engine.normalize(k): v for k, v in q["pitch"].items()} covered = {a.id for a in answers if engine.normalize(a.text) in pitch} self.assertEqual(covered, {"a1", "a2"}) # spillerens løgn (a3) er den eneste, hjernen skal skrive til + + +class SystemRecorder: + name = "fake" + + def __init__(self): + self.systems, self.users = [], [] + + async def complete_json(self, system, user, schema, **kw): + self.systems.append(system) + self.users.append(user) + return {} + + +class FestBrainTests(SimpleTestCase): + def test_fest_brain_speaks_zoomer(self): + from party.brain.game import SYSTEM, SYSTEM_FEST + fake = SystemRecorder() + asyncio.run(GameBrain(fake, fest=True).reveal_lines({"prompt": "x"}, [], [], [])) + asyncio.run(GameBrain(fake).reveal_lines({"prompt": "x"}, [], [], [])) + self.assertEqual(fake.systems, [SYSTEM_FEST, SYSTEM]) + self.assertIn("no cap", SYSTEM_FEST) + + def test_fest_judge_is_not_a_family_game(self): + fake = SystemRecorder() + asyncio.run(GameBrain(fake, fest=True).judge_lie({"prompt": "x", "answer": "y"}, "z")) + self.assertNotIn("børn", fake.users[0]) + + def test_fest_room_gets_fest_brain_and_teases(self): + from fupogfakta.engine import Game + from party.narrator import TEASES, TEASES_FEST + with mock.patch.object(rooms, "get_brain", return_value=None) as gb: + rooms.create_room([], "agw", "http://testserver", fest=True) + gb.assert_called_with(fest=True) + self.assertGreaterEqual(len(TEASES_FEST), 10) + self.assertFalse(set(TEASES_FEST) & set(TEASES)) + self.assertTrue(Game("ABCD", [], fest=True).fest)