feat(MangaDexProvider): add content rating filtering to manga feed retrieval
This commit is contained in:
parent
b238f66e08
commit
f98b76bc76
@ -14,11 +14,11 @@ public interface MangaDexClient {
|
||||
MangaDexMangaDTO getManga(@PathVariable UUID id);
|
||||
|
||||
@GetMapping("/manga/{id}/feed")
|
||||
MangaDexMangaFeedDTO getMangaFeed(@PathVariable UUID id);
|
||||
MangaDexMangaFeedDTO getMangaFeed(@PathVariable UUID id, @RequestParam("contentRating[]") List<String> contentRating);
|
||||
|
||||
@GetMapping("/manga/{id}/feed")
|
||||
MangaDexMangaFeedDTO getMangaFeed(
|
||||
@PathVariable UUID id, @RequestParam int limit, @RequestParam int offset);
|
||||
@PathVariable UUID id, @RequestParam int limit, @RequestParam int offset, @RequestParam("contentRating[]") List<String> contentRating);
|
||||
|
||||
@GetMapping("/at-home/server/{chapterId}")
|
||||
MangaChapterDataDTO getMangaChapter(@PathVariable UUID chapterId);
|
||||
|
||||
@ -15,6 +15,8 @@ import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.log4j.Log4j2;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import static java.util.Objects.isNull;
|
||||
|
||||
@Log4j2
|
||||
@Service(ContentProviders.MANGA_DEX)
|
||||
@RequiredArgsConstructor
|
||||
@ -27,13 +29,12 @@ public class MangaDexProvider implements ContentProvider, ManualImportContentPro
|
||||
public List<ContentProviderMangaChapterResponseDTO> getAvailableChapters(MangaProvider provider) {
|
||||
try {
|
||||
mangaDexRateLimiter.acquire();
|
||||
var response = mangaDexClient.getMangaFeed(UUID.fromString(provider.getUrl()));
|
||||
var response = mangaDexClient.getMangaFeed(UUID.fromString(provider.getUrl()), List.of("safe", "suggestive", "erotica", "pornographic"));
|
||||
|
||||
var mangas = new ArrayList<>(response.data());
|
||||
var totalPages = (int) Math.ceil((double) response.total() / 500);
|
||||
|
||||
try {
|
||||
|
||||
IntStream.range(1, totalPages)
|
||||
.parallel()
|
||||
.forEach(
|
||||
@ -41,7 +42,7 @@ public class MangaDexProvider implements ContentProvider, ManualImportContentPro
|
||||
mangaDexRateLimiter.acquire();
|
||||
|
||||
var pagedResponse =
|
||||
mangaDexClient.getMangaFeed(UUID.fromString(provider.getUrl()), 500, i * 500);
|
||||
mangaDexClient.getMangaFeed(UUID.fromString(provider.getUrl()), 500, i * 500, List.of("safe", "suggestive", "erotica", "pornographic"));
|
||||
|
||||
mangas.addAll(pagedResponse.data());
|
||||
});
|
||||
@ -61,6 +62,10 @@ public class MangaDexProvider implements ContentProvider, ManualImportContentPro
|
||||
&& languagesToImport.containsKey(c.attributes().translatedLanguage()))
|
||||
.sorted(
|
||||
(o1, o2) -> {
|
||||
if (isNull(o1.attributes().chapter()) || isNull(o2.attributes().chapter())) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
try {
|
||||
Float chapter1 = Float.parseFloat(o1.attributes().chapter());
|
||||
Float chapter2 = Float.parseFloat(o2.attributes().chapter());
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user