-
Settings
+
Settings
+
+
+ Select where the images will be scraped from.
+
+
+
+
+ Maximum number of images to scrape from the provider.
+
+
+
+
+ Leave 1 if you're unsure. Higher values skip images.
+
+
+
+
+
+
+ Verifies that images can be downloaded before returning URLs. Slower but prevents broken or black images.
diff --git a/public/script.js b/public/script.js
index ac6c276..08c0425 100644
--- a/public/script.js
+++ b/public/script.js
@@ -4,6 +4,10 @@ const homeTemplate = document.getElementById("home-template");
const settingsTemplate = document.getElementById("settings-template");
let imagesUrls = [];
let uuid;
+let imagesProvider = "Bing";
+let imagesOffset = 1;
+let maxImages = 1000;
+let smartMode = false;
navigate("home");
@@ -93,6 +97,26 @@ function navigate(page) {
break;
case "settings":
view.appendChild(settingsTemplate.content.cloneNode(true));
+ setProviderButton();
+ toggleSelectedListButton("provider-menu", imagesProvider);
+
+ const maxImagesInput = document.getElementById("max-images-input");
+ maxImagesInput.value = maxImages;
+ maxImagesInput.addEventListener("input", function (event) {
+ maxImages = maxImagesInput.value;
+ });
+
+ const offsetInput = document.getElementById("offset-input");
+ offsetInput.value = imagesOffset;
+ offsetInput.addEventListener("input", function (event) {
+ imagesOffset = offsetInput.value;
+ });
+
+ const smartModeCheckbox = document.getElementById("smart-mode");
+ smartModeCheckbox.checked = smartMode;
+ smartModeCheckbox.addEventListener("change", function () {
+ smartMode = this.checked;
+ });
break;
}
}
@@ -137,7 +161,7 @@ async function search() {
imagesDiv.replaceChildren();
loaderDiv.classList.toggle("show");
- const urls = await getImagesURL(searchInput.value, 1, 1000, false);
+ const urls = await getImagesURL(searchInput.value, imagesOffset, maxImages, smartMode);
loaderDiv.classList.toggle("show");
for (const url of urls) {
@@ -151,3 +175,38 @@ async function search() {
async function download() {
await downloadImages(uuid);
}
+
+function toggleProviderMenu() {
+ const providerMenu = document.getElementById("provider-menu");
+ if (providerMenu) {
+ providerMenu.classList.toggle("show");
+ }
+}
+
+async function setProviderButton() {
+ const providerButton = document.getElementById("provider-button");
+ if (providerButton) {
+ providerButton.innerHTML = `