diff --git a/core/pom.xml b/core/pom.xml
index 026ac2f..5ae3454 100644
--- a/core/pom.xml
+++ b/core/pom.xml
@@ -5,7 +5,7 @@
parent
ru.bvn13.imdbspider
- 1.0-SNAPSHOT
+ 0.0.1
4.0.0
diff --git a/core/src/main/java/ru/bvn13/imdbspider/ImdbSpider.java b/core/src/main/java/ru/bvn13/imdbspider/ImdbSpider.java
index e624ce6..cd3ccf0 100644
--- a/core/src/main/java/ru/bvn13/imdbspider/ImdbSpider.java
+++ b/core/src/main/java/ru/bvn13/imdbspider/ImdbSpider.java
@@ -14,7 +14,10 @@ import ru.bvn13.imdbspider.spider.api.ApiFactory;
import java.net.URLEncoder;
import java.nio.charset.Charset;
+import java.time.Duration;
+import java.time.LocalDateTime;
import java.util.ArrayList;
+import java.util.Date;
import java.util.EnumSet;
import java.util.List;
import java.util.concurrent.ExecutionException;
@@ -45,7 +48,7 @@ public class ImdbSpider {
}
public MovieList searchMovieByTitle(String title) throws ImdbSpiderException {
- return searchMovieByTitle(title, 10);
+ return searchMovieByTitle(title, 0);
}
public MovieList searchMovieByTitle(String title, int maxCount) throws ImdbSpiderException {
@@ -61,16 +64,23 @@ public class ImdbSpider {
try {
Task t1 = apiFactory.taskByDataType(MovieListDataType.ELEMENTS);
t1.setUrl(url);
+ if (maxCount > 0) {
+ t1.setRestrictionByCount(maxCount);
+ }
tasks.add(t1);
} catch (DataTypeNotSupportedException e) {
throw e;
}
+ LocalDateTime dateStart = LocalDateTime.now();
try {
manager.processTasks(tasks);
} catch (ExecutionException | InterruptedException e) {
throw new ImdbSpiderException("Error has been occurred!", e);
}
+ LocalDateTime dateEnd = LocalDateTime.now();
+ Duration diff = Duration.between(dateStart, dateEnd);
+ System.out.println("TIME SPENT: "+(diff.toMillis())+" msec");
MovieListComposer movieListComposer = (MovieListComposer) imdbObjectComposerFactory.getComposer(MovieList.class);
diff --git a/core/src/main/java/ru/bvn13/imdbspider/spider/api/v1_0/ApiFactory_1_0.java b/core/src/main/java/ru/bvn13/imdbspider/spider/api/v1_0/ApiFactory_1_0.java
index 2cb2c7b..f8839b5 100644
--- a/core/src/main/java/ru/bvn13/imdbspider/spider/api/v1_0/ApiFactory_1_0.java
+++ b/core/src/main/java/ru/bvn13/imdbspider/spider/api/v1_0/ApiFactory_1_0.java
@@ -93,7 +93,14 @@ public class ApiFactory_1_0 implements ApiFactory {
t.setCssSelector("#main > div > div.findSection > table > tbody > tr > td.result_text");
t.setResultType(List.class);
t.setPostprocess((task, s) -> {
+ int count = 0;
for (Element element : task.getCssSelectorResult()) {
+ count++;
+ if (task.getRestrictionByCount() != null) {
+ if (count > task.getRestrictionByCount()) {
+ break;
+ }
+ }
Element link = element.select("a").first();
if (!defaultMovieDataType.contains(MovieDataType.ID)) {
defaultMovieDataType.add(MovieDataType.ID);
diff --git a/core/src/main/java/ru/bvn13/imdbspider/spider/tasker/Task.java b/core/src/main/java/ru/bvn13/imdbspider/spider/tasker/Task.java
index 6e71d42..d9ebeec 100644
--- a/core/src/main/java/ru/bvn13/imdbspider/spider/tasker/Task.java
+++ b/core/src/main/java/ru/bvn13/imdbspider/spider/tasker/Task.java
@@ -19,6 +19,8 @@ public class Task {
private String cssSelector;
private Elements cssSelectorResult;
+ private Integer restrictionByCount;
+
private Class resultType;
private Object result;
@@ -143,4 +145,13 @@ public class Task {
this.parentTask = parentTask;
return this;
}
+
+ public Integer getRestrictionByCount() {
+ return restrictionByCount;
+ }
+
+ public Task setRestrictionByCount(Integer restrictionByCount) {
+ this.restrictionByCount = restrictionByCount;
+ return this;
+ }
}
diff --git a/pom.xml b/pom.xml
index 86856f6..08ddda6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
ru.bvn13.imdbspider
parent
- 1.0-SNAPSHOT
+ 0.0.1
core
runner
diff --git a/runner/pom.xml b/runner/pom.xml
index 1aee796..fc6f1a5 100644
--- a/runner/pom.xml
+++ b/runner/pom.xml
@@ -5,7 +5,7 @@
parent
ru.bvn13.imdbspider
- 1.0-SNAPSHOT
+ 0.0.1
4.0.0
@@ -25,7 +25,7 @@
ru.bvn13.imdbspider
imdb-spider-core
- 1.0-SNAPSHOT
+ 0.0.1
compile