From 8e985aea88bfdae601518db2abe2fdded127b463 Mon Sep 17 00:00:00 2001 From: Fmstrat Date: Wed, 14 Aug 2024 10:47:34 -0400 Subject: [PATCH 1/6] update to gecko driver v35 --- manage | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/manage b/manage index f83620cf5..155a1f2dd 100755 --- a/manage +++ b/manage @@ -41,7 +41,7 @@ PATH="${REPO_ROOT}/node_modules/.bin:${PATH}" PYOBJECTS="searx" PY_SETUP_EXTRAS='[test]' -GECKODRIVER_VERSION="v0.34.0" +GECKODRIVER_VERSION="v0.35.0" # SPHINXOPTS= BLACK_OPTIONS=("--target-version" "py311" "--line-length" "120" "--skip-string-normalization") BLACK_TARGETS=("--exclude" "(searx/static|searx/languages.py)" "--include" 'searxng.msg|\.pyi?$' "searx" "searxng_extra" "tests") From 45f03f1902367767ebbf98221f9ca229ada5c666 Mon Sep 17 00:00:00 2001 From: Markus Heiser Date: Sun, 11 Aug 2024 11:23:07 +0200 Subject: [PATCH 2/6] [fix] search box: clear button don't appear on mouse-copy You have to copy and paste the query without using the keyboard to replicate the issue. As soon as you press the keyboard the cross appears. [1] - [1] https://github.com/searxng/searxng/issues/3725#issuecomment-2282655272 Reported-by: @Immortality-IMT in [1] Signed-off-by: Markus Heiser --- searx/static/themes/simple/src/js/main/search.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/searx/static/themes/simple/src/js/main/search.js b/searx/static/themes/simple/src/js/main/search.js index ac1ece535..46756507e 100644 --- a/searx/static/themes/simple/src/js/main/search.js +++ b/searx/static/themes/simple/src/js/main/search.js @@ -32,7 +32,7 @@ updateClearButton(); ev.preventDefault(); }); - qinput.addEventListener('keyup', updateClearButton, false); + qinput.addEventListener('input', updateClearButton, false); } searxng.ready(function () { From 8d14d46c00a2ce897eba80de1327dd31ab5cc41a Mon Sep 17 00:00:00 2001 From: Markus Heiser Date: Sun, 11 Aug 2024 13:38:58 +0200 Subject: [PATCH 3/6] [build] /static --- searx/static/themes/simple/js/searxng.min.js | 2 +- searx/static/themes/simple/js/searxng.min.js.map | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/searx/static/themes/simple/js/searxng.min.js b/searx/static/themes/simple/js/searxng.min.js index cbede991f..00d0dde88 100644 --- a/searx/static/themes/simple/js/searxng.min.js +++ b/searx/static/themes/simple/js/searxng.min.js @@ -4,7 +4,7 @@ * (C) Copyright Contributors to the searx project (2014 - 2021). * SPDX-License-Identifier: AGPL-3.0-or-later */ -window.searxng=function(t,i){"use strict";if(t.Element){(function(e){e.matches=e.matches||e.matchesSelector||e.webkitMatchesSelector||e.msMatchesSelector||function(e){var t=this,n=(t.parentNode||t.document).querySelectorAll(e),r=-1;while(n[++r]&&n[r]!=t);return!!n[r]}})(Element.prototype)}function s(e,t,n){try{e.call(t,n)}catch(e){console.log(e)}}var a=window.searxng||{};a.on=function(r,e,o,t){t=t||false;if(typeof r!=="string"){r.addEventListener(e,o,t)}else{i.addEventListener(e,function(e){var t=e.target||e.srcElement,n=false;while(t&&t.matches&&t!==i&&!(n=t.matches(r)))t=t.parentElement;if(n)s(o,t,e)},t)}};a.ready=function(e){if(document.readyState!="loading"){e.call(t)}else{t.addEventListener("DOMContentLoaded",e.bind(t))}};a.http=function(r,o,i=null){return new Promise(function(e,t){try{var n=new XMLHttpRequest;n.open(r,o,true);n.timeout=2e4;n.onload=function(){if(n.status==200){e(n.response,n.responseType)}else{t(Error(n.statusText))}};n.onerror=function(){t(Error("Network Error"))};n.onabort=function(){t(Error("Transaction is aborted"))};n.ontimeout=function(){t(Error("Timeout"))};if(i){n.send(i)}else{n.send()}}catch(e){t(e)}})};a.loadStyle=function(e){var t=a.settings.theme_static_path+"/"+e,n="style_"+e.replace(".","_"),r=i.getElementById(n);if(r===null){r=i.createElement("link");r.setAttribute("id",n);r.setAttribute("rel","stylesheet");r.setAttribute("type","text/css");r.setAttribute("href",t);i.body.appendChild(r)}};a.loadScript=function(e,t){var n=a.settings.theme_static_path+"/"+e,r="script_"+e.replace(".","_"),o=i.getElementById(r);if(o===null){o=i.createElement("script");o.setAttribute("id",r);o.setAttribute("src",n);o.onload=t;o.onerror=function(){o.setAttribute("error","1")};i.body.appendChild(o)}else if(!o.hasAttribute("error")){try{t.apply(o,[])}catch(e){console.log(e)}}else{console.log("callback not executed : script '"+n+"' not loaded.")}};a.insertBefore=function(e,t){t.parentNode.insertBefore(e,t)};a.insertAfter=function(e,t){t.parentNode.insertAfter(e,t.nextSibling)};a.on(".close","click",function(){this.parentNode.classList.add("invisible")});function e(){for(var e of i.getElementsByTagName("body")[0].classList.values()){if(e.endsWith("_endpoint")){return e.split("_")[0]}}return""}a.endpoint=e();return a}(window,document);searxng.ready(function(){"use strict";searxng.infinite_scroll_supported="IntersectionObserver"in window&&"IntersectionObserverEntry"in window&&"intersectionRatio"in window.IntersectionObserverEntry.prototype;if(searxng.endpoint!=="results"){return}if(!searxng.infinite_scroll_supported){console.log("IntersectionObserver not supported");return}let i=document;var s=i.getElementById("results").classList.contains("only_template_images");function n(){var e=i.createElement("div");e.classList.add("loader");return e}function r(t,e){t.textContent="";e.forEach(e=>t.appendChild(e))}function o(o){var e=i.querySelector("#pagination form.next_page");if(!e){return}r(i.querySelector("#pagination"),[n()]);var t=new FormData(e);searxng.http("POST",i.querySelector("#search").getAttribute("action"),t).then(function(e){var t=(new DOMParser).parseFromString(e,"text/html");var n=t.querySelectorAll("#urls article");var r=t.querySelector("#pagination");i.querySelector("#pagination").remove();if(n.length>0&&!s){i.querySelector("#urls").appendChild(i.createElement("hr"))}n.forEach(e=>{i.querySelector("#urls").appendChild(e)});if(r){i.querySelector("#results").appendChild(r);o()}}).catch(function(e){console.log(e);var t=i.createElement("div");t.textContent=searxng.settings.translations.error_loading_next_page;t.classList.add("dialog-error");t.setAttribute("role","alert");r(i.querySelector("#pagination"),[t])})}if(searxng.settings.infinite_scroll&&searxng.infinite_scroll_supported){const a={rootMargin:"20rem"};const l="article.result:last-child";const u=new IntersectionObserver(e=>{const t=e[0];if(t.isIntersecting){u.unobserve(t.target);o(()=>u.observe(i.querySelector(l),a))}});u.observe(i.querySelector(l),a)}});searxng.ready(function(){function e(e){while(e!==undefined){if(e.classList.contains("detail")){return true}if(e.classList.contains("result")){return false}e=e.parentNode}return false}function n(e){while(e!==undefined){if(e.classList.contains("result")){return e}e=e.parentNode}return undefined}function r(e){return e&&e.classList.contains("result-images")}searxng.on(".result","click",function(t){if(!e(t.target)){i(this)(true,true);let e=n(t.target);if(r(e)){t.preventDefault();searxng.selectImage(e)}}});searxng.on(".result a","focus",function(t){if(!e(t.target)){let e=n(t.target);if(e&&e.getAttribute("data-vim-selected")===null){i(e)(true)}if(r(e)){searxng.selectImage(e)}}},true);var t={Escape:{key:"ESC",fun:a,des:"remove focus from the focused input",cat:"Control"},c:{key:"c",fun:b,des:"copy url of the selected result to the clipboard",cat:"Results"},h:{key:"h",fun:v,des:"toggle help window",cat:"Other"},i:{key:"i",fun:m,des:"focus on the search input",cat:"Control"},n:{key:"n",fun:u(),des:"go to next page",cat:"Results"},o:{key:"o",fun:g(false),des:"open search result",cat:"Results"},p:{key:"p",fun:c(),des:"go to previous page",cat:"Results"},r:{key:"r",fun:s,des:"reload page from the server",cat:"Control"},t:{key:"t",fun:g(true),des:"open the result in a new tab",cat:"Results"}};var o={default:Object.assign({ArrowLeft:{key:"←",fun:i("up"),des:"select previous search result",cat:"Results"},ArrowRight:{key:"→",fun:i("down"),des:"select next search result",cat:"Results"}},t),vim:Object.assign({b:{key:"b",fun:f(-window.innerHeight),des:"scroll one page up",cat:"Navigation"},f:{key:"f",fun:f(window.innerHeight),des:"scroll one page down",cat:"Navigation"},u:{key:"u",fun:f(-window.innerHeight/2),des:"scroll half a page up",cat:"Navigation"},d:{key:"d",fun:f(window.innerHeight/2),des:"scroll half a page down",cat:"Navigation"},g:{key:"g",fun:h(-document.body.scrollHeight,"top"),des:"scroll to the top of the page",cat:"Navigation"},v:{key:"v",fun:h(document.body.scrollHeight,"bottom"),des:"scroll to the bottom of the page",cat:"Navigation"},k:{key:"k",fun:i("up"),des:"select previous search result",cat:"Results"},j:{key:"j",fun:i("down"),des:"select next search result",cat:"Results"},y:{key:"y",fun:b,des:"copy url of the selected result to the clipboard",cat:"Results"}},t)};var d=o[searxng.settings.hotkeys]||o.default;searxng.on(document,"keydown",function(e){if(Object.prototype.hasOwnProperty.call(d,e.key)&&!e.ctrlKey&&!e.altKey&&!e.shiftKey&&!e.metaKey){var t=e.target.tagName.toLowerCase();if(e.key==="Escape"){d[e.key].fun(e)}else{if(e.target===document.body||t==="a"||t==="button"){e.preventDefault();d[e.key].fun()}}}});function i(f){return function(e,t){var n=document.querySelector(".result[data-vim-selected]"),r=f;if(n===null){n=document.querySelector(".result");if(n===null){return}if(f==="down"||f==="up"){r=n}}var o,i=document.querySelectorAll(".result");i=Array.from(i);if(typeof r!=="string"){o=r}else{switch(r){case"visible":var s=document.documentElement.scrollTop||document.body.scrollTop;var a=s+document.documentElement.clientHeight;for(var l=0;ls){break}}break;case"down":o=i[i.indexOf(n)+1]||n;break;case"up":o=i[i.indexOf(n)-1]||n;break;case"bottom":o=i[i.length-1];break;case"top":default:o=i[0]}}if(o){n.removeAttribute("data-vim-selected");o.setAttribute("data-vim-selected","true");if(!t){var d=o.querySelector("h3 a")||o.querySelector("a");if(d!==null){d.focus()}}if(!e){p()}}}}function s(){document.location.reload(true)}function a(e){const t=e.target.tagName.toLowerCase();if(document.activeElement&&(t==="input"||t==="select"||t==="textarea")){document.activeElement.blur()}else{searxng.closeDetail()}}function l(t){return function(){var e=document.querySelector(t);if(e){e.click()}}}function u(){return l('nav#pagination .next_page button[type="submit"]')}function c(){return l('nav#pagination .previous_page button[type="submit"]')}function p(){var e=document.querySelector(".result[data-vim-selected]");if(e===null){return}var t=document.documentElement.scrollTop||document.body.scrollTop,n=document.documentElement.clientHeight,r=e.offsetTop,o=r+e.clientHeight,i=120;if(e.previousElementSibling===null&&or-i){window.scroll(window.scrollX,r-i)}else{var s=t+n;if(s a")}if(e!==null){var t=e.getAttribute("href");if(n){window.open(t)}else{window.location.href=t}}}}function y(e){var n={};for(var t in d){var r=d[t];n[r.cat]=n[r.cat]||[];n[r.cat].push(r)}var o=Object.keys(n).sort(function(e,t){return n[t].length-n[e].length});if(o.length===0){return}var i='×';i+="

How to navigate SearXNG with hotkeys

";i+="";for(var s=0;s"}i+="";if(!u||l){i+=""}}i+="
";i+="

"+a[0].cat+"

";i+='
    ';for(var c in a){i+="
  • "+a[c].key+" "+a[c].des+"
  • "}i+="
";i+="
";e.innerHTML=i}function v(){var e=document.querySelector("#vim-hotkeys-help");if(e===undefined||e===null){e=document.createElement("div");e.id="vim-hotkeys-help";e.className="dialog-modal";y(e);var t=document.getElementsByTagName("body")[0];t.appendChild(e)}else{e.classList.toggle("invisible");return}}function b(){var e=document.querySelector(".result[data-vim-selected] h3 a");if(e===null)return;const t=e.getAttribute("href");navigator.clipboard.writeText(t)}searxng.scrollPageToSelected=p;searxng.selectNext=i("down");searxng.selectPrevious=i("up")});(function(e,t,n){"use strict";n.ready(function(){n.on(".searxng_init_map","click",function(e){this.classList.remove("searxng_init_map");var d=this.dataset.leafletTarget;var f=parseFloat(this.dataset.mapLon);var p=parseFloat(this.dataset.mapLat);var h=parseFloat(this.dataset.mapZoom);var m=JSON.parse(this.dataset.mapBoundingbox);var g=JSON.parse(this.dataset.mapGeojson);n.loadStyle("css/leaflet.css");n.loadScript("js/leaflet.js",function(){var e=null;if(m){var t=L.latLng(m[0],m[2]);var n=L.latLng(m[1],m[3]);e=L.latLngBounds(t,n)}var r=L.map(d);var o="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png";var i='Map data © OpenStreetMap contributors';var s=new L.TileLayer(o,{minZoom:1,maxZoom:19,attribution:i});var a="https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png";var l='Wikimedia maps | Maps data © OpenStreetMap contributors';var u=new L.TileLayer(a,{minZoom:1,maxZoom:19,attribution:l});if(e){setTimeout(function(){r.fitBounds(e,{maxZoom:17})},0)}else if(f&&p){if(h){r.setView(new L.latLng(p,f),h)}else{r.setView(new L.latLng(p,f),8)}}r.addLayer(s);var c={"OSM Mapnik":s,"OSM Wikimedia":u};L.control.layers(c).addTo(r);if(g){L.geoJson(g).addTo(r)}});e.preventDefault()})})})(window,document,window.searxng);(function(e,l,u){"use strict";if(u.endpoint!=="preferences"){return}u.ready(function(){let o=null;function e(){if(o==null){u.http("GET","engine_descriptions.json").then(function(e){o=JSON.parse(e);for(const[t,n]of Object.entries(o)){let e=l.querySelectorAll('[data-engine-name="'+t+'"] .engine-description');for(const r of e){let e=" ("+u.settings.translations.Source+": "+n[1]+")";r.innerHTML=n[0]+e}}})}}for(const a of l.querySelectorAll("[data-engine-name]")){u.on(a,"mouseenter",e)}const t=l.querySelectorAll(".enable-all-engines");const n=l.querySelectorAll(".disable-all-engines");const r=l.querySelectorAll("tbody input[type=checkbox][class~=checkbox-onoff]");const i=t=>{for(const e of r){if(e.offsetParent!==null)e.checked=!t}};for(const a of t){u.on(a,"click",()=>i(true))}for(const a of n){u.on(a,"click",()=>i(false))}const s=l.querySelector("#copy-hash");u.on(s,"click",e=>{e.preventDefault();navigator.clipboard.writeText(s.dataset.hash);s.innerText=s.dataset.copiedText})})})(window,document,window.searxng);(function(e,a,l){"use strict";if(l.endpoint!=="results"){return}l.ready(function(){a.querySelectorAll("#urls img.image").forEach(e=>e.addEventListener("error",()=>{e.style.display="none";e.error=null}));if(a.querySelector("#search_url button#copy_url")){a.querySelector("#search_url button#copy_url").style.display="block"}l.on(".btn-collapse","click",function(){var e=this.getAttribute("data-btn-text-collapsed");var t=this.getAttribute("data-btn-text-not-collapsed");var n=this.getAttribute("data-target");var r=a.querySelector(n);var o=this.innerHTML;if(this.classList.contains("collapsed")){o=o.replace(e,t)}else{o=o.replace(t,e)}this.innerHTML=o;this.classList.toggle("collapsed");r.classList.toggle("invisible")});l.on(".media-loader","click",function(){var e=this.getAttribute("data-target");var t=a.querySelector(e+" > iframe");var n=t.getAttribute("src");if(n===null||n===undefined||n===false){t.setAttribute("src",t.getAttribute("data-src"))}});l.on("#copy_url","click",function(){var e=this.parentElement.querySelector("pre");navigator.clipboard.writeText(e.innerText);this.innerText=this.dataset.copiedText});l.selectImage=function(e){if(e){const t=e.querySelector(".result-images-source img");const n=e.querySelector(".image_thumbnail");const r=e.querySelector(".detail");if(t){const o=t.getAttribute("data-src");if(o){const i=a.createElement("div");const s=new Image;i.classList.add("loader");r.appendChild(i);s.onload=e=>{t.src=o;i.remove()};s.onerror=e=>{i.remove()};s.src=o;t.src=n.src;t.removeAttribute("data-src")}}}a.getElementById("results").classList.add("image-detail-open");l.scrollPageToSelected()};l.closeDetail=function(e){a.getElementById("results").classList.remove("image-detail-open");l.scrollPageToSelected()};l.on(".result-detail-close","click",e=>{e.preventDefault();l.closeDetail()});l.on(".result-detail-previous","click",e=>{e.preventDefault();l.selectPrevious(false)});l.on(".result-detail-next","click",e=>{e.preventDefault();l.selectNext(false)});e.addEventListener("scroll",function(){var e=a.getElementById("backToTop"),t=document.documentElement.scrollTop||document.body.scrollTop,n=a.getElementById("results");if(e!==null){if(t>=100){n.classList.add("scrolling")}else{n.classList.remove("scrolling")}}},true)})})(window,document,window.searxng);(function(e,t,n){"use strict";var r="q",o;const i=window.matchMedia("only screen and (max-width: 50em)").matches;function s(){if(o.value.length>0){var e=document.getElementById("search");setTimeout(e.submit.bind(e),0)}}function a(t){var e=document.getElementById("clear_search");var n=function(){if(t.value.length===0){e.classList.add("empty")}else{e.classList.remove("empty")}};n();e.addEventListener("click",function(e){t.value="";t.focus();n();e.preventDefault()});t.addEventListener("keyup",n,false)}n.ready(function(){o=t.getElementById(r);if(o!==null){a(o);if(n.settings.autocomplete_provider){n.autocomplete=AutoComplete.call(e,{Url:"./autocompleter",EmptyMessage:n.settings.translations.no_item_found,HttpMethod:n.settings.http_method,HttpHeaders:{"Content-type":"application/x-www-form-urlencoded","X-Requested-With":"XMLHttpRequest"},MinChars:n.settings.autocomplete_min,Delay:300,_Position:function(){},_Open:function(){var t=this;Array.prototype.forEach.call(this.DOMResults.getElementsByTagName("li"),function(e){if(e.getAttribute("class")!="locked"){e.onmousedown=function(){t._Select(e)}}})},_Select:function(e){AutoComplete.defaults._Select.call(this,e);var t=e.closest("form");if(t){t.submit()}},_MinChars:function(){if(this.Input.value.indexOf("!")>-1){return 0}else{return AutoComplete.defaults._MinChars.call(this)}},KeyboardMappings:Object.assign({},AutoComplete.defaults.KeyboardMappings,{KeyUpAndDown_up:Object.assign({},AutoComplete.defaults.KeyboardMappings.KeyUpAndDown_up,{Callback:function(e){AutoComplete.defaults.KeyboardMappings.KeyUpAndDown_up.Callback.call(this,e);var t=this.DOMResults.querySelector("li.active");if(t){AutoComplete.defaults._Select.call(this,t)}}}),Tab:Object.assign({},AutoComplete.defaults.KeyboardMappings.Enter,{Conditions:[{Is:9,Not:false}],Callback:function(e){if(this.DOMResults.getAttribute("class").indexOf("open")!=-1){var t=this.DOMResults.querySelector("li.active");if(t!==null){AutoComplete.defaults._Select.call(this,t);e.preventDefault()}}}})})},"#"+r)}AutoComplete.prototype.ajax=function(e,t,n){if(n===void 0){n=true}if(e.$AjaxTimer){window.clearTimeout(e.$AjaxTimer)}if(n===true){e.$AjaxTimer=window.setTimeout(AutoComplete.prototype.ajax.bind(null,e,t,false),e.Delay)}else{if(e.Request){e.Request.abort()}e.Request=t;e.Request.send(encodeURIComponent(e._QueryArg())+"="+encodeURIComponent(e._Pre()))}};if(!i&&document.querySelector(".index_endpoint")){o.focus()}}if(o!==null&&n.settings.search_on_category_select&&t.querySelector(".search_filters")!=null){n.on(t.getElementById("safesearch"),"change",s);n.on(t.getElementById("time_range"),"change",s);n.on(t.getElementById("language"),"change",s)}try{t.querySelector("html:has(body)")}catch(e){for(let e of t.querySelectorAll("button.category_button")){n.on(e,"click",()=>{const e=t.querySelector("button.category_button.selected");console.log(e);e.classList.remove("selected")})}}})})(window,document,window.searxng);(function(e){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=e()}else if(typeof define==="function"&&define.amd){define([],e)}else{var t;if(typeof window!=="undefined"){t=window}else if(typeof global!=="undefined"){t=global}else if(typeof self!=="undefined"){t=self}else{t=this}t.AutoComplete=e()}})(function(){var e,t,n;return function(){function c(i,s,a){function l(n,e){if(!s[n]){if(!i[n]){var t="function"==typeof require&&require;if(!e&&t)return t(n,!0);if(u)return u(n,!0);var r=new Error("Cannot find module '"+n+"'");throw r.code="MODULE_NOT_FOUND",r}var o=s[n]={exports:{}};i[n][0].call(o.exports,function(e){var t=i[n][1][e];return l(t||e)},o,o.exports,c,i,s,a)}return s[n].exports}for(var u="function"==typeof require&&require,e=0;et.appendChild(e))}function o(o){var e=i.querySelector("#pagination form.next_page");if(!e){return}r(i.querySelector("#pagination"),[n()]);var t=new FormData(e);searxng.http("POST",i.querySelector("#search").getAttribute("action"),t).then(function(e){var t=(new DOMParser).parseFromString(e,"text/html");var n=t.querySelectorAll("#urls article");var r=t.querySelector("#pagination");i.querySelector("#pagination").remove();if(n.length>0&&!s){i.querySelector("#urls").appendChild(i.createElement("hr"))}n.forEach(e=>{i.querySelector("#urls").appendChild(e)});if(r){i.querySelector("#results").appendChild(r);o()}}).catch(function(e){console.log(e);var t=i.createElement("div");t.textContent=searxng.settings.translations.error_loading_next_page;t.classList.add("dialog-error");t.setAttribute("role","alert");r(i.querySelector("#pagination"),[t])})}if(searxng.settings.infinite_scroll&&searxng.infinite_scroll_supported){const a={rootMargin:"20rem"};const l="article.result:last-child";const u=new IntersectionObserver(e=>{const t=e[0];if(t.isIntersecting){u.unobserve(t.target);o(()=>u.observe(i.querySelector(l),a))}});u.observe(i.querySelector(l),a)}});searxng.ready(function(){function e(e){while(e!==undefined){if(e.classList.contains("detail")){return true}if(e.classList.contains("result")){return false}e=e.parentNode}return false}function n(e){while(e!==undefined){if(e.classList.contains("result")){return e}e=e.parentNode}return undefined}function r(e){return e&&e.classList.contains("result-images")}searxng.on(".result","click",function(t){if(!e(t.target)){i(this)(true,true);let e=n(t.target);if(r(e)){t.preventDefault();searxng.selectImage(e)}}});searxng.on(".result a","focus",function(t){if(!e(t.target)){let e=n(t.target);if(e&&e.getAttribute("data-vim-selected")===null){i(e)(true)}if(r(e)){searxng.selectImage(e)}}},true);var t={Escape:{key:"ESC",fun:a,des:"remove focus from the focused input",cat:"Control"},c:{key:"c",fun:b,des:"copy url of the selected result to the clipboard",cat:"Results"},h:{key:"h",fun:v,des:"toggle help window",cat:"Other"},i:{key:"i",fun:m,des:"focus on the search input",cat:"Control"},n:{key:"n",fun:u(),des:"go to next page",cat:"Results"},o:{key:"o",fun:g(false),des:"open search result",cat:"Results"},p:{key:"p",fun:c(),des:"go to previous page",cat:"Results"},r:{key:"r",fun:s,des:"reload page from the server",cat:"Control"},t:{key:"t",fun:g(true),des:"open the result in a new tab",cat:"Results"}};var o={default:Object.assign({ArrowLeft:{key:"←",fun:i("up"),des:"select previous search result",cat:"Results"},ArrowRight:{key:"→",fun:i("down"),des:"select next search result",cat:"Results"}},t),vim:Object.assign({b:{key:"b",fun:f(-window.innerHeight),des:"scroll one page up",cat:"Navigation"},f:{key:"f",fun:f(window.innerHeight),des:"scroll one page down",cat:"Navigation"},u:{key:"u",fun:f(-window.innerHeight/2),des:"scroll half a page up",cat:"Navigation"},d:{key:"d",fun:f(window.innerHeight/2),des:"scroll half a page down",cat:"Navigation"},g:{key:"g",fun:h(-document.body.scrollHeight,"top"),des:"scroll to the top of the page",cat:"Navigation"},v:{key:"v",fun:h(document.body.scrollHeight,"bottom"),des:"scroll to the bottom of the page",cat:"Navigation"},k:{key:"k",fun:i("up"),des:"select previous search result",cat:"Results"},j:{key:"j",fun:i("down"),des:"select next search result",cat:"Results"},y:{key:"y",fun:b,des:"copy url of the selected result to the clipboard",cat:"Results"}},t)};var d=o[searxng.settings.hotkeys]||o.default;searxng.on(document,"keydown",function(e){if(Object.prototype.hasOwnProperty.call(d,e.key)&&!e.ctrlKey&&!e.altKey&&!e.shiftKey&&!e.metaKey){var t=e.target.tagName.toLowerCase();if(e.key==="Escape"){d[e.key].fun(e)}else{if(e.target===document.body||t==="a"||t==="button"){e.preventDefault();d[e.key].fun()}}}});function i(f){return function(e,t){var n=document.querySelector(".result[data-vim-selected]"),r=f;if(n===null){n=document.querySelector(".result");if(n===null){return}if(f==="down"||f==="up"){r=n}}var o,i=document.querySelectorAll(".result");i=Array.from(i);if(typeof r!=="string"){o=r}else{switch(r){case"visible":var s=document.documentElement.scrollTop||document.body.scrollTop;var a=s+document.documentElement.clientHeight;for(var l=0;ls){break}}break;case"down":o=i[i.indexOf(n)+1]||n;break;case"up":o=i[i.indexOf(n)-1]||n;break;case"bottom":o=i[i.length-1];break;case"top":default:o=i[0]}}if(o){n.removeAttribute("data-vim-selected");o.setAttribute("data-vim-selected","true");if(!t){var d=o.querySelector("h3 a")||o.querySelector("a");if(d!==null){d.focus()}}if(!e){p()}}}}function s(){document.location.reload(true)}function a(e){const t=e.target.tagName.toLowerCase();if(document.activeElement&&(t==="input"||t==="select"||t==="textarea")){document.activeElement.blur()}else{searxng.closeDetail()}}function l(t){return function(){var e=document.querySelector(t);if(e){e.click()}}}function u(){return l('nav#pagination .next_page button[type="submit"]')}function c(){return l('nav#pagination .previous_page button[type="submit"]')}function p(){var e=document.querySelector(".result[data-vim-selected]");if(e===null){return}var t=document.documentElement.scrollTop||document.body.scrollTop,n=document.documentElement.clientHeight,r=e.offsetTop,o=r+e.clientHeight,i=120;if(e.previousElementSibling===null&&or-i){window.scroll(window.scrollX,r-i)}else{var s=t+n;if(s a")}if(e!==null){var t=e.getAttribute("href");if(n){window.open(t)}else{window.location.href=t}}}}function y(e){var n={};for(var t in d){var r=d[t];n[r.cat]=n[r.cat]||[];n[r.cat].push(r)}var o=Object.keys(n).sort(function(e,t){return n[t].length-n[e].length});if(o.length===0){return}var i='×';i+="

