|
|
|
@ -4,7 +4,6 @@ import com.magamochi.mangamochi.model.dto.ContentProviderMangaChapterResponseDTO
|
|
|
|
import com.magamochi.mangamochi.model.dto.ContentProviderMangaInfoResponseDTO;
|
|
|
|
import com.magamochi.mangamochi.model.dto.ContentProviderMangaInfoResponseDTO;
|
|
|
|
import com.magamochi.mangamochi.model.entity.MangaProvider;
|
|
|
|
import com.magamochi.mangamochi.model.entity.MangaProvider;
|
|
|
|
import com.magamochi.mangamochi.model.enumeration.MangaStatus;
|
|
|
|
import com.magamochi.mangamochi.model.enumeration.MangaStatus;
|
|
|
|
import com.magamochi.mangamochi.service.WebScrapperClientProxyService;
|
|
|
|
|
|
|
|
import com.magamochi.mangamochi.service.providers.ContentProvider;
|
|
|
|
import com.magamochi.mangamochi.service.providers.ContentProvider;
|
|
|
|
import com.magamochi.mangamochi.service.providers.ContentProviders;
|
|
|
|
import com.magamochi.mangamochi.service.providers.ContentProviders;
|
|
|
|
import com.magamochi.mangamochi.service.providers.PagedContentProvider;
|
|
|
|
import com.magamochi.mangamochi.service.providers.PagedContentProvider;
|
|
|
|
@ -16,6 +15,7 @@ import java.util.stream.IntStream;
|
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
|
import lombok.extern.log4j.Log4j2;
|
|
|
|
import lombok.extern.log4j.Log4j2;
|
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
|
|
|
|
|
import org.jsoup.Jsoup;
|
|
|
|
import org.jsoup.nodes.Element;
|
|
|
|
import org.jsoup.nodes.Element;
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
import org.springframework.stereotype.Service;
|
|
|
|
|
|
|
|
|
|
|
|
@ -27,8 +27,6 @@ public class MangaLivreBlogProvider implements ContentProvider, PagedContentProv
|
|
|
|
|
|
|
|
|
|
|
|
private final String url = "https://mangalivre.blog/manga/";
|
|
|
|
private final String url = "https://mangalivre.blog/manga/";
|
|
|
|
|
|
|
|
|
|
|
|
private final WebScrapperClientProxyService webScrapperClientProxyService;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public List<ContentProviderMangaChapterResponseDTO> getAvailableChapters(
|
|
|
|
public List<ContentProviderMangaChapterResponseDTO> getAvailableChapters(
|
|
|
|
MangaProvider mangaProvider) {
|
|
|
|
MangaProvider mangaProvider) {
|
|
|
|
@ -38,7 +36,7 @@ public class MangaLivreBlogProvider implements ContentProvider, PagedContentProv
|
|
|
|
mangaProvider.getManga().getTitle());
|
|
|
|
mangaProvider.getManga().getTitle());
|
|
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
var document = webScrapperClientProxyService.scrapeToJsoupDocument(mangaProvider.getUrl());
|
|
|
|
var document = Jsoup.connect(mangaProvider.getUrl()).get();
|
|
|
|
|
|
|
|
|
|
|
|
var chapterList = document.getElementsByClass("chapters-list").getFirst();
|
|
|
|
var chapterList = document.getElementsByClass("chapters-list").getFirst();
|
|
|
|
var chapterItems = chapterList.getElementsByClass("chapter-item");
|
|
|
|
var chapterItems = chapterList.getElementsByClass("chapter-item");
|
|
|
|
@ -67,7 +65,7 @@ public class MangaLivreBlogProvider implements ContentProvider, PagedContentProv
|
|
|
|
log.info("Getting images from {}, url {}", ContentProviders.MANGA_LIVRE_BLOG, chapterUrl);
|
|
|
|
log.info("Getting images from {}, url {}", ContentProviders.MANGA_LIVRE_BLOG, chapterUrl);
|
|
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
var document = webScrapperClientProxyService.scrapeToJsoupDocument(chapterUrl);
|
|
|
|
var document = Jsoup.connect(chapterUrl).get();
|
|
|
|
|
|
|
|
|
|
|
|
var chapterImageContainers = document.getElementsByClass("chapter-image-container");
|
|
|
|
var chapterImageContainers = document.getElementsByClass("chapter-image-container");
|
|
|
|
var imageUrls =
|
|
|
|
var imageUrls =
|
|
|
|
@ -107,7 +105,7 @@ public class MangaLivreBlogProvider implements ContentProvider, PagedContentProv
|
|
|
|
log.info("Getting mangas from {}, page {}", ContentProviders.MANGA_LIVRE_BLOG, page);
|
|
|
|
log.info("Getting mangas from {}, page {}", ContentProviders.MANGA_LIVRE_BLOG, page);
|
|
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
var document = webScrapperClientProxyService.scrapeToJsoupDocument(url + "page/" + page);
|
|
|
|
var document = Jsoup.connect(url + "page/" + page).get();
|
|
|
|
|
|
|
|
|
|
|
|
var mangaGrid = document.getElementsByClass("manga-grid").getFirst();
|
|
|
|
var mangaGrid = document.getElementsByClass("manga-grid").getFirst();
|
|
|
|
var mangaElements = mangaGrid.getElementsByTag("article");
|
|
|
|
var mangaElements = mangaGrid.getElementsByTag("article");
|
|
|
|
@ -160,7 +158,7 @@ public class MangaLivreBlogProvider implements ContentProvider, PagedContentProv
|
|
|
|
log.info("Getting total pages for {}", ContentProviders.MANGA_LIVRE_BLOG);
|
|
|
|
log.info("Getting total pages for {}", ContentProviders.MANGA_LIVRE_BLOG);
|
|
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
try {
|
|
|
|
var document = webScrapperClientProxyService.scrapeToJsoupDocument(url);
|
|
|
|
var document = Jsoup.connect(url).get();
|
|
|
|
|
|
|
|
|
|
|
|
var navLinks = document.getElementsByClass("nav-links").getFirst();
|
|
|
|
var navLinks = document.getElementsByClass("nav-links").getFirst();
|
|
|
|
var links = navLinks.getElementsByTag("a");
|
|
|
|
var links = navLinks.getElementsByTag("a");
|
|
|
|
|