From fe27d6a0ec08ac80c07ff15ee3832793d0cc9819 Mon Sep 17 00:00:00 2001 From: TobiGr Date: Sat, 5 Aug 2023 01:51:59 +0200 Subject: [PATCH 1/2] [media.ccc.de] Only extract live streams if the conference is streaming --- .../extractors/MediaCCCConferenceExtractor.java | 2 +- .../extractors/MediaCCCLiveStreamKiosk.java | 17 ++++++++++------- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCConferenceExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCConferenceExtractor.java index 98aa2c257..014affc96 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCConferenceExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCConferenceExtractor.java @@ -96,7 +96,7 @@ public class MediaCCCConferenceExtractor extends ChannelExtractor { try { conferenceData = JsonParser.object().from(downloader.get(conferenceUrl).responseBody()); } catch (final JsonParserException jpe) { - throw new ExtractionException("Could not parse json returnd by url: " + conferenceUrl); + throw new ExtractionException("Could not parse json returned by URL: " + conferenceUrl); } } diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCLiveStreamKiosk.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCLiveStreamKiosk.java index 769ba19ee..999b2c6cc 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCLiveStreamKiosk.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCLiveStreamKiosk.java @@ -36,13 +36,16 @@ public class MediaCCCLiveStreamKiosk extends KioskExtractor { final StreamInfoItemsCollector collector = new StreamInfoItemsCollector(getServiceId()); for (int c = 0; c < doc.size(); c++) { final JsonObject conference = doc.getObject(c); - final JsonArray groups = conference.getArray("groups"); - for (int g = 0; g < groups.size(); g++) { - final String group = groups.getObject(g).getString("group"); - final JsonArray rooms = groups.getObject(g).getArray("rooms"); - for (int r = 0; r < rooms.size(); r++) { - final JsonObject room = rooms.getObject(r); - collector.commit(new MediaCCCLiveStreamKioskExtractor(conference, group, room)); + if (conference.getBoolean("isCurrentlyStreaming")) { + final JsonArray groups = conference.getArray("groups"); + for (int g = 0; g < groups.size(); g++) { + final String group = groups.getObject(g).getString("group"); + final JsonArray rooms = groups.getObject(g).getArray("rooms"); + for (int r = 0; r < rooms.size(); r++) { + final JsonObject room = rooms.getObject(r); + collector.commit(new MediaCCCLiveStreamKioskExtractor( + conference, group, room)); + } } } From 340095515d45ecbee576872c7198992ebd8e4f08 Mon Sep 17 00:00:00 2001 From: TobiGr Date: Sat, 5 Aug 2023 03:10:51 +0200 Subject: [PATCH 2/2] Make Kiosk IDs accessible if possible --- .../extractor/services/media_ccc/MediaCCCService.java | 8 ++++---- .../media_ccc/extractors/MediaCCCConferenceKiosk.java | 2 ++ .../media_ccc/extractors/MediaCCCLiveStreamKiosk.java | 4 +++- .../media_ccc/extractors/MediaCCCRecentKiosk.java | 4 +++- .../extractor/services/youtube/YoutubeService.java | 4 ++-- .../youtube/extractors/YoutubeTrendingExtractor.java | 3 +++ 6 files changed, 17 insertions(+), 8 deletions(-) diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/MediaCCCService.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/MediaCCCService.java index 54bfb9530..ad745b70d 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/MediaCCCService.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/MediaCCCService.java @@ -101,7 +101,7 @@ public class MediaCCCService extends StreamingService { kioskId ), new MediaCCCConferencesListLinkHandlerFactory(), - "conferences" + MediaCCCConferenceKiosk.KIOSK_ID ); list.addKioskEntry( @@ -111,7 +111,7 @@ public class MediaCCCService extends StreamingService { kioskId ), new MediaCCCRecentListLinkHandlerFactory(), - "recent" + MediaCCCRecentKiosk.KIOSK_ID ); list.addKioskEntry( @@ -121,10 +121,10 @@ public class MediaCCCService extends StreamingService { kioskId ), new MediaCCCLiveListLinkHandlerFactory(), - "live" + MediaCCCLiveStreamKiosk.KIOSK_ID ); - list.setDefaultKiosk("recent"); + list.setDefaultKiosk(MediaCCCRecentKiosk.KIOSK_ID); } catch (final Exception e) { throw new ExtractionException(e); } diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCConferenceKiosk.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCConferenceKiosk.java index 85aa48999..3ce00ac43 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCConferenceKiosk.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCConferenceKiosk.java @@ -21,6 +21,8 @@ import java.io.IOException; import javax.annotation.Nonnull; public class MediaCCCConferenceKiosk extends KioskExtractor { + + public static final String KIOSK_ID = "conferences"; private JsonObject doc; public MediaCCCConferenceKiosk(final StreamingService streamingService, diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCLiveStreamKiosk.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCLiveStreamKiosk.java index 999b2c6cc..2d34d011a 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCLiveStreamKiosk.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCLiveStreamKiosk.java @@ -16,6 +16,8 @@ import javax.annotation.Nonnull; import java.io.IOException; public class MediaCCCLiveStreamKiosk extends KioskExtractor { + + public static final String KIOSK_ID = "live"; private JsonArray doc; public MediaCCCLiveStreamKiosk(final StreamingService streamingService, @@ -62,6 +64,6 @@ public class MediaCCCLiveStreamKiosk extends KioskExtractor { @Nonnull @Override public String getName() throws ParsingException { - return "live"; + return KIOSK_ID; } } diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCRecentKiosk.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCRecentKiosk.java index 94d3b0a62..d38d65fd5 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCRecentKiosk.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/media_ccc/extractors/MediaCCCRecentKiosk.java @@ -23,6 +23,8 @@ import javax.annotation.Nonnull; public class MediaCCCRecentKiosk extends KioskExtractor { + public static final String KIOSK_ID = "recent"; + private JsonObject doc; public MediaCCCRecentKiosk(final StreamingService streamingService, @@ -77,6 +79,6 @@ public class MediaCCCRecentKiosk extends KioskExtractor { @Nonnull @Override public String getName() throws ParsingException { - return "recent"; + return KIOSK_ID; } } diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/YoutubeService.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/YoutubeService.java index 0cce7cca5..7470971d5 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/YoutubeService.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/YoutubeService.java @@ -146,9 +146,9 @@ public class YoutubeService extends StreamingService { id ), new YoutubeTrendingLinkHandlerFactory(), - "Trending" + YoutubeTrendingExtractor.KIOSK_ID ); - list.setDefaultKiosk("Trending"); + list.setDefaultKiosk(YoutubeTrendingExtractor.KIOSK_ID); } catch (final Exception e) { throw new ExtractionException(e); } diff --git a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeTrendingExtractor.java b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeTrendingExtractor.java index 13996817e..684ed7c09 100644 --- a/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeTrendingExtractor.java +++ b/extractor/src/main/java/org/schabi/newpipe/extractor/services/youtube/extractors/YoutubeTrendingExtractor.java @@ -46,6 +46,9 @@ import java.util.stream.Stream; import javax.annotation.Nonnull; public class YoutubeTrendingExtractor extends KioskExtractor { + + public static final String KIOSK_ID = "Trending"; + private JsonObject initialData; private static final String VIDEOS_TAB_PARAMS = "4gIOGgxtb3N0X3BvcHVsYXI%3D";