8 Commits

Author SHA1 Message Date
searxng-bot
9d4bc7be91 [data] update searx.data - update_firefox_version.py 2025-12-29 00:18:06 +00:00
Aadniz
fa9729226b [fix] ahmia engine: increase timeout to 20 seconds 2025-12-26 18:22:15 +01:00
Aadniz
9df177af85 [fix] ahmia engine: Remove comment for EngineCache 2025-12-26 18:22:15 +01:00
Aadniz
f45123356b [fix] ahmia engine: requires rotating tokens to work
Ahmia recently implemented a 60 minute rotating token system when searching.

This fix uses the cache and updates the tokens on every request.
2025-12-26 18:22:15 +01:00
Aadniz
8851f4d6b1 [fix] searx.network: fix string concatenation of proxy error message 2025-12-26 18:07:51 +01:00
searxng-bot
f954423101 [l10n] update translations from Weblate
3a4b5f36f - 2025-12-24 - Stzyxh <stzyxh@noreply.codeberg.org>
e72be22b9 - 2025-12-23 - gallegonovato <gallegonovato@noreply.codeberg.org>
18a59dd67 - 2025-12-22 - Outbreak2096 <outbreak2096@noreply.codeberg.org>
bf212eb3c - 2025-12-22 - Priit Jõerüüt <jrtcdbrg@noreply.codeberg.org>
3525b547a - 2025-12-19 - MaiuZ <maiuz@noreply.codeberg.org>
2025-12-26 11:51:22 +01:00
dependabot[bot]
95e63ac32d [upd] web-client (simple): Bump vite in /client/simple
Bumps [vite](https://github.com/vitejs/vite/tree/HEAD/packages/vite) from 8.0.0-beta.3 to 8.0.0-beta.5.
- [Release notes](https://github.com/vitejs/vite/releases)
- [Changelog](https://github.com/vitejs/vite/blob/main/packages/vite/CHANGELOG.md)
- [Commits](https://github.com/vitejs/vite/commits/v8.0.0-beta.5/packages/vite)

---
updated-dependencies:
- dependency-name: vite
  dependency-version: 8.0.0-beta.5
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-26 11:47:23 +01:00
dependabot[bot]
fc6e59d3ec [upd] pypi: Bump the minor group with 2 updates (#5598)
Bumps the minor group with 2 updates: [typer-slim](https://github.com/fastapi/typer) and [basedpyright](https://github.com/detachhead/basedpyright).


Updates `typer-slim` from 0.20.0 to 0.21.0
- [Release notes](https://github.com/fastapi/typer/releases)
- [Changelog](https://github.com/fastapi/typer/blob/master/docs/release-notes.md)
- [Commits](https://github.com/fastapi/typer/compare/0.20.0...0.21.0)

Updates `basedpyright` from 1.36.1 to 1.36.2
- [Release notes](https://github.com/detachhead/basedpyright/releases)
- [Commits](https://github.com/detachhead/basedpyright/compare/v1.36.1...v1.36.2)

---
updated-dependencies:
- dependency-name: typer-slim
  dependency-version: 0.21.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: minor
- dependency-name: basedpyright
  dependency-version: 1.36.2
  dependency-type: direct:development
  update-type: version-update:semver-patch
  dependency-group: minor
2025-12-26 10:03:42 +01:00
18 changed files with 203 additions and 149 deletions

View File

@@ -9,28 +9,28 @@
"version": "0.0.0", "version": "0.0.0",
"license": "AGPL-3.0", "license": "AGPL-3.0",
"dependencies": { "dependencies": {
"ionicons": "~8.0.13", "ionicons": "^8.0.13",
"normalize.css": "8.0.1", "normalize.css": "8.0.1",
"ol": "~10.7.0", "ol": "^10.7.0",
"swiped-events": "1.2.0" "swiped-events": "1.2.0"
}, },
"devDependencies": { "devDependencies": {
"@biomejs/biome": "2.3.10", "@biomejs/biome": "2.3.10",
"@types/node": "~25.0.3", "@types/node": "^25.0.3",
"browserslist": "~4.28.1", "browserslist": "^4.28.1",
"browserslist-to-esbuild": "~2.1.1", "browserslist-to-esbuild": "^2.1.1",
"edge.js": "~6.4.0", "edge.js": "^6.4.0",
"less": "~4.5.1", "less": "^4.5.1",
"mathjs": "~15.1.0", "mathjs": "^15.1.0",
"sharp": "~0.34.5", "sharp": "~0.34.5",
"sort-package-json": "~3.6.0", "sort-package-json": "^3.6.0",
"stylelint": "~16.26.0", "stylelint": "^16.26.0",
"stylelint-config-standard-less": "~3.0.1", "stylelint-config-standard-less": "^3.0.1",
"stylelint-prettier": "~5.0.3", "stylelint-prettier": "^5.0.3",
"svgo": "~4.0.0", "svgo": "^4.0.0",
"typescript": "~5.9.3", "typescript": "~5.9.3",
"vite": "8.0.0-beta.3", "vite": "8.0.0-beta.5",
"vite-bundle-analyzer": "~1.3.2" "vite-bundle-analyzer": "^1.3.2"
} }
}, },
"node_modules/@babel/code-frame": { "node_modules/@babel/code-frame": {
@@ -280,9 +280,9 @@
} }
}, },
"node_modules/@csstools/css-syntax-patches-for-csstree": { "node_modules/@csstools/css-syntax-patches-for-csstree": {
"version": "1.0.21", "version": "1.0.22",
"resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.0.21.tgz", "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.0.22.tgz",
"integrity": "sha512-plP8N8zKfEZ26figX4Nvajx8DuzfuRpLTqglQ5d0chfnt35Qt3X+m6ASZ+rG0D0kxe/upDVNwSIVJP5n4FuNfw==", "integrity": "sha512-qBcx6zYlhleiFfdtzkRgwNC7VVoAwfK76Vmsw5t+PbvtdknO9StgRk7ROvq9so1iqbdW4uLIDAsXRsTfUrIoOw==",
"dev": true, "dev": true,
"funding": [ "funding": [
{ {
@@ -1072,9 +1072,9 @@
} }
}, },
"node_modules/@rolldown/binding-android-arm64": { "node_modules/@rolldown/binding-android-arm64": {
"version": "1.0.0-beta.55", "version": "1.0.0-beta.57",
"resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-beta.55.tgz", "resolved": "https://registry.npmjs.org/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-beta.57.tgz",
"integrity": "sha512-5cPpHdO+zp+klznZnIHRO1bMHDq5hS9cqXodEKAaa/dQTPDjnE91OwAsy3o1gT2x4QaY8NzdBXAvutYdaw0WeA==", "integrity": "sha512-GoOVDy8bjw9z1K30Oo803nSzXJS/vWhFijFsW3kzvZCO8IZwFnNa6pGctmbbJstKl3Fv6UBwyjJQN6msejW0IQ==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@@ -1089,9 +1089,9 @@
} }
}, },
"node_modules/@rolldown/binding-darwin-arm64": { "node_modules/@rolldown/binding-darwin-arm64": {
"version": "1.0.0-beta.55", "version": "1.0.0-beta.57",
"resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-beta.55.tgz", "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-beta.57.tgz",
"integrity": "sha512-l0887CGU2SXZr0UJmeEcXSvtDCOhDTTYXuoWbhrEJ58YQhQk24EVhDhHMTyjJb1PBRniUgNc1G0T51eF8z+TWw==", "integrity": "sha512-9c4FOhRGpl+PX7zBK5p17c5efpF9aSpTPgyigv57hXf5NjQUaJOOiejPLAtFiKNBIfm5Uu6yFkvLKzOafNvlTw==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@@ -1106,9 +1106,9 @@
} }
}, },
"node_modules/@rolldown/binding-darwin-x64": { "node_modules/@rolldown/binding-darwin-x64": {
"version": "1.0.0-beta.55", "version": "1.0.0-beta.57",
"resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-beta.55.tgz", "resolved": "https://registry.npmjs.org/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-beta.57.tgz",
"integrity": "sha512-d7qP2AVYzN0tYIP4vJ7nmr26xvmlwdkLD/jWIc9Z9dqh5y0UGPigO3m5eHoHq9BNazmwdD9WzDHbQZyXFZjgtA==", "integrity": "sha512-6RsB8Qy4LnGqNGJJC/8uWeLWGOvbRL/KG5aJ8XXpSEupg/KQtlBEiFaYU/Ma5Usj1s+bt3ItkqZYAI50kSplBA==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@@ -1123,9 +1123,9 @@
} }
}, },
"node_modules/@rolldown/binding-freebsd-x64": { "node_modules/@rolldown/binding-freebsd-x64": {
"version": "1.0.0-beta.55", "version": "1.0.0-beta.57",
"resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-beta.55.tgz", "resolved": "https://registry.npmjs.org/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-beta.57.tgz",
"integrity": "sha512-j311E4NOB0VMmXHoDDZhrWidUf7L/Sa6bu/+i2cskvHKU40zcUNPSYeD2YiO2MX+hhDFa5bJwhliYfs+bTrSZw==", "integrity": "sha512-uA9kG7+MYkHTbqwv67Tx+5GV5YcKd33HCJIi0311iYBd25yuwyIqvJfBdt1VVB8tdOlyTb9cPAgfCki8nhwTQg==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@@ -1140,9 +1140,9 @@
} }
}, },
"node_modules/@rolldown/binding-linux-arm-gnueabihf": { "node_modules/@rolldown/binding-linux-arm-gnueabihf": {
"version": "1.0.0-beta.55", "version": "1.0.0-beta.57",
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-beta.55.tgz", "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-beta.57.tgz",
"integrity": "sha512-lAsaYWhfNTW2A/9O7zCpb5eIJBrFeNEatOS/DDOZ5V/95NHy50g4b/5ViCqchfyFqRb7MKUR18/+xWkIcDkeIw==", "integrity": "sha512-3KkS0cHsllT2T+Te+VZMKHNw6FPQihYsQh+8J4jkzwgvAQpbsbXmrqhkw3YU/QGRrD8qgcOvBr6z5y6Jid+rmw==",
"cpu": [ "cpu": [
"arm" "arm"
], ],
@@ -1157,9 +1157,9 @@
} }
}, },
"node_modules/@rolldown/binding-linux-arm64-gnu": { "node_modules/@rolldown/binding-linux-arm64-gnu": {
"version": "1.0.0-beta.55", "version": "1.0.0-beta.57",
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-beta.55.tgz", "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-beta.57.tgz",
"integrity": "sha512-2x6ffiVLZrQv7Xii9+JdtyT1U3bQhKj59K3eRnYlrXsKyjkjfmiDUVx2n+zSyijisUqD62fcegmx2oLLfeTkCA==", "integrity": "sha512-A3/wu1RgsHhqP3rVH2+sM81bpk+Qd2XaHTl8LtX5/1LNR7QVBFBCpAoiXwjTdGnI5cMdBVi7Z1pi52euW760Fw==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@@ -1174,9 +1174,9 @@
} }
}, },
"node_modules/@rolldown/binding-linux-arm64-musl": { "node_modules/@rolldown/binding-linux-arm64-musl": {
"version": "1.0.0-beta.55", "version": "1.0.0-beta.57",
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-beta.55.tgz", "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-beta.57.tgz",
"integrity": "sha512-QbNncvqAXziya5wleI+OJvmceEE15vE4yn4qfbI/hwT/+8ZcqxyfRZOOh62KjisXxp4D0h3JZspycXYejxAU3w==", "integrity": "sha512-d0kIVezTQtazpyWjiJIn5to8JlwfKITDqwsFv0Xc6s31N16CD2PC/Pl2OtKgS7n8WLOJbfqgIp5ixYzTAxCqMg==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@@ -1191,9 +1191,9 @@
} }
}, },
"node_modules/@rolldown/binding-linux-x64-gnu": { "node_modules/@rolldown/binding-linux-x64-gnu": {
"version": "1.0.0-beta.55", "version": "1.0.0-beta.57",
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0-beta.55.tgz", "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0-beta.57.tgz",
"integrity": "sha512-YZCTZZM+rujxwVc6A+QZaNMJXVtmabmFYLG2VGQTKaBfYGvBKUgtbMEttnp/oZ88BMi2DzadBVhOmfQV8SuHhw==", "integrity": "sha512-E199LPijo98yrLjPCmETx8EF43sZf9t3guSrLee/ej1rCCc3zDVTR4xFfN9BRAapGVl7/8hYqbbiQPTkv73kUg==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@@ -1208,9 +1208,9 @@
} }
}, },
"node_modules/@rolldown/binding-linux-x64-musl": { "node_modules/@rolldown/binding-linux-x64-musl": {
"version": "1.0.0-beta.55", "version": "1.0.0-beta.57",
"resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-beta.55.tgz", "resolved": "https://registry.npmjs.org/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-beta.57.tgz",
"integrity": "sha512-28q9OQ/DDpFh2keS4BVAlc3N65/wiqKbk5K1pgLdu/uWbKa8hgUJofhXxqO+a+Ya2HVTUuYHneWsI2u+eu3N5Q==", "integrity": "sha512-++EQDpk/UJ33kY/BNsh7A7/P1sr/jbMuQ8cE554ZIy+tCUWCivo9zfyjDUoiMdnxqX6HLJEqqGnbGQOvzm2OMQ==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@@ -1225,9 +1225,9 @@
} }
}, },
"node_modules/@rolldown/binding-openharmony-arm64": { "node_modules/@rolldown/binding-openharmony-arm64": {
"version": "1.0.0-beta.55", "version": "1.0.0-beta.57",
"resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-beta.55.tgz", "resolved": "https://registry.npmjs.org/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-beta.57.tgz",
"integrity": "sha512-LiCA4BjCnm49B+j1lFzUtlC+4ZphBv0d0g5VqrEJua/uyv9Ey1v9tiaMql1C8c0TVSNDUmrkfHQ71vuQC7YfpQ==", "integrity": "sha512-voDEBcNqxbUv/GeXKFtxXVWA+H45P/8Dec4Ii/SbyJyGvCqV1j+nNHfnFUIiRQ2Q40DwPe/djvgYBs9PpETiMA==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@@ -1242,9 +1242,9 @@
} }
}, },
"node_modules/@rolldown/binding-wasm32-wasi": { "node_modules/@rolldown/binding-wasm32-wasi": {
"version": "1.0.0-beta.55", "version": "1.0.0-beta.57",
"resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-beta.55.tgz", "resolved": "https://registry.npmjs.org/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-beta.57.tgz",
"integrity": "sha512-nZ76tY7T0Oe8vamz5Cv5CBJvrqeQxwj1WaJ2GxX8Msqs0zsQMMcvoyxOf0glnJlxxgKjtoBxAOxaAU8ERbW6Tg==", "integrity": "sha512-bRhcF7NLlCnpkzLVlVhrDEd0KH22VbTPkPTbMjlYvqhSmarxNIq5vtlQS8qmV7LkPKHrNLWyJW/V/sOyFba26Q==",
"cpu": [ "cpu": [
"wasm32" "wasm32"
], ],
@@ -1259,9 +1259,9 @@
} }
}, },
"node_modules/@rolldown/binding-win32-arm64-msvc": { "node_modules/@rolldown/binding-win32-arm64-msvc": {
"version": "1.0.0-beta.55", "version": "1.0.0-beta.57",
"resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-beta.55.tgz", "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-beta.57.tgz",
"integrity": "sha512-TFVVfLfhL1G+pWspYAgPK/FSqjiBtRKYX9hixfs508QVEZPQlubYAepHPA7kEa6lZXYj5ntzF87KC6RNhxo+ew==", "integrity": "sha512-rnDVGRks2FQ2hgJ2g15pHtfxqkGFGjJQUDWzYznEkE8Ra2+Vag9OffxdbJMZqBWXHVM0iS4dv8qSiEn7bO+n1Q==",
"cpu": [ "cpu": [
"arm64" "arm64"
], ],
@@ -1276,9 +1276,9 @@
} }
}, },
"node_modules/@rolldown/binding-win32-x64-msvc": { "node_modules/@rolldown/binding-win32-x64-msvc": {
"version": "1.0.0-beta.55", "version": "1.0.0-beta.57",
"resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-beta.55.tgz", "resolved": "https://registry.npmjs.org/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-beta.57.tgz",
"integrity": "sha512-j1WBlk0p+ISgLzMIgl0xHp1aBGXenoK2+qWYc/wil2Vse7kVOdFq9aeQ8ahK6/oxX2teQ5+eDvgjdywqTL+daA==", "integrity": "sha512-OqIUyNid1M4xTj6VRXp/Lht/qIP8fo25QyAZlCP+p6D2ATCEhyW4ZIFLnC9zAGN/HMbXoCzvwfa8Jjg/8J4YEg==",
"cpu": [ "cpu": [
"x64" "x64"
], ],
@@ -1293,9 +1293,9 @@
} }
}, },
"node_modules/@rolldown/pluginutils": { "node_modules/@rolldown/pluginutils": {
"version": "1.0.0-beta.55", "version": "1.0.0-beta.57",
"resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.55.tgz", "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.57.tgz",
"integrity": "sha512-vajw/B3qoi7aYnnD4BQ4VoCcXQWnF0roSwE2iynbNxgW4l9mFwtLmLmUhpDdcTBfKyZm1p/T0D13qG94XBLohA==", "integrity": "sha512-aQNelgx14tGA+n2tNSa9x6/jeoCL9fkDeCei7nOKnHx0fEFRRMu5ReiITo+zZD5TzWDGGRjbSYCs93IfRIyTuQ==",
"dev": true, "dev": true,
"license": "MIT" "license": "MIT"
}, },
@@ -1404,9 +1404,9 @@
] ]
}, },
"node_modules/@stencil/core": { "node_modules/@stencil/core": {
"version": "4.39.0", "version": "4.40.1",
"resolved": "https://registry.npmjs.org/@stencil/core/-/core-4.39.0.tgz", "resolved": "https://registry.npmjs.org/@stencil/core/-/core-4.40.1.tgz",
"integrity": "sha512-wLASFh5wecnbxY+9pEPd6bl7AZJksLmuiBd0ShvkJ0v/N1nL4HNSw/jq2+TzgFE1+XqCUhKPDeVXFpZf1uuRDw==", "integrity": "sha512-cTHBvYFLf4h61TVHLibZoJcomYAoC+TNW3oi1VHcZMpWQyp/h/pHG1XQeEpzuSscQc/SJJwOYb5IvQ8vVeeCNg==",
"license": "MIT", "license": "MIT",
"bin": { "bin": {
"stencil": "bin/stencil" "stencil": "bin/stencil"
@@ -2247,9 +2247,9 @@
} }
}, },
"node_modules/fastq": { "node_modules/fastq": {
"version": "1.19.1", "version": "1.20.1",
"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.20.1.tgz",
"integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", "integrity": "sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==",
"dev": true, "dev": true,
"license": "ISC", "license": "ISC",
"dependencies": { "dependencies": {
@@ -3648,14 +3648,14 @@
} }
}, },
"node_modules/rolldown": { "node_modules/rolldown": {
"version": "1.0.0-beta.55", "version": "1.0.0-beta.57",
"resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.0-beta.55.tgz", "resolved": "https://registry.npmjs.org/rolldown/-/rolldown-1.0.0-beta.57.tgz",
"integrity": "sha512-r8Ws43aYCnfO07ao0SvQRz4TBAtZJjGWNvScRBOHuiNHvjfECOJBIqJv0nUkL1GYcltjvvHswRilDF1ocsC0+g==", "integrity": "sha512-lMMxcNN71GMsSko8RyeTaFoATHkCh4IWU7pYF73ziMYjhHZWfVesC6GQ+iaJCvZmVjvgSks9Ks1aaqEkBd8udg==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@oxc-project/types": "=0.103.0", "@oxc-project/types": "=0.103.0",
"@rolldown/pluginutils": "1.0.0-beta.55" "@rolldown/pluginutils": "1.0.0-beta.57"
}, },
"bin": { "bin": {
"rolldown": "bin/cli.mjs" "rolldown": "bin/cli.mjs"
@@ -3664,19 +3664,19 @@
"node": "^20.19.0 || >=22.12.0" "node": "^20.19.0 || >=22.12.0"
}, },
"optionalDependencies": { "optionalDependencies": {
"@rolldown/binding-android-arm64": "1.0.0-beta.55", "@rolldown/binding-android-arm64": "1.0.0-beta.57",
"@rolldown/binding-darwin-arm64": "1.0.0-beta.55", "@rolldown/binding-darwin-arm64": "1.0.0-beta.57",
"@rolldown/binding-darwin-x64": "1.0.0-beta.55", "@rolldown/binding-darwin-x64": "1.0.0-beta.57",
"@rolldown/binding-freebsd-x64": "1.0.0-beta.55", "@rolldown/binding-freebsd-x64": "1.0.0-beta.57",
"@rolldown/binding-linux-arm-gnueabihf": "1.0.0-beta.55", "@rolldown/binding-linux-arm-gnueabihf": "1.0.0-beta.57",
"@rolldown/binding-linux-arm64-gnu": "1.0.0-beta.55", "@rolldown/binding-linux-arm64-gnu": "1.0.0-beta.57",
"@rolldown/binding-linux-arm64-musl": "1.0.0-beta.55", "@rolldown/binding-linux-arm64-musl": "1.0.0-beta.57",
"@rolldown/binding-linux-x64-gnu": "1.0.0-beta.55", "@rolldown/binding-linux-x64-gnu": "1.0.0-beta.57",
"@rolldown/binding-linux-x64-musl": "1.0.0-beta.55", "@rolldown/binding-linux-x64-musl": "1.0.0-beta.57",
"@rolldown/binding-openharmony-arm64": "1.0.0-beta.55", "@rolldown/binding-openharmony-arm64": "1.0.0-beta.57",
"@rolldown/binding-wasm32-wasi": "1.0.0-beta.55", "@rolldown/binding-wasm32-wasi": "1.0.0-beta.57",
"@rolldown/binding-win32-arm64-msvc": "1.0.0-beta.55", "@rolldown/binding-win32-arm64-msvc": "1.0.0-beta.57",
"@rolldown/binding-win32-x64-msvc": "1.0.0-beta.55" "@rolldown/binding-win32-x64-msvc": "1.0.0-beta.57"
} }
}, },
"node_modules/run-parallel": { "node_modules/run-parallel": {
@@ -4361,9 +4361,9 @@
"license": "MIT" "license": "MIT"
}, },
"node_modules/vite": { "node_modules/vite": {
"version": "8.0.0-beta.3", "version": "8.0.0-beta.5",
"resolved": "https://registry.npmjs.org/vite/-/vite-8.0.0-beta.3.tgz", "resolved": "https://registry.npmjs.org/vite/-/vite-8.0.0-beta.5.tgz",
"integrity": "sha512-hsc59mETwVSFQj8KYpmLGwGDKoFYrQLolt2TZUy74Y0bkyF9veYolNgJH+R6loC0Ki35wEblXSMTJ6nfhDqkiQ==", "integrity": "sha512-wgvJ+rdGKggZ1m0KnSYF4mEdEEaAAUWKiHe9IDl8oagjUkyrD2CdgSoxiJdpLNNzCKIZdHsAi2xMRRwrCEd4AQ==",
"dev": true, "dev": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
@@ -4372,7 +4372,7 @@
"lightningcss": "^1.30.2", "lightningcss": "^1.30.2",
"picomatch": "^4.0.3", "picomatch": "^4.0.3",
"postcss": "^8.5.6", "postcss": "^8.5.6",
"rolldown": "1.0.0-beta.55", "rolldown": "1.0.0-beta.57",
"tinyglobby": "^0.2.15" "tinyglobby": "^0.2.15"
}, },
"bin": { "bin": {

View File

@@ -23,27 +23,27 @@
"not dead" "not dead"
], ],
"dependencies": { "dependencies": {
"ionicons": "~8.0.13", "ionicons": "^8.0.13",
"normalize.css": "8.0.1", "normalize.css": "8.0.1",
"ol": "~10.7.0", "ol": "^10.7.0",
"swiped-events": "1.2.0" "swiped-events": "1.2.0"
}, },
"devDependencies": { "devDependencies": {
"@biomejs/biome": "2.3.10", "@biomejs/biome": "2.3.10",
"@types/node": "~25.0.3", "@types/node": "^25.0.3",
"browserslist": "~4.28.1", "browserslist": "^4.28.1",
"browserslist-to-esbuild": "~2.1.1", "browserslist-to-esbuild": "^2.1.1",
"edge.js": "~6.4.0", "edge.js": "^6.4.0",
"less": "~4.5.1", "less": "^4.5.1",
"mathjs": "~15.1.0", "mathjs": "^15.1.0",
"sharp": "~0.34.5", "sharp": "~0.34.5",
"sort-package-json": "~3.6.0", "sort-package-json": "^3.6.0",
"stylelint": "~16.26.0", "stylelint": "^16.26.0",
"stylelint-config-standard-less": "~3.0.1", "stylelint-config-standard-less": "^3.0.1",
"stylelint-prettier": "~5.0.3", "stylelint-prettier": "^5.0.3",
"svgo": "~4.0.0", "svgo": "^4.0.0",
"typescript": "~5.9.3", "typescript": "~5.9.3",
"vite": "8.0.0-beta.3", "vite": "8.0.0-beta.5",
"vite-bundle-analyzer": "~1.3.2" "vite-bundle-analyzer": "^1.3.2"
} }
} }

