Add extra search sites

This commit is contained in:
jafea7 2025-05-13 16:47:57 +10:00 committed by Jafea7
parent 34e0419367
commit 4f73baca14
1 changed files with 55 additions and 16 deletions

View File

@ -15,6 +15,7 @@ import javafx.event.ActionEvent;
import javafx.event.EventHandler; import javafx.event.EventHandler;
import javafx.scene.Node; import javafx.scene.Node;
import javafx.scene.control.ContextMenu; import javafx.scene.control.ContextMenu;
import javafx.scene.control.Menu;
import javafx.scene.control.MenuItem; import javafx.scene.control.MenuItem;
import javafx.scene.control.SeparatorMenuItem; import javafx.scene.control.SeparatorMenuItem;
import javafx.scene.control.TabPane; import javafx.scene.control.TabPane;
@ -76,16 +77,12 @@ public class ModelMenuContributor {
} }
public void contributeToMenu(List<Model> selectedModels, ContextMenu menu) { public void contributeToMenu(List<Model> selectedModels, ContextMenu menu) {
startStopCallback = Optional.ofNullable(startStopCallback).orElse(m -> { startStopCallback = Optional.ofNullable(startStopCallback).orElse(m -> {});
}); followCallback = Optional.ofNullable(followCallback).orElse((m, f, s) -> {});
followCallback = Optional.ofNullable(followCallback).orElse((m, f, s) -> { ignoreCallback = Optional.ofNullable(ignoreCallback).orElse(m -> {});
}); portraitCallback = Optional.ofNullable(portraitCallback).orElse(m -> {});
ignoreCallback = Optional.ofNullable(ignoreCallback).orElse(m -> { callback = Optional.ofNullable(callback).orElse(() -> {});
});
portraitCallback = Optional.ofNullable(portraitCallback).orElse(m -> {
});
callback = Optional.ofNullable(callback).orElse(() -> {
});
addOpenInPlayer(menu, selectedModels); addOpenInPlayer(menu, selectedModels);
addOpenInBrowser(menu, selectedModels); addOpenInBrowser(menu, selectedModels);
addCopyUrl(menu, selectedModels); addCopyUrl(menu, selectedModels);
@ -108,8 +105,17 @@ public class ModelMenuContributor {
addOpenRecDir(menu, selectedModels); addOpenRecDir(menu, selectedModels);
addNotes(menu, selectedModels); addNotes(menu, selectedModels);
addPortrait(menu, selectedModels); addPortrait(menu, selectedModels);
addOpenOnCamGirlFinder(menu, selectedModels); menu.getItems().add(new SeparatorMenuItem());
addOpenOnNrToolFinder(menu, selectedModels);
// Create a submenu for the "Open On" options
Menu openOnSubMenu = new Menu("Search On ...");
addOpenOnCamGirlFinder(openOnSubMenu, selectedModels); // https://camgirlfinder.net/models?m=everlenn
addOpenOnCamWhores(openOnSubMenu, selectedModels); // https://www.camwhores.tv/search/everlenn/
addOpenOnMyCamGirl(openOnSubMenu, selectedModels); // https://mycamgirl.net/search?query=everlenn
addOpenOnNrToolFinder(openOnSubMenu, selectedModels); // https://nrtool.to/nrtool/search?s=everlenn
addOpenOnRecu(openOnSubMenu, selectedModels); // https://recu.me/performer/everlenn
// Add the submenu to the main menu
menu.getItems().add(openOnSubMenu);
} }
public ModelMenuContributor afterwards(Runnable callback) { public ModelMenuContributor afterwards(Runnable callback) {
@ -151,8 +157,8 @@ public class ModelMenuContributor {
menu.getItems().add(openInBrowser); menu.getItems().add(openInBrowser);
} }
private void addOpenOnCamGirlFinder(ContextMenu menu, List<Model> selectedModels) { private void addOpenOnCamGirlFinder(Menu menu, List<Model> selectedModels) {
var openOnCamGirlFinder = new MenuItem("Search on CamGirlFinder"); var openOnCamGirlFinder = new MenuItem("CamGirlFinder");
openOnCamGirlFinder.setOnAction(e -> { openOnCamGirlFinder.setOnAction(e -> {
for (Model model : selectedModels) { for (Model model : selectedModels) {
String preview = model.getPreview(); String preview = model.getPreview();
@ -168,9 +174,31 @@ public class ModelMenuContributor {
menu.getItems().add(openOnCamGirlFinder); menu.getItems().add(openOnCamGirlFinder);
} }
private void addOpenOnCamWhores(Menu menu, List<Model> selectedModels) {
var openOnCamWhores = new MenuItem("CamWhores");
openOnCamWhores.setOnAction(e -> {
for (Model model : selectedModels) {
String query = URLEncoder.encode(model.getName(), UTF_8);
DesktopIntegration.open("https://www.camwhores.tv/search/" + query + "/");
}
});
menu.getItems().add(openOnCamWhores);
}
private void addOpenOnMyCamGirl(Menu menu, List<Model> selectedModels) {
var openOnMyCamGirl = new MenuItem("MyCamGirl");
openOnMyCamGirl.setOnAction(e -> {
for (Model model : selectedModels) {
String query = URLEncoder.encode(model.getName(), UTF_8);
DesktopIntegration.open("https://mycamgirl.net/search?query=" + query);
}
});
menu.getItems().add(openOnMyCamGirl);
}
@SuppressWarnings("unused") // Remove when NR Tool accepts image URL and below is updated @SuppressWarnings("unused") // Remove when NR Tool accepts image URL and below is updated
private void addOpenOnNrToolFinder(ContextMenu menu, List<Model> selectedModels) { private void addOpenOnNrToolFinder(Menu menu, List<Model> selectedModels) {
var openOnNrToolFinder = new MenuItem("Search on NRTool"); var openOnNrToolFinder = new MenuItem("NR Tool");
openOnNrToolFinder.setOnAction(e -> { openOnNrToolFinder.setOnAction(e -> {
for (Model model : selectedModels) { for (Model model : selectedModels) {
String preview = model.getPreview(); String preview = model.getPreview();
@ -189,6 +217,17 @@ public class ModelMenuContributor {
menu.getItems().add(openOnNrToolFinder); menu.getItems().add(openOnNrToolFinder);
} }
private void addOpenOnRecu(Menu menu, List<Model> selectedModels) {
var openOnRecu = new MenuItem("Recu");
openOnRecu.setOnAction(e -> {
for (Model model : selectedModels) {
String query = URLEncoder.encode(model.getName(), UTF_8);
DesktopIntegration.open("https://recu.me/performer/" + query);
}
});
menu.getItems().add(openOnRecu);
}
private void addCopyUrl(ContextMenu menu, List<Model> selectedModels) { private void addCopyUrl(ContextMenu menu, List<Model> selectedModels) {
if (selectedModels == null || selectedModels.isEmpty()) { if (selectedModels == null || selectedModels.isEmpty()) {
return; return;