package ru.yandex.programmers_day;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
//@SpringBootApplication
/*SpringApplication.run(ProgrammersDayApplication.class, args);*/
public class ProgrammersDayApplication {
public static void main(String[] args) throws Exception {
// Client client = new Client("http://ya.praktikum.fvds.ru:8080/dev-day");
// System.out.println(client.decode("FYTC Y UMLBCPDSJ QOJ AMBGLE BYW", 24));
String html = "<!DOCTYPE html>\n" +
"<html>\n" +
"<head>\n" +
" <meta charset=\"UTF-8\">\n" +
" <style>\n" +
" p {\n" +
" margin: 20px 0;\n" +
" }\n" +
"\n" +
" .first_p {\n" +
" margin-top: 0;\n" +
" }\n" +
"\n" +
" .container {\n" +
" position: relative;\n" +
" border: 1px solid black;\n" +
" background-color: white;\n" +
" box-shadow: 4px 4px 0px black;\n" +
" padding: 20px;\n" +
" margin-bottom: 20px;\n" +
" }\n" +
"\n" +
" .num {\n" +
" position: absolute;\n" +
" top: 0;\n" +
" left: 0;\n" +
" padding: 2px 9px;\n" +
" border-right: 1px solid black;\n" +
" border-bottom: 1px solid black;\n" +
" }\n" +
"\n" +
" .warn_notif {\n" +
" background-color: #FFE7D6;\n" +
" color: #FF5C00;\n" +
" padding: 20px;\n" +
" margin: 0 auto;\n" +
" margin-bottom: 40px;\n" +
" }\n" +
"\n" +
" .code {\n" +
" font-weight: 600;\n" +
" background-color: #DEDEDE;\n" +
" padding: 10px 20px;\n" +
" width: max-content;\n" +
" margin: 0 auto;\n" +
" }\n" +
" </style>\n" +
"</head>\n" +
"<body style=\"font-family: Lucida Console, Monaco, Monospace; line-height: 150%; text-align: center; font-size: 12px;\">\n" +
"\n" +
"<h2 style=\"margin-bottom: 40px; margin-top: 40px;\">День 2<br>\"Салатный\"</h2>\n" +
"\n" +
"<div class=\"warn_notif\">Внимательно прочитайте задание до конца <br> прежде чем приступить к выполнению</div>\n" +
"\n" +
"<div class=\"container\">\n" +
" <div class=\"num\">1</div>\n" +
" Давным-давно в Практикуме был студент, легенды о котором ходят и по сей день: он одновременно проходил курсы\n" +
" \"Java-разработчик\",\n" +
" \"React-разработчик\", а также \"Нагрузочное тестирование\" и \"Английский для IT\".<br>\n" +
" Как говорится, был <s>и швец, и жнец, и на дуде игрец</s> фулстек-разработчик.<br>\n" +
" Однажды он куда-то пропал, но оставил кучу непонятных записок.<br>Взгляните сами:\n" +
" <br>\n" +
" <code id=\"message\"><span>{"encoded": "VOJS O QCCZ XG QCRWBU ROM", "offset": "14"}</span></code>\n" +
"</div>\n" +
"\n" +
"<div class=\"container\">\n" +
" <div class=\"num\">2</div>\n" +
" Мы уже устали их хранить, поэтому каждые <span>7</span> секунд отправляем очередную записку в\n" +
" шредер.<br>\n" +
" Попробуйте обновить страницу - скорее всего старая записка уже уничтожена, а на ее месте новая.\n" +
"</div>\n" +
"\n" +
"<div class=\"container\">\n" +
" <div class=\"num\">3</div>\n" +
"\n" +
" <p>Помогите нам понять тайный смысл хотя бы одной из этих записок пока шредер не разобрался с ней \uD83D\uDDF3<br><br>Ответ\n" +
" присылайте сюда:</p>\n" +
" <div class=\"code\">POST http://ya.praktikum.fvds.ru:8080/dev-day/task/2</div>\n" +
" <p>В тело положите json:</p>\n" +
" <code>{\"decoded\": \"текст\"}</code>\n" +
" <p>А, да, вы должно быть заметили, что мы обновили протоколы безопасности.<br> Поэтому всегда кладите в HTTP-header\n" +
" AUTH_TOKEN\n" +
" токен вашей команды.</p>\n" +
"\n" +
"</div>\n" +
"\n" +
"<div class=\"container\">\n" +
" <div class=\"num\">4</div>\n" +
" В знак благодарности мы пришлем вам <b><span style=\"color: #21B409;\">200 OK</span></b> и json со ссылкой на\n" +
" следующее задание в таком виде:<br>\n" +
" <code>{\"nextTaskUrl\": \"http://...\", \"message\": \"...\", \"completed\": true}</code><br>\n" +
" Но вот если шредер опередит вас, то вы получите <b><span style=\"color: #d56109;\">400 BAD REQUEST</span></b>, а\n" +
" записку придется получить заново.\n" +
"</div>\n" +
"\n" +
"<p style=\"margin: 40px 0;\"><b> Увидимся завтра! :)</b></p>\n" +
"\n" +
"</body>\n" +
"</html>";
Document doc = Jsoup.parse(html);
Element codeElement = doc.select("code#message").first();
String result = codeElement.text();
ObjectMapper objectMapper = new ObjectMapper();
JsonNode rootNode = objectMapper.readTree(result);
String encoded = rootNode.get("encoded").asText();
String offset = rootNode.get("offset").asText();
System.out.println(encoded + " " + offset);
}
}