Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 4 additions & 1 deletion docs/ARCHITECTURE.md
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,10 @@ second with the Engines page's `TransferRate` and units, rewritten four times a
private, carrier-grade NAT, link-local, unique local, multicast, `localhost` and `.local` names, IPv4 inside IPv6)
is refused (`error.web_local_address`), on every redirect and after the name is looked up: the handler's
`ConnectCallback` connects only to the checked addresses, so a name that changes its answer (DNS rebinding) gets
nowhere. A connection to the user's proxy isn't checked; the names and numbers in the address still are.
nowhere. A connection to the user's proxy isn't checked, including the CONNECT tunnel the handler opens to an
https site through a proxy on this computer (`127.0.0.1:7890`); the names and numbers in the address still are.
The proxy is Settings → General → Network (`ProxySetting`, which never sends local addresses through it) or the
system's.
"Allow links to this computer and the local network" (Settings → General, `BrowserDropSettings.AllowLocalNetwork`,
off by default, read for each drop) lifts this for an intranet or a NAS. Those downloads go through an `HttpClient`
of their own, so a pooled connection to a local address never serves a drop that may not go there.
Expand Down
6 changes: 6 additions & 0 deletions docs/ENGINES.md
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,12 @@ they can be installed or removed later in Settings → *Engines*. A conversion t
SHA-256 before the first one is unpacked, so a missing or wrong file leaves the package as it was. Only the
downloads are taken, never an installed engine folder: an unpacked and trimmed folder has nothing pinned to check
it against. The other computer needs the same Filee version (the same engines.json).
- Downloads (engines, OCR languages, update checks, links dragged from a browser) go through the proxy in
Settings → *General* → *Network* when one is set (`AppSettings.Proxy`, `ProxySetting`): `http`, `https`, `socks4`,
`socks4a` or `socks5` with a host and port (`http://127.0.0.1:7890`), optionally with `user:password@`. It is for
Filee alone (#879), so the system can stay without a proxy, and the CLI reads the same setting. Empty: the system
proxy and `HTTPS_PROXY` / `NO_PROXY`, as before. Addresses on this computer and the local network (Ollama, an
intranet) never go through it, and logs show only its scheme, host and port.
- Engines go to `%LOCALAPPDATA%\Filee\engines`: outside the app folder, so updates keep them, and inside Filee's
install root, so uninstalling removes them.
- LibreOffice and calibre come as MSIs and are unpacked with an administrative install (`msiexec /a`): files only,
Expand Down
2 changes: 2 additions & 0 deletions docs/PORTABLE.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,8 @@ are disabled, leaving an installed copy's entries untouched. The data folder mus
an error instead of falling back to the user profile.

Conversion work folders, temporary files and engine caches keep their existing behavior and locations.
A proxy set in Settings → General → Network is kept in `data/settings.json` as well, so the copy downloads engines
and updates through it on any computer without touching that computer's proxy settings.
An explicit `FILEE_DATA_DIR` still takes precedence.
Installer packages keep using the normal user profile.
Update a marked copy by replacing its application files while keeping `filee.portable` and `data`.
Expand Down
10 changes: 10 additions & 0 deletions src/Filee.App/App.axaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@
using Filee.Core.Localization;
using Filee.Core.Platform;
using Filee.Core.Settings;
using Filee.Core.Web;
using Filee.Engines.Infrastructure;
using Microsoft.Extensions.Logging;

Expand Down Expand Up @@ -74,6 +75,15 @@ private void Start(IClassicDesktopStyleApplicationLifetime desktop)
var store = AppHost.Get<UserDataStore>();
if (Program.PreloadedStore is null)
store.Load();
// Before anything downloads: the proxy from Settings, read for each request so a change there applies at once.
ProxySetting.Use(() => store.Settings.Proxy);
if (!string.IsNullOrWhiteSpace(store.Settings.Proxy))
{
if (ProxySetting.TryParse(store.Settings.Proxy, out var proxy) && proxy is not null)
log.LogInformation("Downloads go through the proxy {Proxy}", ProxySetting.Describe(proxy));
else
log.LogWarning("The proxy in the settings isn't a proxy address; downloads use the system's");
}

var loc = AppHost.Get<LocalizationService>();
loc.Attach(this);
Expand Down
4 changes: 4 additions & 0 deletions src/Filee.App/Assets/i18n/ar.json
Original file line number Diff line number Diff line change
Expand Up @@ -622,6 +622,10 @@
"general.browser_drops_only_converted_hint": "يبقى الأصل في مجلد مؤقت ويُحذف بعد اكتمال التحويل.",
"general.browser_drops_local_network": "السماح بالروابط إلى هذا الكمبيوتر والشبكة المحلية",
"general.browser_drops_local_network_hint": "يتيح لـ Filee تنزيل الروابط من هذا الكمبيوتر ومن الشبكة المحلية، مثل الشبكة الداخلية (الإنترانت) أو جهاز NAS. لا تفعّله إلا إذا كنت تثق بالصفحات التي تسحب منها.",
"general.network": "الشبكة",
"general.proxy": "وكيل لتنزيلات Filee",
"general.proxy_hint": "تمر تنزيلات المحركات والتحقق من التحديثات والروابط المسحوبة من المتصفح عبر هذا الوكيل، ولا تتأثر البرامج الأخرى. اتركه فارغًا لاستخدام وكيل النظام. يتم الوصول دائمًا إلى العناوين الموجودة على هذا الكمبيوتر وفي الشبكة المحلية مباشرةً.",
"general.proxy_invalid": "هذا ليس عنوان وكيل. اكتبه بالشكل http://127.0.0.1:7890 (http أو https أو socks4 أو socks5).",
"general.zip_geo": "حفظ كل نتيجة جغرافية بصيغة ZIP",
"general.zip_geo_hint": "تُجمَّع نتائج Shapefile وGeoJSON وKML وGPX وغيرها من البيانات الجغرافية في ZIP واحد لكل ملف، مع كل إعداد مسبق.\nعند التعطيل: يُطبَّق ذلك فقط على الإعدادات المسبقة التي تفعّل «حفظ النتيجة بصيغة ZIP».",
"general.check_updates": "التحقق من التحديثات تلقائيًا",
Expand Down
4 changes: 4 additions & 0 deletions src/Filee.App/Assets/i18n/bn-BD.json
Original file line number Diff line number Diff line change
Expand Up @@ -621,6 +621,10 @@
"general.browser_drops_only_converted_hint": "মূল ফাইলটি একটি অস্থায়ী ফোল্ডারে অপেক্ষা করে এবং রূপান্তর সম্পন্ন হলে সেটি মুছে ফেলা হয়।",
"general.browser_drops_local_network": "এই কম্পিউটার ও স্থানীয় নেটওয়ার্কের লিঙ্ক অনুমতি দিন",
"general.browser_drops_local_network_hint": "ফাইলিকে এই কম্পিউটার ও স্থানীয় নেটওয়ার্কের লিঙ্ক, যেমন ইন্ট্রানেট বা NAS, থেকে ডাউনলোড করতে দেয়। শুধু তখনই চালু করুন যখন যে পেজ থেকে টেনে আনছেন সেগুলোকে আপনি বিশ্বাস করেন।",
"general.network": "নেটওয়ার্ক",
"general.proxy": "Filee-এর ডাউনলোডের জন্য প্রক্সি",
"general.proxy_hint": "ইঞ্জিন ডাউনলোড, আপডেট পরীক্ষা এবং ব্রাউজার থেকে টেনে আনা লিংক এই প্রক্সির মাধ্যমে যায়; অন্য প্রোগ্রামে এর প্রভাব পড়ে না। সিস্টেমের প্রক্সি ব্যবহার করতে এটি ফাঁকা রাখুন। এই কম্পিউটার ও স্থানীয় নেটওয়ার্কের ঠিকানায় সবসময় সরাসরি সংযোগ করা হয়।",
"general.proxy_invalid": "এটি প্রক্সির ঠিকানা নয়। http://127.0.0.1:7890-এর মতো করে লিখুন (http, https, socks4 বা socks5)।",
"general.zip_geo": "প্রতিটি ভৌগোলিক ফলাফল ZIP হিসেবে সংরক্ষণ করুন",
"general.zip_geo_hint": "Shapefile, GeoJSON, KML, GPX এবং অন্যান্য ভৌগোলিক ফলাফল প্রতিটি প্রিসেট দিয়ে প্রতি ফাইলের জন্য একটি ZIP-এ প্যাক করা হয়।\nবন্ধ থাকলে: কেবল \"ফলাফল ZIP হিসেবে সংরক্ষণ করুন\" সক্রিয় থাকা প্রিসেটগুলো এটি করে।",
"general.check_updates": "স্বয়ংক্রিয়ভাবে আপডেটের জন্য পরীক্ষা করুন",
Expand Down
4 changes: 4 additions & 0 deletions src/Filee.App/Assets/i18n/de.json
Original file line number Diff line number Diff line change
Expand Up @@ -622,6 +622,10 @@
"general.browser_drops_only_converted_hint": "Das Original bleibt in einem temporären Ordner und wird nach der Konvertierung gelöscht.",
"general.browser_drops_local_network": "Links zu diesem Computer und ins lokale Netzwerk erlauben",
"general.browser_drops_local_network_hint": "Filee lädt dann auch Links von diesem Computer und aus dem lokalen Netzwerk herunter, etwa aus einem Intranet oder von einem NAS. Schalte das nur ein, wenn du den Seiten vertraust, aus denen du ziehst.",
"general.network": "Netzwerk",
"general.proxy": "Proxy für die Downloads von Filee",
"general.proxy_hint": "Engine-Downloads, die Suche nach Updates und aus dem Browser gezogene Links laufen über diesen Proxy; andere Programme sind nicht betroffen. Leer lassen, um den Proxy des Systems zu verwenden. Adressen auf diesem Computer und im lokalen Netzwerk werden immer direkt erreicht.",
"general.proxy_invalid": "Das ist keine Proxy-Adresse. Schreibe sie wie http://127.0.0.1:7890 (http, https, socks4 oder socks5).",
"general.zip_geo": "Alle Geodaten-Ergebnisse als ZIP speichern",
"general.zip_geo_hint": "Shapefile, GeoJSON, KML, GPX und andere Geodaten-Ergebnisse werden bei jeder Vorlage in eine ZIP-Datei pro Datei gepackt.\nAusgeschaltet: Gilt nur für Vorlagen mit „Ergebnis als ZIP speichern“.",
"general.check_updates": "Automatisch nach Updates suchen",
Expand Down
4 changes: 4 additions & 0 deletions src/Filee.App/Assets/i18n/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -634,6 +634,10 @@
"general.browser_drops_only_converted_hint": "The original waits in a temporary folder and is deleted once it's converted.",
"general.browser_drops_local_network": "Allow links to this computer and the local network",
"general.browser_drops_local_network_hint": "Lets Filee download links from this computer and the local network, such as an intranet or a NAS. Turn it on only if you trust the pages you drag from.",
"general.network": "Network",
"general.proxy": "Proxy for Filee's downloads",
"general.proxy_hint": "Engine downloads, update checks and links dragged from a browser go through this proxy; other programs aren't affected. Leave it empty to use the system proxy. Addresses on this computer and the local network are always reached directly.",
"general.proxy_invalid": "This isn't a proxy address. Write it like http://127.0.0.1:7890 (http, https, socks4 or socks5).",
"general.zip_geo": "Save every geospatial result as a ZIP",
"general.zip_geo_hint": "Shapefile, GeoJSON, KML, GPX and the other geospatial results are packed into one ZIP per file, with every preset.\nOff: only presets with \"Save the result as a ZIP\" do it.",
"general.check_updates": "Check for updates automatically",
Expand Down
4 changes: 4 additions & 0 deletions src/Filee.App/Assets/i18n/es.json
Original file line number Diff line number Diff line change
Expand Up @@ -622,6 +622,10 @@
"general.browser_drops_only_converted_hint": "El original espera en una carpeta temporal y se elimina en cuanto se convierte.",
"general.browser_drops_local_network": "Permitir enlaces a este equipo y a la red local",
"general.browser_drops_local_network_hint": "Permite que Filee descargue enlaces de este equipo y de la red local, como una intranet o un NAS. Actívalo solo si confías en las páginas desde las que arrastras.",
"general.network": "Red",
"general.proxy": "Proxy para las descargas de Filee",
"general.proxy_hint": "Las descargas de motores, la búsqueda de actualizaciones y los enlaces arrastrados desde un navegador pasan por este proxy; los demás programas no se ven afectados. Déjalo vacío para usar el proxy del sistema. Las direcciones de este equipo y de la red local siempre se alcanzan directamente.",
"general.proxy_invalid": "Esta no es una dirección de proxy. Escríbela como http://127.0.0.1:7890 (http, https, socks4 o socks5).",
"general.zip_geo": "Guardar todo resultado geoespacial como ZIP",
"general.zip_geo_hint": "Shapefile, GeoJSON, KML, GPX y los demás resultados geoespaciales se empaquetan en un ZIP por archivo, con cualquier preajuste.\nDesactivado: solo lo hacen los preajustes con «Guardar el resultado como ZIP».",
"general.check_updates": "Buscar actualizaciones automáticamente",
Expand Down
4 changes: 4 additions & 0 deletions src/Filee.App/Assets/i18n/fa.json
Original file line number Diff line number Diff line change
Expand Up @@ -621,6 +621,10 @@
"general.browser_drops_only_converted_hint": "فایل اصلی در یک پوشه موقت منتظر می‌ماند و پس از تبدیل حذف می‌شود.",
"general.browser_drops_local_network": "مجاز بودن پیوندها به این رایانه و شبکه محلی",
"general.browser_drops_local_network_hint": "به Filee اجازه می‌دهد پیوندهای این رایانه و شبکه محلی، مانند اینترانت یا NAS، را دانلود کند. این گزینه را تنها در صورتی فعال کنید که به صفحاتی که از آن‌ها فایل می‌کشید اعتماد دارید.",
"general.network": "شبکه",
"general.proxy": "پراکسی برای دانلودهای Filee",
"general.proxy_hint": "دانلود موتورها، بررسی به‌روزرسانی‌ها و پیوندهایی که از مرورگر کشیده می‌شوند از این پراکسی عبور می‌کنند؛ برنامه‌های دیگر تحت تأثیر قرار نمی‌گیرند. برای استفاده از پراکسی سیستم آن را خالی بگذارید. نشانی‌های این رایانه و شبکه محلی همیشه به‌طور مستقیم در دسترس قرار می‌گیرند.",
"general.proxy_invalid": "این یک نشانی پراکسی نیست. آن را به شکل http://127.0.0.1:7890 بنویسید (http، https، socks4 یا socks5).",
"general.zip_geo": "ذخیره هر نتیجه جغرافیایی به صورت ZIP",
"general.zip_geo_hint": "فایل‌های Shapefile، GeoJSON، KML، GPX و سایر نتایج جغرافیایی در تمام پیش‌تنظیم‌ها درون یک فایل ZIP به ازای هر فایل بسته‌بندی می‌شوند.\nخاموش: فقط پیش‌تنظیم‌هایی که گزینه «ذخیره نتیجه به صورت ZIP» دارند این کار را انجام می‌دهند.",
"general.check_updates": "بررسی خودکار برای به‌روزرسانی‌ها",
Expand Down
4 changes: 4 additions & 0 deletions src/Filee.App/Assets/i18n/fr.json
Original file line number Diff line number Diff line change
Expand Up @@ -634,6 +634,10 @@
"general.browser_drops_only_converted_hint": "L'original attend dans un dossier temporaire et est supprimé une fois converti.",
"general.browser_drops_local_network": "Autoriser les liens vers cet ordinateur et le réseau local",
"general.browser_drops_local_network_hint": "Permet à Filee de télécharger des liens de cet ordinateur et du réseau local, comme un intranet ou un NAS. Ne l'activez que si vous faites confiance aux pages depuis lesquelles vous glissez.",
"general.network": "Réseau",
"general.proxy": "Proxy pour les téléchargements de Filee",
"general.proxy_hint": "Les téléchargements de moteurs, la recherche de mises à jour et les liens glissés depuis un navigateur passent par ce proxy ; les autres programmes ne sont pas concernés. Laissez vide pour utiliser le proxy du système. Les adresses de cet ordinateur et du réseau local sont toujours jointes directement.",
"general.proxy_invalid": "Ce n'est pas une adresse de proxy. Écrivez-la comme http://127.0.0.1:7890 (http, https, socks4 ou socks5).",
"general.zip_geo": "Enregistrer chaque résultat géospatial en ZIP",
"general.zip_geo_hint": "Les résultats Shapefile, GeoJSON, KML, GPX et autres formats géospatiaux sont regroupés dans un ZIP par fichier, quel que soit le préréglage.\nDésactivé : seuls les préréglages avec « Enregistrer le résultat en ZIP » le font.",
"general.check_updates": "Rechercher automatiquement les mises à jour",
Expand Down
4 changes: 4 additions & 0 deletions src/Filee.App/Assets/i18n/hi.json
Original file line number Diff line number Diff line change
Expand Up @@ -622,6 +622,10 @@
"general.browser_drops_only_converted_hint": "मूल फ़ाइल एक अस्थायी फ़ोल्डर में रहती है और कन्वर्ट होने के बाद हटा दी जाती है।",
"general.browser_drops_local_network": "इस कंप्यूटर और लोकल नेटवर्क के लिंक की अनुमति दें",
"general.browser_drops_local_network_hint": "इससे Filee इस कंप्यूटर और लोकल नेटवर्क, जैसे इंट्रानेट या NAS, के लिंक भी डाउनलोड कर सकता है। इसे तभी चालू करें जब आप उन पेजों पर भरोसा करते हों जिनसे आप खींचते हैं।",
"general.network": "नेटवर्क",
"general.proxy": "Filee के डाउनलोड के लिए प्रॉक्सी",
"general.proxy_hint": "इंजन डाउनलोड, अपडेट की जाँच और ब्राउज़र से खींचे गए लिंक इस प्रॉक्सी से होकर जाते हैं; दूसरे प्रोग्राम पर इसका असर नहीं पड़ता। सिस्टम प्रॉक्सी इस्तेमाल करने के लिए इसे खाली छोड़ें। इस कंप्यूटर और लोकल नेटवर्क के पतों से हमेशा सीधे जुड़ा जाता है।",
"general.proxy_invalid": "यह प्रॉक्सी पता नहीं है। इसे http://127.0.0.1:7890 की तरह लिखें (http, https, socks4 या socks5)।",
"general.zip_geo": "हर भू-स्थानिक नतीजे को ZIP के रूप में सहेजें",
"general.zip_geo_hint": "हर प्रीसेट के साथ, Shapefile, GeoJSON, KML, GPX और दूसरे भू-स्थानिक नतीजे हर फ़ाइल के लिए एक ZIP में पैक किए जाते हैं।\nबंद होने पर: केवल वही प्रीसेट ऐसा करते हैं जिनमें \"नतीजे को ZIP के रूप में सहेजें\" चालू है।",
"general.check_updates": "अपडेट अपने-आप जाँचें",
Expand Down
Loading
Loading