github tonikelope/megabasterd v8.43
MegaBasterd 8.43

latest release: v8.44
4 hours ago

TL;DR

  • Issue #757 -- SmartProxy fixes + UI consolidation. "Proxy error ban time" is honoured again (previous audit clamped values <10 to a hardcoded 10, silently dropping the user's setting AND breaking the documented 0 = permanent ban sentinel). The "Concurrent probes" spinner in the proxy-test action now persists across sessions. SmartProxy now lives on a single dedicated tab in Settings (between Downloads and Uploads) holding everything proxy-related -- master ON/OFF, proxy list, behaviour spinners, 509 recovery, IP / Test diagnostics. The standalone Quota recovery & SmartProxy (509) dialog and its Edit-menu shortcut are gone; the controls were merged into the tab so users see one Save flow.
  • PR #745 (@SeanCassiere) merged. New optional Downloads-tab setting "Always reload MEGA folders instead of using cached folder data". When enabled, MegaBasterd bypasses the local folder-node cache (existsCachedFolderNodes returns false, getFolderNodes / getFolderNodes4 skip the cache read) so folder-link lookups always hit MEGA. writeCachedFolderNodes stays active, so toggling the setting off later restores cached behaviour with refreshed data instead of stale data. Default off; opt-in. Thanks to Sean for the patch + the clean rebase.
  • i18n. Three SmartProxy tooltips (ban_time, force, batch_size) localised in DE/HU/TR/VI/ZH (the keys were introduced in 8.42 with EN placeholder for those bundles, and the force tooltip lost its now-stale (Quota Recovery dialog, Edit menu) reference everywhere). New tab title ui.tab.smartproxy="SmartProxy" in every bundle.
  • No behaviour changes outside SmartProxy / the new opt-in folder-reload setting. Everything that shipped in 8.42 is included; 8.43 is 8.42 + the changes above.

New in 8.43

Issue #757 -- SmartProxy

  • smartproxy_ban_time no longer overridden (SmartMegaProxyManager.refreshSmartProxySettings). The #752 audit clamped <10s ban times to a hard 10 to avoid pool churn, but two side effects were silently breaking the UI: the documented "0 = permanent ban" sentinel (which is still alive in blockProxy: if (this._ban_time == 0) _proxy_list.remove(proxy);) was rewritten to 10, AND any user-curated low ban time was ignored without notice. Replaced with explicit per-band handling:

    • 0 -> permanent ban (entry removed from live pool on first failure; UI sentinel preserved).
    • 1..9 -> honoured, with a startup WARNING explaining the pool-churn risk so the user knows why their log gets noisier.
    • 10..3600 -> normal.
    • >3600 -> clamped to 3600 with WARNING ("set to 0 if you want permanent").

    The Settings spinner is tightened to SpinnerNumberModel(value, 0, 3600, 1) so DB values outside that range are clamped on load and the legal range is visible in the UI; tooltip added explaining the bands.

  • "Concurrent probes" persists across sessions (QuotaRecoveryPanel.loadFromDB / saveToDB, new DB key smartproxy_test_batch_size). Previous code initialised the spinner to 20 every time the panel was opened, regardless of what the user typed last time. Range [1, 100] preserved; tooltip clarifies the value only affects the proxy Test button, NOT runtime SmartProxy concurrency (this was the misunderstanding behind #757's feature request to mirror the spinner in the SmartProxy panel).

  • SmartProxy activation mode now visible at startup. Without FORCE SMART PROXY, SmartProxy is passive by design -- proxies only kick in after MEGA returns HTTP 509 (or while inside the post-509 recheck window). Users with valid "live" proxies who never see traffic routed through them keep hitting this. Surface it loudly: an INFO log at boot describes the mode ("[SmartProxy] mode: PASSIVE -- proxies are only used after MEGA returns HTTP 509 (or while inside the {Ns} post-509 recheck window). Enable FORCE SMART PROXY in settings if you want every chunk routed through proxies." / "mode: FORCE"), and the FORCE SMART PROXY checkbox tooltip explicitly contrasts PASSIVE vs FORCE.

Issue #757 -- UI consolidation

  • SmartProxy lives on one tab now. The on/off checkbox + the proxy-list / behaviour panel that used to live under Downloads were extracted (.form + matching initComponents edits, not a runtime reparent -- GroupLayout NPEs if a ComponentSpring references a component no longer in the container) and stacked on a new dedicated tab inserted at index 1, alongside the 509 recovery and diagnostics content. Single Save flow; the new tab is wrapped in a JScrollPane so it scrolls cleanly. Tab title: SmartProxy.

  • Standalone Quota Recovery dialog removed. The QuotaRecoverySettingsDialog (Edit menu -> dialog with its own Save / Cancel) has been refactored into QuotaRecoveryPanel extends JPanel, embedded inside the new SmartProxy tab. The Edit-menu shortcut is also gone -- it was redundant once the content moved AND it bypassed the account-deletion cleanup that MainPanelView.settings_menuActionPerformed runs after the main Settings dialog closes (so deleting an account via the shortcut would leave the in-memory _main_panel.getMega_accounts() out of sync with the persisted state).

  • Reparented controls now respect the dialog zoom + locale. updateFonts(this, ...) and translateLabels(this, ...) run near the top of SettingsDialog's constructor; before the reparent fix, the orphan smart_proxy_checkbox and smart_proxy_settings were not yet in the dialog tree at that point so they kept their raw 18 pt .form fonts and untranslated English text while the rest of the tab respected the user's zoom / language. The font/translation passes are now reapplied to the two orphans (and only those -- translateLabels is not idempotent on already-translated text) right after they are attached to the new tab.

PR #745 -- Always-reload-MEGA-folders setting (@SeanCassiere)

  • New Downloads-tab checkbox "Always reload MEGA folders instead of using cached folder data" wired to a new DB setting always_reload_mega_folders (yes/no, default no). When enabled:

    • MegaAPI.existsCachedFolderNodes(folder_id) short-circuits to false, suppressing the "use cached version?" prompt.
    • MegaAPI.getFolderNodes / getFolderNodes4 skip the cache read on entry, forcing a fresh MEGA lookup.
    • writeCachedFolderNodes is not disabled, so the fresh response still updates the on-disk cache. Disabling the setting later restores cached behaviour with the now-refreshed data instead of dropping back onto stale data.

    Opt-in for the user; no behaviour change unless toggled.

i18n

  • settings.smartproxy.ban_time.tooltip -- explains the 0 / 1..9 / 10..3600 / >3600 bands. Added with EN placeholder in 8.42 for DE/HU/TR/VI/ZH; now localised in all 8 bundles.
  • settings.smartproxy.force.tooltip -- explains PASSIVE vs FORCE. Localised in all 8 bundles; the previous text pointed at "Quota Recovery dialog, Edit menu" which no longer exists, now points at the \"Recheck window\" spinner on the same tab.
  • ui.quota.batch_size.tooltip -- localised in DE/HU/TR/VI/ZH so the "Test-action only, persisted across sessions" wording is consistent across every bundle.
  • ui.tab.smartproxy=SmartProxy -- new tab title key in every bundle.

Translators -- the 5 non-EN/ES/IT translations were done as best-effort and might benefit from a native pass via #397.

Don't miss a new megabasterd release

NewReleases is sending notifications on new releases.