diff --git a/src/main/java/kinosearch/kinosearch3/cinema/OnlinelifeScanner.java b/src/main/java/kinosearch/kinosearch3/cinema/OnlinelifeScanner.java index 6ce1ccb..404392e 100644 --- a/src/main/java/kinosearch/kinosearch3/cinema/OnlinelifeScanner.java +++ b/src/main/java/kinosearch/kinosearch3/cinema/OnlinelifeScanner.java @@ -62,13 +62,13 @@ public class OnlinelifeScanner implements ScannerCinema { Document document = Jsoup.parse(browser.get(url)); Element element = document.getElementsByClass("full-poster").get(0); - File saveTo = new File(this.saveToDir, url.substring(url.lastIndexOf("/")+1, url.lastIndexOf("."))+".jpg"); - this.fileDownloader.addFile(element.attr("src"), saveTo); + String pathFile = "onlinelife/"+url.substring(url.lastIndexOf("/")+1, url.lastIndexOf("."))+".jpg"; + this.fileDownloader.addFile(element.attr("src"), new File(this.saveToDir, pathFile)); CinemaDocument cinemaDocument = new CinemaDocument(); cinemaDocument.setTitle(document.getElementsByClass("film_info").get(0).child(0).child(0).text().trim()); cinemaDocument.setDescription(document.getElementsByClass("film-description").get(0).text()); - cinemaDocument.setFileName(saveTo.getAbsolutePath()); + cinemaDocument.setFileName(pathFile); cinemaDocument.setTypeWarez(this.getName()); cinemaDocument.setUrl(url); repository.save(cinemaDocument); diff --git a/src/main/java/kinosearch/kinosearch3/cinema/SeasonvarScanner.java b/src/main/java/kinosearch/kinosearch3/cinema/SeasonvarScanner.java index 700627d..cb5f5ad 100644 --- a/src/main/java/kinosearch/kinosearch3/cinema/SeasonvarScanner.java +++ b/src/main/java/kinosearch/kinosearch3/cinema/SeasonvarScanner.java @@ -58,14 +58,14 @@ public class SeasonvarScanner implements ScannerCinema { Document document = Jsoup.parse(browser.get(url)); Element element = document.getElementsByAttributeValue("itemprop", "thumbnailUrl").get(0); - File saveTo = new File(this.saveTo, url.substring(url.lastIndexOf("/")+1, url.lastIndexOf("."))+".jpg"); - this.fileDownloader.addFile(element.attr("src"), saveTo); + String pathFile = "seasonvar/"+url.substring(url.lastIndexOf("/")+1, url.lastIndexOf("."))+".jpg"; + this.fileDownloader.addFile(element.attr("src"), new File(this.saveTo, pathFile)); CinemaDocument cinemaDocument = new CinemaDocument(); String title = document.getElementsByClass("pgs-sinfo-title").get(0).text(); cinemaDocument.setTitle(title.replaceAll("^Сериал ", "").replaceAll(" онлайн$", "")); cinemaDocument.setDescription(document.getElementsByAttributeValue("itemprop", "description").get(0).text()); - cinemaDocument.setFileName(saveTo.getAbsolutePath()); + cinemaDocument.setFileName(pathFile); cinemaDocument.setTypeWarez(this.getName()); cinemaDocument.setUrl(url); this.repository.save(cinemaDocument); diff --git a/src/main/java/kinosearch/kinosearch3/webpp/WebAppController.java b/src/main/java/kinosearch/kinosearch3/webpp/WebAppController.java index 281e8e7..ef182cc 100644 --- a/src/main/java/kinosearch/kinosearch3/webpp/WebAppController.java +++ b/src/main/java/kinosearch/kinosearch3/webpp/WebAppController.java @@ -6,27 +6,34 @@ package kinosearch.kinosearch3.webpp; import kinosearch.kinosearch3.base.BaseRepository; import kinosearch.kinosearch3.base.CinemaDocument; +import org.apache.commons.io.IOUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.PropertySource; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.*; +import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.FileInputStream; import java.io.IOException; import java.util.List; @Controller +@PropertySource("classpath:/application.properties") public class WebAppController { private final Logger logger = LoggerFactory.getLogger(WebAppController.class); private final BaseRepository baseRepository; + private final String saveDir; @Autowired - public WebAppController(BaseRepository baseRepository) { + public WebAppController(BaseRepository baseRepository, @Value("${saveRootDir}") String saveDir) { this.baseRepository = baseRepository; + this.saveDir = saveDir; } @RequestMapping(value = "/", method = RequestMethod.GET) @@ -45,6 +52,19 @@ public class WebAppController { return "searchResult"; } + @RequestMapping(value = "/poster/**", method = RequestMethod.GET) + @ResponseBody + public void poster(HttpServletRequest request, HttpServletResponse response) throws IOException { + File posterFile = new File(this.saveDir, request.getPathInfo().substring("/poster/".length())); + logger.debug("poster file: {}", posterFile); + if (posterFile.exists()) { + response.setStatus(200); + IOUtils.copy(new FileInputStream(posterFile), response.getOutputStream()); + } else { + response.setStatus(404); + } + } + @RequestMapping(value = "/blog.html", method = RequestMethod.GET) public String blog() { return "blog"; diff --git a/src/main/resources/kinosearch/kinosearch3/spider/spring.xml b/src/main/resources/kinosearch/kinosearch3/spider/spring.xml index c5e1569..8ec5790 100644 --- a/src/main/resources/kinosearch/kinosearch3/spider/spring.xml +++ b/src/main/resources/kinosearch/kinosearch3/spider/spring.xml @@ -43,14 +43,14 @@ - + - + diff --git a/src/main/resources/kinosearch/kinosearch3/webpp/searchResult.ftl b/src/main/resources/kinosearch/kinosearch3/webpp/searchResult.ftl index f9a483f..79b68a9 100644 --- a/src/main/resources/kinosearch/kinosearch3/webpp/searchResult.ftl +++ b/src/main/resources/kinosearch/kinosearch3/webpp/searchResult.ftl @@ -7,7 +7,10 @@ [#if cindocs?has_content]
    [#list cindocs as cinema] -
  1. [${cinema.typeWarez}] ${cinema.title}
  2. +
  3. + + [${cinema.typeWarez}] ${cinema.title} +
  4. [/#list]
[#else]