diff options
| author | Samantaz Fox <coding@samantaz.fr> | 2023-02-02 21:52:19 +0100 |
|---|---|---|
| committer | Samantaz Fox <coding@samantaz.fr> | 2023-02-02 21:52:19 +0100 |
| commit | d6dd341594cc837001ed57cbea3103d22c9988c1 (patch) | |
| tree | d0c6521c7bb7ff0a8b6bc3d7b5515b91a60acde4 /src | |
| parent | c7f34042a2a5574bb6a21b318295466a8078029f (diff) | |
| parent | 785fe5267480db83173e54423051bc528c545b0c (diff) | |
| download | invidious-d6dd341594cc837001ed57cbea3103d22c9988c1.tar.gz invidious-d6dd341594cc837001ed57cbea3103d22c9988c1.tar.bz2 invidious-d6dd341594cc837001ed57cbea3103d22c9988c1.zip | |
API: Parse multiimage community posts (#3599)
Diffstat (limited to 'src')
| -rw-r--r-- | src/invidious/channels/community.cr | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/invidious/channels/community.cr b/src/invidious/channels/community.cr index 76dff555..13af2d8b 100644 --- a/src/invidious/channels/community.cr +++ b/src/invidious/channels/community.cr @@ -189,6 +189,32 @@ def fetch_channel_community(ucid, continuation, locale, format, thin_mode) # when .has_key?("pollRenderer") # attachment = attachment["pollRenderer"] # json.field "type", "poll" + when .has_key?("postMultiImageRenderer") + attachment = attachment["postMultiImageRenderer"] + json.field "type", "multiImage" + json.field "images" do + json.array do + attachment["images"].as_a.each do |image| + json.array do + thumbnail = image["backstageImageRenderer"]["image"]["thumbnails"][0].as_h + width = thumbnail["width"].as_i + height = thumbnail["height"].as_i + aspect_ratio = (width.to_f / height.to_f) + url = thumbnail["url"].as_s.gsub(/=w\d+-h\d+(-p)?(-nd)?(-df)?(-rwa)?/, "=s640") + + qualities = {320, 560, 640, 1280, 2000} + + qualities.each do |quality| + json.object do + json.field "url", url.gsub(/=s\d+/, "=s#{quality}") + json.field "width", quality + json.field "height", (quality / aspect_ratio).ceil.to_i + end + end + end + end + end + end else json.field "type", "unknown" json.field "error", "Unrecognized attachment type." |
