Skip to content

Commit d37f581

Browse files
committed
update maxSubpages and search by broadcastdate #1109
2 parents 1968c0d + 28fc097 commit d37f581

4 files changed

Lines changed: 19 additions & 30 deletions

File tree

build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ sourceCompatibility = JavaVersion.VERSION_17
2727
targetCompatibility = JavaVersion.VERSION_17
2828
group = 'de.mediathekview'
2929
archivesBaseName = "MServer"
30-
version = '3.1.274'
30+
version = '3.1.275'
3131

3232
def jarName = 'MServer.jar'
3333
def mainClass = 'mServer.Main'
Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
package mServer.crawler.sender.arte;
22

33
public class ArteConstants {
4-
public static final String VIDEOS_URL ="https://api.arte.tv/api/opa/v3/videos?limit=100&page=%s&sort=-creationDate&language=%s";
5-
public static final String VIDEOS_URL_ALT ="https://api.arte.tv/api/opa/v3/videos?limit=100&page=%s&sort=creationDate&language=%s";
4+
public static final String VIDEOS_URL ="https://api.arte.tv/api/opa/v3/videos?limit=100&page=%s&sort=-broadcastBegin&language=%s";
5+
public static final String VIDEOS_URL_ALT ="https://api.arte.tv/api/opa/v3/videos?limit=100&page=%s&sort=broadcastBegin&language=%s";
66
public static final String VIDEO_URL ="https://www.arte.tv/hbbtvv2/services/web/index.php/OPA/v3/streams/%s/%s/%s"; //PROGRAMID/KIND/LANG
77
public static final String API_TOKEN = "Bearer Nzc1Yjc1ZjJkYjk1NWFhN2I2MWEwMmRlMzAzNjI5NmU3NWU3ODg4ODJjOWMxNTMxYzEzZGRjYjg2ZGE4MmIwOA";
8+
public static final int MAX_POSSIBLE_SUBPAGES = 100;
89
private ArteConstants() {}
910

1011
}

