diff options
| author | Samantaz Fox <coding@samantaz.fr> | 2022-08-07 21:58:17 +0200 |
|---|---|---|
| committer | Samantaz Fox <coding@samantaz.fr> | 2022-08-07 21:58:17 +0200 |
| commit | 9cc041876944dde46cd8cc3e269995244c8e7724 (patch) | |
| tree | e3829032903c8ee74ad807e670ef67ec6c91a57c | |
| parent | 925a2c8e7770ff684ef23c6ebfeae51ffd77934f (diff) | |
| parent | 246955b68a16aefc4e682e8f704f551f4a72b1bf (diff) | |
| download | invidious-9cc041876944dde46cd8cc3e269995244c8e7724.tar.gz invidious-9cc041876944dde46cd8cc3e269995244c8e7724.tar.bz2 invidious-9cc041876944dde46cd8cc3e269995244c8e7724.zip | |
Merge pull request #3249 from iv-org/improve-extractor
| -rw-r--r-- | src/invidious/yt_backend/extractors.cr | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/src/invidious/yt_backend/extractors.cr b/src/invidious/yt_backend/extractors.cr index b9609eb9..dc65cc52 100644 --- a/src/invidious/yt_backend/extractors.cr +++ b/src/invidious/yt_backend/extractors.cr @@ -435,20 +435,22 @@ private module Extractors raw_items = [] of JSON::Any content = extract_selected_tab(target["tabs"])["content"] - content["sectionListRenderer"]["contents"].as_a.each do |renderer_container| - renderer_container_contents = renderer_container["itemSectionRenderer"]["contents"][0] - - # Category extraction - if items_container = renderer_container_contents["shelfRenderer"]? - raw_items << renderer_container_contents - next - elsif items_container = renderer_container_contents["gridRenderer"]? - else - items_container = renderer_container_contents - end + if section_list_contents = content.dig?("sectionListRenderer", "contents") + section_list_contents.as_a.each do |renderer_container| + renderer_container_contents = renderer_container["itemSectionRenderer"]["contents"][0] + + # Category extraction + if items_container = renderer_container_contents["shelfRenderer"]? + raw_items << renderer_container_contents + next + elsif items_container = renderer_container_contents["gridRenderer"]? + else + items_container = renderer_container_contents + end - items_container["items"]?.try &.as_a.each do |item| - raw_items << item + items_container["items"]?.try &.as_a.each do |item| + raw_items << item + end end end |