How to navigate SearXNG with hotkeys

";i+="";for(var s=0;s"}i+="";if(!u||l){i+=""}}i+="
";i+="

"+a[0].cat+"

";i+='
    ';for(var c in a){i+="
  • "+a[c].key+" "+a[c].des+"
  • "}i+="
";i+="
";e.innerHTML=i}function v(){var e=document.querySelector("#vim-hotkeys-help");if(e===undefined||e===null){e=document.createElement("div");e.id="vim-hotkeys-help";e.className="dialog-modal";y(e);var t=document.getElementsByTagName("body")[0];t.appendChild(e)}else{e.classList.toggle("invisible");return}}function b(){var e=document.querySelector(".result[data-vim-selected] h3 a");if(e===null)return;const t=e.getAttribute("href");navigator.clipboard.writeText(t)}searxng.scrollPageToSelected=p;searxng.selectNext=i("down");searxng.selectPrevious=i("up")});(function(e,t,n){"use strict";n.ready(function(){n.on(".searxng_init_map","click",function(e){this.classList.remove("searxng_init_map");var d=this.dataset.leafletTarget;var f=parseFloat(this.dataset.mapLon);var p=parseFloat(this.dataset.mapLat);var h=parseFloat(this.dataset.mapZoom);var m=JSON.parse(this.dataset.mapBoundingbox);var g=JSON.parse(this.dataset.mapGeojson);n.loadStyle("css/leaflet.css");n.loadScript("js/leaflet.js",function(){var e=null;if(m){var t=L.latLng(m[0],m[2]);var n=L.latLng(m[1],m[3]);e=L.latLngBounds(t,n)}var r=L.map(d);var o="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png";var i='Map data © OpenStreetMap contributors';var s=new L.TileLayer(o,{minZoom:1,maxZoom:19,attribution:i});var a="https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png";var l='Wikimedia maps | Maps data © OpenStreetMap contributors';var u=new L.TileLayer(a,{minZoom:1,maxZoom:19,attribution:l});if(e){setTimeout(function(){r.fitBounds(e,{maxZoom:17})},0)}else if(f&&p){if(h){r.setView(new L.latLng(p,f),h)}else{r.setView(new L.latLng(p,f),8)}}r.addLayer(s);var c={"OSM Mapnik":s,"OSM Wikimedia":u};L.control.layers(c).addTo(r);if(g){L.geoJson(g).addTo(r)}});e.preventDefault()})})})(window,document,window.searxng);(function(e,l,u){"use strict";if(u.endpoint!=="preferences"){return}u.ready(function(){let o=null;function e(){if(o==null){u.http("GET","engine_descriptions.json").then(function(e){o=JSON.parse(e);for(const[t,n]of Object.entries(o)){let e=l.querySelectorAll('[data-engine-name="'+t+'"] .engine-description');for(const r of e){let e=" ("+u.settings.translations.Source+": "+n[1]+")";r.innerHTML=n[0]+e}}})}}for(const a of l.querySelectorAll("[data-engine-name]")){u.on(a,"mouseenter",e)}const t=l.querySelectorAll(".enable-all-engines");const n=l.querySelectorAll(".disable-all-engines");const r=l.querySelectorAll("tbody input[type=checkbox][class~=checkbox-onoff]");const i=t=>{for(const e of r){if(e.offsetParent!==null)e.checked=!t}};for(const a of t){u.on(a,"click",()=>i(true))}for(const a of n){u.on(a,"click",()=>i(false))}const s=l.querySelector("#copy-hash");u.on(s,"click",e=>{e.preventDefault();navigator.clipboard.writeText(s.dataset.hash);s.innerText=s.dataset.copiedText})})})(window,document,window.searxng);(function(e,a,l){"use strict";if(l.endpoint!=="results"){return}l.ready(function(){a.querySelectorAll("#urls img.image").forEach(e=>e.addEventListener("error",()=>{e.style.display="none";e.error=null}));if(a.querySelector("#search_url button#copy_url")){a.querySelector("#search_url button#copy_url").style.display="block"}l.on(".btn-collapse","click",function(){var e=this.getAttribute("data-btn-text-collapsed");var t=this.getAttribute("data-btn-text-not-collapsed");var n=this.getAttribute("data-target");var r=a.querySelector(n);var o=this.innerHTML;if(this.classList.contains("collapsed")){o=o.replace(e,t)}else{o=o.replace(t,e)}this.innerHTML=o;this.classList.toggle("collapsed");r.classList.toggle("invisible")});l.on(".media-loader","click",function(){var e=this.getAttribute("data-target");var t=a.querySelector(e+" > iframe");var n=t.getAttribute("src");if(n===null||n===undefined||n===false){t.setAttribute("src",t.getAttribute("data-src"))}});l.on("#copy_url","click",function(){var e=this.parentElement.querySelector("pre");navigator.clipboard.writeText(e.innerText);this.innerText=this.dataset.copiedText});l.selectImage=function(e){if(e){const t=e.querySelector(".result-images-source img");const n=e.querySelector(".image_thumbnail");const r=e.querySelector(".detail");if(t){const o=t.getAttribute("data-src");if(o){const i=a.createElement("div");const s=new Image;i.classList.add("loader");r.appendChild(i);s.onload=e=>{t.src=o;i.remove()};s.onerror=e=>{i.remove()};s.src=o;t.src=n.src;t.removeAttribute("data-src")}}}a.getElementById("results").classList.add("image-detail-open");l.scrollPageToSelected()};l.closeDetail=function(e){a.getElementById("results").classList.remove("image-detail-open");l.scrollPageToSelected()};l.on(".result-detail-close","click",e=>{e.preventDefault();l.closeDetail()});l.on(".result-detail-previous","click",e=>{e.preventDefault();l.selectPrevious(false)});l.on(".result-detail-next","click",e=>{e.preventDefault();l.selectNext(false)});e.addEventListener("scroll",function(){var e=a.getElementById("backToTop"),t=document.documentElement.scrollTop||document.body.scrollTop,n=a.getElementById("results");if(e!==null){if(t>=100){n.classList.add("scrolling")}else{n.classList.remove("scrolling")}}},true)})})(window,document,window.searxng);(function(e,t,n){"use strict";var r="q",o;const i=window.matchMedia("only screen and (max-width: 50em)").matches;function s(){if(o.value.length>0){var e=document.getElementById("search");setTimeout(e.submit.bind(e),0)}}function a(t){var e=document.getElementById("clear_search");var n=function(){if(t.value.length===0){e.classList.add("empty")}else{e.classList.remove("empty")}};n();e.addEventListener("click",function(e){t.value="";t.focus();n();e.preventDefault()});t.addEventListener("input",n,false)}n.ready(function(){o=t.getElementById(r);if(o!==null){a(o);if(n.settings.autocomplete_provider){n.autocomplete=AutoComplete.call(e,{Url:"./autocompleter",EmptyMessage:n.settings.translations.no_item_found,HttpMethod:n.settings.http_method,HttpHeaders:{"Content-type":"application/x-www-form-urlencoded","X-Requested-With":"XMLHttpRequest"},MinChars:n.settings.autocomplete_min,Delay:300,_Position:function(){},_Open:function(){var t=this;Array.prototype.forEach.call(this.DOMResults.getElementsByTagName("li"),function(e){if(e.getAttribute("class")!="locked"){e.onmousedown=function(){t._Select(e)}}})},_Select:function(e){AutoComplete.defaults._Select.call(this,e);var t=e.closest("form");if(t){t.submit()}},_MinChars:function(){if(this.Input.value.indexOf("!")>-1){return 0}else{return AutoComplete.defaults._MinChars.call(this)}},KeyboardMappings:Object.assign({},AutoComplete.defaults.KeyboardMappings,{KeyUpAndDown_up:Object.assign({},AutoComplete.defaults.KeyboardMappings.KeyUpAndDown_up,{Callback:function(e){AutoComplete.defaults.KeyboardMappings.KeyUpAndDown_up.Callback.call(this,e);var t=this.DOMResults.querySelector("li.active");if(t){AutoComplete.defaults._Select.call(this,t)}}}),Tab:Object.assign({},AutoComplete.defaults.KeyboardMappings.Enter,{Conditions:[{Is:9,Not:false}],Callback:function(e){if(this.DOMResults.getAttribute("class").indexOf("open")!=-1){var t=this.DOMResults.querySelector("li.active");if(t!==null){AutoComplete.defaults._Select.call(this,t);e.preventDefault()}}}})})},"#"+r)}AutoComplete.prototype.ajax=function(e,t,n){if(n===void 0){n=true}if(e.$AjaxTimer){window.clearTimeout(e.$AjaxTimer)}if(n===true){e.$AjaxTimer=window.setTimeout(AutoComplete.prototype.ajax.bind(null,e,t,false),e.Delay)}else{if(e.Request){e.Request.abort()}e.Request=t;e.Request.send(encodeURIComponent(e._QueryArg())+"="+encodeURIComponent(e._Pre()))}};if(!i&&document.querySelector(".index_endpoint")){o.focus()}}if(o!==null&&n.settings.search_on_category_select&&t.querySelector(".search_filters")!=null){n.on(t.getElementById("safesearch"),"change",s);n.on(t.getElementById("time_range"),"change",s);n.on(t.getElementById("language"),"change",s)}try{t.querySelector("html:has(body)")}catch(e){for(let e of t.querySelectorAll("button.category_button")){n.on(e,"click",()=>{const e=t.querySelector("button.category_button.selected");console.log(e);e.classList.remove("selected")})}}})})(window,document,window.searxng);(function(e){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=e()}else if(typeof define==="function"&&define.amd){define([],e)}else{var t;if(typeof window!=="undefined"){t=window}else if(typeof global!=="undefined"){t=global}else if(typeof self!=="undefined"){t=self}else{t=this}t.AutoComplete=e()}})(function(){var e,t,n;return function(){function c(i,s,a){function l(n,e){if(!s[n]){if(!i[n]){var t="function"==typeof require&&require;if(!e&&t)return t(n,!0);if(u)return u(n,!0);var r=new Error("Cannot find module '"+n+"'");throw r.code="MODULE_NOT_FOUND",r}var o=s[n]={exports:{}};i[n][0].call(o.exports,function(e){var t=i[n][1][e];return l(t||e)},o,o.exports,c,i,s,a)}return s[n].exports}for(var u="function"==typeof require&&require,e=0;e element.appendChild(child));\n }\n\n function loadNextPage (callback) {\n var form = d.querySelector('#pagination form.next_page');\n if (!form) {\n return\n }\n replaceChildrenWith(d.querySelector('#pagination'), [ newLoadSpinner() ]);\n var formData = new FormData(form);\n searxng.http('POST', d.querySelector('#search').getAttribute('action'), formData).then(\n function (response) {\n var nextPageDoc = new DOMParser().parseFromString(response, 'text/html');\n var articleList = nextPageDoc.querySelectorAll('#urls article');\n var paginationElement = nextPageDoc.querySelector('#pagination');\n d.querySelector('#pagination').remove();\n if (articleList.length > 0 && !onlyImages) {\n // do not add
element when there are only images\n d.querySelector('#urls').appendChild(d.createElement('hr'));\n }\n articleList.forEach(articleElement => {\n d.querySelector('#urls').appendChild(articleElement);\n });\n if (paginationElement) {\n d.querySelector('#results').appendChild(paginationElement);\n callback();\n }\n }\n ).catch(\n function (err) {\n console.log(err);\n var e = d.createElement('div');\n e.textContent = searxng.settings.translations.error_loading_next_page;\n e.classList.add('dialog-error');\n e.setAttribute('role', 'alert');\n replaceChildrenWith(d.querySelector('#pagination'), [ e ]);\n }\n )\n }\n\n if (searxng.settings.infinite_scroll && searxng.infinite_scroll_supported) {\n const intersectionObserveOptions = {\n rootMargin: \"20rem\",\n };\n const observedSelector = 'article.result:last-child';\n const observer = new IntersectionObserver(entries => {\n const paginationEntry = entries[0];\n if (paginationEntry.isIntersecting) {\n observer.unobserve(paginationEntry.target);\n loadNextPage(() => observer.observe(d.querySelector(observedSelector), intersectionObserveOptions));\n }\n });\n observer.observe(d.querySelector(observedSelector), intersectionObserveOptions);\n }\n\n});\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n/* global searxng */\n\nsearxng.ready(function () {\n\n function isElementInDetail (el) {\n while (el !== undefined) {\n if (el.classList.contains('detail')) {\n return true;\n }\n if (el.classList.contains('result')) {\n // we found a result, no need to go to the root of the document:\n // el is not inside a
element\n return false;\n }\n el = el.parentNode;\n }\n return false;\n }\n\n function getResultElement (el) {\n while (el !== undefined) {\n if (el.classList.contains('result')) {\n return el;\n }\n el = el.parentNode;\n }\n return undefined;\n }\n\n function isImageResult (resultElement) {\n return resultElement && resultElement.classList.contains('result-images');\n }\n\n searxng.on('.result', 'click', function (e) {\n if (!isElementInDetail(e.target)) {\n highlightResult(this)(true, true);\n let resultElement = getResultElement(e.target);\n if (isImageResult(resultElement)) {\n e.preventDefault();\n searxng.selectImage(resultElement);\n }\n }\n });\n\n searxng.on('.result a', 'focus', function (e) {\n if (!isElementInDetail(e.target)) {\n let resultElement = getResultElement(e.target);\n if (resultElement && resultElement.getAttribute(\"data-vim-selected\") === null) {\n highlightResult(resultElement)(true);\n }\n if (isImageResult(resultElement)) {\n searxng.selectImage(resultElement);\n }\n }\n }, true);\n\n /* common base for layouts */\n var baseKeyBinding = {\n 'Escape': {\n key: 'ESC',\n fun: removeFocus,\n des: 'remove focus from the focused input',\n cat: 'Control'\n },\n 'c': {\n key: 'c',\n fun: copyURLToClipboard,\n des: 'copy url of the selected result to the clipboard',\n cat: 'Results'\n },\n 'h': {\n key: 'h',\n fun: toggleHelp,\n des: 'toggle help window',\n cat: 'Other'\n },\n 'i': {\n key: 'i',\n fun: searchInputFocus,\n des: 'focus on the search input',\n cat: 'Control'\n },\n 'n': {\n key: 'n',\n fun: GoToNextPage(),\n des: 'go to next page',\n cat: 'Results'\n },\n 'o': {\n key: 'o',\n fun: openResult(false),\n des: 'open search result',\n cat: 'Results'\n },\n 'p': {\n key: 'p',\n fun: GoToPreviousPage(),\n des: 'go to previous page',\n cat: 'Results'\n },\n 'r': {\n key: 'r',\n fun: reloadPage,\n des: 'reload page from the server',\n cat: 'Control'\n },\n 't': {\n key: 't',\n fun: openResult(true),\n des: 'open the result in a new tab',\n cat: 'Results'\n },\n };\n var keyBindingLayouts = {\n\n \"default\": Object.assign(\n { /* SearXNG layout */\n 'ArrowLeft': {\n key: '←',\n fun: highlightResult('up'),\n des: 'select previous search result',\n cat: 'Results'\n },\n 'ArrowRight': {\n key: '→',\n fun: highlightResult('down'),\n des: 'select next search result',\n cat: 'Results'\n },\n }, baseKeyBinding),\n\n 'vim': Object.assign(\n { /* Vim-like Key Layout. */\n 'b': {\n key: 'b',\n fun: scrollPage(-window.innerHeight),\n des: 'scroll one page up',\n cat: 'Navigation'\n },\n 'f': {\n key: 'f',\n fun: scrollPage(window.innerHeight),\n des: 'scroll one page down',\n cat: 'Navigation'\n },\n 'u': {\n key: 'u',\n fun: scrollPage(-window.innerHeight / 2),\n des: 'scroll half a page up',\n cat: 'Navigation'\n },\n 'd': {\n key: 'd',\n fun: scrollPage(window.innerHeight / 2),\n des: 'scroll half a page down',\n cat: 'Navigation'\n },\n 'g': {\n key: 'g',\n fun: scrollPageTo(-document.body.scrollHeight, 'top'),\n des: 'scroll to the top of the page',\n cat: 'Navigation'\n },\n 'v': {\n key: 'v',\n fun: scrollPageTo(document.body.scrollHeight, 'bottom'),\n des: 'scroll to the bottom of the page',\n cat: 'Navigation'\n },\n 'k': {\n key: 'k',\n fun: highlightResult('up'),\n des: 'select previous search result',\n cat: 'Results'\n },\n 'j': {\n key: 'j',\n fun: highlightResult('down'),\n des: 'select next search result',\n cat: 'Results'\n },\n 'y': {\n key: 'y',\n fun: copyURLToClipboard,\n des: 'copy url of the selected result to the clipboard',\n cat: 'Results'\n },\n }, baseKeyBinding)\n }\n\n var keyBindings = keyBindingLayouts[searxng.settings.hotkeys] || keyBindingLayouts.default;\n\n searxng.on(document, \"keydown\", function (e) {\n // check for modifiers so we don't break browser's hotkeys\n if (\n Object.prototype.hasOwnProperty.call(keyBindings, e.key)\n && !e.ctrlKey && !e.altKey\n && !e.shiftKey && !e.metaKey\n ) {\n var tagName = e.target.tagName.toLowerCase();\n if (e.key === 'Escape') {\n keyBindings[e.key].fun(e);\n } else {\n if (e.target === document.body || tagName === 'a' || tagName === 'button') {\n e.preventDefault();\n keyBindings[e.key].fun();\n }\n }\n }\n });\n\n function highlightResult (which) {\n return function (noScroll, keepFocus) {\n var current = document.querySelector('.result[data-vim-selected]'),\n effectiveWhich = which;\n if (current === null) {\n // no selection : choose the first one\n current = document.querySelector('.result');\n if (current === null) {\n // no first one : there are no results\n return;\n }\n // replace up/down actions by selecting first one\n if (which === \"down\" || which === \"up\") {\n effectiveWhich = current;\n }\n }\n\n var next, results = document.querySelectorAll('.result');\n results = Array.from(results); // convert NodeList to Array for further use\n\n if (typeof effectiveWhich !== 'string') {\n next = effectiveWhich;\n } else {\n switch (effectiveWhich) {\n case 'visible':\n var top = document.documentElement.scrollTop || document.body.scrollTop;\n var bot = top + document.documentElement.clientHeight;\n\n for (var i = 0; i < results.length; i++) {\n next = results[i];\n var etop = next.offsetTop;\n var ebot = etop + next.clientHeight;\n\n if ((ebot <= bot) && (etop > top)) {\n break;\n }\n }\n break;\n case 'down':\n next = results[results.indexOf(current) + 1] || current;\n break;\n case 'up':\n next = results[results.indexOf(current) - 1] || current;\n break;\n case 'bottom':\n next = results[results.length - 1];\n break;\n case 'top':\n /* falls through */\n default:\n next = results[0];\n }\n }\n\n if (next) {\n current.removeAttribute('data-vim-selected');\n next.setAttribute('data-vim-selected', 'true');\n if (!keepFocus) {\n var link = next.querySelector('h3 a') || next.querySelector('a');\n if (link !== null) {\n link.focus();\n }\n }\n if (!noScroll) {\n scrollPageToSelected();\n }\n }\n };\n }\n\n function reloadPage () {\n document.location.reload(true);\n }\n\n function removeFocus (e) {\n const tagName = e.target.tagName.toLowerCase();\n if (document.activeElement && (tagName === 'input' || tagName === 'select' || tagName === 'textarea')) {\n document.activeElement.blur();\n } else {\n searxng.closeDetail();\n }\n }\n\n function pageButtonClick (css_selector) {\n return function () {\n var button = document.querySelector(css_selector);\n if (button) {\n button.click();\n }\n };\n }\n\n function GoToNextPage () {\n return pageButtonClick('nav#pagination .next_page button[type=\"submit\"]');\n }\n\n function GoToPreviousPage () {\n return pageButtonClick('nav#pagination .previous_page button[type=\"submit\"]');\n }\n\n function scrollPageToSelected () {\n var sel = document.querySelector('.result[data-vim-selected]');\n if (sel === null) {\n return;\n }\n var wtop = document.documentElement.scrollTop || document.body.scrollTop,\n wheight = document.documentElement.clientHeight,\n etop = sel.offsetTop,\n ebot = etop + sel.clientHeight,\n offset = 120;\n // first element ?\n if ((sel.previousElementSibling === null) && (ebot < wheight)) {\n // set to the top of page if the first element\n // is fully included in the viewport\n window.scroll(window.scrollX, 0);\n return;\n }\n if (wtop > (etop - offset)) {\n window.scroll(window.scrollX, etop - offset);\n } else {\n var wbot = wtop + wheight;\n if (wbot < (ebot + offset)) {\n window.scroll(window.scrollX, ebot - wheight + offset);\n }\n }\n }\n\n function scrollPage (amount) {\n return function () {\n window.scrollBy(0, amount);\n highlightResult('visible')();\n };\n }\n\n function scrollPageTo (position, nav) {\n return function () {\n window.scrollTo(0, position);\n highlightResult(nav)();\n };\n }\n\n function searchInputFocus () {\n window.scrollTo(0, 0);\n var q = document.querySelector('#q');\n q.focus();\n if (q.setSelectionRange) {\n var len = q.value.length;\n q.setSelectionRange(len, len);\n }\n }\n\n function openResult (newTab) {\n return function () {\n var link = document.querySelector('.result[data-vim-selected] h3 a');\n if (link === null) {\n link = document.querySelector('.result[data-vim-selected] > a');\n }\n if (link !== null) {\n var url = link.getAttribute('href');\n if (newTab) {\n window.open(url);\n } else {\n window.location.href = url;\n }\n }\n };\n }\n\n function initHelpContent (divElement) {\n var categories = {};\n\n for (var k in keyBindings) {\n var key = keyBindings[k];\n categories[key.cat] = categories[key.cat] || [];\n categories[key.cat].push(key);\n }\n\n var sorted = Object.keys(categories).sort(function (a, b) {\n return categories[b].length - categories[a].length;\n });\n\n if (sorted.length === 0) {\n return;\n }\n\n var html = '×';\n html += '

How to navigate SearXNG with hotkeys

';\n html += '';\n\n for (var i = 0; i < sorted.length; i++) {\n var cat = categories[sorted[i]];\n\n var lastCategory = i === (sorted.length - 1);\n var first = i % 2 === 0;\n\n if (first) {\n html += '';\n }\n html += ''; // col-sm-*\n\n if (!first || lastCategory) {\n html += ''; // row\n }\n }\n\n html += '
';\n\n html += '

' + cat[0].cat + '

';\n html += '
    ';\n\n for (var cj in cat) {\n html += '
  • ' + cat[cj].key + ' ' + cat[cj].des + '
  • ';\n }\n\n html += '
';\n html += '
';\n\n divElement.innerHTML = html;\n }\n\n function toggleHelp () {\n var helpPanel = document.querySelector('#vim-hotkeys-help');\n if (helpPanel === undefined || helpPanel === null) {\n // first call\n helpPanel = document.createElement('div');\n helpPanel.id = 'vim-hotkeys-help';\n helpPanel.className = 'dialog-modal';\n initHelpContent(helpPanel);\n var body = document.getElementsByTagName('body')[0];\n body.appendChild(helpPanel);\n } else {\n // togggle hidden\n helpPanel.classList.toggle('invisible');\n return;\n }\n }\n\n function copyURLToClipboard () {\n var currentUrlElement = document.querySelector('.result[data-vim-selected] h3 a');\n if (currentUrlElement === null) return;\n\n const url = currentUrlElement.getAttribute('href');\n navigator.clipboard.writeText(url);\n }\n\n searxng.scrollPageToSelected = scrollPageToSelected;\n searxng.selectNext = highlightResult('down');\n searxng.selectPrevious = highlightResult('up');\n});\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n/* global L */\n(function (w, d, searxng) {\n 'use strict';\n\n searxng.ready(function () {\n searxng.on('.searxng_init_map', 'click', function (event) {\n // no more request\n this.classList.remove(\"searxng_init_map\");\n\n //\n var leaflet_target = this.dataset.leafletTarget;\n var map_lon = parseFloat(this.dataset.mapLon);\n var map_lat = parseFloat(this.dataset.mapLat);\n var map_zoom = parseFloat(this.dataset.mapZoom);\n var map_boundingbox = JSON.parse(this.dataset.mapBoundingbox);\n var map_geojson = JSON.parse(this.dataset.mapGeojson);\n\n searxng.loadStyle('css/leaflet.css');\n searxng.loadScript('js/leaflet.js', function () {\n var map_bounds = null;\n if (map_boundingbox) {\n var southWest = L.latLng(map_boundingbox[0], map_boundingbox[2]);\n var northEast = L.latLng(map_boundingbox[1], map_boundingbox[3]);\n map_bounds = L.latLngBounds(southWest, northEast);\n }\n\n // init map\n var map = L.map(leaflet_target);\n // create the tile layer with correct attribution\n var osmMapnikUrl = 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png';\n var osmMapnikAttrib = 'Map data © OpenStreetMap contributors';\n var osmMapnik = new L.TileLayer(osmMapnikUrl, {minZoom: 1, maxZoom: 19, attribution: osmMapnikAttrib});\n var osmWikimediaUrl = 'https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png';\n var osmWikimediaAttrib = 'Wikimedia maps | Maps data © OpenStreetMap contributors';\n var osmWikimedia = new L.TileLayer(osmWikimediaUrl, {minZoom: 1, maxZoom: 19, attribution: osmWikimediaAttrib});\n // init map view\n if (map_bounds) {\n // TODO hack: https://github.com/Leaflet/Leaflet/issues/2021\n // Still useful ?\n setTimeout(function () {\n map.fitBounds(map_bounds, {\n maxZoom: 17\n });\n }, 0);\n } else if (map_lon && map_lat) {\n if (map_zoom) {\n map.setView(new L.latLng(map_lat, map_lon), map_zoom);\n } else {\n map.setView(new L.latLng(map_lat, map_lon), 8);\n }\n }\n\n map.addLayer(osmMapnik);\n\n var baseLayers = {\n \"OSM Mapnik\": osmMapnik,\n \"OSM Wikimedia\": osmWikimedia,\n };\n\n L.control.layers(baseLayers).addTo(map);\n\n if (map_geojson) {\n L.geoJson(map_geojson).addTo(map);\n } /* else if(map_bounds) {\n L.rectangle(map_bounds, {color: \"#ff7800\", weight: 3, fill:false}).addTo(map);\n } */\n });\n\n // this event occour only once per element\n event.preventDefault();\n });\n });\n})(window, document, window.searxng);\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n(function (w, d, searxng) {\n 'use strict';\n\n if (searxng.endpoint !== 'preferences') {\n return;\n }\n\n searxng.ready(function () {\n let engine_descriptions = null;\n function load_engine_descriptions () {\n if (engine_descriptions == null) {\n searxng.http(\"GET\", \"engine_descriptions.json\").then(function (content) {\n engine_descriptions = JSON.parse(content);\n for (const [engine_name, description] of Object.entries(engine_descriptions)) {\n let elements = d.querySelectorAll('[data-engine-name=\"' + engine_name + '\"] .engine-description');\n for (const element of elements) {\n let source = ' (' + searxng.settings.translations.Source + ': ' + description[1] + ')';\n element.innerHTML = description[0] + source;\n }\n }\n });\n }\n }\n\n for (const el of d.querySelectorAll('[data-engine-name]')) {\n searxng.on(el, 'mouseenter', load_engine_descriptions);\n }\n\n const enableAllEngines = d.querySelectorAll(\".enable-all-engines\");\n const disableAllEngines = d.querySelectorAll(\".disable-all-engines\");\n const engineToggles = d.querySelectorAll('tbody input[type=checkbox][class~=checkbox-onoff]');\n const toggleEngines = (enable) => {\n for (const el of engineToggles) {\n // check if element visible, so that only engines of the current category are modified\n if (el.offsetParent !== null) el.checked = !enable;\n }\n };\n for (const el of enableAllEngines) {\n searxng.on(el, 'click', () => toggleEngines(true));\n }\n for (const el of disableAllEngines) {\n searxng.on(el, 'click', () => toggleEngines(false));\n }\n\n const copyHashButton = d.querySelector(\"#copy-hash\");\n searxng.on(copyHashButton, 'click', (e) => {\n e.preventDefault();\n navigator.clipboard.writeText(copyHashButton.dataset.hash);\n copyHashButton.innerText = copyHashButton.dataset.copiedText;\n });\n });\n})(window, document, window.searxng);\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n(function (w, d, searxng) {\n 'use strict';\n\n if (searxng.endpoint !== 'results') {\n return;\n }\n\n searxng.ready(function () {\n d.querySelectorAll('#urls img.image').forEach(\n img =>\n img.addEventListener(\n 'error', () => {\n img.style.display = 'none';\n img.error = null;\n }\n ));\n\n if (d.querySelector('#search_url button#copy_url')) {\n d.querySelector('#search_url button#copy_url').style.display = \"block\";\n }\n\n searxng.on('.btn-collapse', 'click', function () {\n var btnLabelCollapsed = this.getAttribute('data-btn-text-collapsed');\n var btnLabelNotCollapsed = this.getAttribute('data-btn-text-not-collapsed');\n var target = this.getAttribute('data-target');\n var targetElement = d.querySelector(target);\n var html = this.innerHTML;\n if (this.classList.contains('collapsed')) {\n html = html.replace(btnLabelCollapsed, btnLabelNotCollapsed);\n } else {\n html = html.replace(btnLabelNotCollapsed, btnLabelCollapsed);\n }\n this.innerHTML = html;\n this.classList.toggle('collapsed');\n targetElement.classList.toggle('invisible');\n });\n\n searxng.on('.media-loader', 'click', function () {\n var target = this.getAttribute('data-target');\n var iframe_load = d.querySelector(target + ' > iframe');\n var srctest = iframe_load.getAttribute('src');\n if (srctest === null || srctest === undefined || srctest === false) {\n iframe_load.setAttribute('src', iframe_load.getAttribute('data-src'));\n }\n });\n\n searxng.on('#copy_url', 'click', function () {\n var target = this.parentElement.querySelector('pre');\n navigator.clipboard.writeText(target.innerText);\n this.innerText = this.dataset.copiedText;\n });\n\n searxng.selectImage = function (resultElement) {\n /* eslint no-unused-vars: 0 */\n if (resultElement) {\n // load full size image in background\n const imgElement = resultElement.querySelector('.result-images-source img');\n const thumbnailElement = resultElement.querySelector('.image_thumbnail');\n const detailElement = resultElement.querySelector('.detail');\n if (imgElement) {\n const imgSrc = imgElement.getAttribute('data-src');\n if (imgSrc) {\n const loader = d.createElement('div');\n const imgLoader = new Image();\n\n loader.classList.add('loader');\n detailElement.appendChild(loader);\n\n imgLoader.onload = e => {\n imgElement.src = imgSrc;\n loader.remove();\n };\n imgLoader.onerror = e => {\n loader.remove();\n };\n imgLoader.src = imgSrc;\n imgElement.src = thumbnailElement.src;\n imgElement.removeAttribute('data-src');\n }\n }\n }\n d.getElementById('results').classList.add('image-detail-open');\n searxng.scrollPageToSelected();\n }\n\n searxng.closeDetail = function (e) {\n d.getElementById('results').classList.remove('image-detail-open');\n searxng.scrollPageToSelected();\n }\n searxng.on('.result-detail-close', 'click', e => {\n e.preventDefault();\n searxng.closeDetail();\n });\n searxng.on('.result-detail-previous', 'click', e => {\n e.preventDefault();\n searxng.selectPrevious(false)\n });\n searxng.on('.result-detail-next', 'click', e => {\n e.preventDefault();\n searxng.selectNext(false);\n });\n\n w.addEventListener('scroll', function () {\n var e = d.getElementById('backToTop'),\n scrollTop = document.documentElement.scrollTop || document.body.scrollTop,\n results = d.getElementById('results');\n if (e !== null) {\n if (scrollTop >= 100) {\n results.classList.add('scrolling');\n } else {\n results.classList.remove('scrolling');\n }\n }\n }, true);\n\n });\n\n})(window, document, window.searxng);\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n/* global AutoComplete */\n(function (w, d, searxng) {\n 'use strict';\n\n var qinput_id = \"q\", qinput;\n\n const isMobile = window.matchMedia(\"only screen and (max-width: 50em)\").matches;\n\n function submitIfQuery () {\n if (qinput.value.length > 0) {\n var search = document.getElementById('search');\n setTimeout(search.submit.bind(search), 0);\n }\n }\n\n function createClearButton (qinput) {\n var cs = document.getElementById('clear_search');\n var updateClearButton = function () {\n if (qinput.value.length === 0) {\n cs.classList.add(\"empty\");\n } else {\n cs.classList.remove(\"empty\");\n }\n };\n\n // update status, event listener\n updateClearButton();\n cs.addEventListener('click', function (ev) {\n qinput.value = '';\n qinput.focus();\n updateClearButton();\n ev.preventDefault();\n });\n qinput.addEventListener('keyup', updateClearButton, false);\n }\n\n searxng.ready(function () {\n qinput = d.getElementById(qinput_id);\n\n if (qinput !== null) {\n // clear button\n createClearButton(qinput);\n\n // autocompleter\n if (searxng.settings.autocomplete_provider) {\n searxng.autocomplete = AutoComplete.call(w, {\n Url: \"./autocompleter\",\n EmptyMessage: searxng.settings.translations.no_item_found,\n HttpMethod: searxng.settings.http_method,\n HttpHeaders: {\n \"Content-type\": \"application/x-www-form-urlencoded\",\n \"X-Requested-With\": \"XMLHttpRequest\"\n },\n MinChars: searxng.settings.autocomplete_min,\n Delay: 300,\n _Position: function () {},\n _Open: function () {\n var params = this;\n Array.prototype.forEach.call(this.DOMResults.getElementsByTagName(\"li\"), function (li) {\n if (li.getAttribute(\"class\") != \"locked\") {\n li.onmousedown = function () {\n params._Select(li);\n };\n }\n });\n },\n _Select: function (item) {\n AutoComplete.defaults._Select.call(this, item);\n var form = item.closest('form');\n if (form) {\n form.submit();\n }\n },\n _MinChars: function () {\n if (this.Input.value.indexOf('!') > -1) {\n return 0;\n } else {\n return AutoComplete.defaults._MinChars.call(this);\n }\n },\n KeyboardMappings: Object.assign({}, AutoComplete.defaults.KeyboardMappings, {\n \"KeyUpAndDown_up\": Object.assign({}, AutoComplete.defaults.KeyboardMappings.KeyUpAndDown_up, {\n Callback: function (event) {\n AutoComplete.defaults.KeyboardMappings.KeyUpAndDown_up.Callback.call(this, event);\n var liActive = this.DOMResults.querySelector(\"li.active\");\n if (liActive) {\n AutoComplete.defaults._Select.call(this, liActive);\n }\n },\n }),\n \"Tab\": Object.assign({}, AutoComplete.defaults.KeyboardMappings.Enter, {\n Conditions: [{\n Is: 9,\n Not: false\n }],\n Callback: function (event) {\n if (this.DOMResults.getAttribute(\"class\").indexOf(\"open\") != -1) {\n var liActive = this.DOMResults.querySelector(\"li.active\");\n if (liActive !== null) {\n AutoComplete.defaults._Select.call(this, liActive);\n event.preventDefault();\n }\n }\n },\n })\n }),\n }, \"#\" + qinput_id);\n }\n\n /*\n Monkey patch autocomplete.js to fix a bug\n With the POST method, the values are not URL encoded: query like \"1 + 1\" are sent as \"1 1\" since space are URL encoded as plus.\n See HTML specifications:\n * HTML5: https://url.spec.whatwg.org/#concept-urlencoded-serializer\n * HTML4: https://www.w3.org/TR/html401/interact/forms.html#h-17.13.4.1\n\n autocomplete.js does not URL encode the name and values:\n https://github.com/autocompletejs/autocomplete.js/blob/87069524f3b95e68f1b54d8976868e0eac1b2c83/src/autocomplete.ts#L665\n\n The monkey patch overrides the compiled version of the ajax function.\n See https://github.com/autocompletejs/autocomplete.js/blob/87069524f3b95e68f1b54d8976868e0eac1b2c83/dist/autocomplete.js#L143-L158\n The patch changes only the line 156 from\n params.Request.send(params._QueryArg() + \"=\" + params._Pre());\n to\n params.Request.send(encodeURIComponent(params._QueryArg()) + \"=\" + encodeURIComponent(params._Pre()));\n\n Related to:\n * https://github.com/autocompletejs/autocomplete.js/issues/78\n * https://github.com/searxng/searxng/issues/1695\n */\n AutoComplete.prototype.ajax = function (params, request, timeout) {\n if (timeout === void 0) { timeout = true; }\n if (params.$AjaxTimer) {\n window.clearTimeout(params.$AjaxTimer);\n }\n if (timeout === true) {\n params.$AjaxTimer = window.setTimeout(AutoComplete.prototype.ajax.bind(null, params, request, false), params.Delay);\n } else {\n if (params.Request) {\n params.Request.abort();\n }\n params.Request = request;\n params.Request.send(encodeURIComponent(params._QueryArg()) + \"=\" + encodeURIComponent(params._Pre()));\n }\n };\n\n if (!isMobile && document.querySelector('.index_endpoint')) {\n qinput.focus();\n }\n }\n\n // Additionally to searching when selecting a new category, we also\n // automatically start a new search request when the user changes a search\n // filter (safesearch, time range or language) (this requires JavaScript\n // though)\n if (\n qinput !== null\n && searxng.settings.search_on_category_select\n // If .search_filters is undefined (invisible) we are on the homepage and\n // hence don't have to set any listeners\n && d.querySelector(\".search_filters\") != null\n ) {\n searxng.on(d.getElementById('safesearch'), 'change', submitIfQuery);\n searxng.on(d.getElementById('time_range'), 'change', submitIfQuery);\n searxng.on(d.getElementById('language'), 'change', submitIfQuery);\n }\n\n // most common browsers at the time of writing this support :has, except for Firefox\n // can be removed when Firefox / Firefox ESL starts supporting it as well\n try {\n // this fails when the browser does not support :has\n d.querySelector(\"html:has(body)\");\n } catch (_) {\n // manually deselect the old selection when a new category is selected\n for (let button of d.querySelectorAll(\"button.category_button\")) {\n searxng.on(button, 'click', () => {\n const selected = d.querySelector(\"button.category_button.selected\");\n console.log(selected);\n selected.classList.remove(\"selected\");\n })\n }\n }\n });\n\n})(window, document, window.searxng);\n","(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.AutoComplete = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i @baptistedonaux\n */\nvar AutoComplete = /** @class */ (function () {\n // Constructor\n function AutoComplete(params, selector) {\n if (params === void 0) { params = {}; }\n if (selector === void 0) { selector = \"[data-autocomplete]\"; }\n if (Array.isArray(selector)) {\n selector.forEach(function (s) {\n new AutoComplete(params, s);\n });\n }\n else if (typeof selector == \"string\") {\n var elements = document.querySelectorAll(selector);\n Array.prototype.forEach.call(elements, function (input) {\n new AutoComplete(params, input);\n });\n }\n else {\n var specificParams = AutoComplete.merge(AutoComplete.defaults, params, {\n DOMResults: document.createElement(\"div\")\n });\n AutoComplete.prototype.create(specificParams, selector);\n return specificParams;\n }\n }\n AutoComplete.prototype.create = function (params, element) {\n params.Input = element;\n if (params.Input.nodeName.match(/^INPUT$/i) && (params.Input.hasAttribute(\"type\") === false || params.Input.getAttribute(\"type\").match(/^TEXT|SEARCH$/i))) {\n params.Input.setAttribute(\"autocomplete\", \"off\");\n params._Position(params);\n params.Input.parentNode.appendChild(params.DOMResults);\n params.$Listeners = {\n blur: params._Blur.bind(params),\n destroy: AutoComplete.prototype.destroy.bind(null, params),\n focus: params._Focus.bind(params),\n keyup: AutoComplete.prototype.event.bind(null, params, EventType.KEYUP),\n keydown: AutoComplete.prototype.event.bind(null, params, EventType.KEYDOWN),\n position: params._Position.bind(params)\n };\n for (var event in params.$Listeners) {\n params.Input.addEventListener(event, params.$Listeners[event]);\n }\n }\n };\n AutoComplete.prototype.getEventsByType = function (params, type) {\n var mappings = {};\n for (var key in params.KeyboardMappings) {\n var event = EventType.KEYUP;\n if (params.KeyboardMappings[key].Event !== undefined) {\n event = params.KeyboardMappings[key].Event;\n }\n if (event == type) {\n mappings[key] = params.KeyboardMappings[key];\n }\n }\n return mappings;\n };\n AutoComplete.prototype.event = function (params, type, event) {\n var eventIdentifier = function (condition) {\n if ((match === true && mapping.Operator == ConditionOperator.AND) || (match === false && mapping.Operator == ConditionOperator.OR)) {\n condition = AutoComplete.merge({\n Not: false\n }, condition);\n if (condition.hasOwnProperty(\"Is\")) {\n if (condition.Is == event.keyCode) {\n match = !condition.Not;\n }\n else {\n match = condition.Not;\n }\n }\n else if (condition.hasOwnProperty(\"From\") && condition.hasOwnProperty(\"To\")) {\n if (event.keyCode >= condition.From && event.keyCode <= condition.To) {\n match = !condition.Not;\n }\n else {\n match = condition.Not;\n }\n }\n }\n };\n for (var name in AutoComplete.prototype.getEventsByType(params, type)) {\n var mapping = AutoComplete.merge({\n Operator: ConditionOperator.AND\n }, params.KeyboardMappings[name]), match = ConditionOperator.AND == mapping.Operator;\n mapping.Conditions.forEach(eventIdentifier);\n if (match === true) {\n mapping.Callback.call(params, event);\n }\n }\n };\n AutoComplete.prototype.makeRequest = function (params, callback, callbackErr) {\n var propertyHttpHeaders = Object.getOwnPropertyNames(params.HttpHeaders), request = new XMLHttpRequest(), method = params._HttpMethod(), url = params._Url(), queryParams = params._Pre(), queryParamsStringify = encodeURIComponent(params._QueryArg()) + \"=\" + encodeURIComponent(queryParams);\n if (method.match(/^GET$/i)) {\n if (url.indexOf(\"?\") !== -1) {\n url += \"&\" + queryParamsStringify;\n }\n else {\n url += \"?\" + queryParamsStringify;\n }\n }\n request.open(method, url, true);\n for (var i = propertyHttpHeaders.length - 1; i >= 0; i--) {\n request.setRequestHeader(propertyHttpHeaders[i], params.HttpHeaders[propertyHttpHeaders[i]]);\n }\n request.onreadystatechange = function () {\n if (request.readyState == 4 && request.status == 200) {\n params.$Cache[queryParams] = request.response;\n callback(request.response);\n }\n else if (request.status >= 400) {\n callbackErr();\n }\n };\n return request;\n };\n AutoComplete.prototype.ajax = function (params, request, timeout) {\n if (timeout === void 0) { timeout = true; }\n if (params.$AjaxTimer) {\n window.clearTimeout(params.$AjaxTimer);\n }\n if (timeout === true) {\n params.$AjaxTimer = window.setTimeout(AutoComplete.prototype.ajax.bind(null, params, request, false), params.Delay);\n }\n else {\n if (params.Request) {\n params.Request.abort();\n }\n params.Request = request;\n params.Request.send(params._QueryArg() + \"=\" + params._Pre());\n }\n };\n AutoComplete.prototype.cache = function (params, callback, callbackErr) {\n var response = params._Cache(params._Pre());\n if (response === undefined) {\n var request = AutoComplete.prototype.makeRequest(params, callback, callbackErr);\n AutoComplete.prototype.ajax(params, request);\n }\n else {\n callback(response);\n }\n };\n AutoComplete.prototype.destroy = function (params) {\n for (var event in params.$Listeners) {\n params.Input.removeEventListener(event, params.$Listeners[event]);\n }\n params.DOMResults.parentNode.removeChild(params.DOMResults);\n };\n AutoComplete.merge = function () {\n var merge = {}, tmp;\n for (var i = 0; i < arguments.length; i++) {\n for (tmp in arguments[i]) {\n merge[tmp] = arguments[i][tmp];\n }\n }\n return merge;\n };\n AutoComplete.defaults = {\n Delay: 150,\n EmptyMessage: \"No result here\",\n Highlight: {\n getRegex: function (value) {\n return new RegExp(value, \"ig\");\n },\n transform: function (value) {\n return \"\" + value + \"\";\n }\n },\n HttpHeaders: {\n \"Content-type\": \"application/x-www-form-urlencoded\"\n },\n Limit: 0,\n MinChars: 0,\n HttpMethod: \"GET\",\n QueryArg: \"q\",\n Url: null,\n KeyboardMappings: {\n \"Enter\": {\n Conditions: [{\n Is: 13,\n Not: false\n }],\n Callback: function (event) {\n if (this.DOMResults.getAttribute(\"class\").indexOf(\"open\") != -1) {\n var liActive = this.DOMResults.querySelector(\"li.active\");\n if (liActive !== null) {\n event.preventDefault();\n this._Select(liActive);\n this.DOMResults.setAttribute(\"class\", \"autocomplete\");\n }\n }\n },\n Operator: ConditionOperator.AND,\n Event: EventType.KEYDOWN\n },\n \"KeyUpAndDown_down\": {\n Conditions: [{\n Is: 38,\n Not: false\n },\n {\n Is: 40,\n Not: false\n }],\n Callback: function (event) {\n event.preventDefault();\n },\n Operator: ConditionOperator.OR,\n Event: EventType.KEYDOWN\n },\n \"KeyUpAndDown_up\": {\n Conditions: [{\n Is: 38,\n Not: false\n },\n {\n Is: 40,\n Not: false\n }],\n Callback: function (event) {\n event.preventDefault();\n var first = this.DOMResults.querySelector(\"li:first-child:not(.locked)\"), last = this.DOMResults.querySelector(\"li:last-child:not(.locked)\"), active = this.DOMResults.querySelector(\"li.active\");\n if (active) {\n var currentIndex = Array.prototype.indexOf.call(active.parentNode.children, active), position = currentIndex + (event.keyCode - 39), lisCount = this.DOMResults.getElementsByTagName(\"li\").length;\n if (position < 0) {\n position = lisCount - 1;\n }\n else if (position >= lisCount) {\n position = 0;\n }\n active.classList.remove(\"active\");\n active.parentElement.children.item(position).classList.add(\"active\");\n }\n else if (last && event.keyCode == 38) {\n last.classList.add(\"active\");\n }\n else if (first) {\n first.classList.add(\"active\");\n }\n },\n Operator: ConditionOperator.OR,\n Event: EventType.KEYUP\n },\n \"AlphaNum\": {\n Conditions: [{\n Is: 13,\n Not: true\n }, {\n From: 35,\n To: 40,\n Not: true\n }],\n Callback: function () {\n var oldValue = this.Input.getAttribute(\"data-autocomplete-old-value\"), currentValue = this._Pre();\n if (currentValue !== \"\" && currentValue.length >= this._MinChars()) {\n if (!oldValue || currentValue != oldValue) {\n this.DOMResults.setAttribute(\"class\", \"autocomplete open\");\n }\n AutoComplete.prototype.cache(this, function (response) {\n this._Render(this._Post(response));\n this._Open();\n }.bind(this), this._Error);\n }\n else {\n this._Close();\n }\n },\n Operator: ConditionOperator.AND,\n Event: EventType.KEYUP\n }\n },\n DOMResults: null,\n Request: null,\n Input: null,\n /**\n * Return the message when no result returns\n */\n _EmptyMessage: function () {\n var emptyMessage = \"\";\n if (this.Input.hasAttribute(\"data-autocomplete-empty-message\")) {\n emptyMessage = this.Input.getAttribute(\"data-autocomplete-empty-message\");\n }\n else if (this.EmptyMessage !== false) {\n emptyMessage = this.EmptyMessage;\n }\n else {\n emptyMessage = \"\";\n }\n return emptyMessage;\n },\n /**\n * Returns the maximum number of results\n */\n _Limit: function () {\n var limit = this.Input.getAttribute(\"data-autocomplete-limit\");\n if (isNaN(limit) || limit === null) {\n return this.Limit;\n }\n return parseInt(limit, 10);\n },\n /**\n * Returns the minimum number of characters entered before firing ajax\n */\n _MinChars: function () {\n var minchars = this.Input.getAttribute(\"data-autocomplete-minchars\");\n if (isNaN(minchars) || minchars === null) {\n return this.MinChars;\n }\n return parseInt(minchars, 10);\n },\n /**\n * Apply transformation on labels response\n */\n _Highlight: function (label) {\n return label.replace(this.Highlight.getRegex(this._Pre()), this.Highlight.transform);\n },\n /**\n * Returns the HHTP method to use\n */\n _HttpMethod: function () {\n if (this.Input.hasAttribute(\"data-autocomplete-method\")) {\n return this.Input.getAttribute(\"data-autocomplete-method\");\n }\n return this.HttpMethod;\n },\n /**\n * Returns the query param to use\n */\n _QueryArg: function () {\n if (this.Input.hasAttribute(\"data-autocomplete-param-name\")) {\n return this.Input.getAttribute(\"data-autocomplete-param-name\");\n }\n return this.QueryArg;\n },\n /**\n * Returns the URL to use for AJAX request\n */\n _Url: function () {\n if (this.Input.hasAttribute(\"data-autocomplete\")) {\n return this.Input.getAttribute(\"data-autocomplete\");\n }\n return this.Url;\n },\n /**\n * Manage the close\n */\n _Blur: function (now) {\n if (now === void 0) { now = false; }\n if (now) {\n this._Close();\n }\n else {\n var params = this;\n setTimeout(function () {\n params._Blur(true);\n }, 150);\n }\n },\n /**\n * Manage the cache\n */\n _Cache: function (value) {\n return this.$Cache[value];\n },\n /**\n * Manage the open\n */\n _Focus: function () {\n var oldValue = this.Input.getAttribute(\"data-autocomplete-old-value\");\n if ((!oldValue || this.Input.value != oldValue) && this._MinChars() <= this.Input.value.length) {\n this.DOMResults.setAttribute(\"class\", \"autocomplete open\");\n }\n },\n /**\n * Bind all results item if one result is opened\n */\n _Open: function () {\n var params = this;\n Array.prototype.forEach.call(this.DOMResults.getElementsByTagName(\"li\"), function (li) {\n if (li.getAttribute(\"class\") != \"locked\") {\n li.onclick = function () {\n params._Select(li);\n };\n }\n });\n },\n _Close: function () {\n this.DOMResults.setAttribute(\"class\", \"autocomplete\");\n },\n /**\n * Position the results HTML element\n */\n _Position: function () {\n this.DOMResults.setAttribute(\"class\", \"autocomplete\");\n this.DOMResults.setAttribute(\"style\", \"top:\" + (this.Input.offsetTop + this.Input.offsetHeight) + \"px;left:\" + this.Input.offsetLeft + \"px;width:\" + this.Input.clientWidth + \"px;\");\n },\n /**\n * Execute the render of results DOM element\n */\n _Render: function (response) {\n var ul;\n if (typeof response == \"string\") {\n ul = this._RenderRaw(response);\n }\n else {\n ul = this._RenderResponseItems(response);\n }\n if (this.DOMResults.hasChildNodes()) {\n this.DOMResults.removeChild(this.DOMResults.childNodes[0]);\n }\n this.DOMResults.appendChild(ul);\n },\n /**\n * ResponseItems[] rendering\n */\n _RenderResponseItems: function (response) {\n var ul = document.createElement(\"ul\"), li = document.createElement(\"li\"), limit = this._Limit();\n // Order\n if (limit < 0) {\n response = response.reverse();\n }\n else if (limit === 0) {\n limit = response.length;\n }\n for (var item = 0; item < Math.min(Math.abs(limit), response.length); item++) {\n li.innerHTML = response[item].Label;\n li.setAttribute(\"data-autocomplete-value\", response[item].Value);\n ul.appendChild(li);\n li = document.createElement(\"li\");\n }\n return ul;\n },\n /**\n * string response rendering (RAW HTML)\n */\n _RenderRaw: function (response) {\n var ul = document.createElement(\"ul\"), li = document.createElement(\"li\");\n if (response.length > 0) {\n this.DOMResults.innerHTML = response;\n }\n else {\n var emptyMessage = this._EmptyMessage();\n if (emptyMessage !== \"\") {\n li.innerHTML = emptyMessage;\n li.setAttribute(\"class\", \"locked\");\n ul.appendChild(li);\n }\n }\n return ul;\n },\n /**\n * Deal with request response\n */\n _Post: function (response) {\n try {\n var returnResponse = [];\n //JSON return\n var json = JSON.parse(response);\n if (Object.keys(json).length === 0) {\n return \"\";\n }\n if (Array.isArray(json)) {\n for (var i = 0; i < Object.keys(json).length; i++) {\n returnResponse[returnResponse.length] = { \"Value\": json[i], \"Label\": this._Highlight(json[i]) };\n }\n }\n else {\n for (var value in json) {\n returnResponse.push({\n \"Value\": value,\n \"Label\": this._Highlight(json[value])\n });\n }\n }\n return returnResponse;\n }\n catch (event) {\n //HTML return\n return response;\n }\n },\n /**\n * Return the autocomplete value to send (before request)\n */\n _Pre: function () {\n return this.Input.value;\n },\n /**\n * Choice one result item\n */\n _Select: function (item) {\n if (item.hasAttribute(\"data-autocomplete-value\")) {\n this.Input.value = item.getAttribute(\"data-autocomplete-value\");\n }\n else {\n this.Input.value = item.innerHTML;\n }\n this.Input.setAttribute(\"data-autocomplete-old-value\", this.Input.value);\n },\n /**\n * Handle HTTP error on the request\n */\n _Error: function () {\n },\n $AjaxTimer: null,\n $Cache: {},\n $Listeners: {}\n };\n return AutoComplete;\n}());\nmodule.exports = AutoComplete;\n\n},{}]},{},[1])(1)\n});\n"],"names":["window","searxng","w","d","Element","ElementPrototype","matches","matchesSelector","webkitMatchesSelector","msMatchesSelector","selector","node","this","nodes","parentNode","document","querySelectorAll","i","prototype","callbackSafe","callback","el","e","call","exception","console","log","on","obj","eventType","useCapture","addEventListener","target","srcElement","found","parentElement","ready","readyState","bind","http","method","url","data","Promise","resolve","reject","req","XMLHttpRequest","open","timeout","onload","status","response","responseType","Error","statusText","onerror","onabort","ontimeout","send","ex","loadStyle","src","path","settings","theme_static_path","id","replace","s","getElementById","createElement","setAttribute","body","appendChild","loadScript","hasAttribute","apply","insertBefore","newNode","referenceNode","insertAfter","nextSibling","classList","add","getEndpoint","className","getElementsByTagName","values","endsWith","split","endpoint","infinite_scroll_supported","IntersectionObserverEntry","let","onlyImages","contains","newLoadSpinner","loader","replaceChildrenWith","element","children","textContent","forEach","child","loadNextPage","form","querySelector","formData","FormData","getAttribute","then","nextPageDoc","DOMParser","parseFromString","articleList","paginationElement","remove","length","articleElement","catch","err","translations","error_loading_next_page","infinite_scroll","intersectionObserveOptions","rootMargin","observedSelector","observer","IntersectionObserver","entries","paginationEntry","isIntersecting","unobserve","observe","isElementInDetail","undefined","getResultElement","isImageResult","resultElement","highlightResult","preventDefault","selectImage","baseKeyBinding","Escape","key","fun","removeFocus","des","cat","c","copyURLToClipboard","h","toggleHelp","searchInputFocus","n","GoToNextPage","o","openResult","p","GoToPreviousPage","r","reloadPage","t","keyBindingLayouts","default","Object","assign","ArrowLeft","ArrowRight","vim","b","scrollPage","innerHeight","f","u","g","scrollPageTo","scrollHeight","v","k","j","y","keyBindings","hotkeys","hasOwnProperty","ctrlKey","altKey","shiftKey","metaKey","tagName","toLowerCase","which","noScroll","keepFocus","current","effectiveWhich","next","results","Array","from","top","documentElement","scrollTop","bot","clientHeight","etop","offsetTop","ebot","indexOf","removeAttribute","link","focus","scrollPageToSelected","location","reload","activeElement","blur","closeDetail","pageButtonClick","css_selector","button","click","sel","wtop","wheight","offset","previousElementSibling","scroll","scrollX","wbot","amount","scrollBy","position","nav","scrollTo","q","setSelectionRange","len","value","newTab","href","initHelpContent","divElement","categories","push","sorted","keys","sort","a","html","lastCategory","first","cj","innerHTML","helpPanel","toggle","currentUrlElement","navigator","clipboard","writeText","selectNext","selectPrevious","event","leaflet_target","dataset","leafletTarget","map_lon","parseFloat","mapLon","map_lat","mapLat","map_zoom","mapZoom","map_boundingbox","JSON","parse","mapBoundingbox","map_geojson","mapGeojson","map_bounds","southWest","L","latLng","northEast","latLngBounds","map","osmMapnikUrl","osmMapnikAttrib","osmMapnik","TileLayer","minZoom","maxZoom","attribution","osmWikimediaUrl","osmWikimediaAttrib","osmWikimedia","setTimeout","fitBounds","setView","addLayer","baseLayers","OSM Mapnik","OSM Wikimedia","control","layers","addTo","geoJson","engine_descriptions","load_engine_descriptions","content","engine_name","description","elements","source","Source","enableAllEngines","disableAllEngines","engineToggles","toggleEngines","offsetParent","checked","enable","copyHashButton","hash","innerText","copiedText","img","style","display","error","btnLabelCollapsed","btnLabelNotCollapsed","targetElement","iframe_load","srctest","imgElement","thumbnailElement","detailElement","imgSrc","imgLoader","Image","qinput_id","qinput","isMobile","matchMedia","submitIfQuery","search","submit","createClearButton","cs","updateClearButton","ev","autocomplete_provider","autocomplete","AutoComplete","Url","EmptyMessage","no_item_found","HttpMethod","http_method","HttpHeaders","Content-type","X-Requested-With","MinChars","autocomplete_min","Delay","_Position","_Open","params","DOMResults","li","onmousedown","_Select","item","defaults","closest","_MinChars","Input","KeyboardMappings","KeyUpAndDown_up","Callback","liActive","Tab","Enter","Conditions","Is","Not","ajax","request","$AjaxTimer","clearTimeout","Request","abort","encodeURIComponent","_QueryArg","_Pre","search_on_category_select","_","selected","exports","module","define","amd","global","self","require","code","1","ConditionOperator","EventType","isArray","input","specificParams","merge","create","nodeName","match","$Listeners","_Blur","destroy","_Focus","keyup","KEYUP","keydown","KEYDOWN","getEventsByType","type","mappings","Event","eventIdentifier","condition","mapping","Operator","AND","OR","keyCode","From","To","name","makeRequest","callbackErr","propertyHttpHeaders","getOwnPropertyNames","_HttpMethod","_Url","queryParams","queryParamsStringify","setRequestHeader","onreadystatechange","$Cache","cache","_Cache","removeEventListener","removeChild","tmp","arguments","Highlight","getRegex","RegExp","transform","Limit","QueryArg","KeyUpAndDown_down","last","active","currentIndex","lisCount","AlphaNum","oldValue","currentValue","_Render","_Post","_Error","_Close","_EmptyMessage","emptyMessage","_Limit","limit","isNaN","parseInt","minchars","_Highlight","label","now","onclick","offsetHeight","offsetLeft","clientWidth","ul","_RenderRaw","_RenderResponseItems","hasChildNodes","childNodes","reverse","Math","min","abs","Label","Value","returnResponse","json"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"searxng.min.js","sources":["../src/js/main/00_toolkit.js","../src/js/main/infinite_scroll.js","../src/js/main/keyboard.js","../src/js/main/mapresult.js","../src/js/main/preferences.js","../src/js/main/results.js","../src/js/main/search.js","../node_modules/autocomplete-js/dist/autocomplete.js"],"sourcesContent":["/**\n * @license\n * (C) Copyright Contributors to the SearXNG project.\n * (C) Copyright Contributors to the searx project (2014 - 2021).\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nwindow.searxng = (function (w, d) {\n\n 'use strict';\n\n // not invented here tookit with bugs fixed elsewhere\n // purposes : be just good enough and as small as possible\n\n // from https://plainjs.com/javascript/events/live-binding-event-handlers-14/\n if (w.Element) {\n (function (ElementPrototype) {\n ElementPrototype.matches = ElementPrototype.matches ||\n ElementPrototype.matchesSelector ||\n ElementPrototype.webkitMatchesSelector ||\n ElementPrototype.msMatchesSelector ||\n function (selector) {\n var node = this, nodes = (node.parentNode || node.document).querySelectorAll(selector), i = -1;\n while (nodes[++i] && nodes[i] != node);\n return !!nodes[i];\n };\n })(Element.prototype);\n }\n\n function callbackSafe (callback, el, e) {\n try {\n callback.call(el, e);\n } catch (exception) {\n console.log(exception);\n }\n }\n\n var searxng = window.searxng || {};\n\n searxng.on = function (obj, eventType, callback, useCapture) {\n useCapture = useCapture || false;\n if (typeof obj !== 'string') {\n // obj HTMLElement, HTMLDocument\n obj.addEventListener(eventType, callback, useCapture);\n } else {\n // obj is a selector\n d.addEventListener(eventType, function (e) {\n var el = e.target || e.srcElement, found = false;\n while (el && el.matches && el !== d && !(found = el.matches(obj))) el = el.parentElement;\n if (found) callbackSafe(callback, el, e);\n }, useCapture);\n }\n };\n\n searxng.ready = function (callback) {\n if (document.readyState != 'loading') {\n callback.call(w);\n } else {\n w.addEventListener('DOMContentLoaded', callback.bind(w));\n }\n };\n\n searxng.http = function (method, url, data = null) {\n return new Promise(function (resolve, reject) {\n try {\n var req = new XMLHttpRequest();\n req.open(method, url, true);\n req.timeout = 20000;\n\n // On load\n req.onload = function () {\n if (req.status == 200) {\n resolve(req.response, req.responseType);\n } else {\n reject(Error(req.statusText));\n }\n };\n\n // Handle network errors\n req.onerror = function () {\n reject(Error(\"Network Error\"));\n };\n\n req.onabort = function () {\n reject(Error(\"Transaction is aborted\"));\n };\n\n req.ontimeout = function () {\n reject(Error(\"Timeout\"));\n }\n\n // Make the request\n if (data) {\n req.send(data)\n } else {\n req.send();\n }\n } catch (ex) {\n reject(ex);\n }\n });\n };\n\n searxng.loadStyle = function (src) {\n var path = searxng.settings.theme_static_path + \"/\" + src,\n id = \"style_\" + src.replace('.', '_'),\n s = d.getElementById(id);\n if (s === null) {\n s = d.createElement('link');\n s.setAttribute('id', id);\n s.setAttribute('rel', 'stylesheet');\n s.setAttribute('type', 'text/css');\n s.setAttribute('href', path);\n d.body.appendChild(s);\n }\n };\n\n searxng.loadScript = function (src, callback) {\n var path = searxng.settings.theme_static_path + \"/\" + src,\n id = \"script_\" + src.replace('.', '_'),\n s = d.getElementById(id);\n if (s === null) {\n s = d.createElement('script');\n s.setAttribute('id', id);\n s.setAttribute('src', path);\n s.onload = callback;\n s.onerror = function () {\n s.setAttribute('error', '1');\n };\n d.body.appendChild(s);\n } else if (!s.hasAttribute('error')) {\n try {\n callback.apply(s, []);\n } catch (exception) {\n console.log(exception);\n }\n } else {\n console.log(\"callback not executed : script '\" + path + \"' not loaded.\");\n }\n };\n\n searxng.insertBefore = function (newNode, referenceNode) {\n referenceNode.parentNode.insertBefore(newNode, referenceNode);\n };\n\n searxng.insertAfter = function (newNode, referenceNode) {\n referenceNode.parentNode.insertAfter(newNode, referenceNode.nextSibling);\n };\n\n searxng.on('.close', 'click', function () {\n this.parentNode.classList.add('invisible');\n });\n\n function getEndpoint () {\n for (var className of d.getElementsByTagName('body')[0].classList.values()) {\n if (className.endsWith('_endpoint')) {\n return className.split('_')[0];\n }\n }\n return '';\n }\n\n searxng.endpoint = getEndpoint();\n\n return searxng;\n})(window, document);\n","// SPDX-License-Identifier: AGPL-3.0-or-later\n\n/* global searxng */\n\nsearxng.ready(function () {\n 'use strict';\n\n searxng.infinite_scroll_supported = (\n 'IntersectionObserver' in window &&\n 'IntersectionObserverEntry' in window &&\n 'intersectionRatio' in window.IntersectionObserverEntry.prototype);\n\n if (searxng.endpoint !== 'results') {\n return;\n }\n\n if (!searxng.infinite_scroll_supported) {\n console.log('IntersectionObserver not supported');\n return;\n }\n\n let d = document;\n var onlyImages = d.getElementById('results').classList.contains('only_template_images');\n\n function newLoadSpinner () {\n var loader = d.createElement('div');\n loader.classList.add('loader');\n return loader;\n }\n\n function replaceChildrenWith (element, children) {\n element.textContent = '';\n children.forEach(child => element.appendChild(child));\n }\n\n function loadNextPage (callback) {\n var form = d.querySelector('#pagination form.next_page');\n if (!form) {\n return\n }\n replaceChildrenWith(d.querySelector('#pagination'), [ newLoadSpinner() ]);\n var formData = new FormData(form);\n searxng.http('POST', d.querySelector('#search').getAttribute('action'), formData).then(\n function (response) {\n var nextPageDoc = new DOMParser().parseFromString(response, 'text/html');\n var articleList = nextPageDoc.querySelectorAll('#urls article');\n var paginationElement = nextPageDoc.querySelector('#pagination');\n d.querySelector('#pagination').remove();\n if (articleList.length > 0 && !onlyImages) {\n // do not add
element when there are only images\n d.querySelector('#urls').appendChild(d.createElement('hr'));\n }\n articleList.forEach(articleElement => {\n d.querySelector('#urls').appendChild(articleElement);\n });\n if (paginationElement) {\n d.querySelector('#results').appendChild(paginationElement);\n callback();\n }\n }\n ).catch(\n function (err) {\n console.log(err);\n var e = d.createElement('div');\n e.textContent = searxng.settings.translations.error_loading_next_page;\n e.classList.add('dialog-error');\n e.setAttribute('role', 'alert');\n replaceChildrenWith(d.querySelector('#pagination'), [ e ]);\n }\n )\n }\n\n if (searxng.settings.infinite_scroll && searxng.infinite_scroll_supported) {\n const intersectionObserveOptions = {\n rootMargin: \"20rem\",\n };\n const observedSelector = 'article.result:last-child';\n const observer = new IntersectionObserver(entries => {\n const paginationEntry = entries[0];\n if (paginationEntry.isIntersecting) {\n observer.unobserve(paginationEntry.target);\n loadNextPage(() => observer.observe(d.querySelector(observedSelector), intersectionObserveOptions));\n }\n });\n observer.observe(d.querySelector(observedSelector), intersectionObserveOptions);\n }\n\n});\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n/* global searxng */\n\nsearxng.ready(function () {\n\n function isElementInDetail (el) {\n while (el !== undefined) {\n if (el.classList.contains('detail')) {\n return true;\n }\n if (el.classList.contains('result')) {\n // we found a result, no need to go to the root of the document:\n // el is not inside a
element\n return false;\n }\n el = el.parentNode;\n }\n return false;\n }\n\n function getResultElement (el) {\n while (el !== undefined) {\n if (el.classList.contains('result')) {\n return el;\n }\n el = el.parentNode;\n }\n return undefined;\n }\n\n function isImageResult (resultElement) {\n return resultElement && resultElement.classList.contains('result-images');\n }\n\n searxng.on('.result', 'click', function (e) {\n if (!isElementInDetail(e.target)) {\n highlightResult(this)(true, true);\n let resultElement = getResultElement(e.target);\n if (isImageResult(resultElement)) {\n e.preventDefault();\n searxng.selectImage(resultElement);\n }\n }\n });\n\n searxng.on('.result a', 'focus', function (e) {\n if (!isElementInDetail(e.target)) {\n let resultElement = getResultElement(e.target);\n if (resultElement && resultElement.getAttribute(\"data-vim-selected\") === null) {\n highlightResult(resultElement)(true);\n }\n if (isImageResult(resultElement)) {\n searxng.selectImage(resultElement);\n }\n }\n }, true);\n\n /* common base for layouts */\n var baseKeyBinding = {\n 'Escape': {\n key: 'ESC',\n fun: removeFocus,\n des: 'remove focus from the focused input',\n cat: 'Control'\n },\n 'c': {\n key: 'c',\n fun: copyURLToClipboard,\n des: 'copy url of the selected result to the clipboard',\n cat: 'Results'\n },\n 'h': {\n key: 'h',\n fun: toggleHelp,\n des: 'toggle help window',\n cat: 'Other'\n },\n 'i': {\n key: 'i',\n fun: searchInputFocus,\n des: 'focus on the search input',\n cat: 'Control'\n },\n 'n': {\n key: 'n',\n fun: GoToNextPage(),\n des: 'go to next page',\n cat: 'Results'\n },\n 'o': {\n key: 'o',\n fun: openResult(false),\n des: 'open search result',\n cat: 'Results'\n },\n 'p': {\n key: 'p',\n fun: GoToPreviousPage(),\n des: 'go to previous page',\n cat: 'Results'\n },\n 'r': {\n key: 'r',\n fun: reloadPage,\n des: 'reload page from the server',\n cat: 'Control'\n },\n 't': {\n key: 't',\n fun: openResult(true),\n des: 'open the result in a new tab',\n cat: 'Results'\n },\n };\n var keyBindingLayouts = {\n\n \"default\": Object.assign(\n { /* SearXNG layout */\n 'ArrowLeft': {\n key: '←',\n fun: highlightResult('up'),\n des: 'select previous search result',\n cat: 'Results'\n },\n 'ArrowRight': {\n key: '→',\n fun: highlightResult('down'),\n des: 'select next search result',\n cat: 'Results'\n },\n }, baseKeyBinding),\n\n 'vim': Object.assign(\n { /* Vim-like Key Layout. */\n 'b': {\n key: 'b',\n fun: scrollPage(-window.innerHeight),\n des: 'scroll one page up',\n cat: 'Navigation'\n },\n 'f': {\n key: 'f',\n fun: scrollPage(window.innerHeight),\n des: 'scroll one page down',\n cat: 'Navigation'\n },\n 'u': {\n key: 'u',\n fun: scrollPage(-window.innerHeight / 2),\n des: 'scroll half a page up',\n cat: 'Navigation'\n },\n 'd': {\n key: 'd',\n fun: scrollPage(window.innerHeight / 2),\n des: 'scroll half a page down',\n cat: 'Navigation'\n },\n 'g': {\n key: 'g',\n fun: scrollPageTo(-document.body.scrollHeight, 'top'),\n des: 'scroll to the top of the page',\n cat: 'Navigation'\n },\n 'v': {\n key: 'v',\n fun: scrollPageTo(document.body.scrollHeight, 'bottom'),\n des: 'scroll to the bottom of the page',\n cat: 'Navigation'\n },\n 'k': {\n key: 'k',\n fun: highlightResult('up'),\n des: 'select previous search result',\n cat: 'Results'\n },\n 'j': {\n key: 'j',\n fun: highlightResult('down'),\n des: 'select next search result',\n cat: 'Results'\n },\n 'y': {\n key: 'y',\n fun: copyURLToClipboard,\n des: 'copy url of the selected result to the clipboard',\n cat: 'Results'\n },\n }, baseKeyBinding)\n }\n\n var keyBindings = keyBindingLayouts[searxng.settings.hotkeys] || keyBindingLayouts.default;\n\n searxng.on(document, \"keydown\", function (e) {\n // check for modifiers so we don't break browser's hotkeys\n if (\n Object.prototype.hasOwnProperty.call(keyBindings, e.key)\n && !e.ctrlKey && !e.altKey\n && !e.shiftKey && !e.metaKey\n ) {\n var tagName = e.target.tagName.toLowerCase();\n if (e.key === 'Escape') {\n keyBindings[e.key].fun(e);\n } else {\n if (e.target === document.body || tagName === 'a' || tagName === 'button') {\n e.preventDefault();\n keyBindings[e.key].fun();\n }\n }\n }\n });\n\n function highlightResult (which) {\n return function (noScroll, keepFocus) {\n var current = document.querySelector('.result[data-vim-selected]'),\n effectiveWhich = which;\n if (current === null) {\n // no selection : choose the first one\n current = document.querySelector('.result');\n if (current === null) {\n // no first one : there are no results\n return;\n }\n // replace up/down actions by selecting first one\n if (which === \"down\" || which === \"up\") {\n effectiveWhich = current;\n }\n }\n\n var next, results = document.querySelectorAll('.result');\n results = Array.from(results); // convert NodeList to Array for further use\n\n if (typeof effectiveWhich !== 'string') {\n next = effectiveWhich;\n } else {\n switch (effectiveWhich) {\n case 'visible':\n var top = document.documentElement.scrollTop || document.body.scrollTop;\n var bot = top + document.documentElement.clientHeight;\n\n for (var i = 0; i < results.length; i++) {\n next = results[i];\n var etop = next.offsetTop;\n var ebot = etop + next.clientHeight;\n\n if ((ebot <= bot) && (etop > top)) {\n break;\n }\n }\n break;\n case 'down':\n next = results[results.indexOf(current) + 1] || current;\n break;\n case 'up':\n next = results[results.indexOf(current) - 1] || current;\n break;\n case 'bottom':\n next = results[results.length - 1];\n break;\n case 'top':\n /* falls through */\n default:\n next = results[0];\n }\n }\n\n if (next) {\n current.removeAttribute('data-vim-selected');\n next.setAttribute('data-vim-selected', 'true');\n if (!keepFocus) {\n var link = next.querySelector('h3 a') || next.querySelector('a');\n if (link !== null) {\n link.focus();\n }\n }\n if (!noScroll) {\n scrollPageToSelected();\n }\n }\n };\n }\n\n function reloadPage () {\n document.location.reload(true);\n }\n\n function removeFocus (e) {\n const tagName = e.target.tagName.toLowerCase();\n if (document.activeElement && (tagName === 'input' || tagName === 'select' || tagName === 'textarea')) {\n document.activeElement.blur();\n } else {\n searxng.closeDetail();\n }\n }\n\n function pageButtonClick (css_selector) {\n return function () {\n var button = document.querySelector(css_selector);\n if (button) {\n button.click();\n }\n };\n }\n\n function GoToNextPage () {\n return pageButtonClick('nav#pagination .next_page button[type=\"submit\"]');\n }\n\n function GoToPreviousPage () {\n return pageButtonClick('nav#pagination .previous_page button[type=\"submit\"]');\n }\n\n function scrollPageToSelected () {\n var sel = document.querySelector('.result[data-vim-selected]');\n if (sel === null) {\n return;\n }\n var wtop = document.documentElement.scrollTop || document.body.scrollTop,\n wheight = document.documentElement.clientHeight,\n etop = sel.offsetTop,\n ebot = etop + sel.clientHeight,\n offset = 120;\n // first element ?\n if ((sel.previousElementSibling === null) && (ebot < wheight)) {\n // set to the top of page if the first element\n // is fully included in the viewport\n window.scroll(window.scrollX, 0);\n return;\n }\n if (wtop > (etop - offset)) {\n window.scroll(window.scrollX, etop - offset);\n } else {\n var wbot = wtop + wheight;\n if (wbot < (ebot + offset)) {\n window.scroll(window.scrollX, ebot - wheight + offset);\n }\n }\n }\n\n function scrollPage (amount) {\n return function () {\n window.scrollBy(0, amount);\n highlightResult('visible')();\n };\n }\n\n function scrollPageTo (position, nav) {\n return function () {\n window.scrollTo(0, position);\n highlightResult(nav)();\n };\n }\n\n function searchInputFocus () {\n window.scrollTo(0, 0);\n var q = document.querySelector('#q');\n q.focus();\n if (q.setSelectionRange) {\n var len = q.value.length;\n q.setSelectionRange(len, len);\n }\n }\n\n function openResult (newTab) {\n return function () {\n var link = document.querySelector('.result[data-vim-selected] h3 a');\n if (link === null) {\n link = document.querySelector('.result[data-vim-selected] > a');\n }\n if (link !== null) {\n var url = link.getAttribute('href');\n if (newTab) {\n window.open(url);\n } else {\n window.location.href = url;\n }\n }\n };\n }\n\n function initHelpContent (divElement) {\n var categories = {};\n\n for (var k in keyBindings) {\n var key = keyBindings[k];\n categories[key.cat] = categories[key.cat] || [];\n categories[key.cat].push(key);\n }\n\n var sorted = Object.keys(categories).sort(function (a, b) {\n return categories[b].length - categories[a].length;\n });\n\n if (sorted.length === 0) {\n return;\n }\n\n var html = '×';\n html += '

How to navigate SearXNG with hotkeys

';\n html += '';\n\n for (var i = 0; i < sorted.length; i++) {\n var cat = categories[sorted[i]];\n\n var lastCategory = i === (sorted.length - 1);\n var first = i % 2 === 0;\n\n if (first) {\n html += '';\n }\n html += ''; // col-sm-*\n\n if (!first || lastCategory) {\n html += ''; // row\n }\n }\n\n html += '
';\n\n html += '

' + cat[0].cat + '

';\n html += '
    ';\n\n for (var cj in cat) {\n html += '
  • ' + cat[cj].key + ' ' + cat[cj].des + '
  • ';\n }\n\n html += '
';\n html += '
';\n\n divElement.innerHTML = html;\n }\n\n function toggleHelp () {\n var helpPanel = document.querySelector('#vim-hotkeys-help');\n if (helpPanel === undefined || helpPanel === null) {\n // first call\n helpPanel = document.createElement('div');\n helpPanel.id = 'vim-hotkeys-help';\n helpPanel.className = 'dialog-modal';\n initHelpContent(helpPanel);\n var body = document.getElementsByTagName('body')[0];\n body.appendChild(helpPanel);\n } else {\n // togggle hidden\n helpPanel.classList.toggle('invisible');\n return;\n }\n }\n\n function copyURLToClipboard () {\n var currentUrlElement = document.querySelector('.result[data-vim-selected] h3 a');\n if (currentUrlElement === null) return;\n\n const url = currentUrlElement.getAttribute('href');\n navigator.clipboard.writeText(url);\n }\n\n searxng.scrollPageToSelected = scrollPageToSelected;\n searxng.selectNext = highlightResult('down');\n searxng.selectPrevious = highlightResult('up');\n});\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n/* global L */\n(function (w, d, searxng) {\n 'use strict';\n\n searxng.ready(function () {\n searxng.on('.searxng_init_map', 'click', function (event) {\n // no more request\n this.classList.remove(\"searxng_init_map\");\n\n //\n var leaflet_target = this.dataset.leafletTarget;\n var map_lon = parseFloat(this.dataset.mapLon);\n var map_lat = parseFloat(this.dataset.mapLat);\n var map_zoom = parseFloat(this.dataset.mapZoom);\n var map_boundingbox = JSON.parse(this.dataset.mapBoundingbox);\n var map_geojson = JSON.parse(this.dataset.mapGeojson);\n\n searxng.loadStyle('css/leaflet.css');\n searxng.loadScript('js/leaflet.js', function () {\n var map_bounds = null;\n if (map_boundingbox) {\n var southWest = L.latLng(map_boundingbox[0], map_boundingbox[2]);\n var northEast = L.latLng(map_boundingbox[1], map_boundingbox[3]);\n map_bounds = L.latLngBounds(southWest, northEast);\n }\n\n // init map\n var map = L.map(leaflet_target);\n // create the tile layer with correct attribution\n var osmMapnikUrl = 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png';\n var osmMapnikAttrib = 'Map data © OpenStreetMap contributors';\n var osmMapnik = new L.TileLayer(osmMapnikUrl, {minZoom: 1, maxZoom: 19, attribution: osmMapnikAttrib});\n var osmWikimediaUrl = 'https://maps.wikimedia.org/osm-intl/{z}/{x}/{y}.png';\n var osmWikimediaAttrib = 'Wikimedia maps | Maps data © OpenStreetMap contributors';\n var osmWikimedia = new L.TileLayer(osmWikimediaUrl, {minZoom: 1, maxZoom: 19, attribution: osmWikimediaAttrib});\n // init map view\n if (map_bounds) {\n // TODO hack: https://github.com/Leaflet/Leaflet/issues/2021\n // Still useful ?\n setTimeout(function () {\n map.fitBounds(map_bounds, {\n maxZoom: 17\n });\n }, 0);\n } else if (map_lon && map_lat) {\n if (map_zoom) {\n map.setView(new L.latLng(map_lat, map_lon), map_zoom);\n } else {\n map.setView(new L.latLng(map_lat, map_lon), 8);\n }\n }\n\n map.addLayer(osmMapnik);\n\n var baseLayers = {\n \"OSM Mapnik\": osmMapnik,\n \"OSM Wikimedia\": osmWikimedia,\n };\n\n L.control.layers(baseLayers).addTo(map);\n\n if (map_geojson) {\n L.geoJson(map_geojson).addTo(map);\n } /* else if(map_bounds) {\n L.rectangle(map_bounds, {color: \"#ff7800\", weight: 3, fill:false}).addTo(map);\n } */\n });\n\n // this event occour only once per element\n event.preventDefault();\n });\n });\n})(window, document, window.searxng);\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n(function (w, d, searxng) {\n 'use strict';\n\n if (searxng.endpoint !== 'preferences') {\n return;\n }\n\n searxng.ready(function () {\n let engine_descriptions = null;\n function load_engine_descriptions () {\n if (engine_descriptions == null) {\n searxng.http(\"GET\", \"engine_descriptions.json\").then(function (content) {\n engine_descriptions = JSON.parse(content);\n for (const [engine_name, description] of Object.entries(engine_descriptions)) {\n let elements = d.querySelectorAll('[data-engine-name=\"' + engine_name + '\"] .engine-description');\n for (const element of elements) {\n let source = ' (' + searxng.settings.translations.Source + ': ' + description[1] + ')';\n element.innerHTML = description[0] + source;\n }\n }\n });\n }\n }\n\n for (const el of d.querySelectorAll('[data-engine-name]')) {\n searxng.on(el, 'mouseenter', load_engine_descriptions);\n }\n\n const enableAllEngines = d.querySelectorAll(\".enable-all-engines\");\n const disableAllEngines = d.querySelectorAll(\".disable-all-engines\");\n const engineToggles = d.querySelectorAll('tbody input[type=checkbox][class~=checkbox-onoff]');\n const toggleEngines = (enable) => {\n for (const el of engineToggles) {\n // check if element visible, so that only engines of the current category are modified\n if (el.offsetParent !== null) el.checked = !enable;\n }\n };\n for (const el of enableAllEngines) {\n searxng.on(el, 'click', () => toggleEngines(true));\n }\n for (const el of disableAllEngines) {\n searxng.on(el, 'click', () => toggleEngines(false));\n }\n\n const copyHashButton = d.querySelector(\"#copy-hash\");\n searxng.on(copyHashButton, 'click', (e) => {\n e.preventDefault();\n navigator.clipboard.writeText(copyHashButton.dataset.hash);\n copyHashButton.innerText = copyHashButton.dataset.copiedText;\n });\n });\n})(window, document, window.searxng);\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n(function (w, d, searxng) {\n 'use strict';\n\n if (searxng.endpoint !== 'results') {\n return;\n }\n\n searxng.ready(function () {\n d.querySelectorAll('#urls img.image').forEach(\n img =>\n img.addEventListener(\n 'error', () => {\n img.style.display = 'none';\n img.error = null;\n }\n ));\n\n if (d.querySelector('#search_url button#copy_url')) {\n d.querySelector('#search_url button#copy_url').style.display = \"block\";\n }\n\n searxng.on('.btn-collapse', 'click', function () {\n var btnLabelCollapsed = this.getAttribute('data-btn-text-collapsed');\n var btnLabelNotCollapsed = this.getAttribute('data-btn-text-not-collapsed');\n var target = this.getAttribute('data-target');\n var targetElement = d.querySelector(target);\n var html = this.innerHTML;\n if (this.classList.contains('collapsed')) {\n html = html.replace(btnLabelCollapsed, btnLabelNotCollapsed);\n } else {\n html = html.replace(btnLabelNotCollapsed, btnLabelCollapsed);\n }\n this.innerHTML = html;\n this.classList.toggle('collapsed');\n targetElement.classList.toggle('invisible');\n });\n\n searxng.on('.media-loader', 'click', function () {\n var target = this.getAttribute('data-target');\n var iframe_load = d.querySelector(target + ' > iframe');\n var srctest = iframe_load.getAttribute('src');\n if (srctest === null || srctest === undefined || srctest === false) {\n iframe_load.setAttribute('src', iframe_load.getAttribute('data-src'));\n }\n });\n\n searxng.on('#copy_url', 'click', function () {\n var target = this.parentElement.querySelector('pre');\n navigator.clipboard.writeText(target.innerText);\n this.innerText = this.dataset.copiedText;\n });\n\n searxng.selectImage = function (resultElement) {\n /* eslint no-unused-vars: 0 */\n if (resultElement) {\n // load full size image in background\n const imgElement = resultElement.querySelector('.result-images-source img');\n const thumbnailElement = resultElement.querySelector('.image_thumbnail');\n const detailElement = resultElement.querySelector('.detail');\n if (imgElement) {\n const imgSrc = imgElement.getAttribute('data-src');\n if (imgSrc) {\n const loader = d.createElement('div');\n const imgLoader = new Image();\n\n loader.classList.add('loader');\n detailElement.appendChild(loader);\n\n imgLoader.onload = e => {\n imgElement.src = imgSrc;\n loader.remove();\n };\n imgLoader.onerror = e => {\n loader.remove();\n };\n imgLoader.src = imgSrc;\n imgElement.src = thumbnailElement.src;\n imgElement.removeAttribute('data-src');\n }\n }\n }\n d.getElementById('results').classList.add('image-detail-open');\n searxng.scrollPageToSelected();\n }\n\n searxng.closeDetail = function (e) {\n d.getElementById('results').classList.remove('image-detail-open');\n searxng.scrollPageToSelected();\n }\n searxng.on('.result-detail-close', 'click', e => {\n e.preventDefault();\n searxng.closeDetail();\n });\n searxng.on('.result-detail-previous', 'click', e => {\n e.preventDefault();\n searxng.selectPrevious(false)\n });\n searxng.on('.result-detail-next', 'click', e => {\n e.preventDefault();\n searxng.selectNext(false);\n });\n\n w.addEventListener('scroll', function () {\n var e = d.getElementById('backToTop'),\n scrollTop = document.documentElement.scrollTop || document.body.scrollTop,\n results = d.getElementById('results');\n if (e !== null) {\n if (scrollTop >= 100) {\n results.classList.add('scrolling');\n } else {\n results.classList.remove('scrolling');\n }\n }\n }, true);\n\n });\n\n})(window, document, window.searxng);\n","/* SPDX-License-Identifier: AGPL-3.0-or-later */\n/* global AutoComplete */\n(function (w, d, searxng) {\n 'use strict';\n\n var qinput_id = \"q\", qinput;\n\n const isMobile = window.matchMedia(\"only screen and (max-width: 50em)\").matches;\n\n function submitIfQuery () {\n if (qinput.value.length > 0) {\n var search = document.getElementById('search');\n setTimeout(search.submit.bind(search), 0);\n }\n }\n\n function createClearButton (qinput) {\n var cs = document.getElementById('clear_search');\n var updateClearButton = function () {\n if (qinput.value.length === 0) {\n cs.classList.add(\"empty\");\n } else {\n cs.classList.remove(\"empty\");\n }\n };\n\n // update status, event listener\n updateClearButton();\n cs.addEventListener('click', function (ev) {\n qinput.value = '';\n qinput.focus();\n updateClearButton();\n ev.preventDefault();\n });\n qinput.addEventListener('input', updateClearButton, false);\n }\n\n searxng.ready(function () {\n qinput = d.getElementById(qinput_id);\n\n if (qinput !== null) {\n // clear button\n createClearButton(qinput);\n\n // autocompleter\n if (searxng.settings.autocomplete_provider) {\n searxng.autocomplete = AutoComplete.call(w, {\n Url: \"./autocompleter\",\n EmptyMessage: searxng.settings.translations.no_item_found,\n HttpMethod: searxng.settings.http_method,\n HttpHeaders: {\n \"Content-type\": \"application/x-www-form-urlencoded\",\n \"X-Requested-With\": \"XMLHttpRequest\"\n },\n MinChars: searxng.settings.autocomplete_min,\n Delay: 300,\n _Position: function () {},\n _Open: function () {\n var params = this;\n Array.prototype.forEach.call(this.DOMResults.getElementsByTagName(\"li\"), function (li) {\n if (li.getAttribute(\"class\") != \"locked\") {\n li.onmousedown = function () {\n params._Select(li);\n };\n }\n });\n },\n _Select: function (item) {\n AutoComplete.defaults._Select.call(this, item);\n var form = item.closest('form');\n if (form) {\n form.submit();\n }\n },\n _MinChars: function () {\n if (this.Input.value.indexOf('!') > -1) {\n return 0;\n } else {\n return AutoComplete.defaults._MinChars.call(this);\n }\n },\n KeyboardMappings: Object.assign({}, AutoComplete.defaults.KeyboardMappings, {\n \"KeyUpAndDown_up\": Object.assign({}, AutoComplete.defaults.KeyboardMappings.KeyUpAndDown_up, {\n Callback: function (event) {\n AutoComplete.defaults.KeyboardMappings.KeyUpAndDown_up.Callback.call(this, event);\n var liActive = this.DOMResults.querySelector(\"li.active\");\n if (liActive) {\n AutoComplete.defaults._Select.call(this, liActive);\n }\n },\n }),\n \"Tab\": Object.assign({}, AutoComplete.defaults.KeyboardMappings.Enter, {\n Conditions: [{\n Is: 9,\n Not: false\n }],\n Callback: function (event) {\n if (this.DOMResults.getAttribute(\"class\").indexOf(\"open\") != -1) {\n var liActive = this.DOMResults.querySelector(\"li.active\");\n if (liActive !== null) {\n AutoComplete.defaults._Select.call(this, liActive);\n event.preventDefault();\n }\n }\n },\n })\n }),\n }, \"#\" + qinput_id);\n }\n\n /*\n Monkey patch autocomplete.js to fix a bug\n With the POST method, the values are not URL encoded: query like \"1 + 1\" are sent as \"1 1\" since space are URL encoded as plus.\n See HTML specifications:\n * HTML5: https://url.spec.whatwg.org/#concept-urlencoded-serializer\n * HTML4: https://www.w3.org/TR/html401/interact/forms.html#h-17.13.4.1\n\n autocomplete.js does not URL encode the name and values:\n https://github.com/autocompletejs/autocomplete.js/blob/87069524f3b95e68f1b54d8976868e0eac1b2c83/src/autocomplete.ts#L665\n\n The monkey patch overrides the compiled version of the ajax function.\n See https://github.com/autocompletejs/autocomplete.js/blob/87069524f3b95e68f1b54d8976868e0eac1b2c83/dist/autocomplete.js#L143-L158\n The patch changes only the line 156 from\n params.Request.send(params._QueryArg() + \"=\" + params._Pre());\n to\n params.Request.send(encodeURIComponent(params._QueryArg()) + \"=\" + encodeURIComponent(params._Pre()));\n\n Related to:\n * https://github.com/autocompletejs/autocomplete.js/issues/78\n * https://github.com/searxng/searxng/issues/1695\n */\n AutoComplete.prototype.ajax = function (params, request, timeout) {\n if (timeout === void 0) { timeout = true; }\n if (params.$AjaxTimer) {\n window.clearTimeout(params.$AjaxTimer);\n }\n if (timeout === true) {\n params.$AjaxTimer = window.setTimeout(AutoComplete.prototype.ajax.bind(null, params, request, false), params.Delay);\n } else {\n if (params.Request) {\n params.Request.abort();\n }\n params.Request = request;\n params.Request.send(encodeURIComponent(params._QueryArg()) + \"=\" + encodeURIComponent(params._Pre()));\n }\n };\n\n if (!isMobile && document.querySelector('.index_endpoint')) {\n qinput.focus();\n }\n }\n\n // Additionally to searching when selecting a new category, we also\n // automatically start a new search request when the user changes a search\n // filter (safesearch, time range or language) (this requires JavaScript\n // though)\n if (\n qinput !== null\n && searxng.settings.search_on_category_select\n // If .search_filters is undefined (invisible) we are on the homepage and\n // hence don't have to set any listeners\n && d.querySelector(\".search_filters\") != null\n ) {\n searxng.on(d.getElementById('safesearch'), 'change', submitIfQuery);\n searxng.on(d.getElementById('time_range'), 'change', submitIfQuery);\n searxng.on(d.getElementById('language'), 'change', submitIfQuery);\n }\n\n // most common browsers at the time of writing this support :has, except for Firefox\n // can be removed when Firefox / Firefox ESL starts supporting it as well\n try {\n // this fails when the browser does not support :has\n d.querySelector(\"html:has(body)\");\n } catch (_) {\n // manually deselect the old selection when a new category is selected\n for (let button of d.querySelectorAll(\"button.category_button\")) {\n searxng.on(button, 'click', () => {\n const selected = d.querySelector(\"button.category_button.selected\");\n console.log(selected);\n selected.classList.remove(\"selected\");\n })\n }\n }\n });\n\n})(window, document, window.searxng);\n","(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.AutoComplete = f()}})(function(){var define,module,exports;return (function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i @baptistedonaux\n */\nvar AutoComplete = /** @class */ (function () {\n // Constructor\n function AutoComplete(params, selector) {\n if (params === void 0) { params = {}; }\n if (selector === void 0) { selector = \"[data-autocomplete]\"; }\n if (Array.isArray(selector)) {\n selector.forEach(function (s) {\n new AutoComplete(params, s);\n });\n }\n else if (typeof selector == \"string\") {\n var elements = document.querySelectorAll(selector);\n Array.prototype.forEach.call(elements, function (input) {\n new AutoComplete(params, input);\n });\n }\n else {\n var specificParams = AutoComplete.merge(AutoComplete.defaults, params, {\n DOMResults: document.createElement(\"div\")\n });\n AutoComplete.prototype.create(specificParams, selector);\n return specificParams;\n }\n }\n AutoComplete.prototype.create = function (params, element) {\n params.Input = element;\n if (params.Input.nodeName.match(/^INPUT$/i) && (params.Input.hasAttribute(\"type\") === false || params.Input.getAttribute(\"type\").match(/^TEXT|SEARCH$/i))) {\n params.Input.setAttribute(\"autocomplete\", \"off\");\n params._Position(params);\n params.Input.parentNode.appendChild(params.DOMResults);\n params.$Listeners = {\n blur: params._Blur.bind(params),\n destroy: AutoComplete.prototype.destroy.bind(null, params),\n focus: params._Focus.bind(params),\n keyup: AutoComplete.prototype.event.bind(null, params, EventType.KEYUP),\n keydown: AutoComplete.prototype.event.bind(null, params, EventType.KEYDOWN),\n position: params._Position.bind(params)\n };\n for (var event in params.$Listeners) {\n params.Input.addEventListener(event, params.$Listeners[event]);\n }\n }\n };\n AutoComplete.prototype.getEventsByType = function (params, type) {\n var mappings = {};\n for (var key in params.KeyboardMappings) {\n var event = EventType.KEYUP;\n if (params.KeyboardMappings[key].Event !== undefined) {\n event = params.KeyboardMappings[key].Event;\n }\n if (event == type) {\n mappings[key] = params.KeyboardMappings[key];\n }\n }\n return mappings;\n };\n AutoComplete.prototype.event = function (params, type, event) {\n var eventIdentifier = function (condition) {\n if ((match === true && mapping.Operator == ConditionOperator.AND) || (match === false && mapping.Operator == ConditionOperator.OR)) {\n condition = AutoComplete.merge({\n Not: false\n }, condition);\n if (condition.hasOwnProperty(\"Is\")) {\n if (condition.Is == event.keyCode) {\n match = !condition.Not;\n }\n else {\n match = condition.Not;\n }\n }\n else if (condition.hasOwnProperty(\"From\") && condition.hasOwnProperty(\"To\")) {\n if (event.keyCode >= condition.From && event.keyCode <= condition.To) {\n match = !condition.Not;\n }\n else {\n match = condition.Not;\n }\n }\n }\n };\n for (var name in AutoComplete.prototype.getEventsByType(params, type)) {\n var mapping = AutoComplete.merge({\n Operator: ConditionOperator.AND\n }, params.KeyboardMappings[name]), match = ConditionOperator.AND == mapping.Operator;\n mapping.Conditions.forEach(eventIdentifier);\n if (match === true) {\n mapping.Callback.call(params, event);\n }\n }\n };\n AutoComplete.prototype.makeRequest = function (params, callback, callbackErr) {\n var propertyHttpHeaders = Object.getOwnPropertyNames(params.HttpHeaders), request = new XMLHttpRequest(), method = params._HttpMethod(), url = params._Url(), queryParams = params._Pre(), queryParamsStringify = encodeURIComponent(params._QueryArg()) + \"=\" + encodeURIComponent(queryParams);\n if (method.match(/^GET$/i)) {\n if (url.indexOf(\"?\") !== -1) {\n url += \"&\" + queryParamsStringify;\n }\n else {\n url += \"?\" + queryParamsStringify;\n }\n }\n request.open(method, url, true);\n for (var i = propertyHttpHeaders.length - 1; i >= 0; i--) {\n request.setRequestHeader(propertyHttpHeaders[i], params.HttpHeaders[propertyHttpHeaders[i]]);\n }\n request.onreadystatechange = function () {\n if (request.readyState == 4 && request.status == 200) {\n params.$Cache[queryParams] = request.response;\n callback(request.response);\n }\n else if (request.status >= 400) {\n callbackErr();\n }\n };\n return request;\n };\n AutoComplete.prototype.ajax = function (params, request, timeout) {\n if (timeout === void 0) { timeout = true; }\n if (params.$AjaxTimer) {\n window.clearTimeout(params.$AjaxTimer);\n }\n if (timeout === true) {\n params.$AjaxTimer = window.setTimeout(AutoComplete.prototype.ajax.bind(null, params, request, false), params.Delay);\n }\n else {\n if (params.Request) {\n params.Request.abort();\n }\n params.Request = request;\n params.Request.send(params._QueryArg() + \"=\" + params._Pre());\n }\n };\n AutoComplete.prototype.cache = function (params, callback, callbackErr) {\n var response = params._Cache(params._Pre());\n if (response === undefined) {\n var request = AutoComplete.prototype.makeRequest(params, callback, callbackErr);\n AutoComplete.prototype.ajax(params, request);\n }\n else {\n callback(response);\n }\n };\n AutoComplete.prototype.destroy = function (params) {\n for (var event in params.$Listeners) {\n params.Input.removeEventListener(event, params.$Listeners[event]);\n }\n params.DOMResults.parentNode.removeChild(params.DOMResults);\n };\n AutoComplete.merge = function () {\n var merge = {}, tmp;\n for (var i = 0; i < arguments.length; i++) {\n for (tmp in arguments[i]) {\n merge[tmp] = arguments[i][tmp];\n }\n }\n return merge;\n };\n AutoComplete.defaults = {\n Delay: 150,\n EmptyMessage: \"No result here\",\n Highlight: {\n getRegex: function (value) {\n return new RegExp(value, \"ig\");\n },\n transform: function (value) {\n return \"\" + value + \"\";\n }\n },\n HttpHeaders: {\n \"Content-type\": \"application/x-www-form-urlencoded\"\n },\n Limit: 0,\n MinChars: 0,\n HttpMethod: \"GET\",\n QueryArg: \"q\",\n Url: null,\n KeyboardMappings: {\n \"Enter\": {\n Conditions: [{\n Is: 13,\n Not: false\n }],\n Callback: function (event) {\n if (this.DOMResults.getAttribute(\"class\").indexOf(\"open\") != -1) {\n var liActive = this.DOMResults.querySelector(\"li.active\");\n if (liActive !== null) {\n event.preventDefault();\n this._Select(liActive);\n this.DOMResults.setAttribute(\"class\", \"autocomplete\");\n }\n }\n },\n Operator: ConditionOperator.AND,\n Event: EventType.KEYDOWN\n },\n \"KeyUpAndDown_down\": {\n Conditions: [{\n Is: 38,\n Not: false\n },\n {\n Is: 40,\n Not: false\n }],\n Callback: function (event) {\n event.preventDefault();\n },\n Operator: ConditionOperator.OR,\n Event: EventType.KEYDOWN\n },\n \"KeyUpAndDown_up\": {\n Conditions: [{\n Is: 38,\n Not: false\n },\n {\n Is: 40,\n Not: false\n }],\n Callback: function (event) {\n event.preventDefault();\n var first = this.DOMResults.querySelector(\"li:first-child:not(.locked)\"), last = this.DOMResults.querySelector(\"li:last-child:not(.locked)\"), active = this.DOMResults.querySelector(\"li.active\");\n if (active) {\n var currentIndex = Array.prototype.indexOf.call(active.parentNode.children, active), position = currentIndex + (event.keyCode - 39), lisCount = this.DOMResults.getElementsByTagName(\"li\").length;\n if (position < 0) {\n position = lisCount - 1;\n }\n else if (position >= lisCount) {\n position = 0;\n }\n active.classList.remove(\"active\");\n active.parentElement.children.item(position).classList.add(\"active\");\n }\n else if (last && event.keyCode == 38) {\n last.classList.add(\"active\");\n }\n else if (first) {\n first.classList.add(\"active\");\n }\n },\n Operator: ConditionOperator.OR,\n Event: EventType.KEYUP\n },\n \"AlphaNum\": {\n Conditions: [{\n Is: 13,\n Not: true\n }, {\n From: 35,\n To: 40,\n Not: true\n }],\n Callback: function () {\n var oldValue = this.Input.getAttribute(\"data-autocomplete-old-value\"), currentValue = this._Pre();\n if (currentValue !== \"\" && currentValue.length >= this._MinChars()) {\n if (!oldValue || currentValue != oldValue) {\n this.DOMResults.setAttribute(\"class\", \"autocomplete open\");\n }\n AutoComplete.prototype.cache(this, function (response) {\n this._Render(this._Post(response));\n this._Open();\n }.bind(this), this._Error);\n }\n else {\n this._Close();\n }\n },\n Operator: ConditionOperator.AND,\n Event: EventType.KEYUP\n }\n },\n DOMResults: null,\n Request: null,\n Input: null,\n /**\n * Return the message when no result returns\n */\n _EmptyMessage: function () {\n var emptyMessage = \"\";\n if (this.Input.hasAttribute(\"data-autocomplete-empty-message\")) {\n emptyMessage = this.Input.getAttribute(\"data-autocomplete-empty-message\");\n }\n else if (this.EmptyMessage !== false) {\n emptyMessage = this.EmptyMessage;\n }\n else {\n emptyMessage = \"\";\n }\n return emptyMessage;\n },\n /**\n * Returns the maximum number of results\n */\n _Limit: function () {\n var limit = this.Input.getAttribute(\"data-autocomplete-limit\");\n if (isNaN(limit) || limit === null) {\n return this.Limit;\n }\n return parseInt(limit, 10);\n },\n /**\n * Returns the minimum number of characters entered before firing ajax\n */\n _MinChars: function () {\n var minchars = this.Input.getAttribute(\"data-autocomplete-minchars\");\n if (isNaN(minchars) || minchars === null) {\n return this.MinChars;\n }\n return parseInt(minchars, 10);\n },\n /**\n * Apply transformation on labels response\n */\n _Highlight: function (label) {\n return label.replace(this.Highlight.getRegex(this._Pre()), this.Highlight.transform);\n },\n /**\n * Returns the HHTP method to use\n */\n _HttpMethod: function () {\n if (this.Input.hasAttribute(\"data-autocomplete-method\")) {\n return this.Input.getAttribute(\"data-autocomplete-method\");\n }\n return this.HttpMethod;\n },\n /**\n * Returns the query param to use\n */\n _QueryArg: function () {\n if (this.Input.hasAttribute(\"data-autocomplete-param-name\")) {\n return this.Input.getAttribute(\"data-autocomplete-param-name\");\n }\n return this.QueryArg;\n },\n /**\n * Returns the URL to use for AJAX request\n */\n _Url: function () {\n if (this.Input.hasAttribute(\"data-autocomplete\")) {\n return this.Input.getAttribute(\"data-autocomplete\");\n }\n return this.Url;\n },\n /**\n * Manage the close\n */\n _Blur: function (now) {\n if (now === void 0) { now = false; }\n if (now) {\n this._Close();\n }\n else {\n var params = this;\n setTimeout(function () {\n params._Blur(true);\n }, 150);\n }\n },\n /**\n * Manage the cache\n */\n _Cache: function (value) {\n return this.$Cache[value];\n },\n /**\n * Manage the open\n */\n _Focus: function () {\n var oldValue = this.Input.getAttribute(\"data-autocomplete-old-value\");\n if ((!oldValue || this.Input.value != oldValue) && this._MinChars() <= this.Input.value.length) {\n this.DOMResults.setAttribute(\"class\", \"autocomplete open\");\n }\n },\n /**\n * Bind all results item if one result is opened\n */\n _Open: function () {\n var params = this;\n Array.prototype.forEach.call(this.DOMResults.getElementsByTagName(\"li\"), function (li) {\n if (li.getAttribute(\"class\") != \"locked\") {\n li.onclick = function () {\n params._Select(li);\n };\n }\n });\n },\n _Close: function () {\n this.DOMResults.setAttribute(\"class\", \"autocomplete\");\n },\n /**\n * Position the results HTML element\n */\n _Position: function () {\n this.DOMResults.setAttribute(\"class\", \"autocomplete\");\n this.DOMResults.setAttribute(\"style\", \"top:\" + (this.Input.offsetTop + this.Input.offsetHeight) + \"px;left:\" + this.Input.offsetLeft + \"px;width:\" + this.Input.clientWidth + \"px;\");\n },\n /**\n * Execute the render of results DOM element\n */\n _Render: function (response) {\n var ul;\n if (typeof response == \"string\") {\n ul = this._RenderRaw(response);\n }\n else {\n ul = this._RenderResponseItems(response);\n }\n if (this.DOMResults.hasChildNodes()) {\n this.DOMResults.removeChild(this.DOMResults.childNodes[0]);\n }\n this.DOMResults.appendChild(ul);\n },\n /**\n * ResponseItems[] rendering\n */\n _RenderResponseItems: function (response) {\n var ul = document.createElement(\"ul\"), li = document.createElement(\"li\"), limit = this._Limit();\n // Order\n if (limit < 0) {\n response = response.reverse();\n }\n else if (limit === 0) {\n limit = response.length;\n }\n for (var item = 0; item < Math.min(Math.abs(limit), response.length); item++) {\n li.innerHTML = response[item].Label;\n li.setAttribute(\"data-autocomplete-value\", response[item].Value);\n ul.appendChild(li);\n li = document.createElement(\"li\");\n }\n return ul;\n },\n /**\n * string response rendering (RAW HTML)\n */\n _RenderRaw: function (response) {\n var ul = document.createElement(\"ul\"), li = document.createElement(\"li\");\n if (response.length > 0) {\n this.DOMResults.innerHTML = response;\n }\n else {\n var emptyMessage = this._EmptyMessage();\n if (emptyMessage !== \"\") {\n li.innerHTML = emptyMessage;\n li.setAttribute(\"class\", \"locked\");\n ul.appendChild(li);\n }\n }\n return ul;\n },\n /**\n * Deal with request response\n */\n _Post: function (response) {\n try {\n var returnResponse = [];\n //JSON return\n var json = JSON.parse(response);\n if (Object.keys(json).length === 0) {\n return \"\";\n }\n if (Array.isArray(json)) {\n for (var i = 0; i < Object.keys(json).length; i++) {\n returnResponse[returnResponse.length] = { \"Value\": json[i], \"Label\": this._Highlight(json[i]) };\n }\n }\n else {\n for (var value in json) {\n returnResponse.push({\n \"Value\": value,\n \"Label\": this._Highlight(json[value])\n });\n }\n }\n return returnResponse;\n }\n catch (event) {\n //HTML return\n return response;\n }\n },\n /**\n * Return the autocomplete value to send (before request)\n */\n _Pre: function () {\n return this.Input.value;\n },\n /**\n * Choice one result item\n */\n _Select: function (item) {\n if (item.hasAttribute(\"data-autocomplete-value\")) {\n this.Input.value = item.getAttribute(\"data-autocomplete-value\");\n }\n else {\n this.Input.value = item.innerHTML;\n }\n this.Input.setAttribute(\"data-autocomplete-old-value\", this.Input.value);\n },\n /**\n * Handle HTTP error on the request\n */\n _Error: function () {\n },\n $AjaxTimer: null,\n $Cache: {},\n $Listeners: {}\n };\n return AutoComplete;\n}());\nmodule.exports = AutoComplete;\n\n},{}]},{},[1])(1)\n});\n"],"names":["window","searxng","w","d","Element","ElementPrototype","matches","matchesSelector","webkitMatchesSelector","msMatchesSelector","selector","node","this","nodes","parentNode","document","querySelectorAll","i","prototype","callbackSafe","callback","el","e","call","exception","console","log","on","obj","eventType","useCapture","addEventListener","target","srcElement","found","parentElement","ready","readyState","bind","http","method","url","data","Promise","resolve","reject","req","XMLHttpRequest","open","timeout","onload","status","response","responseType","Error","statusText","onerror","onabort","ontimeout","send","ex","loadStyle","src","path","settings","theme_static_path","id","replace","s","getElementById","createElement","setAttribute","body","appendChild","loadScript","hasAttribute","apply","insertBefore","newNode","referenceNode","insertAfter","nextSibling","classList","add","getEndpoint","className","getElementsByTagName","values","endsWith","split","endpoint","infinite_scroll_supported","IntersectionObserverEntry","let","onlyImages","contains","newLoadSpinner","loader","replaceChildrenWith","element","children","textContent","forEach","child","loadNextPage","form","querySelector","formData","FormData","getAttribute","then","nextPageDoc","DOMParser","parseFromString","articleList","paginationElement","remove","length","articleElement","catch","err","translations","error_loading_next_page","infinite_scroll","intersectionObserveOptions","rootMargin","observedSelector","observer","IntersectionObserver","entries","paginationEntry","isIntersecting","unobserve","observe","isElementInDetail","undefined","getResultElement","isImageResult","resultElement","highlightResult","preventDefault","selectImage","baseKeyBinding","Escape","key","fun","removeFocus","des","cat","c","copyURLToClipboard","h","toggleHelp","searchInputFocus","n","GoToNextPage","o","openResult","p","GoToPreviousPage","r","reloadPage","t","keyBindingLayouts","default","Object","assign","ArrowLeft","ArrowRight","vim","b","scrollPage","innerHeight","f","u","g","scrollPageTo","scrollHeight","v","k","j","y","keyBindings","hotkeys","hasOwnProperty","ctrlKey","altKey","shiftKey","metaKey","tagName","toLowerCase","which","noScroll","keepFocus","current","effectiveWhich","next","results","Array","from","top","documentElement","scrollTop","bot","clientHeight","etop","offsetTop","ebot","indexOf","removeAttribute","link","focus","scrollPageToSelected","location","reload","activeElement","blur","closeDetail","pageButtonClick","css_selector","button","click","sel","wtop","wheight","offset","previousElementSibling","scroll","scrollX","wbot","amount","scrollBy","position","nav","scrollTo","q","setSelectionRange","len","value","newTab","href","initHelpContent","divElement","categories","push","sorted","keys","sort","a","html","lastCategory","first","cj","innerHTML","helpPanel","toggle","currentUrlElement","navigator","clipboard","writeText","selectNext","selectPrevious","event","leaflet_target","dataset","leafletTarget","map_lon","parseFloat","mapLon","map_lat","mapLat","map_zoom","mapZoom","map_boundingbox","JSON","parse","mapBoundingbox","map_geojson","mapGeojson","map_bounds","southWest","L","latLng","northEast","latLngBounds","map","osmMapnikUrl","osmMapnikAttrib","osmMapnik","TileLayer","minZoom","maxZoom","attribution","osmWikimediaUrl","osmWikimediaAttrib","osmWikimedia","setTimeout","fitBounds","setView","addLayer","baseLayers","OSM Mapnik","OSM Wikimedia","control","layers","addTo","geoJson","engine_descriptions","load_engine_descriptions","content","engine_name","description","elements","source","Source","enableAllEngines","disableAllEngines","engineToggles","toggleEngines","offsetParent","checked","enable","copyHashButton","hash","innerText","copiedText","img","style","display","error","btnLabelCollapsed","btnLabelNotCollapsed","targetElement","iframe_load","srctest","imgElement","thumbnailElement","detailElement","imgSrc","imgLoader","Image","qinput_id","qinput","isMobile","matchMedia","submitIfQuery","search","submit","createClearButton","cs","updateClearButton","ev","autocomplete_provider","autocomplete","AutoComplete","Url","EmptyMessage","no_item_found","HttpMethod","http_method","HttpHeaders","Content-type","X-Requested-With","MinChars","autocomplete_min","Delay","_Position","_Open","params","DOMResults","li","onmousedown","_Select","item","defaults","closest","_MinChars","Input","KeyboardMappings","KeyUpAndDown_up","Callback","liActive","Tab","Enter","Conditions","Is","Not","ajax","request","$AjaxTimer","clearTimeout","Request","abort","encodeURIComponent","_QueryArg","_Pre","search_on_category_select","_","selected","exports","module","define","amd","global","self","require","code","1","ConditionOperator","EventType","isArray","input","specificParams","merge","create","nodeName","match","$Listeners","_Blur","destroy","_Focus","keyup","KEYUP","keydown","KEYDOWN","getEventsByType","type","mappings","Event","eventIdentifier","condition","mapping","Operator","AND","OR","keyCode","From","To","name","makeRequest","callbackErr","propertyHttpHeaders","getOwnPropertyNames","_HttpMethod","_Url","queryParams","queryParamsStringify","setRequestHeader","onreadystatechange","$Cache","cache","_Cache","removeEventListener","removeChild","tmp","arguments","Highlight","getRegex","RegExp","transform","Limit","QueryArg","KeyUpAndDown_down","last","active","currentIndex","lisCount","AlphaNum","oldValue","currentValue","_Render","_Post","_Error","_Close","_EmptyMessage","emptyMessage","_Limit","limit","isNaN","parseInt","minchars","_Highlight","label","now","onclick","offsetHeight","offsetLeft","clientWidth","ul","_RenderRaw","_RenderResponseItems","hasChildNodes","childNodes","reverse","Math","min","abs","Label","Value","returnResponse","json"],"mappings":"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"} \ No newline at end of file From 326ade863423ccfe1c677a26170044788b09f380 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 16 Aug 2024 07:57:41 +0000 Subject: [PATCH 4/6] [upd] pypi: Bump lxml from 5.2.2 to 5.3.0 Bumps [lxml](https://github.com/lxml/lxml) from 5.2.2 to 5.3.0. - [Release notes](https://github.com/lxml/lxml/releases) - [Changelog](https://github.com/lxml/lxml/blob/master/CHANGES.txt) - [Commits](https://github.com/lxml/lxml/compare/lxml-5.2.2...lxml-5.3.0) --- updated-dependencies: - dependency-name: lxml dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 1c9a7eacb..ab932f496 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,7 +3,7 @@ babel==2.16.0 flask-babel==4.0.0 flask==3.0.3 jinja2==3.1.4 -lxml==5.2.2 +lxml==5.3.0 pygments==2.18.0 python-dateutil==2.9.0.post0 pyyaml==6.0.2 From 29056b9ddd506e2f5c730ddc1db65b7079262639 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 16 Aug 2024 07:57:45 +0000 Subject: [PATCH 5/6] [upd] pypi: Bump uvloop from 0.19.0 to 0.20.0 Bumps [uvloop](https://github.com/MagicStack/uvloop) from 0.19.0 to 0.20.0. - [Release notes](https://github.com/MagicStack/uvloop/releases) - [Commits](https://github.com/MagicStack/uvloop/compare/v0.19.0...v0.20.0) --- updated-dependencies: - dependency-name: uvloop dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index ab932f496..4e6ed7ef8 100644 --- a/requirements.txt +++ b/requirements.txt @@ -9,7 +9,7 @@ python-dateutil==2.9.0.post0 pyyaml==6.0.2 httpx[http2]==0.24.1 Brotli==1.1.0 -uvloop==0.19.0 +uvloop==0.20.0 httpx-socks[asyncio]==0.7.7 setproctitle==1.3.3 redis==5.0.8 From c0369ee48812451d40f331de80d388841a8bcf77 Mon Sep 17 00:00:00 2001 From: searxng-bot Date: Fri, 16 Aug 2024 07:09:46 +0000 Subject: [PATCH 6/6] [l10n] update translations from Weblate fff02429f - 2024-08-15 - return42 b13279293 - 2024-08-15 - return42 fc7c2faa4 - 2024-08-14 - 0ko <0ko@users.noreply.translate.codeberg.org> 6697dad47 - 2024-08-14 - return42 e9ccc396d - 2024-08-13 - Aeris1One f48553819 - 2024-08-12 - tentsbet d431b6c04 - 2024-08-11 - hugoalh b942a29c7 - 2024-08-11 - rafablog77 2f4d23a5a - 2024-08-09 - xyb a4f47be87 - 2024-08-10 - return42 --- searx/translations/af/LC_MESSAGES/messages.mo | Bin 20291 -> 20291 bytes searx/translations/ar/LC_MESSAGES/messages.mo | Bin 24884 -> 24884 bytes searx/translations/bg/LC_MESSAGES/messages.mo | Bin 26451 -> 26451 bytes searx/translations/bn/LC_MESSAGES/messages.mo | Bin 31450 -> 31450 bytes searx/translations/bo/LC_MESSAGES/messages.mo | Bin 10263 -> 10263 bytes searx/translations/ca/LC_MESSAGES/messages.mo | Bin 19315 -> 19391 bytes searx/translations/ca/LC_MESSAGES/messages.po | 18 +++--- searx/translations/cs/LC_MESSAGES/messages.mo | Bin 20937 -> 20937 bytes searx/translations/cy/LC_MESSAGES/messages.mo | Bin 19910 -> 19910 bytes searx/translations/da/LC_MESSAGES/messages.mo | Bin 19872 -> 19872 bytes searx/translations/de/LC_MESSAGES/messages.mo | Bin 21014 -> 21014 bytes searx/translations/dv/LC_MESSAGES/messages.mo | Bin 1462 -> 1462 bytes .../el_GR/LC_MESSAGES/messages.mo | Bin 28833 -> 28833 bytes searx/translations/en/LC_MESSAGES/messages.mo | Bin 445 -> 445 bytes searx/translations/eo/LC_MESSAGES/messages.mo | Bin 18116 -> 18116 bytes searx/translations/es/LC_MESSAGES/messages.mo | Bin 21260 -> 21260 bytes searx/translations/et/LC_MESSAGES/messages.mo | Bin 20438 -> 20438 bytes searx/translations/eu/LC_MESSAGES/messages.mo | Bin 20798 -> 20798 bytes .../fa_IR/LC_MESSAGES/messages.mo | Bin 23256 -> 23256 bytes searx/translations/fi/LC_MESSAGES/messages.mo | Bin 20311 -> 20311 bytes .../translations/fil/LC_MESSAGES/messages.mo | Bin 19469 -> 19469 bytes searx/translations/fr/LC_MESSAGES/messages.mo | Bin 21359 -> 21561 bytes searx/translations/fr/LC_MESSAGES/messages.po | 17 +++--- searx/translations/gl/LC_MESSAGES/messages.mo | Bin 20555 -> 20555 bytes searx/translations/he/LC_MESSAGES/messages.mo | Bin 19241 -> 20070 bytes searx/translations/he/LC_MESSAGES/messages.po | 57 +++++++++--------- searx/translations/hr/LC_MESSAGES/messages.mo | Bin 19883 -> 19883 bytes searx/translations/hu/LC_MESSAGES/messages.mo | Bin 21321 -> 21321 bytes searx/translations/ia/LC_MESSAGES/messages.mo | Bin 7383 -> 7383 bytes searx/translations/id/LC_MESSAGES/messages.mo | Bin 20405 -> 20414 bytes searx/translations/id/LC_MESSAGES/messages.po | 14 ++--- searx/translations/it/LC_MESSAGES/messages.mo | Bin 21004 -> 21004 bytes searx/translations/ja/LC_MESSAGES/messages.mo | Bin 22474 -> 22506 bytes searx/translations/ja/LC_MESSAGES/messages.po | 17 +++--- searx/translations/ko/LC_MESSAGES/messages.mo | Bin 21003 -> 21003 bytes searx/translations/lt/LC_MESSAGES/messages.mo | Bin 18798 -> 18798 bytes searx/translations/lv/LC_MESSAGES/messages.mo | Bin 11734 -> 11734 bytes searx/translations/ml/LC_MESSAGES/messages.mo | Bin 1032 -> 1032 bytes searx/translations/ms/LC_MESSAGES/messages.mo | Bin 16351 -> 16351 bytes .../nb_NO/LC_MESSAGES/messages.mo | Bin 18507 -> 18507 bytes searx/translations/nl/LC_MESSAGES/messages.mo | Bin 20616 -> 20616 bytes searx/translations/oc/LC_MESSAGES/messages.mo | Bin 12023 -> 12023 bytes searx/translations/pa/LC_MESSAGES/messages.mo | Bin 433 -> 433 bytes .../translations/pap/LC_MESSAGES/messages.mo | Bin 2124 -> 2124 bytes searx/translations/pl/LC_MESSAGES/messages.mo | Bin 21190 -> 21190 bytes searx/translations/pt/LC_MESSAGES/messages.mo | Bin 20948 -> 20948 bytes .../pt_BR/LC_MESSAGES/messages.mo | Bin 20982 -> 21028 bytes .../pt_BR/LC_MESSAGES/messages.po | 18 +++--- searx/translations/ro/LC_MESSAGES/messages.mo | Bin 21446 -> 21446 bytes searx/translations/ru/LC_MESSAGES/messages.mo | Bin 26951 -> 26973 bytes searx/translations/ru/LC_MESSAGES/messages.po | 30 ++++----- searx/translations/si/LC_MESSAGES/messages.mo | Bin 7218 -> 7218 bytes searx/translations/sk/LC_MESSAGES/messages.mo | Bin 20586 -> 20586 bytes searx/translations/sl/LC_MESSAGES/messages.mo | Bin 20007 -> 20007 bytes searx/translations/sr/LC_MESSAGES/messages.mo | Bin 23984 -> 23984 bytes searx/translations/sv/LC_MESSAGES/messages.mo | Bin 20408 -> 20408 bytes .../translations/szl/LC_MESSAGES/messages.mo | Bin 15331 -> 15331 bytes searx/translations/ta/LC_MESSAGES/messages.mo | Bin 23506 -> 23506 bytes searx/translations/te/LC_MESSAGES/messages.mo | Bin 19715 -> 19715 bytes searx/translations/th/LC_MESSAGES/messages.mo | Bin 28622 -> 28622 bytes searx/translations/tr/LC_MESSAGES/messages.mo | Bin 20912 -> 20912 bytes searx/translations/uk/LC_MESSAGES/messages.mo | Bin 26750 -> 26750 bytes searx/translations/vi/LC_MESSAGES/messages.mo | Bin 19915 -> 19915 bytes .../zh_Hans_CN/LC_MESSAGES/messages.mo | Bin 19689 -> 19722 bytes .../zh_Hans_CN/LC_MESSAGES/messages.po | 17 +++--- .../zh_Hant_TW/LC_MESSAGES/messages.mo | Bin 19071 -> 19460 bytes .../zh_Hant_TW/LC_MESSAGES/messages.po | 32 +++++----- 67 files changed, 112 insertions(+), 108 deletions(-) diff --git a/searx/translations/af/LC_MESSAGES/messages.mo b/searx/translations/af/LC_MESSAGES/messages.mo index 0954ca3089227fb846322dbab670b0d8190a9f56..e55a24dfa812ad46de250e4519463170b4811f98 100644 GIT binary patch delta 16 YcmX>+kMZz4#tm79jAom&4R6Q-06XFaivR!s delta 16 YcmX>+kMZz4#tm79jHa8j4R6Q-06W|UiU0rr diff --git a/searx/translations/ar/LC_MESSAGES/messages.mo b/searx/translations/ar/LC_MESSAGES/messages.mo index c408826a3579d1100888efc7d028591de1cd1e95..f8335481a5461e72f1f72368f673b06a7176d8e2 100644 GIT binary patch delta 16 YcmdmTh;hpy#tj<`8O=6tG;G!f06_5u{r~^~ delta 16 YcmdmTh;hpy#tj<`8BI5DG;G!f06^;o{Qv*} diff --git a/searx/translations/bg/LC_MESSAGES/messages.mo b/searx/translations/bg/LC_MESSAGES/messages.mo index 1ac067bb853ebdc77982508e94797b49a4880f1c..a8887a403c5f51d2250bfe0cb704752521373286 100644 GIT binary patch delta 16 Xcmcb7j`8w2#ti`mjAoky4VcUUKhp*o delta 16 Xcmcb7j`8w2#ti`mjHa6d4VcUUKg|Xh diff --git a/searx/translations/bn/LC_MESSAGES/messages.mo b/searx/translations/bn/LC_MESSAGES/messages.mo index d89ded0c6c41a5e1c4e831cc965474abbb8c9d82..a4b1fdedebf763a9063a29c73fe9d8931d80929d 100644 GIT binary patch delta 16 XcmcchmGRbB#to^4jAonD3`;x#M$HE$ delta 16 XcmcchmGRbB#to^4jHa8@3`;x#M#l#v diff --git a/searx/translations/bo/LC_MESSAGES/messages.mo b/searx/translations/bo/LC_MESSAGES/messages.mo index f678a08ccc02b530b83500b2755165760fb09bf4..623aba70cc3a8f4d214ae260bff5c077661d3a9a 100644 GIT binary patch delta 14 VcmbOpFg;*HC_kgw<}m()5&$V81q%QG delta 14 VcmbOpFg;*HC_kg=<}m()5&$V21quKF diff --git a/searx/translations/ca/LC_MESSAGES/messages.mo b/searx/translations/ca/LC_MESSAGES/messages.mo index 8bd7d2a23bf07152e99def1f5ebe4c7d1ee7f07b..fc66b22a87070d8f4873fc6cb569011864315ce3 100644 GIT binary patch delta 4801 zcmYM%3s6c>p+k*6dkhP@W&fuOcEwVsP_LqNzulPr8*50FbyYTnQgDd6zcW1{se|m z@3ij3Q0mX(I6Q#k@i5+NjAP!QFoA{}Scf4o{D&)19e!+GhZ^`XoP=9YfjonE;Sp3I z?_xfFje0*J*42xZ)H5*~+cA^*&GQsA;oBIA?_)ZCgj4Y*szVI3DWLhNf$u}DYz3-+ z1M=52@uLYh;(ok<)9~RqV}fxP>iyjq&HSc|f>v|{HNh$5uX&pvrT7`H!q|9sLO<&L z$8G&7>vO37KS!nb6;x(_jSBcJOvd+73;PQ?T0t-yOOPfK^`h6BiQ&}qP{(2}^4Bcn zhbC%7P1K5dZ=-b!PNcpAwUBPqJjd2t8_`Sq zYWsYQerxXZe>F{tqpQ30po49r9IbAD(Gjp(PrhssDldhpN4ZkQX$ zc`;EO<>{D#I?XlK<<|RATe%VyNGmD>eyqpMSc)IJ?T+zqdG$gPYELpysV+oCT!~6m zEo$Hf)cb2~djR$RPf;t|ZR;mc@4tr%q#xOKGlV)@-=RnMKZ-k{iBs@cwwy6(&;Ao^8S^d>ysY8>ll-ooUYqhEd;+3T(Hv%eEgt zjeigo*ipweypH@ez5Gzei>SjkjC%1K)WFwKk>AE}44>&{%41DJO^|_OFc;N7-?q;| z^)JU@bgJzO%TTAh4i&%ysDakl=N+gC1E}{lqXK#wHQ-*irX_ z@5r0T_>SqPpp_1y2Kp;%&#$8<9LvGbS(s=|M7^Jm+T(oGzza|xtR?n&11bY+P~)vb zE$B&9fZH%w_kSk^o%)|4SvAK{5q^lxco}ursi;25*8Ts4g1$(9!v+k=bx(N{c2M7diu_AdAeT}1`Zj7p4___a z|3u`gYG&dLT#O2&1NFv*4CR*0sjP-;Z{`t^H%2qg~c=sp!O=2lQJ3aL8ZPP zHNk3B>er+GJO>rLLKT6)B+=T=;#A6 ziGn^HMW~5tQIWPH$HHtt-Tzl@`#JPb{}e}W0VYwuj$8!eDR&pJ2zA(2pvJ4W?GK{f zd$gSVFQRaS2Kt(-s1;<*cUM}73a}D2P%9F=X-BQ(Rn)+Js1^MI70`M6d;kN~zrnlk z!3A!{wxQ;EVS(dbufsGbSwZ*3z&GGw~W8!lX*~!*m9>QNN5zdE342R&7C@_8y#yFQd*z zpKbpDIY#CJ>acl8v(Cyi9E-)M1v+~eyiE`3XI_S_fY{h zU??`D23~`@HIHBdZbt?1l5Oup_3KBid;qnOOBl}l=35G}_%GCpQPplhlTj;3N9}R3 zZC{R>pxHj}wC&HKZp9%~U?=SJH|_ItIEMC%sEmJ(^Yr51DJUg3QG0zGHL9LMp!^2P@b6BH4y@lrqpL_s2?L=bf>ABE4sTUw|{$s;UhJQk)kIVCEZ zO;Z+Sj!>DDQPXR3RC;Np*0Dzz1SBU zupc(!Bx4-2iNb6ePM|-g4Rl}3v=*QSoQ&akD=GjV#$f|0fNhwC9jN!uTQ6ZT^(&Z$ z6RtC61TIH^<~Lg@gwn7B6Y&KciXWjmoJB<*!K@m17-~gHsDRUvUz5e33M|EDdt7h1`3+s5#-lwi-ow1ZhrD(2JL>S1_1*A2wXap)YFh2k}P}WuPX?N4-~Sy%h&g zpNm>ZC2AtaK3|WT=Lz)U_QB*|9Xe5 z>RO&fjn|C|_;*akKHPEj8)y$I;vsO;m^qqzrZ1%Tb4IF{a}x z)O#e?A7aMRy^eS!N@u-*cz{cBA^8Mb4r54IQPZAG2{jOcZJ**{A?=`Ex(c zLmjH)r~yu5D*lMc7?EJiEX>3CxDgrKoWnc}O*Cc(PDGB6X~s>sFOmFfpoxTi2Uep} z`UPs`r!WA2MWwz6buELKRe{D}HpXKh&O~kDTvWeG)ETPA6ub|$fM-y*V^1>qSD~GT zKzs-F;sIQU-Kae)qp=LvpjO(6Is>sI>>0rz>gA}wDy)lb`%={SD^Y>1vh_6%1%A!L z{87hOP=~D@_2LJpfe)b~KZ3z{5|yd%trt)eT*f|VM!Nm|Q0*b8{^96{vG%#+rJz%u zj0zwJ)nUASp$LPim!RIe1r^Xj)PPG+1Fl2`T#p)OwXLs3y}usyIr2Da{9VXG9rH2; z4fHl@&kvy{{2H~wGuCcYX8uI&u^$IV14p9na}4TvI%=HpsEMYa0-J#fv>bKV=i><7 z{{{+*Y$q>)fHO5`hX4L1vlc-d;S>Hef z_#UeNQ4GUw>tCo9_vJ2+!(7zasLmn(11Z$gpp`vpA2gvRcoMaj&!IlKTCqQNqWYb% z_4B9+du@C0Sa*f7sEKk>;}=>>P-kemLm`sFy*L3IQ5iXaO4Uj0Y1HZd0d-h^Lj@AT za#W8-1w0z3V;-vi2J1#FrQU?vs&8-*I+rOZ^1XXR3PV3E9|w;^}(<9DAWQIZ9UgI2?^LSvnc5BEkFfuH!5Xy?h9r$^3814*?J3V z;x^Qw+J{xRA9V&2#=Gq~sDb5VO$ zg&N>-)WrL(Z(HBPA+&#pn&1>FfS+(V_TV(ExWR32!+y+fIw&Yr2T`d#h6?0o)Zx2= z(df^YxB`mBYkQ5#Odj5dJRx*)6lpvKj)6%<-G3jd zeH}*N6L{?wU@Y}kDJ!O*8{}Wagm)dkW+6r6R{Y zwTEd?$D^o$FQ8uN#cep4E1|$%#R2#_>MR_vcHg=Dq7GXp>Z}~M&ws%n z>X&c~UO}Cq4E93{b#9`dlukuIoQcEncC5rz$l^>FYN7;|L(HZE`Q9-tsEmAxLD+=~ zsfaa8|Pw!QmWJNtjpKIlcIB&f`dFaiUqN23OgLtUF>9E=610B*DG^{ACS zhFWd6f_!m9E;3@6|(WvLSsP@UITTzY*Y`J}2 zYoD(}eHm@B&s$KLXhmgaFKWEkaaaYnRm2_`C(K?cwPO9?#hJoKb0> O_S%f4v0F}0IrAT0U*|;t diff --git a/searx/translations/ca/LC_MESSAGES/messages.po b/searx/translations/ca/LC_MESSAGES/messages.po index 1727a4ebe..df399fef1 100644 --- a/searx/translations/ca/LC_MESSAGES/messages.po +++ b/searx/translations/ca/LC_MESSAGES/messages.po @@ -19,18 +19,19 @@ # sserra , 2024. msgid "" msgstr "" -"Project-Id-Version: searx\n" +"Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-08-08 10:01+0000\n" -"PO-Revision-Date: 2024-04-06 00:18+0000\n" -"Last-Translator: sserra \n" +"PO-Revision-Date: 2024-08-16 06:18+0000\n" +"Last-Translator: return42 \n" +"Language-Team: Catalan \n" "Language: ca\n" -"Language-Team: Catalan " -"\n" -"Plural-Forms: nplurals=2; plural=n != 1;\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 5.6.2\n" "Generated-By: Babel 2.15.0\n" #. CONSTANT_NAMES['NO_SUBGROUPING'] @@ -81,7 +82,7 @@ msgstr "radio" #. CATEGORY_NAMES['TV'] #: searx/searxng.msg msgid "tv" -msgstr "" +msgstr "tv" #. CATEGORY_NAMES['IT'] #: searx/searxng.msg @@ -181,7 +182,7 @@ msgstr "Quant a" #. WEATHER_TERMS['AVERAGE TEMP.'] #: searx/searxng.msg msgid "Average temp." -msgstr "" +msgstr "Temperatura mitjana" #. WEATHER_TERMS['CLOUD COVER'] #: searx/searxng.msg @@ -1959,4 +1960,3 @@ msgstr "oculta el vídeo" #~ msgid "Hostname replace" #~ msgstr "Substitució del nom de l'amfitrió" - diff --git a/searx/translations/cs/LC_MESSAGES/messages.mo b/searx/translations/cs/LC_MESSAGES/messages.mo index 051793098a9e240c6bdf5e6701cb93199f01db27..45091a70d626afd95d94fcf3e461d8b182428688 100644 GIT binary patch delta 16 YcmX@PnDOLd#tpL#8O=7&G1OH606swmTL1t6 delta 16 YcmX@PnDOLd#tpL#8BI6OG1OH606segS^xk5 diff --git a/searx/translations/cy/LC_MESSAGES/messages.mo b/searx/translations/cy/LC_MESSAGES/messages.mo index 44c6c3930e13154419547c54cc509825353a2936..e6815bd6074ab25b7cc3f602f874e2337434e7fb 100644 GIT binary patch delta 16 YcmX>$oAKCe#trHQjAolP4CcuK05}2#$p8QV delta 16 YcmX>$oAKCe#trHQjHa744CcuK05|*v$N&HU diff --git a/searx/translations/da/LC_MESSAGES/messages.mo b/searx/translations/da/LC_MESSAGES/messages.mo index 6aec25a7368c849ee0b5cb258c7892cb128382b2..78e8d8f7646d773411931665140cddc7716e22c3 100644 GIT binary patch delta 16 XcmZ25n{mNx#tj(;jAolN4a{W$HZuj7 delta 16 XcmZ25n{mNx#tj(;jHa724a{W$HZ290 diff --git a/searx/translations/de/LC_MESSAGES/messages.mo b/searx/translations/de/LC_MESSAGES/messages.mo index ecbfa5290ba567d4ea76a08137f5d93ba926bc28..9df08b2cc7503db21b34d3c194638de8c4b656a6 100644 GIT binary patch delta 16 YcmbQXgmKyu#tk`!jAom24Oc1v05>WI6#xJL delta 16 YcmbQXgmKyu#tk`!jHa7&4Oc1v05>EC6aWAK diff --git a/searx/translations/dv/LC_MESSAGES/messages.mo b/searx/translations/dv/LC_MESSAGES/messages.mo index d6dafc16fe17b22d2fa09d74e27a190bfacf7f20..390f5fdc5dd46b690464b737dd3116189855109d 100644 GIT binary patch delta 14 VcmdnSy^VVVHw&ZLW*(MRi~u1}1Lpt$ delta 14 VcmdnSy^VVVHw&ZbW*(MRi~u1@1Lgn# diff --git a/searx/translations/el_GR/LC_MESSAGES/messages.mo b/searx/translations/el_GR/LC_MESSAGES/messages.mo index 8a2386ac49b8ba5f442302126dec0ef32ddefbf0..446c865e52c4c9ffac8da66333c916327f87640d 100644 GIT binary patch delta 16 XcmZ4Zka6Kd#tjLEjAok?4IS(OJ&6WG delta 16 XcmZ4Zka6Kd#tjLEjHa6t4IS(OJ%a{9 diff --git a/searx/translations/en/LC_MESSAGES/messages.mo b/searx/translations/en/LC_MESSAGES/messages.mo index 14e2ea3c3a0e4240b429b10d7d1c470ebfa371f0..b9efce683ee3b454c5c6e06365759ec0c404db23 100644 GIT binary patch delta 13 UcmdnXyq9^y4n|fpJp(QV03e0~jQ{`u delta 13 UcmdnXyq9^y4n|f}Jp(QV03d+_i~s-t diff --git a/searx/translations/eo/LC_MESSAGES/messages.mo b/searx/translations/eo/LC_MESSAGES/messages.mo index bfbf3c41d755516db877ebb880bdf45e9e050abb..db36dc4d75ecbe84737b82412181a0f68198ed68 100644 GIT binary patch delta 16 XcmX@o%Xp-haf6Z$quFLX4orO{WHQoi5 diff --git a/searx/translations/es/LC_MESSAGES/messages.mo b/searx/translations/es/LC_MESSAGES/messages.mo index 92eb0a63087f3038c69027e28dd648ccafba7f90..33e203182370ead96feaf34df88648d2a98194c3 100644 GIT binary patch delta 16 XcmeBK#@MrraYMNwquJ&P!zqdYHlzjz delta 16 XcmeBK#@MrraYMNwqv_@f!zqdYHl79s diff --git a/searx/translations/et/LC_MESSAGES/messages.mo b/searx/translations/et/LC_MESSAGES/messages.mo index 56752e1f55858d22a79de60f2532f2f495f200e2..df8acdd95e7a9a60501214c35b4d87e75bb8696e 100644 GIT binary patch delta 16 XcmcaMpYhs!#tmhLjAon54ddkiJW5-Jfy*Fvtad diff --git a/searx/translations/fr/LC_MESSAGES/messages.mo b/searx/translations/fr/LC_MESSAGES/messages.mo index 8ce92708ab51db35199e5707542f89467367de45..c347910350dcc634afc22c9b6ef2e6f5df2c9561 100644 GIT binary patch delta 5534 zcmYM%2~btn9mny5A|RWHh`YHW2nqYOrqoRgjd1g0eKINV)R*?rL@Mz zJ+Ww_F)FoUEx|;aPNteN+L|<-SZhPGPK}vZCym50GivSk$32rehR-?Yp5=f3=iH0= z=19nyV%t5W*`}jU70{m|*8@F*Fo1YblmuC^n%6G+WQ2CT_!Ad>`X5G|>&HHx8zrjtXct z=3o_S+yUzmETGG(0LIqHYO2!kIjOExJ8*l*bL}D-}F&+Pi3iw;p zg7;B7??&1*Uo@(JPh5_vxSRFO^AvjGpnm*^S=beeQ3Fdb9v7i@T!~t!-ufJ}2eSjm zV-qgLf1v`H*54gB3sql?+L#A}YN(>12?MCJ38Icg%5!9nl8B0L+Xa=L!8HWmB`T+8;1?SPA0ZXjq7)#xU+S${n1$Wx#`%nwMh7KM_ z^}mD@u^lz8FE?5l%(9L_1@JH`@EHTizam*eLofUhD#i7v1%8eSY$r~}M%0Au*3Ynz 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 i(%056UsGI`QxV%TyLfO?(wLT8M!wynrK#$ diff --git a/searx/translations/fr/LC_MESSAGES/messages.po b/searx/translations/fr/LC_MESSAGES/messages.po index 3b688222c..9ad940750 100644 --- a/searx/translations/fr/LC_MESSAGES/messages.po +++ b/searx/translations/fr/LC_MESSAGES/messages.po @@ -23,20 +23,22 @@ # return42 , 2024. # Vulcain , 2024. # wags07 , 2024. +# Aeris1One , 2024. msgid "" msgstr "" -"Project-Id-Version: searx\n" +"Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-08-08 10:01+0000\n" -"PO-Revision-Date: 2024-07-30 08:18+0000\n" -"Last-Translator: wags07 \n" +"PO-Revision-Date: 2024-08-14 16:18+0000\n" +"Last-Translator: Aeris1One \n" +"Language-Team: French \n" "Language: fr\n" -"Language-Team: French " -"\n" -"Plural-Forms: nplurals=2; plural=n > 1;\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Generator: Weblate 5.6.2\n" "Generated-By: Babel 2.15.0\n" #. CONSTANT_NAMES['NO_SUBGROUPING'] @@ -535,6 +537,8 @@ msgstr "Plugin de noms d’hôtes" #: searx/plugins/hostnames.py:92 msgid "Rewrite hostnames, remove results or prioritize them based on the hostname" msgstr "" +"Réécrire les noms de domaines, supprimer des résultats ou les prioriser en " +"se basant sur les domaines" #: searx/plugins/oa_doi_rewrite.py:12 msgid "Open Access DOI rewrite" @@ -1976,4 +1980,3 @@ msgstr "cacher la vidéo" #~ msgid "Hostname replace" #~ msgstr "Remplacer les noms de domaine" - diff --git a/searx/translations/gl/LC_MESSAGES/messages.mo b/searx/translations/gl/LC_MESSAGES/messages.mo index 734169e4f5c896b18239d8ac3d4f0e4e1b57a15c..3fa7e52993f5b5b55a76618e1c090ad37dc55964 100644 GIT binary patch delta 16 YcmX@TfbsMK#tj*UjAolN4Ijw?06hB!rT_o{ delta 16 YcmX@TfbsMK#tj*UjHa724Ijw?06g^ur2qf` diff --git a/searx/translations/he/LC_MESSAGES/messages.mo b/searx/translations/he/LC_MESSAGES/messages.mo index 81336f16cdb135849e24d24e4bedd1281e3a429b..168507ca3262d2461f64ec3f04a178ddb6e8ccad 100644 GIT binary patch delta 5499 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 BL@WRR delta 4715 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, 2024. msgid "" msgstr "" -"Project-Id-Version: searx\n" +"Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-08-08 10:01+0000\n" -"PO-Revision-Date: 2024-08-02 07:09+0000\n" -"Last-Translator: return42 " -"\n" +"PO-Revision-Date: 2024-08-14 16:18+0000\n" +"Last-Translator: return42 \n" +"Language-Team: Hebrew \n" "Language: he\n" -"Language-Team: Hebrew " -"\n" -"Plural-Forms: nplurals=4; plural=(n == 1) ? 0 : ((n == 2) ? 1 : ((n > 10 " -"&& n % 10 == 0) ? 2 : 3));\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=(n == 1) ? 0 : ((n == 2) ? 1 : ((n > 10 && " +"n % 10 == 0) ? 2 : 3));\n" +"X-Generator: Weblate 5.6.2\n" "Generated-By: Babel 2.15.0\n" #. CONSTANT_NAMES['NO_SUBGROUPING'] @@ -183,7 +183,7 @@ msgstr "אודות" #. WEATHER_TERMS['AVERAGE TEMP.'] #: searx/searxng.msg msgid "Average temp." -msgstr "טמפרטורה ממוצעת" +msgstr "טמפ' ממוצעת" #. WEATHER_TERMS['CLOUD COVER'] #: searx/searxng.msg @@ -193,12 +193,12 @@ msgstr "כיסוי עננים" #. WEATHER_TERMS['CONDITION'] #: searx/searxng.msg msgid "Condition" -msgstr "" +msgstr "תנאים" #. WEATHER_TERMS['CURRENT CONDITION'] #: searx/searxng.msg msgid "Current condition" -msgstr "" +msgstr "תנאים כרגע" #. WEATHER_TERMS['EVENING'] #: searx/engines/wttr.py:100 searx/searxng.msg @@ -218,12 +218,12 @@ msgstr "לחות" #. WEATHER_TERMS['MAX TEMP.'] #: searx/searxng.msg msgid "Max temp." -msgstr "טמפרטורה מקסימלית" +msgstr "טמפ' מקסימלית" #. WEATHER_TERMS['MIN TEMP.'] #: searx/searxng.msg msgid "Min temp." -msgstr "" +msgstr "טמפ' מינימלית" #. WEATHER_TERMS['MORNING'] #: searx/engines/wttr.py:100 searx/searxng.msg @@ -243,17 +243,17 @@ msgstr "צהריים" #. WEATHER_TERMS['PRESSURE'] #: searx/searxng.msg msgid "Pressure" -msgstr "" +msgstr "לחץ" #. WEATHER_TERMS['SUNRISE'] #: searx/searxng.msg msgid "Sunrise" -msgstr "" +msgstr "זריחה" #. WEATHER_TERMS['SUNSET'] #: searx/searxng.msg msgid "Sunset" -msgstr "" +msgstr "שקיעה" #. WEATHER_TERMS['TEMPERATURE'] #: searx/searxng.msg @@ -263,17 +263,17 @@ msgstr "טמפרטורה" #. WEATHER_TERMS['UV INDEX'] #: searx/searxng.msg msgid "UV index" -msgstr "" +msgstr "מדד קרינת UV" #. WEATHER_TERMS['VISIBILITY'] #: searx/searxng.msg msgid "Visibility" -msgstr "" +msgstr "נראות" #. WEATHER_TERMS['WIND'] #: searx/searxng.msg msgid "Wind" -msgstr "" +msgstr "רוח" #. SOCIAL_MEDIA_TERMS['SUBSCRIBERS'] #: searx/searxng.msg @@ -283,12 +283,12 @@ msgstr "מנויים" #. SOCIAL_MEDIA_TERMS['POSTS'] #: searx/searxng.msg msgid "posts" -msgstr "" +msgstr "פוסטים" #. SOCIAL_MEDIA_TERMS['ACTIVE USERS'] #: searx/searxng.msg msgid "active users" -msgstr "" +msgstr "משתמשים פעילים" #. SOCIAL_MEDIA_TERMS['COMMENTS'] #: searx/searxng.msg @@ -303,12 +303,12 @@ msgstr "משתמש" #. SOCIAL_MEDIA_TERMS['COMMUNITY'] #: searx/searxng.msg msgid "community" -msgstr "" +msgstr "קהילה" #. SOCIAL_MEDIA_TERMS['POINTS'] #: searx/searxng.msg msgid "points" -msgstr "" +msgstr "נקודות" #. SOCIAL_MEDIA_TERMS['TITLE'] #: searx/searxng.msg @@ -333,7 +333,7 @@ msgstr "סגור" #. SOCIAL_MEDIA_TERMS['THREAD ANSWERED'] #: searx/engines/discourse.py:160 searx/searxng.msg msgid "answered" -msgstr "" +msgstr "נענו" #: searx/webapp.py:330 msgid "No item found" @@ -513,7 +513,7 @@ msgstr "איכות קובץ" #: searx/plugins/calculator.py:12 msgid "Calculate mathematical expressions via the search bar" -msgstr "" +msgstr "חשב ביטויים מתמטיים באמצעות שורת החיפוש" #: searx/plugins/hash_plugin.py:10 msgid "Converts strings to different hash digests." @@ -557,7 +557,7 @@ msgstr "" #: searx/plugins/self_info.py:28 msgid "Your IP is: " -msgstr "" +msgstr "ה-IP שלך הוא: " #: searx/plugins/self_info.py:31 msgid "Your user-agent is: " @@ -603,7 +603,7 @@ msgstr "הסר ארגומנטי איתור מתוך URL מוחזר" #: searx/plugins/unit_converter.py:29 msgid "Convert between units" -msgstr "" +msgstr "המר בין יחידות" #: searx/templates/simple/404.html:4 msgid "Page not found" @@ -670,7 +670,7 @@ msgstr "אורך" #: searx/templates/simple/macros.html:36 msgid "Views" -msgstr "" +msgstr "צפיות" #: searx/templates/simple/macros.html:37 #: searx/templates/simple/result_templates/files.html:34 @@ -1917,4 +1917,3 @@ msgstr "הסתר וידאו" #~ msgid "Hostname replace" #~ msgstr "החלפת Hostname" - diff --git a/searx/translations/hr/LC_MESSAGES/messages.mo b/searx/translations/hr/LC_MESSAGES/messages.mo index 3816978783a2d508b1222290a7dccba5eaef03df..c611320282ad5fc7952225e59709de377164146a 100644 GIT binary patch delta 16 YcmZ2In{oAQ#tlF88O=8T)ZZiv06(n delta 16 YcmX@PjPc|$#to5%jHa8T4BsmP06ez_p8x;= diff --git a/searx/translations/ia/LC_MESSAGES/messages.mo b/searx/translations/ia/LC_MESSAGES/messages.mo index dd3a80c455541bae060f58c8abd76a23d21d1bf1..c8f34f93391a9ba1fc27b58e1de78abc4e2bcac0 100644 GIT binary patch delta 14 Vcmca^dEIh@ln|rYW@({4TmUMB1lj-q delta 14 Vcmca^dEIh@ln|roW@({4TmUM51la%p diff --git a/searx/translations/id/LC_MESSAGES/messages.mo b/searx/translations/id/LC_MESSAGES/messages.mo index 41dd45322b16f039e198c86cf699d57fb2e7ef9f..fc96a5077ce80cc311731047b64b05c33dcbc9e1 100644 GIT binary patch delta 2701 zcmXxldrX&A9LMqVLlF1@hH)F00&Hl2j%y@{fC3iCWr>&){y) zyCq)dyvLYbX~y^&V;;{iCJG&lz+LE%Js6Muwm)J$i(baZZGQ?w>Hmd#KQPmn8jQ!; z*oL*Z4K?p~nZ_|U(YV0CEd15};FDzxP2)wqxEPgKH7b!tjKogluX&AsG~p=>#BcE) zyofoNlkLv85rgT!j=tEF?HCh4qnCl(@F;4cF^s_pRA8SwjA2nG1{I(JHNm~8$~|bU z#|Zk3_z-TvJ@`GUGF!!61y&S z=dM_PLj{_~Nc78d6N$qp`l+adiZOumXKH9@Wvj6U8&MM;wSJ6C>7PJl9bW-57C(V8_!Md(FQcQ=zn_Ly+-rRwJL!LjIs+vvOB39OD(xB!$Mu+s zTTzubfO_r_ZpS02K&6~mosk-h!#dQKZz-VuNi<$%K-b~8^)u^9)SeBa0!*M*dKH`T zA0&opDs&Tj6Lnj9QO|vXD)}&~a$~3kP1ye5g^v4zPmvoS996PgQ7cTsWXwaYWG#ka zE2?tOp;oj5^?Wz#792w*Jc@jS%z4!B5lh_nQc&|{IW$z7C8&w3unZgUcI-y&=?E&Z zi>R%-jGABy`L>vUkwuwoPAXU2w4+wsjXI2nFcDASjY^{4bFR`*fO*C4-sPYI<)ikx z7&SpPK8AIehTqunfD-q;Xe?zs-uBm_O5cpylFfJvcA*yh4pJ${d_ZFc17D&qp2Bz> z#V-8Qj&EajWxgGgaVO5hL0pADVG|ZDb62__wZfCAYwfwq{a)1KEA%(v0^R@MyE(}W ztL1Ddb~j{y-&`R_3la7gf13)M2Yd&C_IU!F2lV7)pGz zk469<#z6cCmBA5s4a{fv)bOu0M$H1g>%owx>%V*@5GcT4{)#?pTg`G%QZ z)clj^Xz#Dln2FvB_t4BnB@}J@b8J5a^rgA~usWy-o<}A40tVq8)O$VX#Xjqx9UnqHKa7fZ4t3qf zHKA5GjS3i4rFG8v08n9KF2vf=bYzx&i{Y@=bY=|-Jbos zJw2t7&KZv}ug^3l%oy`TwlRs=h7<55yal^34ZCf>-}((kGJekXM{qp-E2!^1ImXmt zBF16^F2hZzdB4svj=7b_cMQbf&-TG6^4EmSazFH;5-Ud~QiloXAb-tk{G$m^U<7`J zH8_N`aYn8?-$NKpe>;X^SFU4BIE?@UlQ4*yXb_We7!`OFS(J(MxdBR16D&qmuGYE& zC(y6M2e1V@@D!>ttzF_VF0REbM54%eY7(T1AfWz@=dq5|(h zmGm9d$`7Ct{{of3X;i?AsDRf|3-sjOl>MinfT^eni>#%nK$Unm-iIpT(>NcuVG{PE z-n(S|1r_KjCg8uQMB?+^3Qj^LRDj`}KT}CVD_e@SScjT0X#EIF=pRC5ZVKGW#GqE1 zf%@KyMK~LkXfrB-EvUo10~L4xwa{UVB)<8{4qQc@g&TM?P@$W7462`sdhSI{Fw6Gy zQ3;fwR$6Ucg?g_6bq4&Hj8CHGdj%bx{tg;ialrZ>w$uLrbp{GqmL^z&D(y0i$9nW) zE2rsE8A*Gg67S<8suNw-i(V$uwSNK-b}*^%LtcOk}(d6<`>((#zO@ zeOZZm2{?Wp%VQMaHMHQxa88)VL)o{wALem4;{pVy(G(&V8gF2f33iFaWqYES!7 zdpU&Kstc$IMv&hY^B1xPGmVqV)i#Z&6?dWz<6g|bL#V`tQQtY2X(&M2J?`GkKn2Q0 z?R5caf^uxb;DiA}9=SDcNi+yc~Lt47VU#=0J}=r`hc z;+vf`!tq^!-0`Q7pA6&RYCMP!Vp64B`e!hO{)@xqcovmlJ4WGlRG?0b#DI0b9Y2D4|2Qh% zAnLjgIW)AwE2w}Wi{0y(h`K>g|tiei`b$T2x{iPzm@^32a84^5-!IccCiPjr#5H zL2d2lsQ2?u*~VGaH9U{Hem~+A3|-<*=*2qv3sH%61vkd`retRM(zAW}zC3RhepF diff --git a/searx/translations/id/LC_MESSAGES/messages.po b/searx/translations/id/LC_MESSAGES/messages.po index 23232df78..9644854de 100644 --- a/searx/translations/id/LC_MESSAGES/messages.po +++ b/searx/translations/id/LC_MESSAGES/messages.po @@ -17,15 +17,16 @@ msgstr "" "Project-Id-Version: PROJECT VERSION\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-08-08 10:01+0000\n" -"PO-Revision-Date: 2024-08-05 15:59+0000\n" -"Last-Translator: drat \n" +"PO-Revision-Date: 2024-08-16 06:18+0000\n" +"Last-Translator: return42 \n" +"Language-Team: Indonesian \n" "Language: id\n" -"Language-Team: Indonesian " -"\n" -"Plural-Forms: nplurals=1; plural=0;\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Weblate 5.6.2\n" "Generated-By: Babel 2.15.0\n" #. CONSTANT_NAMES['NO_SUBGROUPING'] @@ -96,7 +97,7 @@ msgstr "peta" #. CATEGORY_NAMES['ONIONS'] #: searx/searxng.msg msgid "onions" -msgstr "onion" +msgstr "onions" #. CATEGORY_NAMES['SCIENCE'] #: searx/searxng.msg @@ -1834,4 +1835,3 @@ msgstr "sembunyikan video" #~ msgid "Hostname replace" #~ msgstr "Pengubah nama host" - diff --git a/searx/translations/it/LC_MESSAGES/messages.mo b/searx/translations/it/LC_MESSAGES/messages.mo index 0c09142d2b8a119fe115dbe71c174e0a9dd0ae3e..6ce56f9f557f0610eb1639b90eaa500101acbabe 100644 GIT binary patch delta 16 XcmeBK!q~HfaYL>lquJ&>!+8n-HU9

lqv_^6!+8n-HTebi diff --git a/searx/translations/ja/LC_MESSAGES/messages.mo b/searx/translations/ja/LC_MESSAGES/messages.mo index c553f8ffdcdefbee4a4a29ce3aae34be2d14dbdf..0ffc392dbdf9e8f1290b3111cda54974d151cb18 100644 GIT binary patch delta 5325 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 delta 5295 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 LXfC_Iq0|2W{PiLY diff --git a/searx/translations/ja/LC_MESSAGES/messages.po b/searx/translations/ja/LC_MESSAGES/messages.po index c7bb4a854..ed2976fbd 100644 --- a/searx/translations/ja/LC_MESSAGES/messages.po +++ b/searx/translations/ja/LC_MESSAGES/messages.po @@ -23,19 +23,19 @@ # return42 , 2024. msgid "" msgstr "" -"Project-Id-Version: searx\n" +"Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-08-08 10:01+0000\n" -"PO-Revision-Date: 2024-06-22 11:18+0000\n" -"Last-Translator: tentsbet " -"\n" +"PO-Revision-Date: 2024-08-12 14:14+0000\n" +"Last-Translator: tentsbet \n" +"Language-Team: Japanese \n" "Language: ja\n" -"Language-Team: Japanese " -"\n" -"Plural-Forms: nplurals=1; plural=0;\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Weblate 5.6.2\n" "Generated-By: Babel 2.15.0\n" #. CONSTANT_NAMES['NO_SUBGROUPING'] @@ -660,7 +660,7 @@ msgstr "長さ" #: searx/templates/simple/macros.html:36 msgid "Views" -msgstr "" +msgstr "閲覧数" #: searx/templates/simple/macros.html:37 #: searx/templates/simple/result_templates/files.html:34 @@ -1884,4 +1884,3 @@ msgstr "動画を隠す" #~ msgid "Hostname replace" #~ msgstr "ホストネーム入れ替え" - diff --git a/searx/translations/ko/LC_MESSAGES/messages.mo b/searx/translations/ko/LC_MESSAGES/messages.mo index 1423483d911fce74c1136922a5ed0c163846bb33..c16a9231a2eb316310f1c9537da100c09e203f12 100644 GIT binary patch delta 16 XcmeBP!q~lpaYLLTquJ(o!!-&3H9H07 delta 16 XcmeBP!q~lpaYLLTqv_^&!!-&3H8ln0 diff --git a/searx/translations/lt/LC_MESSAGES/messages.mo b/searx/translations/lt/LC_MESSAGES/messages.mo index 03da14a9656aef793e11fdb6c5c7dd48435dad7f..42249972ef07be3537adce9433d151efeaca2fec 100644 GIT binary patch delta 16 YcmaDiiSgYe#tmO}7|k|+)2WaF07aAsbN~PV delta 16 YcmaDiiSgYe#tmO}7)>{S)2WaF07Z@ma{vGU diff --git a/searx/translations/lv/LC_MESSAGES/messages.mo b/searx/translations/lv/LC_MESSAGES/messages.mo index c50f5b9adbf1fc063d4a77e01a994b179d4d055a..74d8b0f9e200af83e9ed51c6ac620ded6a0dcc32 100644 GIT binary patch delta 14 VcmcZ>eJy%JybPn+<^-8CK>#rX1$zJh delta 14 VcmcZ>eJy%JybPo1<^-8CK>#rR1$qDg diff --git a/searx/translations/ml/LC_MESSAGES/messages.mo b/searx/translations/ml/LC_MESSAGES/messages.mo index 7cb8506809f7ae4d9d4f81d8d5a2afa32c1d2fe4..33dc04c9e6fb23811ccdac996fbe98835f308aab 100644 GIT binary patch delta 14 VcmeC+=-}A!nTgSC^A{!&MgS(_1iJtL delta 14 VcmeC+=-}A!nTgSK^A{!&MgS(<1iAnK diff --git a/searx/translations/ms/LC_MESSAGES/messages.mo b/searx/translations/ms/LC_MESSAGES/messages.mo index 255294fe9485a097c1f85ced2e47f540746c1342..2c51efb0e3688e2430c4cd6440c474cbed4ccd16 100644 GIT binary patch delta 14 Vcmca#f4_di1r0{C%@;NJ!~r_R25kTU delta 14 Vcmca#f4_di1r0{i%@;NJ!~r_L25bNT diff --git a/searx/translations/nb_NO/LC_MESSAGES/messages.mo b/searx/translations/nb_NO/LC_MESSAGES/messages.mo index 6eee63534a412e463aa7465442fe491d370425e6..fd47a5724e42d4cbb797df049135ca6818f8f769 100644 GIT binary patch delta 16 XcmX>-f${VN#tkgGjAolzb={-^G|&YX delta 16 XcmX>-f${VN#tkgGjHa7eb={-^G|B}Q diff --git a/searx/translations/nl/LC_MESSAGES/messages.mo b/searx/translations/nl/LC_MESSAGES/messages.mo index c8f03813d582b3a0c0d439dc20a7ccd4c8a66fae..071c3cbc35faac97f81fcd64924aca0bb4811988 100644 GIT binary patch delta 16 XcmeBJ$k?%vaYMEtquJ&hLm7DhG#dqD delta 16 XcmeBJ$k?%vaYMEtqv_@xLm7DhG!+G6 diff --git a/searx/translations/oc/LC_MESSAGES/messages.mo b/searx/translations/oc/LC_MESSAGES/messages.mo index 50918b910b29de15196742ec1f30856cb317ab01..16e197058b9548e65c669b4840e8b9b92e2cccda 100644 GIT binary patch delta 14 Vcmew!`#pBUJ6T4v&F^J71OYn$26F%a delta 14 Vcmew!`#pBUJ6T54&F^J71OYnw266xZ diff --git a/searx/translations/pa/LC_MESSAGES/messages.mo b/searx/translations/pa/LC_MESSAGES/messages.mo index d14948cf12b9128c90c7843596a12d1109558d91..a2ebed4ac681372f9b23b601a183be0af82acddb 100644 GIT binary patch delta 13 UcmdnUypegs8b($#Jp(QV03QYeX#fBK delta 13 UcmdnUypegs8b(%AJp(QV03QJZXaE2J diff --git a/searx/translations/pap/LC_MESSAGES/messages.mo b/searx/translations/pap/LC_MESSAGES/messages.mo index d72d8fb0536bdc25e2e9d0e7155822e50e607707..7e7fc325cea9f19c57805673f7a51a03ddc545b6 100644 GIT binary patch delta 14 VcmX>ja7JJQ8yln9W_C7LCIBN41G4}C delta 14 VcmX>ja7JJQ8ylnPW_C7LCIBM}1F`@B diff --git a/searx/translations/pl/LC_MESSAGES/messages.mo b/searx/translations/pl/LC_MESSAGES/messages.mo index 17c5e73a5e191a4dd80d88c71eadd122d983bcbf..d9fbeb9234471023d56c3328c965d77b04c7c190 100644 GIT binary patch delta 16 YcmX@Ml=0Y7#tl41jAom8jdm&k05|{z$p8QV delta 16 YcmX@Ml=0Y7#tl41jHa7;jdm&k05|#t$N&HU diff --git a/searx/translations/pt/LC_MESSAGES/messages.mo b/searx/translations/pt/LC_MESSAGES/messages.mo index ca9095de6fcab3db58f53826dbe3147eb21c2892..6feba5f4c415e926559f49a0ddb5a448ec48efe4 100644 GIT binary patch delta 16 XcmcbznDNSD#tmVHjAom|4QmwuJf8+P delta 16 XcmcbznDNSD#tmVHjHa8z4QmwuJedYI diff --git a/searx/translations/pt_BR/LC_MESSAGES/messages.mo b/searx/translations/pt_BR/LC_MESSAGES/messages.mo index b4e3db049ce967dad9bb8791f621f4ec488fff98..1a99237171cbd525259aa20c2cba1fd64a6aad62 100644 GIT binary patch delta 5377 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 delta 5314 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 diff --git a/searx/translations/pt_BR/LC_MESSAGES/messages.po b/searx/translations/pt_BR/LC_MESSAGES/messages.po index 28fe569c8..6613f779e 100644 --- a/searx/translations/pt_BR/LC_MESSAGES/messages.po +++ b/searx/translations/pt_BR/LC_MESSAGES/messages.po @@ -29,20 +29,23 @@ # nouoneq , 2024. # Pyrbor , 2024. # rodgui , 2024. +# rafablog77 , 2024. msgid "" msgstr "" -"Project-Id-Version: searx\n" +"Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-08-08 10:01+0000\n" -"PO-Revision-Date: 2024-07-03 17:18+0000\n" -"Last-Translator: rodgui \n" +"PO-Revision-Date: 2024-08-12 04:00+0000\n" +"Last-Translator: rafablog77 " +"\n" +"Language-Team: Portuguese (Brazil) \n" "Language: pt_BR\n" -"Language-Team: Portuguese (Brazil) " -"\n" -"Plural-Forms: nplurals=2; plural=n > 1;\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=n > 1;\n" +"X-Generator: Weblate 5.6.2\n" "Generated-By: Babel 2.15.0\n" #. CONSTANT_NAMES['NO_SUBGROUPING'] @@ -686,7 +689,7 @@ msgstr "Duração" #: searx/templates/simple/macros.html:36 msgid "Views" -msgstr "" +msgstr "Visualizações" #: searx/templates/simple/macros.html:37 #: searx/templates/simple/result_templates/files.html:34 @@ -1983,4 +1986,3 @@ msgstr "ocultar vídeo" #~ msgid "Hostname replace" #~ msgstr "Substituir host" - diff --git a/searx/translations/ro/LC_MESSAGES/messages.mo b/searx/translations/ro/LC_MESSAGES/messages.mo index 63008a3239768ccc26c1f7befcc136420ec93e8b..c1cdf6ea36850072e6e5f47e71b07bfd1eff7718 100644 GIT binary patch delta 16 YcmX@MoblLl#trif8O=7&H&j;w06udDUjP6A delta 16 YcmX@MoblLl#trif8BI6OH&j;w06uL7UH||9 diff --git a/searx/translations/ru/LC_MESSAGES/messages.mo b/searx/translations/ru/LC_MESSAGES/messages.mo index ee9685ec3573395aca4a3fd391c6210ea0de5a45..c77c92e134f7ed4ef15f3f8668c869b065b65386 100644 GIT binary patch delta 5477 zcmYM%33QHE9>?(;S&)s8&6-yPkwrukf)ovj#8OhBwjjjPN~D#jHkLPHJBHR0qQ_9j zI*cMCwTy$7c49{9yl?C1w5F(zab~8SR@0stHD$iPJon5vz1a_vLh)QS#reXOTtA|9MoLB2+*3ixf2QWpv?dsE#{O9rxSMkD^v|5=-$cs$V=8L+^(^ zsQwwKg*=1ZaSUqQE7m2rka`ueQ*P5pLAT%6I3}awWuX$tLycR5+TktT*nf4{K?Cm&vj??x=a5I(G@u{e zMGd@MocH~X;$HSl|VTv(5trYMg>}hn)nwOf;Fgqdr+SrLM3_(HPI>5M3?O64XF56ZQYB_ z_56QIL2tajF>0czYVR6=E_1Q(-TK+915 zH=_KIA78Uq1YNfX^2LFzFOaq_dmlN!P8utz!z-y@f z<-Fz;XF2M{wjR}f0QDZI!vqXYXaAKzzjWtoc&YUWPN)5I)W89Kot0(dD(Vw)IevjT zIJKYi6zxOp+!>6-cQG4pU?_Ivt)n+#qII5|!e|-}pawRg&g>^tfM)%j!0nLTHob5o z7Gk^)PYd!Zf{7gHeA}g=j;aiGSISWkV4j14ZjKeY9G#yC=YNuA9?!Ye8xP#UY zFoybFbZaY{Z}K$9=9>r7E4eQSE06YKWc^b$OShIs2zE1+go!EN}ww$ zUJ^d-!#`AL;-jZ=ePakV@F?PW;Zd4*pKo?e{65fY8 z`}fcn!$&$sTRWn5%r%nz*96%#Xo3lN3TI;_b{ysG$ad6G)S*_~fVym-p~gSJZrF@x zS%Kq`SBDvm>c0|$u@<%U`*0?{@1~%Ybbr=4qg+(LImj-W#n=}wU@ZQKx*O4BIA=`8 zp|}^-{#VqIK0?Kf7;6kKMbi(D;d~@l(>~ux#66dSGF)rjfeLUGHSuMv#>ZHME1q+n zg0E0J(ui7VOZK}34#w@6i!Qu_VdzufEUYbR=i-n{>Nc4a{y@V-)CyzAJ7=1Wq10c- zO<0AI7&gJ#%6JT~f=cK^jKu56E5`f-pJ2lC`keDmnCRT@r?8k0 zhGQ1Kjj!Xk_#rNv!wX}j_4)pN{pbr7F*-nsLOR8bwpQCmoRC%GcF&s1I4z! z1hrFdVAKEqk5J%UU{2t9{5LAYQ!||B`XW|Pe~2v3EMOJ|yn^ZYB`(IOna(BNh&`zv zMaB6Pb(D8893R;BfLXl1+S3p=%juAWTJb>C%0}DvX{Z&Jq9(3H1=@_f3d}+K`FE&^ zenw3k%z4Tv?1Hg17u&RT>-tsDqDULi5BH%)9zyNyX>5zvP!YaFW$?BA{2{7;tJ%(( zbw+*O&DzI07`f(Vl&#O3&6QKfMKmapYSi<#!*+ZJHK7NU;7#lIw!P&X=N5&d`emTT z55-Pch%vYXHSsU4r>&pNaXTHqwH-s|I(wOn2@J?W?R}}OFGnSM82#`f>Tnw{8oxs& z(sG`&1K}7zy$g=QcL-P_jr5(pxV-*_gg5&7Z(gMdcOA1q+K7l$R7$lr0?K>OH^AmC29#UcHa|`1Gy6l{&JupLet8e0@q* z|InZn-u0dno;q)}cSB9t*w{GlMipJ2GcM1&-YU--&jtPTR#Q5SRh|o;6E&{PPBpj3 z#)c`3%e$IBE9k)|^=nnM5p delta 5464 zcmYM%2~gI@8OQNO0Tlre1XMs?5d;+vP!NoW7{rJ%5ycw>Jfh;2c$PHgMZ8jPMT|5J z+5_9MHf1DItJNk=8g)$C7bn)FHEFDIVnG$XEOw{4CyYKF^yU*_b|KdlN z{LWqS^L`xeUuXD}?`KRbjto-myFVq}j0vDxirsM@M&b*ueINFwe$drVVF&7OIL~7s zbsu)dD;SK|ajY?3bC*I04VgqO#(eb0dendh=TTJP7R4(ee zzfe1WfQt7&RDVCxSccJ9$NXj;g{~OV!e`&b7!MObw2} zdMw5FQ42`#X~$)w>V>F{6`@xRB@`5J9_nmXppN7P)K0cxJnlp7{5WddpHMrxjOusG zc@H~M|1TeiMjVAZPysJGeON&K zGAeK^=hp>OQ2nw{8_dDsScp2x8q_>>UJ8RK96_c0GHT-MsEKbm?>oOiEjW;?uGDsQ z#-PR}p)xhl)rX<_k3{t!hl*Q->gSzBK?5t$gNsoex1l=jcb~tC+EF7e!=tEv-MJWg zKO~^~r=T{HhJ7&?HSQVb5?o3BStL_lbDe^2|2@!UJ7ym>Zmd?Owa!q3R?LT)XGax8L31~uo52ycI`V*XSW}< z!$wzs7uEkG)Pim!PoVh^>N18U*o`Km7LbjDncs}1pn+>p6Kz5*WH;*ayo$P$K*N7jbC)lD1~#Y;ymAR9GqEh@t`N#tK0w$Z@5!t6z*?ilh2n-=uP zOQ?ZYPz$?`RT$XUUcPG7=UcEp?nC~WGyIr>pW9$}N0 zV$2?#g9>y9=VH%(Hr4A<8F>iNe_# zykAk!WeVkoF2!T04&zY^nuc1y98}i;H2 z>-oPxK>@E}Fy2H3dVsoYeuL}+!cjYqarQ;^Ps30gg&H>zHNi~O0xM8&*oCP6Rj5pD zL9ZtG0R^q_hp2@dLJd5Ek9LB39Gj3cGw-5a(GRd3Lk8R1zZ}bnya6@-A8Gb6yorg_ zyYNWpYj+stV_`b^*E@eV4O-bRP=QaNcKRO1;|Hk6^Gn=;kwfiw#ZR!2`e{`E3SMuD zvlR8}twOceqMrW-?2lig7Lb%d{@H}7%&^vD8TIq1fhn1GXG3ul^#XhmFJb`}4!4id zUR36eU=;oe$Ku-^akwVoQ4yr*Lo>DI(yWa-9!bri`}q8wp~~(?xsEgQ~Zqi z8}h4w@qf&I%O#+WsuXouD^NSFL=V=Xj=BYV;5i(E-fI-fDTK4UJ-7DA=F<--Gx8cy4QS0L8*R#3T$%i z&O?y5rb)mUd=fRmB3G|L-RcI^!kTa#o=3gu!baP8^HE3e9BQ6w)X{9mWIg|_6gJZE z6(->NJo_{pb~a)c+K*yiJcXM08fqu^oZZLRBgw&V+GpbdT#o)2@VGSy*HiC;iOg?y zQqWG1qt5&)M&jqV1v}*1z`L*y^<%gkeVB;3Y)6@!kIK|@s5`I|9AVxj#nR{?scuS6}l7IpSb*dF~S zSUWm{Q5g$E#m|^P{QeTU6u^F|IDDPADjIvMxry*H13o#R4!vws6x*Hvz=8Fj9@NwLSYX1xB zOmCqA2TbC>SD1{y!P&?fO+=AhNI7bO-fCBX5aRTzaq(`+hx zV-WR0I1IBZq7fI!hAj$jbpG8cj8UF zh-+us-{r>4vhVOUxRUnc*b9?pvrEj!T+A)uKceVG-S&~C)^gOsH(@{AjeVKl{FXu> zeu69TGgRuP&#`B;*!coR(!Lv&(ni$fYC#>*Tc}HzRAzTxh~d;LP#Ic{nrAQa=$nJ+ zJwxGR3R>BZ%I)*~b6idR@5rW1G0~OECd|NdxDLO;I9xN=?x+?O=M3ry&to^d;@WRx zPwH*%^YD4(UpwtR&+cd_YGA%|3TooHs6bW7E5PhR?fe5&{~M@@?>oQ6-qeFQ*Jw<2 z<~vJJaaYgx+IRAH8Wd;`D#eE|0#Bd^53@iseu>^y_& z_aUmEw~c~Q8@~B5o)Ei=#Rfd-QFhbj(1rsFS0M3aLlG& zhKX2@%kV667uuQB=EdD2qMB>^*9COQ9GI5nNl&ZoHKb?ojJ3;Gto4k1MDyq&zxMOX zXug{^AuP~$!gt1ZvN?B5c4&u}d?#CLd?#u*PD%)LMZfV8gIl+Id?$UUeJ4Gw)xM_I z4g9U~HTjOW?oe-!@AovH^qtkuN5emvl+x9P^|WrL{ZaSk9!1%q%?rvp`G>vC;8U&D it=s8+*7#1, 2024. msgid "" msgstr "" -"Project-Id-Version: searx\n" +"Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-08-08 10:01+0000\n" -"PO-Revision-Date: 2024-06-18 21:18+0000\n" -"Last-Translator: Xvnov \n" +"PO-Revision-Date: 2024-08-14 16:18+0000\n" +"Last-Translator: 0ko <0ko@users.noreply.translate.codeberg.org>\n" +"Language-Team: Russian \n" "Language: ru\n" -"Language-Team: Russian " -"\n" -"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " -"n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) " -"|| (n%100>=11 && n%100<=14)? 2 : 3);\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && " +"n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (" +"n%100>=11 && n%100<=14)? 2 : 3);\n" +"X-Generator: Weblate 5.6.2\n" "Generated-By: Babel 2.15.0\n" #. CONSTANT_NAMES['NO_SUBGROUPING'] @@ -327,12 +328,12 @@ msgstr "автор" #. SOCIAL_MEDIA_TERMS['THREAD OPEN'] #: searx/engines/discourse.py:149 searx/searxng.msg msgid "open" -msgstr "Открыть" +msgstr "открыт" #. SOCIAL_MEDIA_TERMS['THREAD CLOSED'] #: searx/engines/discourse.py:149 searx/searxng.msg msgid "closed" -msgstr "Закрыто" +msgstr "закрыт" #. SOCIAL_MEDIA_TERMS['THREAD ANSWERED'] #: searx/engines/discourse.py:160 searx/searxng.msg @@ -529,13 +530,13 @@ msgstr "контрольная сумма" #: searx/plugins/hostnames.py:91 msgid "Hostnames plugin" -msgstr "Плагин имени хостов" +msgstr "Плагин имён хостов" #: searx/plugins/hostnames.py:92 msgid "Rewrite hostnames, remove results or prioritize them based on the hostname" msgstr "" -"Перепишите имена хостов, удалите результаты или расставьте приоритеты в " -"зависимости от имени хоста" +"Переписывать имена хостов, удалять и приоритизировать результаты в " +"зависимости от имён хостов" #: searx/plugins/oa_doi_rewrite.py:12 msgid "Open Access DOI rewrite" @@ -677,7 +678,7 @@ msgstr "Длительность" #: searx/templates/simple/macros.html:36 msgid "Views" -msgstr "" +msgstr "Просмотры" #: searx/templates/simple/macros.html:37 #: searx/templates/simple/result_templates/files.html:34 @@ -1961,4 +1962,3 @@ msgstr "скрыть видео" #~ msgid "Hostname replace" #~ msgstr "Замена имени сайта" - diff --git a/searx/translations/si/LC_MESSAGES/messages.mo b/searx/translations/si/LC_MESSAGES/messages.mo index 273018ee0c3b06f8fed0051c89608d046e518e95..76bd8131c0229f374c1b6e0be43600b81bfe8f9a 100644 GIT binary patch delta 14 VcmdmFvB_eC93P|EW_dngJ^&?T1L*(& delta 14 VcmdmFvB_eC93P|UW_dngJ^&?N1Lyz% diff --git a/searx/translations/sk/LC_MESSAGES/messages.mo b/searx/translations/sk/LC_MESSAGES/messages.mo index 55beefaa0a45310547be26f0ea3afc44fb91d3c5..6926727442aa03fd8c62798bd27ce2df1cb01a91 100644 GIT binary patch delta 16 XcmaF0fbrD=#tmTxjAom|4TKc{J?#bY delta 16 XcmaF0fbrD=#tmTxjHa8z4TKc{J?91R diff --git a/searx/translations/sl/LC_MESSAGES/messages.mo b/searx/translations/sl/LC_MESSAGES/messages.mo index 40a364411d3903e1b10fa8233a69606c35c40051..34528e601c4b67ff97341d6398d903750ccc64df 100644 GIT binary patch delta 16 YcmZ2JhjIBF#tj_?jAolV4d%%L06B*SPXGV_ delta 16 YcmZ2JhjIBF#tj_?jHa7A4d%%L06BpMP5=M^ diff --git a/searx/translations/sr/LC_MESSAGES/messages.mo b/searx/translations/sr/LC_MESSAGES/messages.mo index e8ef3b414a51e556cb82724b46e8786fb10a5330..e9d4ddf5f7ddbb1d7c8a21938d4a07c338185393 100644 GIT binary patch delta 16 Wcmdn6n{fjWHR&>%ZEn`pH2?rSlLjvU delta 16 Wcmdn6n{fjWHR&>%Zf@4qH2?rSjRr0N diff --git a/searx/translations/sv/LC_MESSAGES/messages.mo b/searx/translations/sv/LC_MESSAGES/messages.mo index dcb879efcf866c6809b4ad242a427196db382766..0f4f717ffd426140de617bfab1b7183aa96a5a1c 100644 GIT binary patch delta 16 XcmdlnpK-^0#tr#~jAok)3_aukIp78I delta 16 XcmdlnpK-^0#tr#~jHa6l3_aukIobvB diff --git a/searx/translations/szl/LC_MESSAGES/messages.mo b/searx/translations/szl/LC_MESSAGES/messages.mo index a6d6b7bb14c2493138c8b9f89164912d34ee2d6b..319e9efcb0c9117e88c4c42a32f18d677936fddf 100644 GIT binary patch delta 14 VcmaD{{<`$KBaR4^-1`_}P diff --git a/searx/translations/ta/LC_MESSAGES/messages.mo b/searx/translations/ta/LC_MESSAGES/messages.mo index 4067e3df8e653502fb5cbe5e924c0dad34ec5b88..47ef18740853bdcb233716dfca070b6ec2eda3a8 100644 GIT binary patch delta 16 Xcmcb#o$=Ck#tp&BjAoldl0VMzhWD0VM$^sj7i07Ux+_y7O^ delta 16 YcmX?ipYhy%#tk!c7)>|N)G>7i07Uf$_W%F@ diff --git a/searx/translations/tr/LC_MESSAGES/messages.mo b/searx/translations/tr/LC_MESSAGES/messages.mo index 19ea4f1aefbf6538435f7e581c70323765d84367..db439c18ede931a40ee86c2ef5c98d1b78b336e5 100644 GIT binary patch delta 16 Wcmdn6m~jITWf(G=ZO$}wR{#Jx2?gB% delta 16 Wcmdn6m~jITWf(G=Zq77xR{#Jx0|ndw diff --git a/searx/translations/uk/LC_MESSAGES/messages.mo b/searx/translations/uk/LC_MESSAGES/messages.mo index 87cc6e27bb14e926d1cadb5fb667ccb1cb40564c..ef8d2c93c48616bf38b614319604eebdf32164ab 100644 GIT binary patch delta 16 Xcmex&f$`r3#tq&^jAomCjEu|xMH~j4 delta 16 Xcmex&f$`r3#tq&^jHa7?jEu|xMHU8| diff --git a/searx/translations/vi/LC_MESSAGES/messages.mo b/searx/translations/vi/LC_MESSAGES/messages.mo index dbc813e468c4e9c6a855f583f994b1853dbaa38f..3db429b1b24b62084c5a3b4980dd2511bb1b1b17 100644 GIT binary patch delta 16 YcmX>-oALB)#tnb87|k~S)jFpH07HidrT_o{ delta 16 YcmX>-oALB)#tnb87)>|-)jFpH07HQXr2qf` diff --git a/searx/translations/zh_Hans_CN/LC_MESSAGES/messages.mo b/searx/translations/zh_Hans_CN/LC_MESSAGES/messages.mo index 8af128c341ef618257349e606191e66d1d571c71..8ecd22d0106323a65db8d41c3556c2778a5ef919 100644 GIT binary patch delta 5292 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 diff --git a/searx/translations/zh_Hans_CN/LC_MESSAGES/messages.po b/searx/translations/zh_Hans_CN/LC_MESSAGES/messages.po index f8d364a74..c7d1e24a5 100644 --- a/searx/translations/zh_Hans_CN/LC_MESSAGES/messages.po +++ b/searx/translations/zh_Hans_CN/LC_MESSAGES/messages.po @@ -32,20 +32,22 @@ # lcaopcn , 2024. # chjtxwd , 2024. # Jeex , 2024. +# xyb , 2024. msgid "" msgstr "" -"Project-Id-Version: searx\n" +"Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-08-08 10:01+0000\n" -"PO-Revision-Date: 2024-07-05 07:09+0000\n" -"Last-Translator: Jeex \n" +"PO-Revision-Date: 2024-08-10 15:18+0000\n" +"Last-Translator: xyb \n" +"Language-Team: Chinese (Simplified) \n" "Language: zh_Hans_CN\n" -"Language-Team: Chinese (Simplified) " -"\n" -"Plural-Forms: nplurals=1; plural=0;\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Weblate 5.6.2\n" "Generated-By: Babel 2.15.0\n" #. CONSTANT_NAMES['NO_SUBGROUPING'] @@ -670,7 +672,7 @@ msgstr "长度" #: searx/templates/simple/macros.html:36 msgid "Views" -msgstr "" +msgstr "查看次数" #: searx/templates/simple/macros.html:37 #: searx/templates/simple/result_templates/files.html:34 @@ -1890,4 +1892,3 @@ msgstr "隐藏视频" #~ msgid "Hostname replace" #~ msgstr "主机名替换" - diff --git a/searx/translations/zh_Hant_TW/LC_MESSAGES/messages.mo b/searx/translations/zh_Hant_TW/LC_MESSAGES/messages.mo index 14bcf2a9674ff644d9cd5ae33a69bb17f94c0243..899ec38f19b1242965d4ab8b32ebad1593b69a33 100644 GIT binary patch delta 5739 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 delta 5334 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, # 2024. # pdwalker , 2024. +# hugoalh , 2024. msgid "" msgstr "" -"Project-Id-Version: searx\n" +"Project-Id-Version: searx\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "POT-Creation-Date: 2024-08-08 10:01+0000\n" -"PO-Revision-Date: 2024-07-26 07:09+0000\n" -"Last-Translator: pdwalker " -"\n" +"PO-Revision-Date: 2024-08-12 04:00+0000\n" +"Last-Translator: hugoalh \n" +"Language-Team: Chinese (Traditional) \n" "Language: zh_Hant_TW\n" -"Language-Team: Chinese (Traditional) " -"\n" -"Plural-Forms: nplurals=1; plural=0;\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Weblate 5.6.2\n" "Generated-By: Babel 2.15.0\n" #. CONSTANT_NAMES['NO_SUBGROUPING'] @@ -95,7 +96,7 @@ msgstr "電視" #. CATEGORY_NAMES['IT'] #: searx/searxng.msg msgid "it" -msgstr "IT" +msgstr "資訊科技" #. CATEGORY_NAMES['NEWS'] #: searx/searxng.msg @@ -290,7 +291,7 @@ msgstr "訂閱數" #. SOCIAL_MEDIA_TERMS['POSTS'] #: searx/searxng.msg msgid "posts" -msgstr "" +msgstr "帖文" #. SOCIAL_MEDIA_TERMS['ACTIVE USERS'] #: searx/searxng.msg @@ -315,7 +316,7 @@ msgstr "社群" #. SOCIAL_MEDIA_TERMS['POINTS'] #: searx/searxng.msg msgid "points" -msgstr "" +msgstr "積分" #. SOCIAL_MEDIA_TERMS['TITLE'] #: searx/searxng.msg @@ -531,7 +532,7 @@ msgstr "主機名稱外掛" #: searx/plugins/hostnames.py:92 msgid "Rewrite hostnames, remove results or prioritize them based on the hostname" -msgstr "" +msgstr "重寫主機名稱、移除結果或根據主機名稱確定其優先級別" #: searx/plugins/oa_doi_rewrite.py:12 msgid "Open Access DOI rewrite" @@ -559,7 +560,7 @@ msgstr "您的 IP 是: " #: searx/plugins/self_info.py:31 msgid "Your user-agent is: " -msgstr "" +msgstr "你的用戶代理是: " #: searx/plugins/tor_check.py:24 msgid "Tor check plugin" @@ -597,7 +598,7 @@ msgstr "從傳回的 URL 中移除追蹤器參數" #: searx/plugins/unit_converter.py:29 msgid "Convert between units" -msgstr "" +msgstr "在單位之間轉換" #: searx/templates/simple/404.html:4 msgid "Page not found" @@ -664,7 +665,7 @@ msgstr "長度" #: searx/templates/simple/macros.html:36 msgid "Views" -msgstr "" +msgstr "檢視次數" #: searx/templates/simple/macros.html:37 #: searx/templates/simple/result_templates/files.html:34 @@ -1095,7 +1096,7 @@ msgstr "置中對齊" #: searx/templates/simple/preferences/center_alignment.html:14 msgid "Displays results in the center of the page (Oscar layout)." -msgstr "搜尋結果置顯示於網頁中間。(Oscar 版面配置)" +msgstr "顯示搜尋結果於網頁中間(Oscar 版面配置)。" #: searx/templates/simple/preferences/cookies.html:2 msgid "" @@ -1878,4 +1879,3 @@ msgstr "隱藏影片" #~ msgid "Hostname replace" #~ msgstr "主機名替換" -