[Bandcamp] Fix channel link handler factory
This commit is contained in:
parent
50903730b1
commit
c9e9953bb0
2 changed files with 23 additions and 5 deletions
|
@ -51,15 +51,31 @@ public class BandcampChannelLinkHandlerFactory extends ListLinkHandlerFactory {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Accepts only pages that do not lead to an album or track. Supports external pages.
|
* Accepts only pages that lead to the root of an artist profile. Supports external pages.
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public boolean onAcceptUrl(final String url) throws ParsingException {
|
public boolean onAcceptUrl(final String url) throws ParsingException {
|
||||||
|
|
||||||
// Exclude URLs that lead to a track or album
|
// https: | | artist.bandcamp.com | releases
|
||||||
if (url.matches(".*/(album|track)/.*")) return false;
|
// 0 1 2 3
|
||||||
|
String[] splitUrl = url.split("/");
|
||||||
|
|
||||||
// Test whether domain is supported
|
// URL is too short
|
||||||
return BandcampExtractorHelper.isSupportedDomain(url);
|
if (splitUrl.length < 3) return false;
|
||||||
|
|
||||||
|
// Must have "releases" as segment after url or none at all
|
||||||
|
if (splitUrl.length > 3 && !splitUrl[3].equals("releases")) {
|
||||||
|
|
||||||
|
return false;
|
||||||
|
|
||||||
|
} else {
|
||||||
|
if (splitUrl[2].equals("daily.bandcamp.com")) {
|
||||||
|
// Refuse links to daily.bandcamp.com as that is not an artist
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Test whether domain is supported
|
||||||
|
return BandcampExtractorHelper.isSupportedDomain(url);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -35,6 +35,8 @@ public class BandcampChannelLinkHandlerFactoryTest {
|
||||||
|
|
||||||
assertFalse(linkHandler.acceptUrl("https://bandcamp.com"));
|
assertFalse(linkHandler.acceptUrl("https://bandcamp.com"));
|
||||||
assertFalse(linkHandler.acceptUrl("https://zachbenson.bandcamp.com/track/kitchen"));
|
assertFalse(linkHandler.acceptUrl("https://zachbenson.bandcamp.com/track/kitchen"));
|
||||||
|
assertFalse(linkHandler.acceptUrl("https://daily.bandcamp.com/"));
|
||||||
|
assertFalse(linkHandler.acceptUrl("https://daily.bandcamp.com/best-of-2020/bandcamp-daily-staffers-on-their-favorite-albums-of-2020"));
|
||||||
|
|
||||||
// External URLs
|
// External URLs
|
||||||
assertTrue(linkHandler.acceptUrl("http://interovgm.com/releases/"));
|
assertTrue(linkHandler.acceptUrl("http://interovgm.com/releases/"));
|
||||||
|
|
Loading…
Reference in a new issue