From 30dc4266d5ae0b3eadf0efe4ad0605f4f45e5e91 Mon Sep 17 00:00:00 2001 From: DirtyRacer1337 Date: Mon, 8 Apr 2024 16:42:10 +0700 Subject: [PATCH] add type choose field --- pom.xml | 2 +- .../scraper/tpdb/TpdbApi.java | 40 +++++++++++++++++++ .../tpdb/TpdbMovieArtworkProvider.java | 4 +- .../tpdb/TpdbMovieMetadataProvider.java | 15 ++++--- .../tpdb/TpdbMovieTrailerProvider.java | 4 +- 5 files changed, 56 insertions(+), 9 deletions(-) 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); }