Spaces:
Sleeping
Sleeping
""" | |
Fallback quiz-spørsmål for når AI-modeller ikke er tilgjengelige | |
Organisert etter tema og språk | |
""" | |
FALLBACK_QUESTIONS = { | |
"no": { # Norske spørsmål | |
"norsk historie": [ | |
{ | |
"spørsmål": "Hvilket år ble Norge selvstendig fra Danmark?", | |
"alternativer": ["1814", "1815", "1813", "1816"], | |
"korrekt_svar": 0, | |
"forklaring": "Norge ble selvstendig fra Danmark i 1814 etter Napoleonskrigene." | |
}, | |
{ | |
"spørsmål": "Hvem var Norges første konge etter selvstendigheten i 1814?", | |
"alternativer": ["Christian Frederik", "Karl Johan", "Oscar I", "Haakon VII"], | |
"korrekt_svar": 0, | |
"forklaring": "Christian Frederik ble valgt til konge av den norske riksforsamlingen på Eidsvoll i 1814." | |
}, | |
{ | |
"spørsmål": "Hvilket år fikk kvinner stemmerett i Norge?", | |
"alternativer": ["1913", "1915", "1910", "1920"], | |
"korrekt_svar": 0, | |
"forklaring": "Kvinner fikk stemmerett i Norge i 1913, som et av de første landene i verden." | |
} | |
], | |
"oslo": [ | |
{ | |
"spørsmål": "Hva heter Oslo kommunes rådhus?", | |
"alternativer": ["Oslo rådhus", "Akershus festning", "Stortinget", "Slottet"], | |
"korrekt_svar": 0, | |
"forklaring": "Oslo rådhus er kjent for sin karakteristiske arkitektur og er stedet hvor Nobels fredspris deles ut." | |
}, | |
{ | |
"spørsmål": "Hvilken øy i Oslofjorden er mest kjent for sine museer?", | |
"alternativer": ["Bygdøy", "Hovedøya", "Gressholmen", "Langøyene"], | |
"korrekt_svar": 0, | |
"forklaring": "Bygdøy har flere av Norges viktigste museer, inkludert Vikingskipshuset og Kon-Tiki museet." | |
}, | |
{ | |
"spørsmål": "Hva heter Oslos hovedgate for shopping?", | |
"alternativer": ["Karl Johans gate", "Storgata", "Grensen", "Torggata"], | |
"korrekt_svar": 0, | |
"forklaring": "Karl Johans gate strekker seg fra Jernbanetorget til Det kongelige slott og er Oslos hovedstrøk." | |
} | |
], | |
"bergen": [ | |
{ | |
"spørsmål": "Hva kalles det fargerike kaiområdet i Bergen?", | |
"alternativer": ["Bryggen", "Fisketorget", "Torgallmenningen", "Nordnes"], | |
"korrekt_svar": 0, | |
"forklaring": "Bryggen er UNESCOs verdensarvsted og består av fargerike trebygninger fra hansatiden." | |
}, | |
{ | |
"spørsmål": "Hvilket fjell kan du ta Fløibanen opp til?", | |
"alternativer": ["Fløyen", "Ulriken", "Løvstakken", "Sandviksfjellet"], | |
"korrekt_svar": 0, | |
"forklaring": "Fløibanen er en av Norges mest populære turistattraksjoner og tar deg opp til Fløyen." | |
}, | |
{ | |
"spørsmål": "Bergen er kjent som 'Porten til' hva?", | |
"alternativer": ["Fjordene", "Vestlandet", "Hardanger", "Sognefjorden"], | |
"korrekt_svar": 0, | |
"forklaring": "Bergen kalles 'Porten til fjordene' fordi den er utgangspunkt for mange fjordturer." | |
} | |
] | |
}, | |
"en": { # English questions | |
"norwegian history": [ | |
{ | |
"spørsmål": "When did Norway gain independence from Denmark?", | |
"alternativer": ["1814", "1815", "1813", "1816"], | |
"korrekt_svar": 0, | |
"forklaring": "Norway gained independence from Denmark in 1814 after the Napoleonic Wars." | |
}, | |
{ | |
"spørsmål": "Who was Norway's first king after independence in 1814?", | |
"alternativer": ["Christian Frederik", "Karl Johan", "Oscar I", "Haakon VII"], | |
"korrekt_svar": 0, | |
"forklaring": "Christian Frederik was elected king by the Norwegian constituent assembly at Eidsvoll in 1814." | |
} | |
], | |
"oslo": [ | |
{ | |
"spørsmål": "What is the name of Oslo's city hall?", | |
"alternativer": ["Oslo City Hall", "Akershus Fortress", "Parliament", "Royal Palace"], | |
"korrekt_svar": 0, | |
"forklaring": "Oslo City Hall is known for its distinctive architecture and hosts the Nobel Peace Prize ceremony." | |
}, | |
{ | |
"spørsmål": "Which island in the Oslo fjord is most famous for its museums?", | |
"alternativer": ["Bygdøy", "Hovedøya", "Gressholmen", "Langøyene"], | |
"korrekt_svar": 0, | |
"forklaring": "Bygdøy houses several of Norway's most important museums, including the Viking Ship Museum." | |
} | |
], | |
"bergen": [ | |
{ | |
"spørsmål": "What is the colorful wharf area in Bergen called?", | |
"alternativer": ["Bryggen", "Fish Market", "Torgallmenningen", "Nordnes"], | |
"korrekt_svar": 0, | |
"forklaring": "Bryggen is a UNESCO World Heritage site consisting of colorful wooden buildings from the Hanseatic period." | |
} | |
] | |
} | |
} | |
def get_fallback_questions(tema: str, språk: str = "no", antall: int = 5): | |
""" | |
Hent fallback-spørsmål for et gitt tema og språk | |
Args: | |
tema: Tema for spørsmålene (f.eks. "oslo", "bergen", "norsk historie") | |
språk: Språkkode ("no" eller "en") | |
antall: Antall spørsmål å returnere | |
Returns: | |
Liste med quiz-spørsmål | |
""" | |
# Normaliser tema til lowercase | |
tema_key = tema.lower().strip() | |
# Sjekk om språk finnes | |
if språk not in FALLBACK_QUESTIONS: | |
språk = "no" # Default til norsk | |
# Sjekk om tema finnes for språket | |
if tema_key not in FALLBACK_QUESTIONS[språk]: | |
# Prøv å finne lignende tema | |
available_topics = list(FALLBACK_QUESTIONS[språk].keys()) | |
# Enkel matching for vanlige varianter | |
tema_mapping = { | |
"oslo": ["oslo", "oslo kommune", "hovedstad"], | |
"bergen": ["bergen", "bergen kommune"], | |
"norsk historie": ["norsk historie", "historie", "norway history", "norwegian history"] | |
} | |
for standard_tema, variants in tema_mapping.items(): | |
if any(variant in tema_key for variant in variants): | |
tema_key = standard_tema | |
break | |
# Hvis fortsatt ikke funnet, bruk første tilgjengelige tema | |
if tema_key not in FALLBACK_QUESTIONS[språk]: | |
tema_key = available_topics[0] if available_topics else "oslo" | |
# Hent spørsmål | |
questions = FALLBACK_QUESTIONS[språk].get(tema_key, []) | |
# Begrens antall spørsmål | |
if len(questions) > antall: | |
questions = questions[:antall] | |
return questions | |
def get_available_topics(språk: str = "no"): | |
""" | |
Hent liste over tilgjengelige temaer for et språk | |
Args: | |
språk: Språkkode ("no" eller "en") | |
Returns: | |
Liste med tilgjengelige temaer | |
""" | |
if språk not in FALLBACK_QUESTIONS: | |
språk = "no" | |
return list(FALLBACK_QUESTIONS[språk].keys()) | |
def get_topic_info(tema: str, språk: str = "no"): | |
""" | |
Hent informasjon om et tema | |
Args: | |
tema: Tema å få info om | |
språk: Språkkode | |
Returns: | |
Dict med tema-informasjon | |
""" | |
tema_key = tema.lower().strip() | |
if språk not in FALLBACK_QUESTIONS: | |
språk = "no" | |
if tema_key not in FALLBACK_QUESTIONS[språk]: | |
return None | |
questions = FALLBACK_QUESTIONS[språk][tema_key] | |
return { | |
"tema": tema_key, | |
"språk": språk, | |
"antall_spørsmål": len(questions), | |
"tilgjengelig": True | |
} |