diff options
| author | Samantaz Fox <coding@samantaz.fr> | 2023-07-20 08:16:10 +0200 |
|---|---|---|
| committer | Samantaz Fox <coding@samantaz.fr> | 2023-07-20 08:16:10 +0200 |
| commit | d956b1826e15da6cfcd9a1531b0f1e6ef577dd10 (patch) | |
| tree | a5d40c8e41535e1528815d527a12dedd19a8ac87 /src | |
| parent | 930b0a158dd162cba08aa0daf5e03587d3951036 (diff) | |
| parent | 70145cba31fb7fa14dafa3493c9133c01f642116 (diff) | |
| download | invidious-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.cr | 16 |
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" |
