723 lines
41 KiB
Python
723 lines
41 KiB
Python
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()
|