View File

@@ -24,5 +24,5 @@ coloredlogs==15.0.1
docutils>=0.21.2 docutils>=0.21.2
parameterized==0.9.0 parameterized==0.9.0
granian[reload]==2.6.0 granian[reload]==2.6.0
basedpyright==1.36.1 basedpyright==1.36.2
types-lxml==2025.11.25 types-lxml==2025.11.25

View File

@@ -15,7 +15,7 @@ markdown-it-py==3.0.0
fasttext-predict==0.9.2.4 fasttext-predict==0.9.2.4
tomli==2.3.0; python_version < '3.11' tomli==2.3.0; python_version < '3.11'
msgspec==0.20.0 msgspec==0.20.0
typer-slim==0.20.0 typer-slim==0.21.0
isodate==0.7.2 isodate==0.7.2
whitenoise==6.11.0 whitenoise==6.11.0
typing-extensions==4.15.0 typing-extensions==4.15.0

View File

@@ -5,7 +5,7 @@
], ],
"ua": "Mozilla/5.0 ({os}; rv:{version}) Gecko/20100101 Firefox/{version}", "ua": "Mozilla/5.0 ({os}; rv:{version}) Gecko/20100101 Firefox/{version}",
"versions": [ "versions": [
"145.0", "146.0",
"144.0" "145.0"
] ]
} }

