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.scene.Node;
import javafx.scene.control.ContextMenu;
import javafx.scene.control.Menu;
import javafx.scene.control.MenuItem;
import javafx.scene.control.SeparatorMenuItem;
import javafx.scene.control.TabPane;
@ -76,16 +77,12 @@ public class ModelMenuContributor {
}
public void contributeToMenu(List<Model> selectedModels, ContextMenu menu) {
startStopCallback = Optional.ofNullable(startStopCallback).orElse(m -> {
});
followCallback = Optional.ofNullable(followCallback).orElse((m, f, s) -> {
});
ignoreCallback = Optional.ofNullable(ignoreCallback).orElse(m -> {
});
portraitCallback = Optional.ofNullable(portraitCallback).orElse(m -> {
});
callback = Optional.ofNullable(callback).orElse(() -> {
});
startStopCallback = Optional.ofNullable(startStopCallback).orElse(m -> {});
followCallback = Optional.ofNullable(followCallback).orElse((m, f, s) -> {});
ignoreCallback = Optional.ofNullable(ignoreCallback).orElse(m -> {});
portraitCallback = Optional.ofNullable(portraitCallback).orElse(m -> {});
callback = Optional.ofNullable(callback).orElse(() -> {});
addOpenInPlayer(menu, selectedModels);
addOpenInBrowser(menu, selectedModels);
addCopyUrl(menu, selectedModels);
@ -108,8 +105,17 @@ public class ModelMenuContributor {
addOpenRecDir(menu, selectedModels);
addNotes(menu, selectedModels);
addPortrait(menu, selectedModels);
addOpenOnCamGirlFinder(menu, selectedModels);
addOpenOnNrToolFinder(menu, selectedModels);
menu.getItems().add(new SeparatorMenuItem());
// 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) {
@ -151,8 +157,8 @@ public class ModelMenuContributor {
menu.getItems().add(openInBrowser);
}
private void addOpenOnCamGirlFinder(ContextMenu menu, List<Model> selectedModels) {
var openOnCamGirlFinder = new MenuItem("Search on CamGirlFinder");
private void addOpenOnCamGirlFinder(Menu menu, List<Model> selectedModels) {
var openOnCamGirlFinder = new MenuItem("CamGirlFinder");
openOnCamGirlFinder.setOnAction(e -> {
for (Model model : selectedModels) {
String preview = model.getPreview();
@ -168,9 +174,31 @@ public class ModelMenuContributor {
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
private void addOpenOnNrToolFinder(ContextMenu menu, List<Model> selectedModels) {
var openOnNrToolFinder = new MenuItem("Search on NRTool");
private void addOpenOnNrToolFinder(Menu menu, List<Model> selectedModels) {
var openOnNrToolFinder = new MenuItem("NR Tool");
openOnNrToolFinder.setOnAction(e -> {
for (Model model : selectedModels) {
String preview = model.getPreview();
@ -189,6 +217,17 @@ public class ModelMenuContributor {
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) {
if (selectedModels == null || selectedModels.isEmpty()) {
return;