Skip to content

Commit f25114d

Browse files
committed
Добавление шедула на ссылки
1 parent 48c4d86 commit f25114d

File tree

5 files changed

+57
-48
lines changed

5 files changed

+57
-48
lines changed

FP/scrapper/src/main/java/ru/tinkoff/edu/java/scrapper/api/DB.java

Lines changed: 0 additions & 42 deletions
This file was deleted.

FP/scrapper/src/main/java/ru/tinkoff/edu/java/scrapper/jdbc/JdbcChatService.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
package ru.tinkoff.edu.java.scrapper.jdbc;
22

33
import org.springframework.jdbc.core.JdbcTemplate;
4-
import ru.tinkoff.edu.java.linkparser.LinkParser;
5-
import ru.tinkoff.edu.java.scrapper.api.model.AddLinkRequest;
6-
import ru.tinkoff.edu.java.scrapper.api.model.LinkResponse;
74
import ru.tinkoff.edu.java.scrapper.exceptions.customExceptions.*;
85
import ru.tinkoff.edu.java.scrapper.jdbc.operations.ChatOperations;
96
import ru.tinkoff.edu.java.scrapper.jdbc.operations.LinkChatOperations;

FP/scrapper/src/main/java/ru/tinkoff/edu/java/scrapper/jdbc/JdbcLinkService.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
import ru.tinkoff.edu.java.scrapper.jdbc.operations.LinkOperations;
1414

1515
import java.util.ArrayList;
16-
import java.util.Arrays;
1716
import java.util.List;
1817

1918
public class JdbcLinkService implements LinkOperations, ChatOperations, LinkChatOperations {

FP/scrapper/src/main/java/ru/tinkoff/edu/java/scrapper/jdbc/operations/LinkOperations.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,4 +71,13 @@ default int i_findLink(
7171
return 0;
7272
}
7373
}
74+
75+
default List<LinkResponse> i_getAllIds(JdbcTemplate jdbcTemplate) {
76+
try {
77+
String query = "SELECT * FROM links";
78+
return jdbcTemplate.query(query, new LinkMapper());
79+
} catch (IndexOutOfBoundsException e) { // Если значение не нашлось
80+
return null;
81+
}
82+
}
7483
}
Lines changed: 48 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,63 @@
11
package ru.tinkoff.edu.java.scrapper.schedule;
22

3+
import org.springframework.jdbc.core.JdbcTemplate;
34
import org.springframework.scheduling.annotation.Scheduled;
45
import org.springframework.stereotype.Service;
6+
import org.springframework.web.reactive.function.client.WebClientResponseException;
7+
import ru.tinkoff.edu.java.linkparser.LinkParser;
8+
import ru.tinkoff.edu.java.scrapper.client.ClientConfiguration;
9+
import ru.tinkoff.edu.java.scrapper.jdbc.JdbcLinkService;
10+
import ru.tinkoff.edu.java.scrapper.jdbc.operations.LinkOperations;
511

12+
import java.lang.ref.Cleaner;
13+
import java.util.ArrayList;
14+
import java.util.LinkedHashSet;
15+
import java.util.Set;
616
import java.util.logging.Level;
717
import java.util.logging.Logger;
818

919
@Service
10-
public class LinkUpdaterScheduler {
20+
public class LinkUpdaterScheduler implements LinkOperations {
1121
private final static Logger LOGGER = Logger.getLogger(Logger.GLOBAL_LOGGER_NAME);
1222

23+
private final JdbcTemplate jdbcTemplate;
24+
ArrayList<String> link_list = new ArrayList<>();
25+
static int ix = 0;
26+
ClientConfiguration client = new ClientConfiguration();
27+
LinkParser pars = new LinkParser();
28+
boolean git_link_is_activity;
29+
boolean stack_link_is_activity;
30+
31+
public LinkUpdaterScheduler(JdbcTemplate jdbcTemplate) {
32+
this.jdbcTemplate = jdbcTemplate;
33+
}
34+
1335
@Scheduled(fixedDelayString = "${app.scheduler.interval}")
1436
public void update() {
15-
LOGGER.log(Level.INFO, "Info scrapper called");
37+
int i;
38+
for (i = 0; i < i_getAllIds(jdbcTemplate).size(); i++){
39+
if (!link_list.contains(i_getAllIds(jdbcTemplate).get(i).url())) {
40+
link_list.add(i_getAllIds(jdbcTemplate).get(i).url());
41+
}
42+
}
43+
try {
44+
client.gitHubClient(pars.getLink(link_list.get(ix)));
45+
git_link_is_activity = true;
46+
} catch (WebClientResponseException e) {
47+
git_link_is_activity = false;
48+
}
49+
try {
50+
client.stackOverflowClient(pars.getLink(link_list.get(ix)));
51+
stack_link_is_activity = true;
52+
} catch (WebClientResponseException ignored) {
53+
stack_link_is_activity = false;
54+
}
55+
if (!(git_link_is_activity || stack_link_is_activity)) {
56+
String link = "Ссылка %s устарела";
57+
link = link.formatted(i_getAllIds(jdbcTemplate).get(ix).url());
58+
LOGGER.log(Level.INFO, link);
59+
}
60+
ix++;
61+
if (ix == link_list.size()) ix = 0;
1662
}
1763
}

0 commit comments

Comments
 (0)