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,
|
@NotNull long id,
|
||||||
@NotBlank String providerName,
|
@NotBlank String providerName,
|
||||||
@NotNull Integer chaptersAvailable,
|
@NotNull Integer chaptersAvailable,
|
||||||
@NotNull Integer chaptersDownloaded) {
|
@NotNull Integer chaptersDownloaded,
|
||||||
|
@NotNull Boolean supportsChapterFetch) {
|
||||||
public static MangaProviderDTO from(MangaProvider mangaProvider) {
|
public static MangaProviderDTO from(MangaProvider mangaProvider) {
|
||||||
var chapters = mangaProvider.getMangaChapters();
|
var chapters = mangaProvider.getMangaChapters();
|
||||||
var chaptersAvailable = chapters.size();
|
var chaptersAvailable = chapters.size();
|
||||||
@ -60,7 +61,8 @@ public record MangaDTO(
|
|||||||
mangaProvider.getId(),
|
mangaProvider.getId(),
|
||||||
mangaProvider.getProvider().getName(),
|
mangaProvider.getProvider().getName(),
|
||||||
chaptersAvailable,
|
chaptersAvailable,
|
||||||
chaptersDownloaded);
|
chaptersDownloaded,
|
||||||
|
mangaProvider.getProvider().getSupportsChapterFetch());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -30,5 +30,7 @@ public class Provider {
|
|||||||
@UpdateTimestamp private Instant updatedAt;
|
@UpdateTimestamp private Instant updatedAt;
|
||||||
|
|
||||||
@OneToMany(mappedBy = "provider")
|
@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) {
|
public void importMangaFiles(String malId, List<MultipartFile> files) {
|
||||||
log.info("Importing manga files for MAL ID {}", malId);
|
log.info("Importing manga files for MAL ID {}", malId);
|
||||||
var provider = providerService.getOrCreateProvider("Manual Import");
|
var provider = providerService.getOrCreateProvider("Manual Import", false);
|
||||||
|
|
||||||
rateLimiter.acquire();
|
rateLimiter.acquire();
|
||||||
var mangaData = jikanClient.getMangaById(Long.parseLong(malId));
|
var mangaData = jikanClient.getMangaById(Long.parseLong(malId));
|
||||||
|
|||||||
@ -12,11 +12,19 @@ public class ProviderService {
|
|||||||
private final ProviderRepository providerRepository;
|
private final ProviderRepository providerRepository;
|
||||||
|
|
||||||
public Provider getOrCreateProvider(String providerName) {
|
public Provider getOrCreateProvider(String providerName) {
|
||||||
|
return getOrCreateProvider(providerName, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Provider getOrCreateProvider(String providerName, Boolean supportsChapterFetch) {
|
||||||
return providerRepository
|
return providerRepository
|
||||||
.findByNameIgnoreCase(providerName)
|
.findByNameIgnoreCase(providerName)
|
||||||
.orElseGet(
|
.orElseGet(
|
||||||
() ->
|
() ->
|
||||||
providerRepository.save(
|
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