summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSamantaz Fox <coding@samantaz.fr>2023-07-20 08:16:10 +0200
committerSamantaz Fox <coding@samantaz.fr>2023-07-20 08:16:10 +0200
commitd956b1826e15da6cfcd9a1531b0f1e6ef577dd10 (patch)
treea5d40c8e41535e1528815d527a12dedd19a8ac87 /src
parent930b0a158dd162cba08aa0daf5e03587d3951036 (diff)
parent70145cba31fb7fa14dafa3493c9133c01f642116 (diff)
downloadinvidious-d956b1826e15da6cfcd9a1531b0f1e6ef577dd10.tar.gz
invidious-d956b1826e15da6cfcd9a1531b0f1e6ef577dd10.tar.bz2
invidious-d956b1826e15da6cfcd9a1531b0f1e6ef577dd10.zip
Community: Parse quiz attachments (#3978)
Diffstat (limited to 'src')
-rw-r--r--src/invidious/channels/community.cr16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/invidious/channels/community.cr b/src/invidious/channels/community.cr
index 1a54a946..791f1641 100644
--- a/src/invidious/channels/community.cr
+++ b/src/invidious/channels/community.cr
@@ -198,6 +198,22 @@ def extract_channel_community(items, *, ucid, locale, format, thin_mode)
parse_item(attachment)
.as(SearchPlaylist)
.to_json(locale, json)
+ when .has_key?("quizRenderer")
+ json.object do
+ attachment = attachment["quizRenderer"]
+ json.field "type", "quiz"
+ json.field "totalVotes", short_text_to_number(attachment["totalVotes"]["simpleText"].as_s.split(" ")[0])
+ json.field "choices" do
+ json.array do
+ attachment["choices"].as_a.each do |choice|
+ json.object do
+ json.field "text", choice.dig("text", "runs", 0, "text").as_s
+ json.field "isCorrect", choice["isCorrect"].as_bool
+ end
+ end
+ end
+ end
+ end
else
json.object do
json.field "type", "unknown"