MU-WETTER
International Weather Station for Puppy Linux and Linux desktop environments, providing real-time weather monitoring, hourly forecasts, daily summaries, unit conversions (Celsius/Fahrenheit, km/h, knots, mph, mm, inches), multi-language support, proxy support for restricted network regions, and script exports.


CHANGELOG

Version 1.1.0
- Russian Localization for Proxy Guide: Added proxyinfo_ru.txt with automatic language detection in the UI help dialog when Russian (ru) is selected.
- Manjaro & Arch Linux Support: Added PKGBUILD and make arch target for native building on Manjaro Linux (Plasma version) and Arch-based distros.
- DEB Package Dependencies: Updated DEB control file to automatically include required runtime dependencies (libgtk-3-0, libsoup-3.0-0, libjson-glib-1.0-0, libglib2.0-0).
- Optional Proxy & VPN Bypass Support: Added settings to enable an API proxy for regions where services like Open-Meteo or Nominatim are blocked. Includes a selector listbox pre-configured with https://schinkenpizza.de/muwetter/ as default, with full capability to edit or add custom proxy URLs, plus a `?` help button displaying proxyinfo.txt.
- Two PHP Proxy Scripts Included: Added proxy-meteo.php and proxy-nominatim.php for server deployment at https://schinkenpizza.de/muwetter/ to seamlessly forward API requests.
- Expanded Language Support: Added full translations for the 10 most common/spoken languages worldwide plus Swahili (English, German, French, Spanish, Russian, Mandarin Chinese, Hindi, Arabic, Bengali, Portuguese, Japanese, and Swahili).
- libsoup 3 Upgrade: Migrated from deprecated libsoup 2.4 to modern libsoup 3 (libsoup-3.0) utilizing send_and_read_async and GLib.Bytes.
- Imperial Rain Unit Support: Added automatic unit conversion for precipitation (millimeters to inches) when temperature is set to Fahrenheit (F).
- External Parsing Exports: Added automated plain-text exports in ~/.mu-wetter/:
  * temp.txt: Simple temperature string (e.g. 33.0° C or 56.5° F).
  * rain.txt: Simple precipitation string (e.g. 5.0 mm or 0.00 in).
  * export.txt: Key-value export file containing numeric values and units.
- Runtime Dependency Check: Added startup check for missing network libraries (libsoup-3.0) with clear package installation instructions (apt / pacman).

Version 1.0.0
- Initial release with GTK3 GUI, Open-Meteo & Nominatim APIs, and multi-language support (languages.rc).


--------------------------------------------------------------------------------
SECTION 1: USER GUIDE
--------------------------------------------------------------------------------

Features:
- Location Search: Search worldwide locations by city name or ZIP code using Nominatim (OpenStreetMap).
- Proxy / VPN Bypass: Optional setting in the UI to route API requests through a proxy server for regions where direct weather/geocoding APIs are blocked. Includes a selector listbox (defaulting to https://schinkenpizza.de/muwetter/), an editable URL field, and a `?` help dialog (with automatic Russian translation when Russian language is selected).
- Multi-Language Support: Full localization across 12 languages (English, German, French, Spanish, Russian, Chinese, Hindi, Arabic, Bengali, Portuguese, Japanese, and Swahili) selectable via the dropdown combo.
- Custom Units: Toggle between Celsius (°C) and Fahrenheit (°F), and wind speed units (km/h, knots, mph). Rain units automatically adapt to millimeters (mm) for Celsius and inches (in) for Fahrenheit.
- Silent Mode: Run updates in the background without launching the GUI (mu-wetter --silent).
- Debugging: Run with --debug to output detailed network and JSON parsing logs to stdout.
- Script & Panel Integration: External panel applets or scripts can easily parse current conditions using export files generated in ~/.mu-wetter/:
  * ~/.mu-wetter/temp.txt (e.g. 56.5° F)
  * ~/.mu-wetter/rain.txt (e.g. 0.00 in)
  * ~/.mu-wetter/export.txt (Key-value export)

Runtime Dependencies & Missing Package Notice:
mu-wetter requires libsoup 3 (libsoup-3.0) at runtime. If the required network library is missing, mu-wetter will output a clear error message at startup with installation instructions:
- Debian / Ubuntu / Puppy Linux (apt):
  sudo apt install libsoup-3.0-0
- Arch Linux (pacman):
  sudo pacman -S libsoup3


--------------------------------------------------------------------------------
SECTION 2: TECHNICAL DETAILS (FOR EXPERTS)
--------------------------------------------------------------------------------

Architecture & Tech Stack:
- Language: Written in modern Vala (.vala), transpiled to C (.c), and compiled with gcc.
- UI Framework: GTK 3 (gtk+-3.0) utilizing CSS providers for styling, Gtk.TextView with markup support, and Gtk.ListStore / Gtk.TreeView.
- Networking: libsoup-3.0 (Soup.Session, Soup.Message) handling asynchronous HTTP requests with send_and_read_async and GLib.Bytes.
- PHP Proxy Scripts: proxy-meteo.php and proxy-nominatim.php provided in the project root for deployment on https://schinkenpizza.de/muwetter/ to securely forward queries to Open-Meteo and OpenStreetMap Nominatim.
- JSON Parsing: json-glib-1.0 (Json.Parser) for parsing Open-Meteo weather payloads and Nominatim search results.
- Localization: Powered by languages.rc containing translation dictionaries loaded at runtime, plus proxyinfo.txt / proxyinfo_ru.txt for localized help dialogs.
- Config & Storage: Settings and generated reports/exports are stored locally in ~/.mu-wetter/:
  * location: Saved location coordinates and preferences.
  * forecast.txt: Formatted human-readable weather table.
  * export.txt, temp.txt, rain.txt: Machine-parsable exports.

Build Instructions:
Build the application using the included Makefile:
  make

Install system-wide:
  sudo make install

Build Debian packages (.deb) on Linux Mint / Ubuntu / Debian:
  make deb
  (Install via: sudo apt install ./mu-wetter_1.1.0_amd64.deb)

Build and install on Manjaro Linux / Arch Linux (Plasma version):
  make arch
  (Or manually via: makepkg -si)
