Skip to content

Commit

Permalink
add type choose field
Browse files Browse the repository at this point in the history
  • Loading branch information
DirtyRacer1337 committed Apr 8, 2024
1 parent 4d64d0f commit 30dc426
Show file tree
Hide file tree
Showing 5 changed files with 56 additions and 9 deletions.
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

<groupId>org.tinymediamanager</groupId>
<artifactId>scraper-addon-tpdb</artifactId>
<version>2.0.0</version>
<version>2.1.0</version>

<repositories>
<repository>
Expand Down
40 changes: 40 additions & 0 deletions src/main/java/org/tinymediamanager/scraper/tpdb/TpdbApi.java
Original file line number Diff line number Diff line change
Expand Up @@ -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<SceneEntity> 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 {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -25,13 +26,14 @@ public MediaProviderInfo createMediaProviderInfo() {
public List<MediaArtwork> 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<MediaArtwork> 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);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;

Expand All @@ -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;
Expand All @@ -30,25 +32,25 @@ public MediaProviderInfo createMediaProviderInfo() {
public SortedSet<MediaSearchResult> 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<MediaSearchResult> results = new TreeSet<>();

String query = options.getSearchQuery();

SceneSearch search;
List<SceneEntity> 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);
Expand All @@ -69,13 +71,14 @@ public SortedSet<MediaSearchResult> 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);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand All @@ -25,11 +26,12 @@ public MediaProviderInfo createMediaProviderInfo() {
public List<MediaTrailer> 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);
}
Expand Down

0 comments on commit 30dc426

Please sign in to comment.