diff --git a/pom.xml b/pom.xml
index b0c0167..d7c4abd 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
org.tinymediamanager
scraper-addon-tpdb
- 2.0.0
+ 2.1.0
diff --git a/src/main/java/org/tinymediamanager/scraper/tpdb/TpdbApi.java b/src/main/java/org/tinymediamanager/scraper/tpdb/TpdbApi.java
index dbf9bc2..8e22a1c 100644
--- a/src/main/java/org/tinymediamanager/scraper/tpdb/TpdbApi.java
+++ b/src/main/java/org/tinymediamanager/scraper/tpdb/TpdbApi.java
@@ -64,6 +64,46 @@ public MediaMetadata setMediaMetadata(SceneEntity scene) {
return result;
}
+ public SceneType getType(String type) {
+ switch (type) {
+ case "Scene":
+ return SceneType.SCENE;
+ case "Movie":
+ return SceneType.MOVIE;
+ case "JAV":
+ return SceneType.JAV;
+ }
+
+ return null;
+ }
+
+ public List searchScenes(String q, SceneType type) throws ScrapeException {
+ SceneSearch search = null;
+ try {
+ switch (type) {
+ case SCENE:
+ search = controller.getScenesFromQuery(q);
+ break;
+ case MOVIE:
+ search = controller.getMoviesFromQuery(q);
+ break;
+ case JAV:
+ search = controller.getJAVFromQuery(q);
+ break;
+ }
+ } catch (Exception e) {
+ LOGGER.error("error search: {}", e.getMessage());
+ throw new ScrapeException(e);
+ }
+
+ if (search == null || search.data == null) {
+ LOGGER.warn("no result found");
+ throw new NothingFoundException();
+ }
+
+ return search.data;
+ }
+
public SceneEntity getScene(String id, SceneType type) throws ScrapeException {
SceneGet search = null;
try {
diff --git a/src/main/java/org/tinymediamanager/scraper/tpdb/TpdbMovieArtworkProvider.java b/src/main/java/org/tinymediamanager/scraper/tpdb/TpdbMovieArtworkProvider.java
index 08e7136..e77069b 100644
--- a/src/main/java/org/tinymediamanager/scraper/tpdb/TpdbMovieArtworkProvider.java
+++ b/src/main/java/org/tinymediamanager/scraper/tpdb/TpdbMovieArtworkProvider.java
@@ -16,6 +16,7 @@ public MediaProviderInfo createMediaProviderInfo() {
MediaProviderInfo info = super.createMediaProviderInfo();
info.getConfig().addText("apiKey", "", true);
+ info.getConfig().addSelect("type", new String[] {"Scene", "Movie", "JAV"}, "Scene");
info.getConfig().load();
return info;
@@ -25,13 +26,14 @@ public MediaProviderInfo createMediaProviderInfo() {
public List getArtwork(ArtworkSearchAndScrapeOptions options) throws ScrapeException {
String apiKey = getProviderInfo().getConfig().getValue("apiKey");
TpdbApi api = new TpdbApi(apiKey);
+ TpdbApi.SceneType type = api.getType(getProviderInfo().getConfig().getValue("type"));
String id = options.getIdAsString(getId());
List artworks = new ArrayList<>();
SceneEntity scene;
try {
- scene = api.getScene(id, TpdbApi.SceneType.SCENE);
+ scene = api.getScene(id, type);
} catch (Exception e) {
throw new ScrapeException(e);
}
diff --git a/src/main/java/org/tinymediamanager/scraper/tpdb/TpdbMovieMetadataProvider.java b/src/main/java/org/tinymediamanager/scraper/tpdb/TpdbMovieMetadataProvider.java
index f3964e5..83553b4 100644
--- a/src/main/java/org/tinymediamanager/scraper/tpdb/TpdbMovieMetadataProvider.java
+++ b/src/main/java/org/tinymediamanager/scraper/tpdb/TpdbMovieMetadataProvider.java
@@ -12,6 +12,7 @@
import org.tinymediamanager.scraper.tpdb.entities.SceneSearch;
import org.tinymediamanager.scraper.tpdb.service.Controller;
+import java.util.List;
import java.util.SortedSet;
import java.util.TreeSet;
@@ -21,6 +22,7 @@ public MediaProviderInfo createMediaProviderInfo() {
MediaProviderInfo info = super.createMediaProviderInfo();
info.getConfig().addText("apiKey", "", true);
+ info.getConfig().addSelect("type", new String[] {"Scene", "Movie", "JAV"}, "Scene");
info.getConfig().load();
return info;
@@ -30,25 +32,25 @@ public MediaProviderInfo createMediaProviderInfo() {
public SortedSet search(MovieSearchAndScrapeOptions options) throws ScrapeException {
String apiKey = getProviderInfo().getConfig().getValue("apiKey");
TpdbApi api = new TpdbApi(apiKey);
- Controller controller = api.getController();
+ TpdbApi.SceneType type = api.getType(getProviderInfo().getConfig().getValue("type"));
SortedSet results = new TreeSet<>();
String query = options.getSearchQuery();
- SceneSearch search;
+ List search;
try {
- search = controller.getScenesFromQuery(query);
+ search = api.searchScenes(query, type);
} catch (Exception e) {
throw new ScrapeException(e);
}
- if (search == null || search.data.isEmpty()) {
+ if (search == null || search.isEmpty()) {
throw new NothingFoundException();
}
float score = 100.0F;
- for (SceneEntity scene : search.data) {
+ for (SceneEntity scene : search) {
MediaSearchResult data = new MediaSearchResult(getId(), MediaType.MOVIE);
data.setId(getId(), scene.id);
@@ -69,13 +71,14 @@ public SortedSet search(MovieSearchAndScrapeOptions options)
public MediaMetadata getMetadata(MovieSearchAndScrapeOptions options) throws ScrapeException {
String apiKey = this.getProviderInfo().getConfig().getValue("apiKey");
TpdbApi api = new TpdbApi(apiKey);
+ TpdbApi.SceneType type = api.getType(getProviderInfo().getConfig().getValue("type"));
SceneEntity scene = null;
String id = options.getIdAsString(getId());
if (id != null) {
try {
- scene = api.getScene(id, TpdbApi.SceneType.SCENE);
+ scene = api.getScene(id, type);
} catch (Exception e) {
throw new ScrapeException(e);
}
diff --git a/src/main/java/org/tinymediamanager/scraper/tpdb/TpdbMovieTrailerProvider.java b/src/main/java/org/tinymediamanager/scraper/tpdb/TpdbMovieTrailerProvider.java
index d82b51c..d61cc43 100644
--- a/src/main/java/org/tinymediamanager/scraper/tpdb/TpdbMovieTrailerProvider.java
+++ b/src/main/java/org/tinymediamanager/scraper/tpdb/TpdbMovieTrailerProvider.java
@@ -16,6 +16,7 @@ public MediaProviderInfo createMediaProviderInfo() {
MediaProviderInfo info = super.createMediaProviderInfo();
info.getConfig().addText("apiKey", "", true);
+ info.getConfig().addSelect("type", new String[] {"Scene", "Movie", "JAV"}, "Scene");
info.getConfig().load();
return info;
@@ -25,11 +26,12 @@ public MediaProviderInfo createMediaProviderInfo() {
public List getTrailers(TrailerSearchAndScrapeOptions options) throws ScrapeException {
String apiKey = getProviderInfo().getConfig().getValue("apiKey");
TpdbApi api = new TpdbApi(apiKey);
+ TpdbApi.SceneType type = api.getType(getProviderInfo().getConfig().getValue("type"));
String id = options.getIdAsString(getId());
SceneEntity scene;
try {
- scene = api.getScene(id, TpdbApi.SceneType.SCENE);
+ scene = api.getScene(id, type);
} catch (Exception e) {
throw new ScrapeException(e);
}