Files
quiz/app/seed_lore_pack.py
T

723 lines
41 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import json
from app.database import SessionLocal
from app.models import Question
LORE_PACK_QUESTIONS = [
# --- CREATURES (Magische Geschöpfe) ---
{
"category": "creatures",
"difficulty": "hard",
"question_type": "text",
"question": "Aus welcher Kreuzung zweier magischer Geschöpfe züchtete Hagrid die Knallrümpfigen Kröter?",
"canonical_answer": "Mantikor und Feuerkrabbe",
"accepted_answers": json.dumps([
"Mantikor und Feuerkrabbe",
"Feuerkrabbe und Mantikor",
"Mantikor Feuerkrabbe",
"Feuerkrabbe Mantikor",
"Manticore and Fire Crab",
"Fire Crab and Manticore"
], ensure_ascii=False),
"hint": "Eines ist ein hochgefährliches griechisches Ungeheuer mit Skorpionschwanz, das andere ein schildkrötenähnliches Wesen von den Fidschi-Inseln.",
"question_en": "Which two magical creatures did Hagrid crossbreed to create the Blast-Ended Skrewts?",
"answer_en": "Manticore and Fire Crab",
"hint_en": "One is a deadly Greek beast with a scorpion tail, the other is a turtle-like creature native to Fiji."
},
{
"category": "creatures",
"difficulty": "hard",
"question_type": "multiple_choice",
"question": "Welcher der drei Köpfe der dreiköpfigen Schlange 'Runespoor' ist laut Newt Scamander derjenige, der Pläne schmiedet?",
"canonical_answer": "Der linke Kopf",
"options": json.dumps(["Der linke Kopf", "Der mittlere Kopf", "Der rechte Kopf", "Alle drei gleichzeitig"], ensure_ascii=False),
"hint": "Der mittlere Kopf ist der Träumer und der rechte Kopf der Kritiker.",
"question_en": "According to Newt Scamander, which of the three heads of the Runespoor snake is the planner?",
"answer_en": "The left head",
"options_en": json.dumps(["The left head", "The middle head", "The right head", "All three simultaneously"], ensure_ascii=False),
"hint_en": "The middle head is the dreamer and the right head is the critic."
},
{
"category": "creatures",
"difficulty": "medium",
"question_type": "text",
"question": "Wie heißt die riesige Spinne (Acromantula), die Hagrid schon während seiner Schulzeit in einem Schrank in Hogwarts versteckte?",
"canonical_answer": "Aragog",
"accepted_answers": json.dumps(["Aragog"], ensure_ascii=False),
"hint": "Sein Name beginnt mit 'A' und er lebt später mit seiner großen Kolonie im Verbotenen Wald.",
"question_en": "What is the name of the giant Acromantula spider that Hagrid hid in a cupboard at Hogwarts during his school days?",
"answer_en": "Aragog",
"hint_en": "His name starts with 'A' and he later lives with his large colony in the Forbidden Forest."
},
{
"category": "creatures",
"difficulty": "hard",
"question_type": "multiple_choice",
"question": "Welche Gefahrenklasse (Ministeriumsklassifizierung) hat ein ausgewachsener Nundu laut 'Phantastische Tierwesen'?",
"canonical_answer": "XXXXX (Bekannte Zauberertöter)",
"options": json.dumps([
"XXXXX (Bekannte Zauberertöter)",
"XXXX (Gefährlich / erfordert Fachwissen)",
"XXX (Für fähige Zauberer kein Problem)",
"XX (Harmlos / kann gezähmt werden)"
], ensure_ascii=False),
"hint": "Es braucht mindestens hundert zusammenarbeitende Zauberer, um einen einzigen Nundu zu überwältigen.",
"question_en": "What Ministry of Magic classification does an adult Nundu hold according to 'Fantastic Beasts'?",
"answer_en": "XXXXX (Known wizard killer)",
"options_en": json.dumps([
"XXXXX (Known wizard killer)",
"XXXX (Dangerous / requires specialist knowledge)",
"XXX (Competent wizard should cope)",
"XX (Harmless / may be domesticated)"
], ensure_ascii=False),
"hint_en": "It takes at least a hundred skilled wizards working together to subdue a single Nundu."
},
{
"category": "creatures",
"difficulty": "easy",
"question_type": "text",
"question": "Welches kleine, pelzige Tierwesen wird magisch von allem Glitzernden und von Goldmünzen angezogen?",
"canonical_answer": "Niffler",
"accepted_answers": json.dumps(["Niffler", "Ein Niffler"], ensure_ascii=False),
"hint": "Newt Scamander hat eines dieser langnasigen Beuteltiere in seinem Koffer.",
"question_en": "Which small, furry magical creature is irresistibly drawn to anything shiny and gold coins?",
"answer_en": "Niffler",
"hint_en": "Newt Scamander keeps one of these long-snouted burrowing creatures in his case."
},
{
"category": "creatures",
"difficulty": "medium",
"question_type": "multiple_choice",
"question": "Wie nennt man das unsichtbare geflügelte Pferd, das nur von Menschen gesehen werden kann, die den Tod bereits bewusst miterlebt haben?",
"canonical_answer": "Thestral",
"options": json.dumps(["Thestral", "Hippogreif", "Abraxaner", "Kelpie"], ensure_ascii=False),
"hint": "Sie ziehen die Kutschen vom Bahnhof Hogsmeade zum Schloss Hogwarts.",
"question_en": "What is the name of the invisible winged horse that can only be seen by those who have witnessed death?",
"answer_en": "Thestral",
"options_en": json.dumps(["Thestral", "Hippogriff", "Abraxan", "Kelpie"], ensure_ascii=False),
"hint_en": "They pull the carriages from Hogsmeade station up to Hogwarts Castle."
},
# --- BOOKS (Buchwissen) ---
{
"category": "books",
"difficulty": "hard",
"question_type": "text",
"question": "Wie lautet das vollständige Akronym der Organisation, die Hermine Granger im 4. Buch zur Befreiung der Hauselfen gründet?",
"canonical_answer": "B.ELFE.R.",
"accepted_answers": json.dumps(["B.ELFE.R.", "BELFER", "B.ELFE.R", "S.P.E.W.", "SPEW", "Bund für Elfenrechte"]),
"hint": "Es steht für 'Bund für Elfenrechte' (im Englischen: S.P.E.W.).",
"question_en": "What is the acronym of the organization Hermione Granger founds in her fourth year to campaign for house-elf rights?",
"answer_en": "S.P.E.W.",
"hint_en": "It stands for 'Society for the Promotion of Elfish Welfare' (in German: B.ELFE.R.)."
},
{
"category": "books",
"difficulty": "hard",
"question_type": "multiple_choice",
"question": "Wer schenkt Harry im 4. Buch (im Gegensatz zum Film!) das Kraut 'Dianthuskraut' (Gillyweed) für die zweite Aufgabe des Trimagischen Turniers?",
"canonical_answer": "Dobby",
"options": json.dumps(["Dobby", "Neville Longbottom", "Alastor Moody", "Cedric Diggory"], ensure_ascii=False),
"hint": "Er stiehlt es aus Professor Snapes Vorratskammer, nachdem er ein inszeniertes Gespräch von Barty Crouch Jr. belauscht hat.",
"question_en": "In the Goblet of Fire book (unlike the movie!), who actually gives Harry the Gillyweed before the Second Task?",
"answer_en": "Dobby",
"options_en": json.dumps(["Dobby", "Neville Longbottom", "Alastor Moody", "Cedric Diggory"], ensure_ascii=False),
"hint_en": "He steals it from Professor Snape's private stores after overhearing a staged conversation by Barty Crouch Jr."
},
{
"category": "books",
"difficulty": "hard",
"question_type": "text",
"question": "Wie heißt der Poltergeist von Hogwarts, der in allen sieben Büchern für Chaos sorgt, aber aus den Verfilmungen komplett gestrichen wurde?",
"canonical_answer": "Peeves",
"accepted_answers": json.dumps(["Peeves", "Poltergeist Peeves"]),
"hint": "Nur der Blutige Baron hat ihn wirklich unter Kontrolle.",
"question_en": "What is the name of the Hogwarts poltergeist who causes chaos throughout all seven books but was completely cut from the films?",
"answer_en": "Peeves",
"hint_en": "Only the Bloody Baron can truly keep him in line."
},
{
"category": "books",
"difficulty": "hard",
"question_type": "multiple_choice",
"question": "Welches Rätsel stellt Professor Snape in Band 1 als Schutz vor dem Stein der Weisen auf, das im ersten Kinofilm komplett fehlt?",
"canonical_answer": "Ein Logikrätsel mit sieben Zaubertrank-Flaschen",
"options": json.dumps([
"Ein Logikrätsel mit sieben Zaubertrank-Flaschen",
"Ein Duell gegen eine verzauberte Rüstung",
"Ein Schachbrett aus flüssigem Quecksilber",
"Eine Tür, die nur auf Parsel reagiert"
], ensure_ascii=False),
"hint": "Hermine löst es mit reiner Logik, während ein schwarzes und ein violettes Feuer die Ausgänge blockieren.",
"question_en": "Which obstacle guarding the Philosopher's Stone was created by Professor Snape in the first book, but omitted from the film?",
"answer_en": "A logic puzzle with seven potion bottles",
"options_en": json.dumps([
"A logic puzzle with seven potion bottles",
"A duel against an enchanted suit of armor",
"A chessboard made of liquid mercury",
"A door that only opens to Parseltongue"
], ensure_ascii=False),
"hint_en": "Hermione solves it using pure logic while black and purple flames block the exits."
},
{
"category": "books",
"difficulty": "hard",
"question_type": "text",
"question": "Wie heißt die Hauselfe der Familie Barty Crouch, die beim Quidditch-Weltpokal mit Harrys Zauberstab in der Hand gefunden wird?",
"canonical_answer": "Winky",
"accepted_answers": json.dumps(["Winky", "Hauselfe Winky"]),
"hint": "Ihr Name beginnt mit 'W' und sie verfällt nach ihrer Entlassung dem Butterbier.",
"question_en": "What is the name of the Crouch family's female house-elf who is found holding Harry's wand at the Quidditch World Cup?",
"answer_en": "Winky",
"hint_en": "Her name starts with 'W' and she later develops a Butterbeer habit in the Hogwarts kitchens."
},
{
"category": "books",
"difficulty": "hard",
"question_type": "multiple_choice",
"question": "Wie heißt Tom Riddles Mutter mit vollem Geburtsnamen, deren tragische Geschichte Harry in Dumbledores Denkarium im 6. Buch erfährt?",
"canonical_answer": "Merope Gaunt",
"options": json.dumps(["Merope Gaunt", "Morfin Gaunt", "Kendra Dumbledore", "Eileen Prince"], ensure_ascii=False),
"hint": "Sie war eine Nachfahrin von Salazar Slytherin und verliebte sich in den Muggel Tom Riddle Senior.",
"question_en": "What was the maiden name of Tom Riddle's mother, whose tragic story Harry learns in Dumbledore's Pensieve in book 6?",
"answer_en": "Merope Gaunt",
"options_en": json.dumps(["Merope Gaunt", "Morfin Gaunt", "Kendra Dumbledore", "Eileen Prince"], ensure_ascii=False),
"hint_en": "She was a direct descendant of Salazar Slytherin and fell in love with the Muggle Tom Riddle Sr."
},
{
"category": "books",
"difficulty": "medium",
"question_type": "multiple_choice",
"question": "Auf welcher Krankenstation im St.-Mungo-Hospital begegnen Harry, Ron und Hermine im 5. Buch zufällig Gilderoy Lockhart wieder?",
"canonical_answer": "Janus-Thickey-Station (Langzeit-Fluchschäden)",
"options": json.dumps([
"Janus-Thickey-Station (Langzeit-Fluchschäden)",
"Dai-Llewellyn-Station (Tierbisse)",
"Artefakt-Unfälle im Erdgeschoss",
"Teekessel-Verbrennungsstation"
], ensure_ascii=False),
"hint": "Auf derselben geschlossenen Station im 4. Stock liegen auch Frank und Alice Longbottom.",
"question_en": "On which ward of St Mungo's Hospital do Harry, Ron, and Hermione bump into Gilderoy Lockhart in the fifth book?",
"answer_en": "Janus Thickey Ward (Long-Term Spell Damage)",
"options_en": json.dumps([
"Janus Thickey Ward (Long-Term Spell Damage)",
"Dai Llewellyn Ward (Creature Bites)",
"Artifact Accidents on the Ground Floor",
"Potion and Plant Poisoning Ward"
], ensure_ascii=False),
"hint_en": "Frank and Alice Longbottom are patients on the very same fourth-floor ward."
},
{
"category": "books",
"difficulty": "hard",
"question_type": "text",
"question": "Welchen Beruf übt Charlie Weasley in Rumänien aus?",
"canonical_answer": "Drachenwärter",
"accepted_answers": json.dumps([
"Drachenwärter", "Drachenforscher", "Drachenzüchter", "Drachenpfleger",
"Er arbeitet mit Drachen", "Drachen", "Dragonologist", "Dragon keeper"
], ensure_ascii=False),
"hint": "Er nimmt im 1. Buch den kleinen Norwegischen Stachelbuckel Norbert in seine Obhut.",
"question_en": "What is Charlie Weasley's profession in Romania?",
"answer_en": "Dragonkeeper",
"hint_en": "In the first book, his friends fly down to take Hagrid's Norwegian Ridgeback Norbert into their care."
},
{
"category": "books",
"difficulty": "medium",
"question_type": "multiple_choice",
"question": "Was tut Harry im Buch 'Die Heiligtümer des Todes' mit dem Elderstab, bevor er ihn an seinen endgültigen Ort zurückbringt?",
"canonical_answer": "Er repariert seinen eigenen zerbrochenen Zauberstab",
"options": json.dumps([
"Er repariert seinen eigenen zerbrochenen Zauberstab",
"Er zerbricht ihn und wirft ihn von der Brücke",
"Er schenkt ihn Ron Weasley",
"Er übergibt ihn dem Zaubereiministerium"
], ensure_ascii=False),
"hint": "Mit 'Reparo' gelingt ihm etwas, was Ollivander zuvor für unmöglich gehalten hatte.",
"question_en": "In the Deathly Hallows book, what does Harry do with the Elder Wand before returning it to Dumbledore's tomb?",
"answer_en": "He repairs his own broken holly and phoenix wand",
"options_en": json.dumps([
"He repairs his own broken holly and phoenix wand",
"He snaps it in half and throws it off the bridge",
"He gifts it to Ron Weasley",
"He locks it inside Gringotts"
], ensure_ascii=False),
"hint_en": "Using 'Reparo', he accomplishes something Ollivander thought was impossible."
},
{
"category": "books",
"difficulty": "hard",
"question_type": "multiple_choice",
"question": "Wie heißt der Kobold, der im 4. Buch von Ludo Bagman mit Leprechaun-Gold betrogen wird?",
"canonical_answer": "Gornuk (bzw. Ragnok / Griphooks Kollegen)",
"options": json.dumps(["Ragnok", "Bogrod", "Travers", "Yaxley"], ensure_ascii=False),
"hint": "Er trifft sich im Eberkopf mit Ludo Bagman, um seine Schulden einzufordern.",
"question_en": "Which goblin confronts Ludo Bagman in the Hog's Head inn after being paid in vanishing Leprechaun gold?",
"answer_en": "Ragnok",
"options_en": json.dumps(["Ragnok", "Bogrod", "Travers", "Yaxley"], ensure_ascii=False),
"hint_en": "He meets Ludo Bagman in the Hog's Head to demand repayment of his bet."
},
{
"category": "books",
"difficulty": "medium",
"question_type": "text",
"question": "Welches magische Radio-Programm hören Ron, Harry und Hermine im 7. Buch auf der Flucht, für das man ein wechselndes Passwort braucht?",
"canonical_answer": "PotterWatch",
"accepted_answers": json.dumps(["PotterWatch", "Potter Watch", "Potterwatch"]),
"hint": "Moderiert wird die Sendung von Lee Jordan unter dem Decknamen 'Fluss' (River).",
"question_en": "What is the name of the secret rebel radio broadcast that Harry, Ron, and Hermione listen to while on the run in book 7?",
"answer_en": "Potterwatch",
"hint_en": "The program is hosted by Lee Jordan under the codename 'River'."
},
{
"category": "books",
"difficulty": "hard",
"question_type": "multiple_choice",
"question": "Wer war die ursprüngliche Besitzerin des Diadems von Ravenclaw und zugleich deren Tochter (die Graue Dame)?",
"canonical_answer": "Helena Ravenclaw",
"options": json.dumps(["Helena Ravenclaw", "Rowena Ravenclaw", "Helga Hufflepuff", "Millicent Bagnold"], ensure_ascii=False),
"hint": "Sie stahl das Diadem ihrer Mutter und versteckte es in einem hohlen Baum in Albanien.",
"question_en": "What is the real name of the Grey Lady, the ghost of Ravenclaw Tower and daughter of Rowena Ravenclaw?",
"answer_en": "Helena Ravenclaw",
"options_en": json.dumps(["Helena Ravenclaw", "Rowena Ravenclaw", "Helga Hufflepuff", "Millicent Bagnold"], ensure_ascii=False),
"hint_en": "She stole her mother's diadem and hid it inside a hollow tree in Albania."
},
# --- MOVIES (Filmwissen) ---
{
"category": "movies",
"difficulty": "easy",
"question_type": "text",
"question": "Welcher britische Schauspieler verkörperte Harry Potter in allen acht Kinofilmen?",
"canonical_answer": "Daniel Radcliffe",
"accepted_answers": json.dumps(["Daniel Radcliffe", "Radcliffe"]),
"hint": "Er war bei den Dreharbeiten zum ersten Film erst elf Jahre alt.",
"question_en": "Which British actor portrayed Harry Potter across all eight feature films?",
"answer_en": "Daniel Radcliffe",
"hint_en": "He was only eleven years old when filming began on the first movie."
},
{
"category": "movies",
"difficulty": "medium",
"question_type": "multiple_choice",
"question": "Welcher Regisseur inszenierte den dritten Kinofilm 'Harry Potter und der Gefangene von Askaban' (2004)?",
"canonical_answer": "Alfonso Cuarón",
"options": json.dumps(["Alfonso Cuarón", "Chris Columbus", "David Yates", "Mike Newell"], ensure_ascii=False),
"hint": "Der mexikanische Regisseur prägte den düsteren, künstlerischen Look des dritten Teils.",
"question_en": "Which director helmed the third movie, 'Harry Potter and the Prisoner of Azkaban' (2004)?",
"answer_en": "Alfonso Cuarón",
"options_en": json.dumps(["Alfonso Cuarón", "Chris Columbus", "David Yates", "Mike Newell"], ensure_ascii=False),
"hint_en": "The Mexican filmmaker gave the third installment its signature darker, atmospheric visual style."
},
{
"category": "movies",
"difficulty": "medium",
"question_type": "text",
"question": "Welcher weltberühmte Filmkomponist schrieb das ikonische Hauptthema 'Hedwig's Theme' für die ersten Harry-Potter-Filme?",
"canonical_answer": "John Williams",
"accepted_answers": json.dumps(["John Williams", "Williams"]),
"hint": "Er komponierte auch die Musik für Star Wars, Indiana Jones und Jurassic Park.",
"question_en": "Which legendary film composer wrote the iconic main theme 'Hedwig's Theme' for the first Harry Potter movies?",
"answer_en": "John Williams",
"hint_en": "He also composed the scores for Star Wars, Indiana Jones, and Jurassic Park."
},
{
"category": "movies",
"difficulty": "medium",
"question_type": "multiple_choice",
"question": "Welcher Schauspieler übernahm ab dem dritten Film die Rolle von Albus Dumbledore, nachdem Richard Harris verstorben war?",
"canonical_answer": "Michael Gambon",
"options": json.dumps(["Michael Gambon", "Ian McKellen", "Gary Oldman", "Ralph Fiennes"], ensure_ascii=False),
"hint": "Er spielte Dumbledore vom dritten bis zum achten Film.",
"question_en": "Which actor took over the role of Albus Dumbledore starting in the third film after Richard Harris passed away?",
"answer_en": "Michael Gambon",
"options_en": json.dumps(["Michael Gambon", "Ian McKellen", "Gary Oldman", "Ralph Fiennes"], ensure_ascii=False),
"hint_en": "He portrayed Dumbledore from Prisoner of Azkaban through Deathly Hallows – Part 2."
},
{
"category": "movies",
"difficulty": "easy",
"question_type": "multiple_choice",
"question": "Über welches berühmte schottische Eisenbahnviadukt fährt der Hogwarts-Express in den Filmen?",
"canonical_answer": "Glenfinnan-Viadukt",
"options": json.dumps(["Glenfinnan-Viadukt", "Ribblehead-Viadukt", "Clifton-Brücke", "Forth Bridge"], ensure_ascii=False),
"hint": "Es liegt in den schottischen Highlands am Loch Shiel.",
"question_en": "Which famous Scottish railway viaduct does the Hogwarts Express cross in the movies?",
"answer_en": "Glenfinnan Viaduct",
"options_en": json.dumps(["Glenfinnan Viaduct", "Ribblehead Viaduct", "Clifton Bridge", "Forth Bridge"], ensure_ascii=False),
"hint_en": "It is located in the Scottish Highlands overlooking Loch Shiel."
},
{
"category": "movies",
"difficulty": "hard",
"question_type": "multiple_choice",
"question": "Welche Augenfarbe hat Harry Potter in den Kinofilmen (weil Daniel Radcliffe die farbigen Kontaktlinsen nicht vertrug), obwohl sie in den Büchern leuchtend grün sind?",
"canonical_answer": "Blau",
"options": json.dumps(["Blau", "Braun", "Grau", "Bernsteinfarben"], ensure_ascii=False),
"hint": "Daniel Radcliffes natürliche Augenfarbe.",
"question_en": "What color are Harry Potter's eyes in the movies (because Daniel Radcliffe had an allergic reaction to contact lenses), even though they are bright green in the books?",
"answer_en": "Blue",
"options_en": json.dumps(["Blue", "Brown", "Hazel", "Amber"], ensure_ascii=False),
"hint_en": "It is Daniel Radcliffe's natural eye color."
},
{
"category": "movies",
"difficulty": "hard",
"question_type": "text",
"question": "Welcher unvergessene britische Schauspieler verkörperte Severus Snape in allen acht Filmen?",
"canonical_answer": "Alan Rickman",
"accepted_answers": json.dumps(["Alan Rickman", "Rickman"]),
"hint": "J.K. Rowling verriet ihm schon vor dem Erscheinen des letzten Buches das Geheimnis hinter Snapes 'Always'.",
"question_en": "Which beloved British actor portrayed Severus Snape across all eight Harry Potter films?",
"answer_en": "Alan Rickman",
"hint_en": "J.K. Rowling privately told him the secret behind Snape's 'Always' years before the final book was published."
},
{
"category": "movies",
"difficulty": "hard",
"question_type": "multiple_choice",
"question": "An welchem historischen englischen Bahnhof wurden die Außenaufnahmen von Hogsmeade Station in den ersten Filmen gedreht?",
"canonical_answer": "Goathland Station (North Yorkshire)",
"options": json.dumps([
"Goathland Station (North Yorkshire)",
"Paddington Station (London)",
"Waverley Station (Edinburgh)",
"York Central Station"
], ensure_ascii=False),
"hint": "Eine malerische Museumsbahnstation der North Yorkshire Moors Railway.",
"question_en": "At which historic English heritage railway station were the Hogsmeade Station scenes filmed in the early movies?",
"answer_en": "Goathland Station (North Yorkshire)",
"options_en": json.dumps([
"Goathland Station (North Yorkshire)",
"Paddington Station (London)",
"Waverley Station (Edinburgh)",
"York Central Station"
], ensure_ascii=False),
"hint_en": "A picturesque station on the North Yorkshire Moors Railway."
},
{
"category": "movies",
"difficulty": "medium",
"question_type": "multiple_choice",
"question": "Auf welchem echten Londoner Bahnhof wurden die Szenen am Gleis 9¾ gedreht?",
"canonical_answer": "King's Cross",
"options": json.dumps(["King's Cross", "Waterloo", "Victoria Station", "Euston"], ensure_ascii=False),
"hint": "Die Außenfassade im 2. Film zeigt das benachbarte St Pancras Renaissance Hotel.",
"question_en": "At which real-life London railway station were the Platform 9¾ scenes filmed?",
"answer_en": "King's Cross",
"options_en": json.dumps(["King's Cross", "Waterloo", "Victoria Station", "Euston"], ensure_ascii=False),
"hint_en": "Today, fans can take photos with a luggage trolley disappearing into the brick wall there."
},
{
"category": "movies",
"difficulty": "hard",
"question_type": "multiple_choice",
"question": "Wie heißt die fiktive Zauberrockband im 4. Film beim Weihnachtsball, deren Sänger von Pulp-Frontmann Jarvis Cocker gespielt wurde?",
"canonical_answer": "The Weird Sisters (Schwestern des Schicksals)",
"options": json.dumps([
"The Weird Sisters (Schwestern des Schicksals)",
"Celestina Warbeck & the Banshees",
"The Hobgoblins",
"Frog Choir"
], ensure_ascii=False),
"hint": "Auch Mitglieder der Band Radiohead spielten in dieser Filmszene in der Band mit!",
"question_en": "What is the name of the wizarding rock band at the Yule Ball in the fourth movie, fronted by Pulp's Jarvis Cocker?",
"answer_en": "The Weird Sisters",
"options_en": json.dumps([
"The Weird Sisters",
"Celestina Warbeck & the Banshees",
"The Hobgoblins",
"The Frog Choir"
], ensure_ascii=False),
"hint_en": "Members of Radiohead also appeared in the band lineup for that scene!"
},
# --- SPELLS & POTIONS (Zaubersprüche & Tränke) ---
{
"category": "spells",
"difficulty": "hard",
"question_type": "text",
"question": "Wie lautet der Gegenzauber zum Schwebezauber 'Levicorpus', mit dem man das Opfer wieder auf den Boden holt?",
"canonical_answer": "Liberacorpus",
"accepted_answers": json.dumps(["Liberacorpus", "Libera corpus"]),
"hint": "Harry findet sowohl den Zauber als auch den Gegenzauber handschriftlich im Buch des Halbblutprinzen.",
"question_en": "What is the counter-jinx to 'Levicorpus' that lowers the victim back to the ground?",
"answer_en": "Liberacorpus",
"hint_en": "Harry discovers both the spell and its counter-jinx written in the margins of the Half-Blood Prince's textbook."
},
{
"category": "spells",
"difficulty": "hard",
"question_type": "multiple_choice",
"question": "Welcher seltene Stein aus dem Magen einer Ziege wirkt als universelles Gegengift gegen die meisten Zaubertrank-Gifte?",
"canonical_answer": "Bezoar",
"options": json.dumps(["Bezoar", "Mondstein", "Blutstein", "Flussstein"], ensure_ascii=False),
"hint": "Snape fragt Harry danach in seiner allerersten Zaubertränkestunde, und Harry rettet damit später Rons Leben.",
"question_en": "Which stone taken from the stomach of a goat acts as an antidote to most poisons?",
"answer_en": "Bezoar",
"options_en": json.dumps(["Bezoar", "Moonstone", "Bloodstone", "Runestone"], ensure_ascii=False),
"hint_en": "Snape quizzes Harry about it in his very first Potions lesson, and Harry later uses one to save Ron's life."
},
{
"category": "spells",
"difficulty": "medium",
"question_type": "text",
"question": "Welcher dunkle Fluch, den der Halbblutprinz erfunden hat, schlitzt das Opfer wie mit einem unsichtbaren Schwert auf ('Für Feinde')?",
"canonical_answer": "Sectumsempra",
"accepted_answers": json.dumps(["Sectumsempra", "Sectum Sempra"]),
"hint": "Harry wendet ihn im 6. Teil im Waschraum gegen Draco Malfoy an.",
"question_en": "Which dark curse invented by the Half-Blood Prince slashes the target as if with an invisible sword ('For Enemies')?",
"answer_en": "Sectumsempra",
"hint_en": "Harry uses it against Draco Malfoy in the bathroom in year six."
},
{
"category": "spells",
"difficulty": "medium",
"question_type": "multiple_choice",
"question": "Wie lange dauert die aufwendige Zubereitung des Vielsaft-Tranks (Polyjuice Potion) ungefähr?",
"canonical_answer": "Einen ganzen Monat",
"options": json.dumps(["Einen ganzen Monat", "Genau 24 Stunden", "Sieben Tage", "Nur eine Vollmondnacht"], ensure_ascii=False),
"hint": "Unter anderem muss Florfliegenkraut 21 Tage lang schmoren.",
"question_en": "Approximately how long does it take to brew Polyjuice Potion from start to finish?",
"answer_en": "One full month",
"options_en": json.dumps(["One full month", "Exactly 24 hours", "Seven days", "A single full-moon night"], ensure_ascii=False),
"hint_en": "Lacewing flies alone must stew for twenty-one days."
},
# --- HOGWARTS & PLACES ---
{
"category": "hogwarts",
"difficulty": "hard",
"question_type": "multiple_choice",
"question": "Wie gelangt man in die Schulküche von Hogwarts, die direkt unter der Großen Halle liegt?",
"canonical_answer": "Man kitzelt die Birne auf einem Obst-Gemälde",
"options": json.dumps([
"Man kitzelt die Birne auf einem Obst-Gemälde",
"Man klopft dreimal auf ein Essigfass",
"Man sagt das Passwort 'Kürbispastete' zu einer Rüstung",
"Man zieht an einer goldenen Bratpfanne"
], ensure_ascii=False),
"hint": "Die Frucht kichert daraufhin und verwandelt sich in einen grünen Türgriff.",
"question_en": "How do you open the secret entrance to the Hogwarts kitchens located beneath the Great Hall?",
"answer_en": "Tickle the pear in the painting of a bowl of fruit",
"options_en": json.dumps([
"Tickle the pear in the painting of a bowl of fruit",
"Tap a vinegar barrel in the rhythm of Helga Hufflepuff",
"Whisper 'Pumpkin Pasties' to a suit of armor",
"Pull on a golden ladle"
], ensure_ascii=False),
"hint_en": "The fruit giggles and transforms into a green door handle."
},
{
"category": "hogwarts",
"difficulty": "hard",
"question_type": "multiple_choice",
"question": "Was unterscheidet den Eingang zum Ravenclaw-Gemeinschaftsraum von denen der anderen drei Häuser?",
"canonical_answer": "Man muss eine philosophische Rätselfrage des Türklopfers beantworten statt ein Passwort zu nennen",
"options": json.dumps([
"Man muss eine philosophische Rätselfrage des Türklopfers beantworten statt ein Passwort zu nennen",
"Man kann nur auf einem Besen durch das Turmfenster hineinfliegen",
"Man muss seinen Zauberstab auf eine Waage legen",
"Die Tür öffnet sich nur bei Mondschein"
], ensure_ascii=False),
"hint": "Der bronzene Adler-Türklopfer fragt z. B.: 'Was war zuerst da, der Phönix oder die Flamme?'",
"question_en": "How does entering the Ravenclaw common room differ from the other three Hogwarts houses?",
"answer_en": "You must answer a philosophical riddle posed by a bronze eagle knocker instead of giving a password",
"options_en": json.dumps([
"You must answer a philosophical riddle posed by a bronze eagle knocker instead of giving a password",
"You can only enter by flying through the tower window on a broom",
"You must weigh your wand on an enchanted scale",
"The door only opens under moonlight"
], ensure_ascii=False),
"hint_en": "For example, the bronze eagle asks: 'Which came first, the phoenix or the flame?'"
},
{
"category": "hogwarts",
"difficulty": "medium",
"question_type": "text",
"question": "Unter welchem Baum auf dem Schulgelände von Hogwarts beginnt der geheime Tunnel, der direkt in die Heulende Hütte nach Hogsmeade führt?",
"canonical_answer": "Peitschende Weide",
"accepted_answers": json.dumps(["Peitschende Weide", "Die Peitschende Weide", "Whomping Willow"]),
"hint": "Er wurde gepflanzt, als Remus Lupin als Schüler nach Hogwarts kam.",
"question_en": "Beneath which violent tree on the Hogwarts grounds is the secret tunnel leading to the Shrieking Shack?",
"answer_en": "Whomping Willow",
"hint_en": "It was planted the year Remus Lupin arrived at Hogwarts as a student."
},
{
"category": "hogwarts",
"difficulty": "easy",
"question_type": "text",
"question": "Wie heißt das einzige komplett von Zauberern bewohnte Dorf in Großbritannien, das in der Nähe von Hogwarts liegt?",
"canonical_answer": "Hogsmeade",
"accepted_answers": json.dumps(["Hogsmeade"]),
"hint": "Schüler ab der dritten Klasse dürfen es an bestimmten Wochenenden mit einer Unterschrift besuchen.",
"question_en": "What is the name of the only all-wizarding village in Britain, located near Hogwarts?",
"answer_en": "Hogsmeade",
"hint_en": "Students in their third year and above may visit it on certain weekends with a signed permission slip."
},
# --- QUIDDITCH ---
{
"category": "quidditch",
"difficulty": "hard",
"question_type": "multiple_choice",
"question": "Welches spektakuläre Flugmanöver führt Viktor Krum beim Finale der Quidditch-Weltmeisterschaft 1994 aus, um den gegnerischen Sucher Aidan Lynch in den Boden stürzen zu lassen?",
"canonical_answer": "Wronski-Bluff (Wronski Feint)",
"options": json.dumps([
"Wronski-Bluff (Wronski Feint)",
"Porskoff-Ploy",
"Falkenkopf-Angriffsformation",
"Faultier-Rolle (Sloth Grip Roll)"
], ensure_ascii=False),
"hint": "Der Sucher täuscht im Sturzflug vor, den Goldenen Schnatz am Boden gesehen zu haben, und zieht im letzten Moment hoch.",
"question_en": "Which famous diving maneuver does Viktor Krum execute during the 1994 Quidditch World Cup Final to trick Irish Seeker Aidan Lynch?",
"answer_en": "Wronski Feint",
"options_en": json.dumps([
"Wronski Feint",
"Porskoff Ploy",
"Hawkshead Attacking Formation",
"Sloth Grip Roll"
], ensure_ascii=False),
"hint_en": "The Seeker dives steeply toward the ground pretending to have spotted the Snitch, pulling up at the very last second."
},
{
"category": "quidditch",
"difficulty": "hard",
"question_type": "multiple_choice",
"question": "Welches magische Wesen war vor der Erfindung des Goldenen Schnatzes das ursprüngliche Jagdziel beim Quidditch?",
"canonical_answer": "Der Goldene Schnatzer (Golden Snidget)",
"options": json.dumps([
"Der Goldene Schnatzer (Golden Snidget)",
"Der Fwuuper",
"Der Augurey",
"Der Jobberknoll"
], ensure_ascii=False),
"hint": "Ein kugelrunder kleiner goldener Vogel, der dadurch fast ausgerottet wurde, bevor Bowman Wright den metallenen Schnatz schmiedete.",
"question_en": "Before the invention of the metallic Golden Snitch, which small magical bird was hunted during Quidditch matches?",
"answer_en": "Golden Snidget",
"options_en": json.dumps([
"Golden Snidget",
"Fwooper",
"Augurey",
"Jobberknoll"
], ensure_ascii=False),
"hint_en": "The tiny spherical golden bird was nearly hunted to extinction before Bowman Wright forged the enchanted metal replacement."
},
{
"category": "quidditch",
"difficulty": "medium",
"question_type": "multiple_choice",
"question": "Welche beiden Nationalmannschaften standen sich im Finale der Quidditch-Weltmeisterschaft 1994 gegenüber?",
"canonical_answer": "Irland und Bulgarien",
"options": json.dumps([
"Irland und Bulgarien",
"England und Transsilvanien",
"Schottland und Frankreich",
"Irland und Rumänien"
], ensure_ascii=False),
"hint": "Viktor Krum fing zwar den Schnatz, doch die andere Mannschaft gewann trotzdem mit 170 zu 160 Punkten!",
"question_en": "Which two national teams faced off in the final of the 1994 Quidditch World Cup?",
"answer_en": "Ireland and Bulgaria",
"options_en": json.dumps([
"Ireland and Bulgaria",
"England and Transylvania",
"Scotland and France",
"Ireland and Romania"
], ensure_ascii=False),
"hint_en": "Viktor Krum caught the Snitch, yet the opposing team still won the match 170 to 160!"
},
{
"category": "quidditch",
"difficulty": "easy",
"question_type": "text",
"question": "Wie heißt das schnellste Rennbesen-Modell der Welt, das Harry im dritten Schuljahr anonym von seinem Paten Sirius Black geschenkt bekommt?",
"canonical_answer": "Feuerblitz",
"accepted_answers": json.dumps(["Feuerblitz", "Der Feuerblitz", "Firebolt"]),
"hint": "Er löst Harrys zerstörten Nimbus 2000 ab.",
"question_en": "What is the name of the world-class racing broom Harry receives anonymously from his godfather Sirius Black in his third year?",
"answer_en": "Firebolt",
"hint_en": "It replaces Harry's destroyed Nimbus 2000."
},
# --- CHARACTERS ---
{
"category": "characters",
"difficulty": "hard",
"question_type": "text",
"question": "In welches Tier verwandelt sich Rita Kimmkorn (Rita Skeeter) als nicht registrierter Animagus, um unbemerkt Gespräche zu belauschen?",
"canonical_answer": "Käfer",
"accepted_answers": json.dumps(["Käfer", "Ein Käfer", "Wasserkäfer", "Grüner Käfer", "Beetle"]),
"hint": "Hermine fängt sie am Ende des 4. Schuljahres in einem unzerbrechlichen Schraubglas.",
"question_en": "Into which insect does journalist Rita Skeeter transform as an unregistered Animagus to eavesdrop on conversations?",
"answer_en": "Beetle",
"hint_en": "Hermione traps her inside an unbreakable glass jar at the end of year four."
},
{
"category": "characters",
"difficulty": "hard",
"question_type": "multiple_choice",
"question": "Wer hinterließ die geheimnisvolle Notiz mit den Initialen 'R.A.B.' in der falschen Horkrux-Höhle?",
"canonical_answer": "Regulus Arcturus Black",
"options": json.dumps([
"Regulus Arcturus Black",
"Rodolphus Augustus Bell",
"Rufus Albus Bones",
"Rabastan Lestrange"
], ensure_ascii=False),
"hint": "Der jüngere Bruder von Sirius Black, der mit Hilfe des Hauselfen Kreacher das echte Medaillon stahl.",
"question_en": "Who left the mysterious note signed 'R.A.B.' inside the fake Horcrux locket in the sea cave?",
"answer_en": "Regulus Arcturus Black",
"options_en": json.dumps([
"Regulus Arcturus Black",
"Rodolphus Augustus Bell",
"Rufus Albus Bones",
"Rabastan Lestrange"
], ensure_ascii=False),
"hint_en": "Sirius Black's younger brother, who stole the real locket with the help of the house-elf Kreacher."
}
]
def seed_lore_pack():
db = SessionLocal()
try:
existing_questions = {q.question.strip().lower(): q for q in db.query(Question).all()}
max_sort = db.query(Question.sort_order).order_by(Question.sort_order.desc()).first()
next_sort = (max_sort[0] + 1) if max_sort and max_sort[0] else 100
added = 0
for item in LORE_PACK_QUESTIONS:
q_key = item["question"].strip().lower()
if q_key in existing_questions:
continue
new_q = Question(
category=item["category"],
difficulty=item["difficulty"],
question_type=item["question_type"],
question=item["question"],
canonical_answer=item["canonical_answer"],
accepted_answers=item.get("accepted_answers"),
options=item.get("options"),
hint=item.get("hint"),
question_en=item.get("question_en"),
answer_en=item.get("answer_en"),
options_en=item.get("options_en"),
hint_en=item.get("hint_en"),
status="active",
sort_order=next_sort,
submitted_by="System Lore Pack"
)
db.add(new_q)
next_sort += 1
added += 1
db.commit()
print(f"Lore Pack Seeding complete: {added} new questions added. Total active: {db.query(Question).filter(Question.status == 'active').count()}")
finally:
db.close()
if __name__ == "__main__":
seed_lore_pack()