View File

@@ -3,9 +3,14 @@
Ahmia (Onions) Ahmia (Onions)
""" """
import typing as t
from urllib.parse import urlencode, urlparse, parse_qs from urllib.parse import urlencode, urlparse, parse_qs
from lxml.html import fromstring from lxml.html import fromstring
from searx.utils import gen_useragent, ElementType
from searx.engines.xpath import extract_url, extract_text, eval_xpath_list, eval_xpath from searx.engines.xpath import extract_url, extract_text, eval_xpath_list, eval_xpath
from searx.network import get
from searx.enginelib import EngineCache
# about # about
about = { about = {
@@ -23,6 +28,7 @@ paging = True
page_size = 10 page_size = 10
# search url # search url
base_url = 'http://juhanurmihxlp77nkq76byazcldy2hlmovfu2epvl5ankdibsot4csyd.onion'
search_url = 'http://juhanurmihxlp77nkq76byazcldy2hlmovfu2epvl5ankdibsot4csyd.onion/search/?{query}' search_url = 'http://juhanurmihxlp77nkq76byazcldy2hlmovfu2epvl5ankdibsot4csyd.onion/search/?{query}'
time_range_support = True time_range_support = True
time_range_dict = {'day': 1, 'week': 7, 'month': 30} time_range_dict = {'day': 1, 'week': 7, 'month': 30}
@@ -34,10 +40,42 @@ title_xpath = './h4/a[1]'
content_xpath = './/p[1]' content_xpath = './/p[1]'
correction_xpath = '//*[@id="didYouMean"]//a' correction_xpath = '//*[@id="didYouMean"]//a'
number_of_results_xpath = '//*[@id="totalResults"]' number_of_results_xpath = '//*[@id="totalResults"]'
name_token_xpath = '//form[@id="searchForm"]/input[@type="hidden"]/@name'
value_token_xpath = '//form[@id="searchForm"]/input[@type="hidden"]/@value'
CACHE: EngineCache
def setup(engine_settings: dict[str, t.Any]) -> bool:
global CACHE # pylint: disable=global-statement
CACHE = EngineCache(engine_settings["name"])
return True
def _get_tokens(dom: ElementType | None = None) -> str:
"""
The tokens are hidden in a hidden input field.
They update every minute, but allow up to 1 hour old tokens to be used.
To spend the least amount of requests, it is best to always get the newest
tokens from each request. In worst case if it has expired, it would
need to do a total of 2 requests (over tor, might be ridiculously slow).
"""
if dom is None:
resp = get(base_url, headers={'User-Agent': gen_useragent()})
dom = fromstring(resp.text)
name_token = extract_text(dom.xpath(name_token_xpath))
value_token = extract_text(dom.xpath(value_token_xpath))
return f"{name_token}:{value_token}"
def request(query, params): def request(query, params):
params['url'] = search_url.format(query=urlencode({'q': query})) token_str: str | None = CACHE.get('ahmia-tokens')
if not token_str:
token_str = _get_tokens()
CACHE.set('ahmia-tokens', token_str, expire=60 * 60)
name_token, value_token = token_str.split(":")
params['url'] = search_url.format(query=urlencode({'q': query, name_token: value_token}))
if params['time_range'] in time_range_dict: if params['time_range'] in time_range_dict:
params['url'] += '&' + urlencode({'d': time_range_dict[params['time_range']]}) params['url'] += '&' + urlencode({'d': time_range_dict[params['time_range']]})
@@ -77,4 +115,8 @@ def response(resp):
except: # pylint: disable=bare-except except: # pylint: disable=bare-except
pass pass
# Update the tokens to the newest ones
token_str = _get_tokens(dom)
CACHE.set('ahmia-tokens', token_str, expire=60 * 60)
return results return results

View File

@@ -106,9 +106,9 @@ class AsyncProxyTransportFixed(AsyncProxyTransport):
except ProxyConnectionError as e: except ProxyConnectionError as e:
raise httpx.ProxyError("ProxyConnectionError: " + str(e.strerror), request=request) from e raise httpx.ProxyError("ProxyConnectionError: " + str(e.strerror), request=request) from e
except ProxyTimeoutError as e: except ProxyTimeoutError as e:
raise httpx.ProxyError("ProxyTimeoutError: " + e.args[0], request=request) from e raise httpx.ProxyError("ProxyTimeoutError: " + str(e.args[0]), request=request) from e
except ProxyError as e: except ProxyError as e:
raise httpx.ProxyError("ProxyError: " + e.args[0], request=request) from e raise httpx.ProxyError("ProxyError: " + str(e.args[0]), request=request) from e
def get_transport_for_socks_proxy( def get_transport_for_socks_proxy(

View File

@@ -433,6 +433,9 @@ engines:
# Requires Tor # Requires Tor
- name: ahmia - name: ahmia
engine: ahmia engine: ahmia
# Might do up to two requests to perform a search.
# Since Tor is already slow by nature, the timeout is set very high.
timeout: 20.0
categories: onions categories: onions
enable_http: true enable_http: true
shortcut: ah shortcut: ah

View File

@@ -27,20 +27,22 @@
# return42 <return42@noreply.codeberg.org>, 2025. # return42 <return42@noreply.codeberg.org>, 2025.
# SecularSteve <secularsteve@noreply.codeberg.org>, 2025. # SecularSteve <secularsteve@noreply.codeberg.org>, 2025.
# pikzim <pikzim@noreply.codeberg.org>, 2025. # pikzim <pikzim@noreply.codeberg.org>, 2025.
# Stzyxh <stzyxh@noreply.codeberg.org>, 2025.
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: searx\n" "Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2025-12-05 10:19+0000\n" "POT-Creation-Date: 2025-12-05 10:19+0000\n"
"PO-Revision-Date: 2025-10-22 02:09+0000\n" "PO-Revision-Date: 2025-12-25 09:21+0000\n"
"Last-Translator: return42 <return42@noreply.codeberg.org>\n" "Last-Translator: Stzyxh <stzyxh@noreply.codeberg.org>\n"
"Language-Team: German <https://translate.codeberg.org/projects/searxng/"
"searxng/de/>\n"
"Language: de\n" "Language: de\n"
"Language-Team: German "
"<https://translate.codeberg.org/projects/searxng/searxng/de/>\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.15.1\n"
"Generated-By: Babel 2.17.0\n" "Generated-By: Babel 2.17.0\n"
#. CONSTANT_NAMES['NO_SUBGROUPING'] #. CONSTANT_NAMES['NO_SUBGROUPING']
@@ -737,11 +739,11 @@ msgstr "Filtern der Onion Links, die in der schwarzen Liste von Ahmia erscheinen
#: searx/plugins/calculator.py:25 #: searx/plugins/calculator.py:25
msgid "Calculator" msgid "Calculator"
msgstr "" msgstr "Rechner"
#: searx/plugins/calculator.py:26 #: searx/plugins/calculator.py:26
msgid "Parses and solves mathematical expressions." msgid "Parses and solves mathematical expressions."
msgstr "" msgstr "Analysiert und löst mathematische Ausdrücke."
#: searx/plugins/hash_plugin.py:33 #: searx/plugins/hash_plugin.py:33
msgid "Hash plugin" msgid "Hash plugin"
@@ -778,6 +780,8 @@ msgid ""
"Automatically loads the next page when scrolling to bottom of the current" "Automatically loads the next page when scrolling to bottom of the current"
" page" " page"
msgstr "" msgstr ""
"Lädt automatisch die nächste Seite, wenn zum Ende der aktuellen Seite "
"gescrollt wird."
#: searx/plugins/oa_doi_rewrite.py:54 #: searx/plugins/oa_doi_rewrite.py:54
msgid "Open Access DOI rewrite" msgid "Open Access DOI rewrite"
@@ -2456,4 +2460,3 @@ msgstr "Video verstecken"
#~ "Automatisches Laden der nächsten Seite " #~ "Automatisches Laden der nächsten Seite "
#~ "beim Scrollen zum Ende der aktuellen " #~ "beim Scrollen zum Ende der aktuellen "
#~ "Seite" #~ "Seite"

View File

@@ -47,20 +47,22 @@
# realkendrick_fr <realkendrick_fr@noreply.codeberg.org>, 2025. # realkendrick_fr <realkendrick_fr@noreply.codeberg.org>, 2025.
# Carlos Solís <csolisr@azkware.net>, 2025. # Carlos Solís <csolisr@azkware.net>, 2025.
# jperegrinm <jperegrinm@noreply.codeberg.org>, 2025. # jperegrinm <jperegrinm@noreply.codeberg.org>, 2025.
# gallegonovato <gallegonovato@noreply.codeberg.org>, 2025.
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: searx\n" "Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2025-12-05 10:19+0000\n" "POT-Creation-Date: 2025-12-05 10:19+0000\n"
"PO-Revision-Date: 2025-10-22 02:09+0000\n" "PO-Revision-Date: 2025-12-24 08:54+0000\n"
"Last-Translator: jperegrinm <jperegrinm@noreply.codeberg.org>\n" "Last-Translator: gallegonovato <gallegonovato@noreply.codeberg.org>\n"
"Language-Team: Spanish <https://translate.codeberg.org/projects/searxng/"
"searxng/es/>\n"
"Language: es\n" "Language: es\n"
"Language-Team: Spanish "
"<https://translate.codeberg.org/projects/searxng/searxng/es/>\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.15.1\n"
"Generated-By: Babel 2.17.0\n" "Generated-By: Babel 2.17.0\n"
#. CONSTANT_NAMES['NO_SUBGROUPING'] #. CONSTANT_NAMES['NO_SUBGROUPING']
@@ -756,11 +758,11 @@ msgstr "Filtrar resultados de onion que aparezcan en la lista negra de Ahmia."
#: searx/plugins/calculator.py:25 #: searx/plugins/calculator.py:25
msgid "Calculator" msgid "Calculator"
msgstr "" msgstr "Calculadora"
#: searx/plugins/calculator.py:26 #: searx/plugins/calculator.py:26
msgid "Parses and solves mathematical expressions." msgid "Parses and solves mathematical expressions."
msgstr "" msgstr "Analiza y resuelve expresiones matemáticas."
#: searx/plugins/hash_plugin.py:33 #: searx/plugins/hash_plugin.py:33
msgid "Hash plugin" msgid "Hash plugin"
@@ -797,6 +799,8 @@ msgid ""
"Automatically loads the next page when scrolling to bottom of the current" "Automatically loads the next page when scrolling to bottom of the current"
" page" " page"
msgstr "" msgstr ""
"Carga automáticamente la siguiente página al desplazarse a la parte inferior "
"de la página actual"
#: searx/plugins/oa_doi_rewrite.py:54 #: searx/plugins/oa_doi_rewrite.py:54
msgid "Open Access DOI rewrite" msgid "Open Access DOI rewrite"
@@ -2457,4 +2461,3 @@ msgstr "ocultar video"
#~ "Cargar automáticamente la siguiente página " #~ "Cargar automáticamente la siguiente página "
#~ "cuando llegues al final de la " #~ "cuando llegues al final de la "
#~ "página actual" #~ "página actual"

View File

@@ -22,7 +22,7 @@ msgstr ""
"Project-Id-Version: searx\n" "Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2025-12-05 10:19+0000\n" "POT-Creation-Date: 2025-12-05 10:19+0000\n"
"PO-Revision-Date: 2025-12-10 16:10+0000\n" "PO-Revision-Date: 2025-12-23 13:21+0000\n"
"Last-Translator: Priit Jõerüüt <jrtcdbrg@noreply.codeberg.org>\n" "Last-Translator: Priit Jõerüüt <jrtcdbrg@noreply.codeberg.org>\n"
"Language-Team: Estonian <https://translate.codeberg.org/projects/searxng/" "Language-Team: Estonian <https://translate.codeberg.org/projects/searxng/"
"searxng/et/>\n" "searxng/et/>\n"
@@ -31,7 +31,7 @@ msgstr ""
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n" "Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.14.3\n" "X-Generator: Weblate 5.15.1\n"
"Generated-By: Babel 2.17.0\n" "Generated-By: Babel 2.17.0\n"
#. CONSTANT_NAMES['NO_SUBGROUPING'] #. CONSTANT_NAMES['NO_SUBGROUPING']
@@ -1279,23 +1279,23 @@ msgstr "Ajavahemik"
#: searx/templates/simple/filters/time_range.html:3 #: searx/templates/simple/filters/time_range.html:3
msgid "Anytime" msgid "Anytime"
msgstr "Igal ajal" msgstr "Millal iganes"
#: searx/templates/simple/filters/time_range.html:6 #: searx/templates/simple/filters/time_range.html:6
msgid "Last day" msgid "Last day"
msgstr "Viimane päev" msgstr "Viimase päeva jooksul"
#: searx/templates/simple/filters/time_range.html:9 #: searx/templates/simple/filters/time_range.html:9
msgid "Last week" msgid "Last week"
msgstr "Viimane nädal" msgstr "Eelmisel nädalal"
#: searx/templates/simple/filters/time_range.html:12 #: searx/templates/simple/filters/time_range.html:12
msgid "Last month" msgid "Last month"
msgstr "Viimane kuu" msgstr "Eelmisel kuul"
#: searx/templates/simple/filters/time_range.html:15 #: searx/templates/simple/filters/time_range.html:15
msgid "Last year" msgid "Last year"
msgstr "Viimane aasta" msgstr "Eelmisel aastal"
#: searx/templates/simple/messages/no_cookies.html:3 #: searx/templates/simple/messages/no_cookies.html:3
msgid "Information!" msgid "Information!"

View File

@@ -43,20 +43,22 @@
# return42 <return42@noreply.codeberg.org>, 2025. # return42 <return42@noreply.codeberg.org>, 2025.
# LinuxWizard <linuxwizard@noreply.codeberg.org>, 2025. # LinuxWizard <linuxwizard@noreply.codeberg.org>, 2025.
# langckx <langckx@noreply.codeberg.org>, 2025. # langckx <langckx@noreply.codeberg.org>, 2025.
# MaiuZ <maiuz@noreply.codeberg.org>, 2025.
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: searx\n" "Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2025-12-05 10:19+0000\n" "POT-Creation-Date: 2025-12-05 10:19+0000\n"
"PO-Revision-Date: 2025-10-27 14:09+0000\n" "PO-Revision-Date: 2025-12-20 11:21+0000\n"
"Last-Translator: langckx <langckx@noreply.codeberg.org>\n" "Last-Translator: MaiuZ <maiuz@noreply.codeberg.org>\n"
"Language-Team: Italian <https://translate.codeberg.org/projects/searxng/"
"searxng/it/>\n"
"Language: it\n" "Language: it\n"
"Language-Team: Italian "
"<https://translate.codeberg.org/projects/searxng/searxng/it/>\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"MIME-Version: 1.0\n" "MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.15.1\n"
"Generated-By: Babel 2.17.0\n" "Generated-By: Babel 2.17.0\n"
#. CONSTANT_NAMES['NO_SUBGROUPING'] #. CONSTANT_NAMES['NO_SUBGROUPING']
@@ -753,11 +755,11 @@ msgstr "Escludi i risultati onion che appaiono nella blacklist Ahmia."
#: searx/plugins/calculator.py:25 #: searx/plugins/calculator.py:25
msgid "Calculator" msgid "Calculator"
msgstr "" msgstr "Calcolatrice"
#: searx/plugins/calculator.py:26 #: searx/plugins/calculator.py:26
msgid "Parses and solves mathematical expressions." msgid "Parses and solves mathematical expressions."
msgstr "" msgstr "Analizza e risolve espressioni matematiche."
#: searx/plugins/hash_plugin.py:33 #: searx/plugins/hash_plugin.py:33
msgid "Hash plugin" msgid "Hash plugin"
@@ -792,6 +794,8 @@ msgid ""
"Automatically loads the next page when scrolling to bottom of the current" "Automatically loads the next page when scrolling to bottom of the current"
" page" " page"
msgstr "" msgstr ""
"Carica automaticamente la pagina successiva quando si scorre fino alla fine "
"della pagina corrente"
#: searx/plugins/oa_doi_rewrite.py:54 #: searx/plugins/oa_doi_rewrite.py:54
msgid "Open Access DOI rewrite" msgid "Open Access DOI rewrite"
@@ -2450,4 +2454,3 @@ msgstr "nascondi video"
#~ "Carica automaticamente la prossima pagina " #~ "Carica automaticamente la prossima pagina "
#~ "quando scorri alla fine della pagina " #~ "quando scorri alla fine della pagina "
#~ "corrente" #~ "corrente"

View File

@@ -54,7 +54,7 @@ msgstr ""
"Project-Id-Version: searx\n" "Project-Id-Version: searx\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2025-12-05 10:19+0000\n" "POT-Creation-Date: 2025-12-05 10:19+0000\n"
"PO-Revision-Date: 2025-12-06 09:07+0000\n" "PO-Revision-Date: 2025-12-23 13:21+0000\n"
"Last-Translator: Outbreak2096 <outbreak2096@noreply.codeberg.org>\n" "Last-Translator: Outbreak2096 <outbreak2096@noreply.codeberg.org>\n"
"Language-Team: Chinese (Simplified Han script) <https://" "Language-Team: Chinese (Simplified Han script) <https://"
"translate.codeberg.org/projects/searxng/searxng/zh_Hans/>\n" "translate.codeberg.org/projects/searxng/searxng/zh_Hans/>\n"
@@ -63,7 +63,7 @@ msgstr ""
"Content-Type: text/plain; charset=utf-8\n" "Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n" "Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n" "Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 5.14.3\n" "X-Generator: Weblate 5.15.1\n"
"Generated-By: Babel 2.17.0\n" "Generated-By: Babel 2.17.0\n"
#. CONSTANT_NAMES['NO_SUBGROUPING'] #. CONSTANT_NAMES['NO_SUBGROUPING']
@@ -1291,19 +1291,19 @@ msgstr "不限时间"
#: searx/templates/simple/filters/time_range.html:6 #: searx/templates/simple/filters/time_range.html:6
msgid "Last day" msgid "Last day"
msgstr "一天内" msgstr "过去一天内"
#: searx/templates/simple/filters/time_range.html:9 #: searx/templates/simple/filters/time_range.html:9
msgid "Last week" msgid "Last week"
msgstr "一周内" msgstr "过去一周内"
#: searx/templates/simple/filters/time_range.html:12 #: searx/templates/simple/filters/time_range.html:12
msgid "Last month" msgid "Last month"
msgstr "月内" msgstr "过去一个月内"
#: searx/templates/simple/filters/time_range.html:15 #: searx/templates/simple/filters/time_range.html:15
msgid "Last year" msgid "Last year"
msgstr "一年内" msgstr "过去一年内"
#: searx/templates/simple/messages/no_cookies.html:3 #: searx/templates/simple/messages/no_cookies.html:3
msgid "Information!" msgid "Information!"