610 lines
28 KiB
Python
610 lines
28 KiB
Python
import json
|
||
from app.database import engine, SessionLocal
|
||
from app.models import Question
|
||
from sqlalchemy import text
|
||
|
||
QUESTIONS_DATA = [
|
||
# --- EASY (1-14) ---
|
||
{
|
||
"category": "creatures",
|
||
"difficulty": "easy",
|
||
"question_type": "multiple_choice",
|
||
"question": "Wie heißt Harrys schneeweiße Eule?",
|
||
"canonical_answer": "Hedwig",
|
||
"options": ["Hedwig", "Errol", "Pigwidgeon", "Fawkes"],
|
||
"hint": "Harry bekam sie von Hagrid in der Winkelgasse geschenkt.",
|
||
"question_en": "What is the name of Harry's snowy pet owl?",
|
||
"answer_en": "Hedwig",
|
||
"options_en": ["Hedwig", "Errol", "Pigwidgeon", "Fawkes"],
|
||
"hint_en": "Harry received her as a gift from Hagrid in Diagon Alley."
|
||
},
|
||
{
|
||
"category": "hogwarts",
|
||
"difficulty": "easy",
|
||
"question_type": "multiple_choice",
|
||
"question": "Welche Farben repräsentieren das Haus Gryffindor?",
|
||
"canonical_answer": "Rot und Gold",
|
||
"options": ["Rot und Gold", "Grün und Silber", "Blau und Bronze", "Gelb und Schwarz"],
|
||
"hint": "Sie erinnern an ein loderndes Löwenfeuer.",
|
||
"question_en": "Which colours represent the House of Gryffindor?",
|
||
"answer_en": "Red and Gold",
|
||
"options_en": ["Red and Gold", "Green and Silver", "Blue and Bronze", "Yellow and Black"],
|
||
"hint_en": "They evoke the fiery colours of a proud lion."
|
||
},
|
||
{
|
||
"category": "hogwarts",
|
||
"difficulty": "easy",
|
||
"question_type": "text",
|
||
"question": "Von welchem Gleis am Bahnhof King's Cross fährt der Hogwarts-Express ab?",
|
||
"canonical_answer": "9 3/4",
|
||
"options": None,
|
||
"hint": "Eine Bruchzahl zwischen Bahnsteig 9 und 10.",
|
||
"question_en": "From which platform at King's Cross station does the Hogwarts Express depart?",
|
||
"answer_en": "9 3/4",
|
||
"options_en": None,
|
||
"hint_en": "A fraction between platforms 9 and 10."
|
||
},
|
||
{
|
||
"category": "quidditch",
|
||
"difficulty": "easy",
|
||
"question_type": "text",
|
||
"question": "Wie viele Punkte bringt das Fangen des Goldenen Schnatzes im Quidditch?",
|
||
"canonical_answer": "150",
|
||
"options": None,
|
||
"hint": "Mehr als einhundert Punkte.",
|
||
"question_en": "How many points is catching the Golden Snitch worth in Quidditch?",
|
||
"answer_en": "150",
|
||
"options_en": None,
|
||
"hint_en": "More than one hundred points."
|
||
},
|
||
{
|
||
"category": "hogwarts",
|
||
"difficulty": "easy",
|
||
"question_type": "text",
|
||
"question": "In wie viele verschiedene Häuser teilt der Sprechende Hut die Schüler ein?",
|
||
"canonical_answer": "4",
|
||
"options": None,
|
||
"hint": "Gryffindor, Hufflepuff, Ravenclaw und Slytherin.",
|
||
"question_en": "Into how many different houses does the Sorting Hat divide students?",
|
||
"answer_en": "4",
|
||
"options_en": None,
|
||
"hint_en": "Gryffindor, Hufflepuff, Ravenclaw, and Slytherin."
|
||
},
|
||
{
|
||
"category": "spells",
|
||
"difficulty": "easy",
|
||
"question_type": "multiple_choice",
|
||
"question": "Mit welchem Zauberspruch beschwört man einen Patronus herauf?",
|
||
"canonical_answer": "Expecto Patronum",
|
||
"options": ["Expecto Patronum", "Expelliarmus", "Lumos Solem", "Avada Kedavra"],
|
||
"hint": "Er erfordert eine zutiefst glückliche Erinnerung.",
|
||
"question_en": "Which incantation conjures a Patronus guardian?",
|
||
"answer_en": "Expecto Patronum",
|
||
"options_en": ["Expecto Patronum", "Expelliarmus", "Lumos Solem", "Avada Kedavra"],
|
||
"hint_en": "It requires a powerfully happy memory."
|
||
},
|
||
{
|
||
"category": "characters",
|
||
"difficulty": "easy",
|
||
"question_type": "text",
|
||
"question": "Wie lautet der zweite Vorname von Harry Potter?",
|
||
"canonical_answer": "James",
|
||
"options": None,
|
||
"hint": "Er trägt denselben Namen wie sein Vater.",
|
||
"question_en": "What is Harry Potter's middle name?",
|
||
"answer_en": "James",
|
||
"options_en": None,
|
||
"hint_en": "He shares this name with his father."
|
||
},
|
||
{
|
||
"category": "lore",
|
||
"difficulty": "easy",
|
||
"question_type": "multiple_choice",
|
||
"question": "Welcher magische Kern befindet sich im Zauberstab von Harry Potter?",
|
||
"canonical_answer": "Phönixfeder",
|
||
"options": ["Phönixfeder", "Drachenherzfaser", "Einhornhaar", "Veela-Haar"],
|
||
"hint": "Die Feder stammt von Dumbledores Vogel Fawkes.",
|
||
"question_en": "What magical core is inside Harry Potter's wand?",
|
||
"answer_en": "Phoenix feather",
|
||
"options_en": ["Phoenix feather", "Dragon heartstring", "Unicorn hair", "Veela hair"],
|
||
"hint_en": "The feather was donated by Dumbledore's phoenix Fawkes."
|
||
},
|
||
{
|
||
"category": "characters",
|
||
"difficulty": "easy",
|
||
"question_type": "text",
|
||
"question": "Wer war der weise Schulleiter von Hogwarts zu Harrys Schulzeit?",
|
||
"canonical_answer": "Albus Dumbledore",
|
||
"options": None,
|
||
"hint": "Er trägt eine Halbmondbrille und liebt Zitronenbrausebonbons.",
|
||
"question_en": "Who was the wise Headmaster of Hogwarts during most of Harry's schooling?",
|
||
"answer_en": "Albus Dumbledore",
|
||
"options_en": None,
|
||
"hint_en": "He wears half-moon spectacles and loves Lemon Drops."
|
||
},
|
||
{
|
||
"category": "characters",
|
||
"difficulty": "easy",
|
||
"question_type": "text",
|
||
"question": "Wie heißt der Zwillingsbruder von Fred Weasley?",
|
||
"canonical_answer": "George",
|
||
"options": None,
|
||
"hint": "Gemeinsam eröffneten sie 'Weasleys Zauberhafte Zauberscherze'.",
|
||
"question_en": "What is the name of Fred Weasley's twin brother?",
|
||
"answer_en": "George",
|
||
"options_en": None,
|
||
"hint_en": "Together they opened 'Weasleys' Wizard Wheezes'."
|
||
},
|
||
{
|
||
"category": "hogwarts",
|
||
"difficulty": "easy",
|
||
"question_type": "multiple_choice",
|
||
"question": "Welches Tier ist das Wappentier des Hauses Hufflepuff?",
|
||
"canonical_answer": "Dachs",
|
||
"options": ["Dachs", "Biber", "Eichhörnchen", "Otter"],
|
||
"hint": "Ein grabendes, treues und wehrhaftes Tier.",
|
||
"question_en": "Which animal is the emblem of House Hufflepuff?",
|
||
"answer_en": "Badger",
|
||
"options_en": ["Badger", "Beaver", "Squirrel", "Otter"],
|
||
"hint_en": "A loyal, hard-working, burrowing animal."
|
||
},
|
||
{
|
||
"category": "spells",
|
||
"difficulty": "easy",
|
||
"question_type": "text",
|
||
"question": "Welcher Zauberspruch entwaffnet einen gegnerischen Zauberer?",
|
||
"canonical_answer": "Expelliarmus",
|
||
"options": None,
|
||
"hint": "Harrys Markenzeichen im Duell.",
|
||
"question_en": "Which spell is used to disarm an opponent?",
|
||
"answer_en": "Expelliarmus",
|
||
"options_en": None,
|
||
"hint_en": "Harry's trademark defensive spell in duels."
|
||
},
|
||
{
|
||
"category": "characters",
|
||
"difficulty": "easy",
|
||
"question_type": "multiple_choice",
|
||
"question": "In welches Tier kann sich Sirius Black als Animagus verwandeln?",
|
||
"canonical_answer": "Schwarzer Hund",
|
||
"options": ["Schwarzer Hund", "Wolf", "Hirsch", "Ratte"],
|
||
"hint": "Sein Spitzname lautet 'Tatze' (Padfoot).",
|
||
"question_en": "Which animal does Sirius Black transform into as an Animagus?",
|
||
"answer_en": "Black Dog",
|
||
"options_en": ["Black Dog", "Wolf", "Stag", "Rat"],
|
||
"hint_en": "His Marauder nickname is 'Padfoot'."
|
||
},
|
||
{
|
||
"category": "lore",
|
||
"difficulty": "easy",
|
||
"question_type": "text",
|
||
"question": "Wie viele Heiligtümer des Todes gibt es laut der Legende der drei Brüder?",
|
||
"canonical_answer": "3",
|
||
"options": None,
|
||
"hint": "Elderstab, Stein der Auferstehung und Tarnumhang.",
|
||
"question_en": "How many Deathly Hallows exist according to the Tale of the Three Brothers?",
|
||
"answer_en": "3",
|
||
"options_en": None,
|
||
"hint_en": "The Elder Wand, the Resurrection Stone, and the Invisibility Cloak."
|
||
},
|
||
|
||
# --- MEDIUM (15-30) ---
|
||
{
|
||
"category": "lore",
|
||
"difficulty": "medium",
|
||
"question_type": "multiple_choice",
|
||
"question": "Wie heißt die beliebte Wirtin des Gasthauses 'Drei Besen' in Hogsmeade?",
|
||
"canonical_answer": "Madam Rosmerta",
|
||
"options": ["Madam Rosmerta", "Madam Malkin", "Madam Pince", "Madam Pomfrey"],
|
||
"hint": "Ron Weasley hat eine kleine Schwäche für sie.",
|
||
"question_en": "What is the name of the popular landlady of 'The Three Broomsticks' in Hogsmeade?",
|
||
"answer_en": "Madam Rosmerta",
|
||
"options_en": ["Madam Rosmerta", "Madam Malkin", "Madam Pince", "Madam Pomfrey"],
|
||
"hint_en": "Ron Weasley harbors quite a crush on her."
|
||
},
|
||
{
|
||
"category": "creatures",
|
||
"difficulty": "medium",
|
||
"question_type": "text",
|
||
"question": "Welche riesige Schlange hauste tief unter Hogwarts in der Kammer des Schreckens?",
|
||
"canonical_answer": "Basilisk",
|
||
"options": None,
|
||
"hint": "Ihr Blick ist absolut tödlich.",
|
||
"question_en": "Which giant serpent dwelt deep beneath Hogwarts in the Chamber of Secrets?",
|
||
"answer_en": "Basilisk",
|
||
"options_en": None,
|
||
"hint_en": "Its direct stare causes instant death."
|
||
},
|
||
{
|
||
"category": "creatures",
|
||
"difficulty": "medium",
|
||
"question_type": "text",
|
||
"question": "Wie heißt Albus Dumbledores treuer Phönix?",
|
||
"canonical_answer": "Fawkes",
|
||
"options": None,
|
||
"hint": "Seine Tränen besitzen wundersame Heilkräfte.",
|
||
"question_en": "What is the name of Albus Dumbledore's loyal pet phoenix?",
|
||
"answer_en": "Fawkes",
|
||
"options_en": None,
|
||
"hint_en": "His tears have miraculous healing powers."
|
||
},
|
||
{
|
||
"category": "characters",
|
||
"difficulty": "medium",
|
||
"question_type": "text",
|
||
"question": "Wie heißt der mürrische alte Hauself der Familie Black am Grimmauldplatz 12?",
|
||
"canonical_answer": "Kreacher",
|
||
"options": None,
|
||
"hint": "Er verehrte Regulus Black über alles.",
|
||
"question_en": "What is the name of the grumpy house-elf serving the Black family at 12 Grimmauld Place?",
|
||
"answer_en": "Kreacher",
|
||
"options_en": None,
|
||
"hint_en": "He was fiercely loyal to Regulus Black."
|
||
},
|
||
{
|
||
"category": "characters",
|
||
"difficulty": "medium",
|
||
"question_type": "multiple_choice",
|
||
"question": "Welchen Spitznamen trug Remus Lupin als Schöpfer der Karte des Rumtreibers?",
|
||
"canonical_answer": "Moony",
|
||
"options": ["Moony", "Wurmschwanz", "Tatze", "Krone"],
|
||
"hint": "Eine Anspielung auf den Vollmond.",
|
||
"question_en": "What was Remus Lupin's Marauder nickname?",
|
||
"answer_en": "Moony",
|
||
"options_en": ["Moony", "Wormtail", "Padfoot", "Prongs"],
|
||
"hint_en": "A direct reference to the full moon."
|
||
},
|
||
{
|
||
"category": "creatures",
|
||
"difficulty": "medium",
|
||
"question_type": "multiple_choice",
|
||
"question": "Wie heißt Hermines krummbeiniger roter Kater mit Kniesel-Abstammung?",
|
||
"canonical_answer": "Krummbein",
|
||
"options": ["Krummbein", "Knut", "Knecht Ruprecht", "Klaue"],
|
||
"hint": "Auf Englisch heißt er Crookshanks.",
|
||
"question_en": "What is the name of Hermione's half-Kneazle ginger cat?",
|
||
"answer_en": "Crookshanks",
|
||
"options_en": ["Crookshanks", "Krummbein", "Claw", "Rusty"],
|
||
"hint_en": "He immediately recognized Scabbers as an imposter."
|
||
},
|
||
{
|
||
"category": "quidditch",
|
||
"difficulty": "medium",
|
||
"question_type": "text",
|
||
"question": "Wie viele Bälle sind insgesamt gleichzeitig bei einem regulären Quidditch-Spiel im Einsatz?",
|
||
"canonical_answer": "4",
|
||
"options": None,
|
||
"hint": "Ein Quaffel, zwei Klatscher und ein Schnatz.",
|
||
"question_en": "How many total balls are in play during a regular Quidditch match?",
|
||
"answer_en": "4",
|
||
"options_en": None,
|
||
"hint_en": "One Quaffle, two Bludgers, and one Golden Snitch."
|
||
},
|
||
{
|
||
"category": "spells",
|
||
"difficulty": "medium",
|
||
"question_type": "multiple_choice",
|
||
"question": "Mit welchem Spruch wird ein gestaltwandelnder Irrwicht unschädlich gemacht?",
|
||
"canonical_answer": "Riddikulus",
|
||
"options": ["Riddikulus", "Reducto", "Rictusempra", "Relashio"],
|
||
"hint": "Man muss sich etwas Lächerliches und Heiteres vorstellen.",
|
||
"question_en": "Which charm dispels a shape-shifting Boggart by turning it comical?",
|
||
"answer_en": "Riddikulus",
|
||
"options_en": ["Riddikulus", "Reducto", "Rictusempra", "Relashio"],
|
||
"hint_en": "It requires turning the creature into something funny."
|
||
},
|
||
{
|
||
"category": "spells",
|
||
"difficulty": "medium",
|
||
"question_type": "multiple_choice",
|
||
"question": "Welcher Zauberspruch lässt Gegenstände in die Luft schweben?",
|
||
"canonical_answer": "Wingardium Leviosa",
|
||
"options": ["Wingardium Leviosa", "Accio", "Alohomora", "Avis"],
|
||
"hint": "'Es heißt Leviooooosa, nicht Leviosaaaa!'",
|
||
"question_en": "Which levitation charm makes objects fly into the air?",
|
||
"answer_en": "Wingardium Leviosa",
|
||
"options_en": ["Wingardium Leviosa", "Accio", "Alohomora", "Avis"],
|
||
"hint_en": "'It's Levi-ooo-sa, not Levio-saaa!' - Hermione Granger."
|
||
},
|
||
{
|
||
"category": "creatures",
|
||
"difficulty": "medium",
|
||
"question_type": "multiple_choice",
|
||
"question": "Gegen welche gefährliche Drachenart musste Harry in der ersten Aufgabe des Trimagischen Turniers antreten?",
|
||
"canonical_answer": "Ungarischer Hornschwanz",
|
||
"options": ["Ungarischer Hornschwanz", "Schwedischer Kurzschnäuzler", "Gemeiner Walisischer Grünling", "Chinesischer Feuerball"],
|
||
"hint": "Der gefährlichste und bösartigste aller vier Drachen.",
|
||
"question_en": "Which fierce dragon breed did Harry face in the First Task of the Triwizard Tournament?",
|
||
"answer_en": "Hungarian Horntail",
|
||
"options_en": ["Hungarian Horntail", "Swedish Short-Snout", "Common Welsh Green", "Chinese Fireball"],
|
||
"hint_en": "Considered the most vicious and dangerous dragon of all four."
|
||
},
|
||
{
|
||
"category": "hogwarts",
|
||
"difficulty": "medium",
|
||
"question_type": "multiple_choice",
|
||
"question": "Welches Tier ziert das offizielle Hauswappen von Ravenclaw?",
|
||
"canonical_answer": "Adler",
|
||
"options": ["Adler", "Rabe", "Falke", "Eule"],
|
||
"hint": "Entgegen dem Namensbestandteil 'Raven' ist es kein Rabe!",
|
||
"question_en": "Which bird is the official emblem of House Ravenclaw in the books?",
|
||
"answer_en": "Eagle",
|
||
"options_en": ["Eagle", "Raven", "Falcon", "Owl"],
|
||
"hint_en": "Despite the house name, it is definitely not a raven!"
|
||
},
|
||
{
|
||
"category": "hogwarts",
|
||
"difficulty": "medium",
|
||
"question_type": "multiple_choice",
|
||
"question": "Wie heißt der geheimnisvolle Raum im 7. Stock, der nur erscheint, wenn man ihn wirklich braucht?",
|
||
"canonical_answer": "Raum der Wünsche",
|
||
"options": ["Raum der Wünsche", "Raum der Rätsel", "Spiegelkammer", "Halle der Prophezeiungen"],
|
||
"hint": "Dumbledores Armee trainierte hier heimlich.",
|
||
"question_en": "What is the name of the magical 7th-floor room that only appears when someone is in real need of it?",
|
||
"answer_en": "Room of Requirement",
|
||
"options_en": ["Room of Requirement", "Chamber of Riddles", "Hall of Prophecy", "Mirror Room"],
|
||
"hint_en": "Dumbledore's Army used it as their secret training ground."
|
||
},
|
||
{
|
||
"category": "characters",
|
||
"difficulty": "medium",
|
||
"question_type": "multiple_choice",
|
||
"question": "Welche Gestalt nahm der Patronus von Severus Snape an?",
|
||
"canonical_answer": "Silberne Hirschkuh",
|
||
"options": ["Silberne Hirschkuh", "Großer Hirsch", "Schlange", "Fledermaus"],
|
||
"hint": "'Nach all dieser Zeit?' – 'Immer.'",
|
||
"question_en": "What shape did Severus Snape's Patronus take?",
|
||
"answer_en": "Silver Doe",
|
||
"options_en": ["Silver Doe", "Stag", "Serpent", "Bat"],
|
||
"hint_en": "'After all this time?' – 'Always.'"
|
||
},
|
||
{
|
||
"category": "lore",
|
||
"difficulty": "medium",
|
||
"question_type": "multiple_choice",
|
||
"question": "Welcher Horkrux von Lord Voldemort wurde als allererstes von Harry Potter zerstört?",
|
||
"canonical_answer": "Tom Riddles Tagebuch",
|
||
"options": ["Tom Riddles Tagebuch", "Medaillon von Slytherin", "Ring der Gaunts", "Diadem von Ravenclaw"],
|
||
"hint": "In der Kammer des Schreckens mit einem Basiliskenzahn.",
|
||
"question_en": "Which of Voldemort's Horcruxes was the very first to be destroyed?",
|
||
"answer_en": "Tom Riddle's Diary",
|
||
"options_en": ["Tom Riddle's Diary", "Slytherin's Locket", "Gaunt's Ring", "Ravenclaw's Diadem"],
|
||
"hint_en": "Destroyed in the Chamber of Secrets with a basilisk fang."
|
||
},
|
||
{
|
||
"category": "characters",
|
||
"difficulty": "medium",
|
||
"question_type": "multiple_choice",
|
||
"question": "Wie lautet der vollständige Vorname des weltberühmten Zauberstabmachers Ollivander?",
|
||
"canonical_answer": "Garrick",
|
||
"options": ["Garrick", "Gerbold", "Gervase", "Gellert"],
|
||
"hint": "Sein Geschäft in der Winkelgasse besteht seit 382 v. Chr.",
|
||
"question_en": "What is the first name of the master wandmaker Mr. Ollivander?",
|
||
"answer_en": "Garrick",
|
||
"options_en": ["Garrick", "Gerbold", "Gervase", "Gellert"],
|
||
"hint_en": "Makers of fine wands since 382 B.C."
|
||
},
|
||
{
|
||
"category": "characters",
|
||
"difficulty": "medium",
|
||
"question_type": "text",
|
||
"question": "Wie lautet der echte Vorname von Auror 'Mad-Eye' Moody?",
|
||
"canonical_answer": "Alastor",
|
||
"options": None,
|
||
"hint": "Beginnt mit dem Buchstaben A.",
|
||
"question_en": "What is the actual first name of Auror 'Mad-Eye' Moody?",
|
||
"answer_en": "Alastor",
|
||
"options_en": None,
|
||
"hint_en": "Starts with the letter A."
|
||
},
|
||
|
||
# --- HARD (31-40) ---
|
||
{
|
||
"category": "characters",
|
||
"difficulty": "hard",
|
||
"question_type": "multiple_choice",
|
||
"question": "Wer war der Schulleiter von Hogwarts unmittelbar vor Albus Dumbledore?",
|
||
"canonical_answer": "Armando Dippet",
|
||
"options": ["Armando Dippet", "Phineas Nigellus Black", "Dexter Fortescue", "Dilys Derwent"],
|
||
"hint": "Er war Schulleiter, als Tom Riddle 1943 die Kammer des Schreckens öffnete.",
|
||
"question_en": "Who served as Headmaster of Hogwarts immediately before Albus Dumbledore?",
|
||
"answer_en": "Armando Dippet",
|
||
"options_en": ["Armando Dippet", "Phineas Nigellus Black", "Dexter Fortescue", "Dilys Derwent"],
|
||
"hint_en": "He was in charge when Tom Riddle opened the Chamber of Secrets in 1943."
|
||
},
|
||
{
|
||
"category": "characters",
|
||
"difficulty": "hard",
|
||
"question_type": "text",
|
||
"question": "Wie hieß die jüngere Schwester von Albus und Aberforth Dumbledore, die tragisch verstarb?",
|
||
"canonical_answer": "Ariana",
|
||
"options": None,
|
||
"hint": "Ihr unkontrollierter Zauberausbruch tötete einst ihre Mutter Kendra.",
|
||
"question_en": "What was the name of Albus and Aberforth Dumbledore's tragic younger sister?",
|
||
"answer_en": "Ariana",
|
||
"options_en": None,
|
||
"hint_en": "She was traumatized as a child and died during a three-way duel."
|
||
},
|
||
{
|
||
"category": "characters",
|
||
"difficulty": "hard",
|
||
"question_type": "text",
|
||
"question": "Wie hieß die Mutter von Tom Marvolo Riddle (Lord Voldemort) mit Vornamen?",
|
||
"canonical_answer": "Merope",
|
||
"options": None,
|
||
"hint": "Merope Gaunt, eine Nachfahrin von Salazar Slytherin.",
|
||
"question_en": "What was the first name of Tom Riddle's (Lord Voldemort's) pure-blood mother?",
|
||
"answer_en": "Merope",
|
||
"options_en": None,
|
||
"hint_en": "Merope Gaunt, direct descendant of Salazar Slytherin."
|
||
},
|
||
{
|
||
"category": "lore",
|
||
"difficulty": "hard",
|
||
"question_type": "multiple_choice",
|
||
"question": "In welcher exakten Reihenfolge werden die vier Schöpfer auf der Karte des Rumtreibers genannt?",
|
||
"canonical_answer": "Moony, Wurmschwanz, Tatze und Krone",
|
||
"options": [
|
||
"Moony, Wurmschwanz, Tatze und Krone",
|
||
"Krone, Tatze, Wurmschwanz und Moony",
|
||
"Moony, Tatze, Wurmschwanz und Krone",
|
||
"Tatze, Moony, Wurmschwanz und Krone"
|
||
],
|
||
"hint": "Moony steht ganz am Anfang.",
|
||
"question_en": "In what exact order are the four Marauders listed on the Marauder's Map?",
|
||
"answer_en": "Moony, Wormtail, Padfoot, and Prongs",
|
||
"options_en": [
|
||
"Moony, Wormtail, Padfoot, and Prongs",
|
||
"Prongs, Padfoot, Wormtail, and Moony",
|
||
"Moony, Padfoot, Wormtail, and Prongs",
|
||
"Padfoot, Moony, Wormtail, and Prongs"
|
||
],
|
||
"hint_en": "Moony is listed first, reflecting the reverse order of their deaths."
|
||
},
|
||
{
|
||
"category": "lore",
|
||
"difficulty": "hard",
|
||
"question_type": "multiple_choice",
|
||
"question": "Wie lange muss der Vielsafttrank laut Rezeptur mindestens im Kessel köcheln?",
|
||
"canonical_answer": "Einen Monat",
|
||
"options": ["Einen Monat", "Zwei Wochen", "Sieben Tage", "Drei Monate"],
|
||
"hint": "Unter anderem müssen Florfliegen 21 Tage lang gedünstet werden.",
|
||
"question_en": "How long must the complex Polyjuice Potion simmer before it is ready to drink?",
|
||
"answer_en": "One month",
|
||
"options_en": ["One month", "Two weeks", "Seven days", "Three months"],
|
||
"hint_en": "Lacewing flies alone must be stewed for 21 days."
|
||
},
|
||
{
|
||
"category": "spells",
|
||
"difficulty": "hard",
|
||
"question_type": "text",
|
||
"question": "Mit welchem lateinischstämmigen Zauber versiegelt man Türen gegen unbefugtes Betreten?",
|
||
"canonical_answer": "Colloportus",
|
||
"options": None,
|
||
"hint": "Erzeugt ein eigenartiges matschiges Sauggeräusch beim Schließen.",
|
||
"question_en": "Which locking spell seals doors securely, making an odd squelching noise?",
|
||
"answer_en": "Colloportus",
|
||
"options_en": None,
|
||
"hint_en": "Frequently used by Hermione in the Department of Mysteries."
|
||
},
|
||
{
|
||
"category": "characters",
|
||
"difficulty": "hard",
|
||
"question_type": "text",
|
||
"question": "Wie lautet der Nachname der strengen Bibliothekarin der verbotenen Abteilung in Hogwarts?",
|
||
"canonical_answer": "Madam Pince",
|
||
"options": None,
|
||
"hint": "Ihr Vorname ist Irma, ihr Nachname klingt wie 'zwicken' auf Englisch.",
|
||
"question_en": "What is the surname of Hogwarts' notoriously strict head librarian?",
|
||
"answer_en": "Madam Pince",
|
||
"options_en": None,
|
||
"hint_en": "Her first name is Irma; she guards the Restricted Section fiercely."
|
||
},
|
||
{
|
||
"category": "lore",
|
||
"difficulty": "hard",
|
||
"question_type": "multiple_choice",
|
||
"question": "Welcher Blutstatus trifft biologisch auf Lord Voldemort zu?",
|
||
"canonical_answer": "Halbblut",
|
||
"options": ["Halbblut", "Reinblut", "Muggelgeboren", "Squib"],
|
||
"hint": "Sein Vater Tom Riddle Senior war ein gewöhnlicher Muggel.",
|
||
"question_en": "What was Lord Voldemort's actual biological blood status?",
|
||
"answer_en": "Half-blood",
|
||
"options_en": ["Half-blood", "Pure-blood", "Muggle-born", "Squib"],
|
||
"hint_en": "His father Tom Riddle Sr. was an ordinary Muggle."
|
||
},
|
||
{
|
||
"category": "quidditch",
|
||
"difficulty": "hard",
|
||
"question_type": "multiple_choice",
|
||
"question": "Auf welcher Position spielte Harrys Vater James Potter im Gryffindor-Quidditch-Team?",
|
||
"canonical_answer": "Jäger",
|
||
"options": ["Jäger", "Sucher", "Treiber", "Hüter"],
|
||
"hint": "Obwohl er im Film mit einem Schnatz spielte, war er in den Büchern Jäger (Chaser).",
|
||
"question_en": "Which position did Harry's father James Potter play on the Gryffindor Quidditch team in the books?",
|
||
"answer_en": "Chaser",
|
||
"options_en": ["Chaser", "Seeker", "Beater", "Keeper"],
|
||
"hint_en": "Though often seen fiddling with a Snitch, J.K. Rowling confirmed he was a Chaser."
|
||
},
|
||
{
|
||
"category": "lore",
|
||
"difficulty": "hard",
|
||
"question_type": "multiple_choice",
|
||
"question": "Was bedeutet der rückwärts gelesene Spruch auf dem Spiegel Nerhegeb ('Erised stra ehru oyt ube cafru oyt on wohsi')?",
|
||
"canonical_answer": "Ich zeige nicht dein Gesicht, sondern deines Herzens Verlangen",
|
||
"options": [
|
||
"Ich zeige nicht dein Gesicht, sondern deines Herzens Verlangen",
|
||
"Nur wer die Wahrheit sucht, wird seine Zukunft sehen",
|
||
"Der Blick in die Vergangenheit heilt keine Wunden",
|
||
"Wer mich erblickt, verliert den Verstand an seine Träume"
|
||
],
|
||
"hint": "'Nerhegeb' rückwärts gelesen ergibt 'Begehren'.",
|
||
"question_en": "What does the reversed inscription on the Mirror of Erised mean?",
|
||
"answer_en": "I show not your face but your heart's desire",
|
||
"options_en": [
|
||
"I show not your face but your heart's desire",
|
||
"Only the pure of heart may see their future here",
|
||
"Look not into the past lest you lose your present",
|
||
"He who gazes within shall drown in their own dreams"
|
||
],
|
||
"hint_en": "'Erised' backwards spells 'Desire'."
|
||
}
|
||
]
|
||
|
||
def seed_40():
|
||
db = SessionLocal()
|
||
try:
|
||
# 1. Clear all existing questions as requested
|
||
print("Clearing existing questions...")
|
||
db.query(Question).delete()
|
||
db.commit()
|
||
|
||
# 2. Insert the 40 new rich bilingual questions
|
||
print(f"Inserting {len(QUESTIONS_DATA)} new bilingual questions...")
|
||
for idx, q_data in enumerate(QUESTIONS_DATA, 1):
|
||
options_json = json.dumps(q_data["options"], ensure_ascii=False) if q_data["options"] else None
|
||
options_en_json = json.dumps(q_data["options_en"], ensure_ascii=False) if q_data["options_en"] else None
|
||
|
||
# Accepted answers list includes both German and English answers
|
||
accepted = [q_data["canonical_answer"], q_data["answer_en"]]
|
||
# Also common variations
|
||
if q_data["canonical_answer"] == "9 3/4":
|
||
accepted.extend(["9 3/4", "9 3/4", "9,75", "neun dreiviertel", "nine and three quarters"])
|
||
elif q_data["canonical_answer"] == "Albus Dumbledore":
|
||
accepted.append("Dumbledore")
|
||
elif q_data["canonical_answer"] == "Tom Riddles Tagebuch":
|
||
accepted.extend(["Tagebuch", "Diary", "Riddles Tagebuch"])
|
||
|
||
accepted_json = json.dumps(list(set(accepted)), ensure_ascii=False)
|
||
|
||
new_q = Question(
|
||
id=idx,
|
||
category=q_data["category"],
|
||
difficulty=q_data["difficulty"],
|
||
question_type=q_data["question_type"],
|
||
question=q_data["question"],
|
||
canonical_answer=q_data["canonical_answer"],
|
||
options=options_json,
|
||
hint=q_data["hint"],
|
||
question_en=q_data["question_en"],
|
||
answer_en=q_data["answer_en"],
|
||
options_en=options_en_json,
|
||
hint_en=q_data["hint_en"],
|
||
accepted_answers=accepted_json,
|
||
status="active",
|
||
sort_order=idx,
|
||
submitted_by="Zaubereiministerium"
|
||
)
|
||
db.add(new_q)
|
||
|
||
db.commit()
|
||
print("Successfully seeded 40 bilingual questions across Easy, Medium, and Hard!")
|
||
|
||
finally:
|
||
db.close()
|
||
|
||
seed_40_questions = seed_40
|
||
|
||
if __name__ == "__main__":
|
||
seed_40()
|