diff --git a/src/main/java/Capstone/AutoScheduler/global/converter/GeneratorConverter.java b/src/main/java/Capstone/AutoScheduler/global/converter/GeneratorConverter.java index 3144fe3..1b396bf 100644 --- a/src/main/java/Capstone/AutoScheduler/global/converter/GeneratorConverter.java +++ b/src/main/java/Capstone/AutoScheduler/global/converter/GeneratorConverter.java @@ -18,6 +18,7 @@ public static Generator toGenerator(GeneratorRequestDTO.CreateGeneratorRequestDT .mapping(request.getMapping()) .sourceType(request.getSourceType()) .webUrl(request.getWebUrl()) + .loginRequired(request.getLoginRequired()) .build(); } @@ -33,6 +34,7 @@ public static GeneratorResponseDTO.CreateGeneratorResultDTO toCreateResultDTO(Ge .frames(generator.getFrames()) .mapping(generator.getMapping()) .webUrl(generator.getWebUrl()) + .loginRequired(generator.isLoginRequired()) .build(); } @@ -48,6 +50,7 @@ public static GeneratorResponseDTO.GeneratorDTO toGeneratorDTO(Generator generat .frames(generator.getFrames()) .mapping(generator.getMapping()) .webUrl(generator.getWebUrl()) + .loginRequired(generator.isLoginRequired()) .build(); } @@ -63,6 +66,7 @@ public static GeneratorResponseDTO.GeneratorPreviewDTO toGeneratorPreviewDTO(Gen .frames(generator.getFrames()) .mapping(generator.getMapping()) .webUrl(generator.getWebUrl()) + .loginRequired(generator.isLoginRequired()) .build(); } @@ -87,6 +91,7 @@ public static GeneratorResponseDTO.GeneratorPreviewDTO toGeneratorPreviewDTOWith .frames(generator.getFrames()) .mapping(generator.getMapping()) .webUrl(generator.getWebUrl()) + .loginRequired(generator.isLoginRequired()) .isBookmarked(isBookmarked) // 북마크 상태 추가 .build(); } diff --git a/src/main/java/Capstone/AutoScheduler/global/converter/MemberConverter.java b/src/main/java/Capstone/AutoScheduler/global/converter/MemberConverter.java index 9e5daad..166abab 100644 --- a/src/main/java/Capstone/AutoScheduler/global/converter/MemberConverter.java +++ b/src/main/java/Capstone/AutoScheduler/global/converter/MemberConverter.java @@ -47,6 +47,7 @@ public static MemberResponseDTO.BookmarkPreviewDTO toBookmarkPreviewDTO(Bookmark .frames(bookmark.getGenerator().getFrames()) .mapping(bookmark.getGenerator().getMapping()) .webUrl(bookmark.getGenerator().getWebUrl()) + .loginRequired(bookmark.getGenerator().isLoginRequired()) .isBookmarked(true) .createdAt(bookmark.getCreatedAt()) .build(); diff --git a/src/main/java/Capstone/AutoScheduler/global/domain/entity/Generator.java b/src/main/java/Capstone/AutoScheduler/global/domain/entity/Generator.java index ef29517..3d9af76 100644 --- a/src/main/java/Capstone/AutoScheduler/global/domain/entity/Generator.java +++ b/src/main/java/Capstone/AutoScheduler/global/domain/entity/Generator.java @@ -64,6 +64,10 @@ public class Generator extends BaseEntity { @Column(name = "webUrl", nullable = true, columnDefinition = "varchar(512)") private String webUrl; + // 로그인이 필요한지 여부 + @Column(name = "login_required", nullable = false, columnDefinition = "boolean") + private boolean loginRequired = false; + // 해당 일정 생성기로 생성한 Event 리스트 @OneToMany(mappedBy = "generator", cascade = CascadeType.ALL, orphanRemoval = true) private List events = new ArrayList<>(); diff --git a/src/main/java/Capstone/AutoScheduler/global/service/SeleniumService/WebCrawlerService.java b/src/main/java/Capstone/AutoScheduler/global/service/SeleniumService/WebCrawlerService.java index b942f55..8e03194 100644 --- a/src/main/java/Capstone/AutoScheduler/global/service/SeleniumService/WebCrawlerService.java +++ b/src/main/java/Capstone/AutoScheduler/global/service/SeleniumService/WebCrawlerService.java @@ -16,6 +16,7 @@ import java.net.MalformedURLException; import java.net.URL; import java.time.Duration; +<<<<<<< Updated upstream import java.util.ArrayList; import java.util.List; @@ -24,6 +25,9 @@ // //} +======= +import java.util.Scanner; +>>>>>>> Stashed changes @Service public class WebCrawlerService { @@ -38,7 +42,7 @@ public List getHtmlContent(int type, String url) { // ChromeDriver 설정 ChromeOptions options = new ChromeOptions(); - options.addArguments("--headless"); // GUI 없이 실행 + //options.addArguments("--headless"); // GUI 없이 실행 options.addArguments("--no-sandbox"); // 보안 설정 options.addArguments("--disable-dev-shm-usage"); // 메모리 문제 방지 options.addArguments("--disable-gpu"); //추가한 옵션 @@ -54,6 +58,7 @@ public List getHtmlContent(int type, String url) { WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(10)); wait.until(ExpectedConditions.presenceOfElementLocated(org.openqa.selenium.By.tagName("body"))); +<<<<<<< Updated upstream if(type == 0) { // header의 CSS파일 가져오기 String cssFiles = ""; @@ -75,6 +80,20 @@ public List getHtmlContent(int type, String url) { } return htmlContent; +======= +// // HTML 소스 반환 +// return driver.getPageSource(); + // HTML 소스 반환 + String pageSource = driver.getPageSource(); + + // 사용자로부터 입력을 받아 브라우저 창 유지 + System.out.println("브라우저 창을 확인한 후 'Enter' 키를 눌러 종료하세요..."); + Scanner scanner = new Scanner(System.in); + scanner.nextLine(); // 사용자가 엔터를 칠 때까지 대기 + + return pageSource; + +>>>>>>> Stashed changes } catch (MalformedURLException e) { throw new IllegalArgumentException("유효하지 않은 URL 형식입니다: " + url); diff --git a/src/main/java/Capstone/AutoScheduler/global/web/dto/Generator/GeneratorRequestDTO.java b/src/main/java/Capstone/AutoScheduler/global/web/dto/Generator/GeneratorRequestDTO.java index 58dfacd..d94b8ac 100644 --- a/src/main/java/Capstone/AutoScheduler/global/web/dto/Generator/GeneratorRequestDTO.java +++ b/src/main/java/Capstone/AutoScheduler/global/web/dto/Generator/GeneratorRequestDTO.java @@ -25,5 +25,6 @@ public static class CreateGeneratorRequestDTO { private List> mapping; private TypeSource sourceType; private String webUrl; + private Boolean loginRequired; } } diff --git a/src/main/java/Capstone/AutoScheduler/global/web/dto/Generator/GeneratorResponseDTO.java b/src/main/java/Capstone/AutoScheduler/global/web/dto/Generator/GeneratorResponseDTO.java index d672e4a..62245be 100644 --- a/src/main/java/Capstone/AutoScheduler/global/web/dto/Generator/GeneratorResponseDTO.java +++ b/src/main/java/Capstone/AutoScheduler/global/web/dto/Generator/GeneratorResponseDTO.java @@ -29,6 +29,7 @@ public static class CreateGeneratorResultDTO { List> frames; List> mapping; String webUrl; + Boolean loginRequired; } @Getter @@ -49,6 +50,7 @@ public static class GeneratorDTO { List> frames; List> mapping; String webUrl; + Boolean loginRequired; } @Getter @@ -68,6 +70,7 @@ public static class GeneratorPreviewDTO { List> frames; List> mapping; String webUrl; + Boolean loginRequired; boolean isBookmarked; } diff --git a/src/main/java/Capstone/AutoScheduler/global/web/dto/Member/MemberResponseDTO.java b/src/main/java/Capstone/AutoScheduler/global/web/dto/Member/MemberResponseDTO.java index 59a2d75..f287d7a 100644 --- a/src/main/java/Capstone/AutoScheduler/global/web/dto/Member/MemberResponseDTO.java +++ b/src/main/java/Capstone/AutoScheduler/global/web/dto/Member/MemberResponseDTO.java @@ -47,6 +47,7 @@ public static class BookmarkPreviewDTO { private List> mapping; private String webUrl; private boolean isBookmarked; + private boolean loginRequired; private LocalDateTime createdAt; }