Skip to content

Commit

Permalink
update ard topic search
Browse files Browse the repository at this point in the history
optimize wdr hd urls
  • Loading branch information
alex1702 committed Nov 22, 2023
2 parents 71ef280 + d50af34 commit 8253ca1
Show file tree
Hide file tree
Showing 3 changed files with 35 additions and 9 deletions.
2 changes: 1 addition & 1 deletion build.gradle
Expand Up @@ -27,7 +27,7 @@ sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
group = 'de.mediathekview'
archivesBaseName = "MServer"
version = '3.1.224'
version = '3.1.225'

def jarName = 'MServer.jar'
def mainClass = 'mServer.Main'
Expand Down
38 changes: 32 additions & 6 deletions src/main/java/mServer/crawler/sender/ard/ArdUrlOptimizer.java
Expand Up @@ -4,6 +4,7 @@

import java.util.HashMap;
import java.util.Map;
import java.util.Optional;

public class ArdUrlOptimizer {

Expand Down Expand Up @@ -32,17 +33,42 @@ public class ArdUrlOptimizer {
}

public String optimizeHdUrl(final String url) {
for (Map.Entry<String, String[]> entry : HD_OPTIMIZE.entrySet()) {
if (url.contains(entry.getKey())) {
for (String optimizeFragment : entry.getValue()) {
final String optimizedUrl = url.replace(entry.getKey(), optimizeFragment);
if (UrlUtils.existsUrl(optimizedUrl)) {
return optimizedUrl;
String fullHdUrl = "";
if (url.contains("wdrmedien")) {
fullHdUrl = determineWdrFullHdUrl(url);
} else {
for (Map.Entry<String, String[]> entry : HD_OPTIMIZE.entrySet()) {
if (url.contains(entry.getKey())) {
for (String optimizeFragment : entry.getValue()) {
fullHdUrl = url.replace(entry.getKey(), optimizeFragment);
}
}
}
}

if (!fullHdUrl.isEmpty() && UrlUtils.existsUrl(fullHdUrl)) {
return fullHdUrl;
}

return url;
}

/**
* wdr urls uses the following pattern: the last part of the filename determines the quality this
* is the actual order: 1920, 480, 640, 960, 1280 to determine the 1920-url by the 1280-url
* substract 4
* example:
* 1280: https://wdrmedien-a.akamaihd.net/.../2625725_54085881.mp4
* 1920: https://wdrmedien-a.akamaihd.net/.../2625725_54085877.mp4
*/
private String determineWdrFullHdUrl(String url) {
final Optional<String> fileName = UrlUtils.getFileName(url);
if (fileName.isPresent()) {
final String s = fileName.get();
final String substring = s.substring(s.indexOf("_") + 1).replace(".mp4", "");
final int hdInt = Integer.parseInt(substring) - 4;
return url.replace(substring, Integer.toString(hdInt));
}
return url;
}
}
Expand Up @@ -69,8 +69,8 @@ public class ArdTopicPageTask extends ArdTaskBase<ArdFilmInfoDto, CrawlerUrlDTO>
// Sportschau
TOPICS_LOAD_ALL_PAGES.add("Y3JpZDovL2Rhc2Vyc3RlLmRlL3Nwb3J0c2NoYXU");
// temporary load all => remove if old entries exists
// Parlament
TOPICS_LOAD_ALL_PAGES.add("Y3JpZDovL3dkci5kZS9vbmUvcGFybGFtZW50bmV1");
// Odysso
TOPICS_LOAD_ALL_PAGES.add("Y3JpZDovL3N3ci5kZS8yMjI2MTE0");
}

public ArdTopicPageTask(MediathekReader aCrawler,
Expand Down

0 comments on commit 8253ca1

Please sign in to comment.