feat: add supportsChapterFetch flag to Provider and update related services
This commit is contained in:
parent
69ee91b9c6
commit
6b527a1728
@ -50,7 +50,8 @@ public record MangaDTO(
|
||||
@NotNull long id,
|
||||
@NotBlank String providerName,
|
||||
@NotNull Integer chaptersAvailable,
|
||||
@NotNull Integer chaptersDownloaded) {
|
||||
@NotNull Integer chaptersDownloaded,
|
||||
@NotNull Boolean supportsChapterFetch) {
|
||||
public static MangaProviderDTO from(MangaProvider mangaProvider) {
|
||||
var chapters = mangaProvider.getMangaChapters();
|
||||
var chaptersAvailable = chapters.size();
|
||||
@ -60,7 +61,8 @@ public record MangaDTO(
|
||||
mangaProvider.getId(),
|
||||
mangaProvider.getProvider().getName(),
|
||||
chaptersAvailable,
|
||||
chaptersDownloaded);
|
||||
chaptersDownloaded,
|
||||
mangaProvider.getProvider().getSupportsChapterFetch());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -30,5 +30,7 @@ public class Provider {
|
||||
@UpdateTimestamp private Instant updatedAt;
|
||||
|
||||
@OneToMany(mappedBy = "provider")
|
||||
List<MangaProvider> mangaProviders;
|
||||
private List<MangaProvider> mangaProviders;
|
||||
|
||||
private Boolean supportsChapterFetch;
|
||||
}
|
||||
|
||||
@ -48,7 +48,7 @@ public class MangaImportService {
|
||||
|
||||
public void importMangaFiles(String malId, List<MultipartFile> files) {
|
||||
log.info("Importing manga files for MAL ID {}", malId);
|
||||
var provider = providerService.getOrCreateProvider("Manual Import");
|
||||
var provider = providerService.getOrCreateProvider("Manual Import", false);
|
||||
|
||||
rateLimiter.acquire();
|
||||
var mangaData = jikanClient.getMangaById(Long.parseLong(malId));
|
||||
|
||||
@ -12,11 +12,19 @@ public class ProviderService {
|
||||
private final ProviderRepository providerRepository;
|
||||
|
||||
public Provider getOrCreateProvider(String providerName) {
|
||||
return getOrCreateProvider(providerName, true);
|
||||
}
|
||||
|
||||
public Provider getOrCreateProvider(String providerName, Boolean supportsChapterFetch) {
|
||||
return providerRepository
|
||||
.findByNameIgnoreCase(providerName)
|
||||
.orElseGet(
|
||||
() ->
|
||||
providerRepository.save(
|
||||
Provider.builder().name(providerName).status(ProviderStatus.ACTIVE).build()));
|
||||
Provider.builder()
|
||||
.name(providerName)
|
||||
.status(ProviderStatus.ACTIVE)
|
||||
.supportsChapterFetch(supportsChapterFetch)
|
||||
.build()));
|
||||
}
|
||||
}
|
||||
|
||||
@ -0,0 +1,2 @@
|
||||
ALTER TABLE providers
|
||||
ADD COLUMN supports_chapter_fetch BOOLEAN NOT NULL DEFAULT true;
|
||||
Loading…
x
Reference in New Issue
Block a user