Skip to content

Commit 105d5bd

Browse files
committed
Tweaks to ensure proper parsing of language codes and keywords.
1 parent 7500585 commit 105d5bd

File tree

2 files changed

+12
-3
lines changed

2 files changed

+12
-3
lines changed

ricecooker/utils/SCORM_metadata.py

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
from le_utils.constants.labels import learning_activities
55
from le_utils.constants.labels import needs
66
from le_utils.constants.labels import resource_type
7+
from le_utils.constants.languages import getlang
78

89

910
imscp_metadata_keys = {
@@ -155,9 +156,16 @@ def infer_beginner_level_from_difficulty(metadata_dict):
155156
def update_node_from_metadata(node, metadata_dict):
156157
# Update the node with the general metadata
157158
node.description = metadata_dict.get("description") or node.description
158-
if metadata_dict.get("language"):
159-
node.set_language(metadata_dict.get("language"))
160-
node.tags = node.tags + metadata_dict.get("keyword", [])
159+
lang_code = metadata_dict.get("language", "")
160+
lang_code = (
161+
lang_code.split("-")[0].lower() if getlang(lang_code) is None else lang_code
162+
)
163+
if getlang(lang_code):
164+
node.set_language(lang_code)
165+
keyword = metadata_dict.get("keyword", [])
166+
if keyword and isinstance(keyword, str):
167+
keyword = [keyword]
168+
node.tags = node.tags + keyword
161169

162170
# Update the node with the educational metadata
163171
node.learning_activities = (

tests/testcontent/samples/ims_xml/complete_manifest_with_external_metadata.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ example of proper metadata element usage.
4545
<description>
4646
<string language="en-US">Explore the fascinating world of hummingbirds, their unique characteristics and behaviors.</string>
4747
</description>
48+
<language>en-US</language>
4849
</general>
4950
</lom>
5051
</metadata>

0 commit comments

Comments
 (0)