src/main/java/mServer/crawler/sender/arte/ArteCrawler.java

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ protected RecursiveTask<Set<DatenFilm>> createCrawlerTask() {
5050

5151
final ArteVideoInfoTask aArteRestVideoInfoTask;
5252
// DO NOT overload - maximumUrlsPerTask used to reduce threads to 4
53-
aArteRestVideoInfoTask = new ArteVideoInfoTask(this, videoUrls);
53+
aArteRestVideoInfoTask = new ArteVideoInfoTask(this, videoUrls, getMaxPagesForOverview(getLanguage().toString().toLowerCase()));
5454
final ConcurrentLinkedQueue<ArteVideoInfoDto> videos = new ConcurrentLinkedQueue<>();
5555
videos.addAll(aArteRestVideoInfoTask.fork().join());
5656
//
@@ -71,29 +71,25 @@ protected RecursiveTask<Set<DatenFilm>> createCrawlerTask() {
7171
}
7272

7373
private ConcurrentLinkedQueue<TopicUrlDTO> createVideosQueue(String language) {
74-
int maxPages = getMaxPagesForOverview(language);
7574
final ConcurrentLinkedQueue<TopicUrlDTO> root = new ConcurrentLinkedQueue<>();
7675
String rootUrl = String.format(ArteConstants.VIDEOS_URL, 1, language);
77-
root.add(new TopicUrlDTO("all videos1", rootUrl));
78-
if (maxPages >= 100) {
79-
String rootUrl2 = String.format(ArteConstants.VIDEOS_URL_ALT, 1, language);
80-
root.add(new TopicUrlDTO("all videos2", rootUrl2));
81-
}
76+
root.add(new TopicUrlDTO("all videos sorted up", rootUrl));
77+
String rootUrl2 = String.format(ArteConstants.VIDEOS_URL_ALT, 1, language);
78+
root.add(new TopicUrlDTO("all videos sorted down", rootUrl2));
8279
return root;
8380
}
8481

8582
private int getMaxPagesForOverview(String lang) {
8683
final int maxAvailablePages = getNumberOfAvailablePages(lang);
8784
final int configuredMaxPages = getMaximumSubpages();
8885
if (configuredMaxPages > maxAvailablePages) {
89-
return Math.min(configuredMaxPages, maxAvailablePages / 2);
86+
return Math.min(ArteConstants.MAX_POSSIBLE_SUBPAGES, maxAvailablePages / 2);
9087
} else {
91-
return Math.min(configuredMaxPages, configuredMaxPages / 2);
88+
return Math.min(ArteConstants.MAX_POSSIBLE_SUBPAGES, configuredMaxPages / 2);
9289
}
9390
}
9491

9592
private int getNumberOfAvailablePages(String lang) {
96-
final int naturalLimit = Math.min(100, getMaximumSubpages());
9793
try {
9894
String rootUrl = String.format(ArteConstants.VIDEOS_URL, 1, lang);
9995
String[] path= {"meta", "videos", "pages"};
@@ -110,14 +106,14 @@ private int getNumberOfAvailablePages(String lang) {
110106
} catch (IOException e) {
111107
LOG.error("getMaxPagesForOverview", e);
112108
}
113-
return naturalLimit;
109+
return ArteConstants.MAX_POSSIBLE_SUBPAGES;
114110
}
115111

116112
private int getMaximumSubpages() {
117113
if (CrawlerTool.loadLongMax()) {
118-
return 10;
114+
return 30;
119115
} else {
120-
return 1;
116+
return 10;
121117
}
122118
}
123119
}

src/main/java/mServer/crawler/sender/arte/tasks/ArteVideoInfoTask.java

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,11 @@ public class ArteVideoInfoTask
2929
private static final long serialVersionUID = 1L;
3030
protected final transient Logger log = LogManager.getLogger(this.getClass());
3131
protected transient Optional<AbstractRecursivConverterTask<ArteVideoInfoDto, TopicUrlDTO>> nextPageTask = Optional.empty();
32-
32+
protected int maxSubpages;
3333

34-
public ArteVideoInfoTask(MediathekReader crawler, ConcurrentLinkedQueue<TopicUrlDTO> urlToCrawlDTOs) {
34+
public ArteVideoInfoTask(MediathekReader crawler, ConcurrentLinkedQueue<TopicUrlDTO> urlToCrawlDTOs, int maxSubpages) {
3535
super(crawler, urlToCrawlDTOs, Optional.of(ArteConstants.API_TOKEN));
36+
this.maxSubpages = maxSubpages;
3637
}
3738

3839
@Override
@@ -49,9 +50,8 @@ protected void postProcessingNextPage(PagedElementListDTO<ArteVideoInfoDto> aRes
4950
if (aResponseObj.getNextPage().isEmpty()) {
5051
return;
5152
}
52-
int maxPages = Math.min(100, getMaximumSubpages());
53-
if (aResponseObj.getNextPage().get().contains("age="+maxPages)) {
54-
log.debug("stop at page url {} due to limit {}", aResponseObj.getNextPage().get(), maxPages);
53+
if (aResponseObj.getNextPage().get().contains("age="+maxSubpages)) {
54+
log.debug("stop at page url {} due to limit {}", aResponseObj.getNextPage().get(), maxSubpages);
5555
return;
5656
}
5757

@@ -61,14 +61,6 @@ protected void postProcessingNextPage(PagedElementListDTO<ArteVideoInfoDto> aRes
6161
nextPageTask.get().fork();
6262
}
6363

64-
private int getMaximumSubpages() {
65-
if (CrawlerTool.loadLongMax()) {
66-
return 10;
67-
} else {
68-
return 3;
69-
}
70-
}
71-
7264
protected void postProcessingElements(Set<ArteVideoInfoDto> elements) {
7365
for (ArteVideoInfoDto element : elements) {
7466
taskResults.add(element);
@@ -86,7 +78,7 @@ protected void postProcessing(PagedElementListDTO<ArteVideoInfoDto> aResponseObj
8678
@Override
8779
protected AbstractRecursivConverterTask<ArteVideoInfoDto, TopicUrlDTO> createNewOwnInstance(
8880
ConcurrentLinkedQueue<TopicUrlDTO> aElementsToProcess) {
89-
return new ArteVideoInfoTask(crawler, aElementsToProcess);
81+
return new ArteVideoInfoTask(crawler, aElementsToProcess, maxSubpages);
9082
}
9183

9284
@Override

0 commit comments

Comments
 (0)