Skip to content

Commit

Permalink
[#26] ParsingService: DateTime 파싱 메소드 롤백
Browse files Browse the repository at this point in the history
  • Loading branch information
chaiminwoo0223 committed Jun 9, 2024
1 parent 050c033 commit 5d9dc98
Showing 1 changed file with 16 additions and 21 deletions.
37 changes: 16 additions & 21 deletions src/main/java/skhu/jijijig/service/ParsingService.java
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
package skhu.jijijig.service;

import lombok.RequiredArgsConstructor;
import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;
import org.springframework.stereotype.Service;
import skhu.jijijig.repository.crawling.CrawlingRepository;

import java.time.LocalDate;
import java.time.LocalDateTime;
Expand All @@ -14,10 +12,7 @@
import java.util.regex.Pattern;

@Service
@RequiredArgsConstructor
public class ParsingService {
private final CrawlingRepository crawlingRepository;

public boolean parseOpen(WebElement row, String OPEN) {
return row.findElements(By.cssSelector(OPEN)).isEmpty();
}
Expand Down Expand Up @@ -57,15 +52,15 @@ public String parseDateTime(WebElement row, String label, String DATETIME) {
DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("uuuu-MM-dd");
DateTimeFormatter timeFormatter = DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm:ss");
if (label.startsWith("뽐뿌")) {
return parsePpomppuDateTime(label, dateTime, today, dateFormatter);
return parsePpomppuDateTime(dateTime, today, dateFormatter);
} else if (label.startsWith("루리웹")) {
return parseRuliwebDateTime(label, dateTime, today, dateFormatter);
return parseRuliwebDateTime(dateTime, today, dateFormatter);
} else if (label.startsWith("어미새")) {
return parseEomisaeDateTime(label, dateTime, today, now, dateFormatter, timeFormatter);
return parseEomisaeDateTime(dateTime, today, now, dateFormatter, timeFormatter);
} else if (label.startsWith("쿨엔조이")) {
return parseCoolenjoyDateTime(label, dateTime, today, dateFormatter);
return parseCoolenjoyDateTime(dateTime, today, dateFormatter);
} else if (label.startsWith("퀘사이존")) {
return parseQuasarzoneDateTime(label, dateTime, today, dateFormatter);
return parseQuasarzoneDateTime(dateTime, today, dateFormatter);
}
return today.format(timeFormatter);
}
Expand Down Expand Up @@ -165,42 +160,42 @@ private int parseInteger(String text) {
}
}

private String parsePpomppuDateTime(String label, String dateTime, LocalDate today, DateTimeFormatter dateFormatter) {
private String parsePpomppuDateTime(String dateTime, LocalDate today, DateTimeFormatter dateFormatter) {
if (dateTime.contains(":")) {
return today.format(dateFormatter) + " " + dateTime;
} else if (dateTime.contains("/")) {
String[] parts = dateTime.split("/");
LocalDate date = LocalDate.of(2000 + Integer.parseInt(parts[0]), Integer.parseInt(parts[1]), Integer.parseInt(parts[2]));
return crawlingRepository.findDateTimeByLabel(label).orElse(date.format(dateFormatter) + " 00:00:00");
return date.format(dateFormatter) + " 00:00:00";
}
return today.format(dateFormatter) + " 00:00:00";
}

private String parseRuliwebDateTime(String label, String dateTime, LocalDate today, DateTimeFormatter dateFormatter) {
private String parseRuliwebDateTime(String dateTime, LocalDate today, DateTimeFormatter dateFormatter) {
if (dateTime.contains(":")) {
return today.format(dateFormatter) + " " + dateTime + ":00";
} else if (dateTime.contains(".")) {
String[] parts = dateTime.split("\\.");
LocalDate date = LocalDate.of(Integer.parseInt(parts[0]), Integer.parseInt(parts[1]), Integer.parseInt(parts[2]));
return crawlingRepository.findDateTimeByLabel(label).orElse(date.format(dateFormatter) + " 00:00:00");
return date.format(dateFormatter) + " 00:00:00";
}
return today.format(dateFormatter) + " 00:00:00";
}

private String parseEomisaeDateTime(String label, String dateTime, LocalDate today, LocalDateTime now, DateTimeFormatter dateFormatter, DateTimeFormatter timeFormatter) {
private String parseEomisaeDateTime(String dateTime, LocalDate today, LocalDateTime now, DateTimeFormatter dateFormatter, DateTimeFormatter timeFormatter) {
if (dateTime.contains(".")) {
String[] parts = dateTime.split("\\.");
LocalDate date = LocalDate.of(2000 + Integer.parseInt(parts[0]), Integer.parseInt(parts[1]), Integer.parseInt(parts[2]));
if (date.isEqual(today)) {
return now.format(timeFormatter);
} else {
return crawlingRepository.findDateTimeByLabel(label).orElse(date.format(dateFormatter) + " 00:00:00");
return date.format(dateFormatter) + " 00:00:00";
}
}
return today.format(dateFormatter) + " 00:00:00";
}

private String parseCoolenjoyDateTime(String label, String dateTime, LocalDate today, DateTimeFormatter dateFormatter) {
private String parseCoolenjoyDateTime(String dateTime, LocalDate today, DateTimeFormatter dateFormatter) {
dateTime = dateTime.replaceAll("등록일\\s+", "");
if (dateTime.contains(":")) {
return today.format(dateFormatter) + " " + dateTime + ":00";
Expand All @@ -216,12 +211,12 @@ private String parseCoolenjoyDateTime(String label, String dateTime, LocalDate t
day = Integer.parseInt(parts[2]);
}
LocalDate date = LocalDate.of(year, month, day);
return crawlingRepository.findDateTimeByLabel(label).orElse(date.format(dateFormatter) + " 00:00:00");
return date.format(dateFormatter) + " 00:00:00";
}
return today.format(dateFormatter) + " 00:00:00";
}

private String parseQuasarzoneDateTime(String label, String dateTime, LocalDate today, DateTimeFormatter dateFormatter) {
private String parseQuasarzoneDateTime(String dateTime, LocalDate today, DateTimeFormatter dateFormatter) {
if (dateTime.contains(":")) {
return today.format(dateFormatter) + " " + dateTime + ":00";
}
Expand All @@ -231,10 +226,10 @@ private String parseQuasarzoneDateTime(String label, String dateTime, LocalDate
int month = Integer.parseInt(parts[0]);
int day = Integer.parseInt(parts[1]);
if (month == 12 && today.getMonthValue() == 1) {
year -= 1;
year -= 1; // 전년도
}
LocalDate date = LocalDate.of(year, month, day);
return crawlingRepository.findDateTimeByLabel(label).orElse(date.format(dateFormatter) + " 00:00:00");
return date.format(dateFormatter) + " 00:00:00";
}
return today.format(dateFormatter) + " 00:00:00";
}
Expand Down

0 comments on commit 5d9dc98

Please sign in to comment.