Skip to content

Releases: sevenlayercookie/MouseSearch

v1.1.3

Choose a tag to compare

@sevenlayercookie sevenlayercookie released this 29 Jul 16:15

MouseSearch v1.1.3

This release fixes auto-organization for scheduled setups, adds genre and format tags to organization paths, and brings the tag builder into the download confirmation dialog.

Highlights

  • Fixed auto-organization sometimes not running for users using scheduled organization rather than organize-on-add (#41).
  • Enabling Auto-organize on schedule in Settings now takes effect immediately instead of requiring an app restart.
  • Added {Category}, {Genre}, and {Format} tags to organization path templates (#35).
  • The download confirmation dialog now has the same tag builder as Settings, with a live-resolved path you can still edit by hand.
  • Documented the XML-RPC endpoints rTorrent and ruTorrent users actually need (#32).

Auto-Organization Fixes

Two separate problems meant scheduled organization sometimes wouldn't function:

  • Torrent metadata was only recorded when AUTO_ORGANIZE_ON_ADD was enabled. The scheduled sweep can only act on torrents that have a metadata record, so anyone running the shipped defaults (AUTO_ORGANIZE_ON_ADD=false, AUTO_ORGANIZE_ON_SCHEDULE=true) had nothing for it to find. Metadata is now recorded when either option is enabled.
  • The scheduled job was only registered at startup, so turning the setting on in the UI did nothing until the app was restarted. It is now added and removed as the setting changes.

Additional improvements:

  • The scheduled sweep logs a diagnostic when it finds nothing to organize, instead of running silently.
  • When no per-download path is chosen, organization now follows your configured Default Relative Path rather than always falling back to Author/Title.

Path Template Tags

Organization templates gained three tags:

Tag Value Example
{Category} Media type from the MAM category Audiobooks, Ebooks
{Genre} MAM subcategory Science Fiction
{Format} File format, uppercased M4B, EPUB MOBI

These join the existing {Author}, {Series}, {SeriesNumber}, and {Title}. A layout such as /downloads/Audiobooks/Science Fiction/Frank Herbert/Dune is now expressible as {Category}/{Genre}/{Author}/{Title}.

Tags with no value for a given torrent collapse out of the path rather than leaving an empty folder level, so {Author}/{Series}/{Title} still yields Frank Herbert/Dune for a standalone book.

Download Confirmation

The confirmation dialog now mirrors the Settings tag builder:

  • Path Template — prefilled with your configured Default Relative Path. Tag buttons add a tag, or remove it if already present. Tags with no value for the current torrent are greyed out. A reset button restores your default.
  • Relative Path — the resolved path, still freely editable for a one-off override. Changing the template rebuilds it.
  • Neither field changes your saved default; edits apply only to the download being confirmed.

This replaces the single + Series toggle, whose behavior is now covered by the {Series} tag.

Also fixed: clicking two tag buttons in a row ran the tags together ({Genre}{Title} instead of {Genre}/{Title}). This affected the Settings tag builder as well.

rTorrent / ruTorrent

TORRENT_CLIENT_URL must point at an XML-RPC endpoint for rTorrent, not the ruTorrent WebUI URL. The README now documents:

  • http://<host>/RPC2 for self-hosted setups proxying XML-RPC through Nginx or Apache.
  • https://<seedbox address>/rutorrent/plugins/httprpc/action.php for shared seedboxes, which typically do not expose XML-RPC directly.
  • The RTORRENT_DIGEST_AUTH option some providers require, and a curl snippet for verifying an endpoint before configuring MouseSearch.

Settings also shows this guidance inline when rTorrent is the selected client type.

Upgrade

No configuration changes are required. Pull the v1.1.3 Docker image and recreate the container.

Two things to be aware of:

  • If you run with scheduled organization enabled, files will now actually be organized. This is the intended behavior that was previously broken, but it does mean hard links or copies will start appearing in your organized library.
  • Downloads added before upgrading, while auto-organization was not recording metadata, are not tracked and will not be picked up retroactively. Only new downloads are organized.

Contributors

Full Changelog: v1.1.1...v1.1.3

v1.1.1

Choose a tag to compare

@sevenlayercookie sevenlayercookie released this 29 Jul 03:29

MouseSearch v1.1.1

This patch release improves Docker startup compatibility and fixes MAM download links generated from search results.

Highlights

  • Fixed container startup when configured PUID or PGID values collide with users or groups already present in the base image.
  • Added the required torrent ID (tid) to MAM download links, preventing the “Invalid download link: missing tid” error from search results (#55).
  • Normalized MAM-provided tid parameters so result rows, client downloads, and Save .torrent links contain exactly one torrent ID.

Docker Startup

  • Reuses an existing group when the requested PGID is already in use, including the common Synology PGID=100 setup.
  • Allows the requested PUID to coexist with a base-image user ID.
  • Changes ownership by numeric UID/GID so startup does not depend on user or group names.
  • Validates PUID and PGID values and reports clearer errors for inaccessible app or data mounts.

Upgrade

No configuration changes are required. Pull the v1.1.1 Docker image and recreate the container.

Contributors

  • Thanks to @casmith for diagnosing and fixing the MAM download-link issue in #55.

Full Changelog: v1.1.0...v1.1.1

v1.1.0

Choose a tag to compare

@sevenlayercookie sevenlayercookie released this 17 Jul 18:38

MouseSearch v1.1.0

This release improves download safety, search usability, deployment flexibility, and Docker platform support.

Highlights

  • Added confirmation prompts before purchasing or using Personal Freeleech wedges.
  • Prevented wedges from being spent on torrents already covered by VIP Freeleech.
  • Search result sorting now persists across sessions.
  • Added clear buttons to the main and navigation search fields.
  • Added support for hosting MouseSearch under a URL prefix, such as /mousesearch.
  • Added multi-platform Docker builds for linux/amd64 and linux/arm64.
  • Masked the MAM session ID in settings for improved privacy.

Deployment

MouseSearch can now run behind a reverse proxy on a subpath:

./launch.sh --port 8080 --bind 127.0.0.1 --root-path /mousesearch

The URL prefix can also be configured using ROOT_PATH in .env.

Configuration

Added RESULTS_SORT_MODE to control the initial search-results sorting mode. Subsequent selections are saved automatically in config.json.

Contributors

Full Changelog: v1.0.3...v1.1.0 (v1.0.3...v1.1.0)

v1.0.3

Choose a tag to compare

@sevenlayercookie sevenlayercookie released this 06 Jun 08:29

Independent MAM session (MouseHole integration removed)

The MouseHole developer let me know that sharing its mam_id was creating issues — MAM rotates the mam_id on every request, so two apps drawing from the same session constantly invalidate each other's cookie, causing intermittent auth errors in both.

To fix this, I've reverted MouseSearch back to its original functionality of maintaining its own dedicated mam_id session, fully separate from MouseHole's. All MouseHole references and the shared-cookie feature have been removed.

You can still run MouseHole alongside MouseSearch — just give each its own mam_id. Dynamic Seedbox IP updates can still be managed either by MouseSearch or MouseHole — your choice.

ARM64 Docker image

MouseSearch now publishes an ARM64 Docker image in addition to the existing AMD64 image. This should make it easier to run MouseSearch on ARM-based systems such as Raspberry Pi, Apple Silicon, and other ARM64 hosts.

v1.0.2

Choose a tag to compare

@sevenlayercookie sevenlayercookie released this 21 May 05:09

This update aligns MouseSearch with current MAM bonus-store behavior, improves MAM session and dynamic IP handling, and makes qBittorrent integration more reliable.

Highlights

  • Bonus store workflow refresh — VIP, upload-credit, and Freeleech wedge actions now follow current MAM bonus-store semantics more closely, with a new Buy Wedge action, a 12-week VIP option, and more flexible upload-credit amounts.
  • Smarter MAM cookie handling — MouseSearch now adopts rotated mam_id cookies returned by MAM and persists the latest value automatically when using direct-cookie mode.
  • Stronger qBittorrent support — The qBittorrent backend now uses qbittorrent-api, improving compatibility, error handling, and HTTPS WebUI support.

New Features

Bonus Store & Freeleech Tools

  • Added a Buy Wedge button to the main MAM status area for purchasing a personal Freeleech wedge with bonus points.
  • Added a 12-week VIP purchase option alongside the existing max-purchase flow.
  • Upload credit purchases now accept any whole-number GB amount of 50 or higher instead of only fixed 50 GB increments.
  • The upload purchase modal now uses the upstream max affordable amount based on your current bonus points.
  • The download confirmation flow can now queue an existing personal Freeleech wedge for the download, with clearer UI feedback when a wedge is queued or applied.
  • AUTO_BUY_PERSONAL_FL_ON_DOWNLOAD now auto-uses a wedge you already own instead of trying to purchase one during the download flow.

MAM Session & Dynamic IP Handling

  • MouseSearch now automatically adopts rotated mam_id cookies returned by MAM API responses.
  • In direct-cookie mode, the latest rotated mam_id is saved so restarts continue using the current session.
  • The MAM status/settings flow now reflects the current active cookie value after successful MAM requests.
  • Dynamic seedbox IP updates now track host IP and ASN state, refresh stale update records, and only call MAM when a refresh is actually needed.
  • Added second-based dynamic IP polling controls while keeping the older hour-based setting as a legacy fallback.

qBittorrent Integration

  • Switched the qBittorrent backend to the qbittorrent-api library.
  • Added support for HTTPS WebUI setups with optional certificate verification control for self-signed installs.
  • Improved add/status handling, including better duplicate-torrent detection, invalid torrent error reporting, unsupported API version handling, and force-start behavior when a hash is available.

Improvements & Fixes

  • Mousehole-aware IP update behavior — When Mousehole cookie mode is enabled, MouseSearch now disables its own dynamic IP update controls instead of allowing conflicting behavior.
  • Bonus store validation — Upload auto-buy settings now normalize and validate configured amounts as whole numbers >= 50.
  • Clearer Freeleech behavior — Settings and download UI now consistently reflect that MouseSearch is using an existing wedge rather than purchasing one implicitly.
  • qBittorrent reliability — Connection diagnostics and session handling are more robust across newer WebUI/API setups and HTTPS deployments.

New Environment Variables

# qBittorrent only: verify the WebUI HTTPS certificate
QBITTORRENT_VERIFY_WEBUI_CERTIFICATE=true

# Dynamic MAM IP refresh controls
DYNAMIC_IP_CHECK_INTERVAL_SECONDS=300
DYNAMIC_IP_STALE_RESPONSE_SECONDS=86400

# Legacy fallback still supported if the seconds-based interval is unset
DYNAMIC_IP_UPDATE_INTERVAL_HOURS=3

v1.0.1

Choose a tag to compare

@sevenlayercookie sevenlayercookie released this 05 May 21:34

This update adds proxy support, a new consolidated Network section in Settings, and a few quality-of-life improvements around organizing, torrent status, and release tooling.

Highlights

  • MAM-only proxy routing — MouseSearch can now send MAM traffic through an HTTP, HTTPS, SOCKS5, or SOCKS5h proxy while keeping the web UI reachable normally.
  • Consolidated network diagnostics — The MAM settings panel now includes a dedicated Network section that summarizes route, public IPs, proxy errors, and MAM cookie auth state in one place.
  • Download/detail workflow improvements — Added an Organize action and better torrent-status visibility from the book details flow.

New Features

MAM Proxy Support

  • Useful for setups where your torrent client or Mousehole already reaches MAM through a VPN/proxy that is also using MAM's Dynamic Seedbox IP update flow. MAM only allows one public IP to use that dynamic IP registration path at a time, so services that depend on it need to share the same IP. In that case, MouseSearch can send its MAM requests through the same route so the app, downloader, and shared MAM cookie session stay aligned on the same public IP.
    • an example setup:
      • Gluetun running, with qBittorrent and Mousehole behind it using VPN IP address
      • plug in Gluetun's proxy port into MouseSearch, and then MouseSearch will also route all MAM requests through Gluetun, so they all share the same, dynamically updated IP address
  • Added support for http://, https://, socks5://, and socks5h:// proxy URLs for MAM traffic.
  • Proxy URLs can include inline authentication credentials such as http://user:pass@proxy:8080.
  • Proxy routing is scoped to MAM traffic by default, so unrelated app traffic can stay on the normal route.

Network & Auth Diagnostics

  • Added a dedicated Network section to the MAM settings area.
  • Added explicit MAM cookie status indicators in both the auth section and the Network section.
  • Shows the active MAM route, direct server IP, proxy IP, Mousehole IP, and last proxy error in one place.

Download & Detail Controls

  • Added an Organize Now action and richer torrent status handling from the book details flow.
  • Added a Hardcover status indicator in the Hardcover settings tab.
  • Added a torrent client status indicator in the General settings tab.

Improvements & Fixes

  • Auto-organize reliability — Auto-organize now waits for the completed download tree to stabilize before linking files, which reduces false “finished” races with container mounts, remote paths, and move-on-complete workflows. Partial link/copy passes no longer get marked as organized; they stay pending so future organize runs can pick up missed files.

New Environment Variables

# Enable/disable MAM-specific proxy routing
MAM_PROXY_ENABLED=false
MAM_PROXY_URL=http://gluetun:8888
MAM_PROXY_ONLY=true
MAM_PROXY_FALLBACK_DIRECT=true

v1.0.0

Choose a tag to compare

@sevenlayercookie sevenlayercookie released this 24 Apr 18:06

Release Notes: v1.0.0

This release introduces integration with Hardcover.app for richer book metadata, integration with Mousehole for mam_id synchronization, customizable webhooks for background task alerts, and UI/UX improvements across the board.

🚀 Features

  • feat(hardcover): Integrate Hardcover.app API to enrich search results with ratings and other metadata, as well as Hardcover read status synchronization
  • feat(hardcover): Add a "Series Strip" to the book details modal to discover related books in a series.
  • feat(auth): Add support for fetching and utilizing the MyAnonaMouse session cookie directly from a linked Mousehole instance (USE_MOUSEHOLE_MAM_COOKIE).
  • feat(notifications): Implement customizable GET/POST webhooks for automated task events (VIP top-ups, upload credit purchases, IP updates, and auto-organization). You can use this, for instance, to send notifications via your favorite notification service (such as ntfy.sh or Pushbullet) when certain automated tasks are performed.
  • feat(freeleech): Introduce a minimum torrent size threshold gate for the Personal Freeleech auto-buy feature. This way you won't waste your cheese on small size torrents.

✨ UI & UX

  • ui(search): Implement keyboard navigation (ArrowUp, ArrowDown, Enter, Escape) for the search autosuggest dropdown.
  • ui(settings): Add quick "copy-to-clipboard" buttons for IPs, MAM IDs, and Mousehole cookies.
  • ui(settings): Add an IP mismatch warning toast if Mousehole and MouseSearch are not operating on the same public IP.
  • ui(details): Add smooth expandable/collapsible text blocks for lengthy book and Hardcover descriptions.
  • ui(details): Implement dynamic column height balancing for the book details modal on desktop viewports.
  • ui(haptics): Expand haptic feedback triggers for mobile users (e.g., closing modals, interacting with the Hardcover status picker).

v0.9.9

Choose a tag to compare

@sevenlayercookie sevenlayercookie released this 25 Mar 01:15

This release improves torrent client diagnostics and adds a new authentication option for rTorrent users.

Highlights

  • Added optional digest authentication support for rTorrent via RTORRENT_DIGEST_AUTH
  • Documented the new rTorrent digest auth setting in README.md and .env.example
  • Improved qBittorrent logging for clearer troubleshooting
  • Improved MyAnonamouse authentication logs
  • Standardized and clarified error messages across Deluge, qBittorrent, rTorrent, and Transmission

Contributor Credit

Thanks to @HrBingR for contributing rTorrent digest authentication support in #30.

Full Changes

  • 62661e4 Added option to enable digest authentication for rtorrent users (#30)
  • 079f20b document RTORRENT_DIGEST_AUTH in README and .env.example
  • d0c1b02 better QB logging
  • 3038162 better MAM auth logs
  • 74fce4d fix all client error messages

v0.9.6

Choose a tag to compare

@sevenlayercookie sevenlayercookie released this 22 Feb 03:47

Highlights

  • Added result sorting options in the UI.
  • Transmission client improvements for compatibility, category
    behavior, and add-flow reliability.
  • Refreshed with a new logo (and some fun animations).
  • Polished multiple UI details.

Issues/Requests Addressed

  • #19 Feature Request: Add torrent with Forced Resume in qBittorrent
    • Added QB_FORCE_START support to force-start newly added torrents in
      qBittorrent (this bypasses any queue restrictions that might apply to the new torrent).
  • #18 Categories in Transmission
    • Improved Transmission category handling, including category-based download
      directory behavior and related path mapping. Transmission does not handle subfolders for its labels/categories, so MouseSearch now does this by default, putting torrents into a subfolder in the Transmission download folder matching the label/category name.
  • #21 Sort search results options now available.

Changed

  • Transmission integration overhaul
    • Better support for both legacy RPC and JSON-RPC style responses/method
      formats.
    • Automatic RPC mode fallback handling.
    • Improved torrent add flow (including binary/metainfo adds), returning hash
      when available.
    • Better category handling for Transmission by computing per-category
      download directories.
    • Better remote-to-local path mapping when showing torrent save paths.
  • Download/add flow updates
    • Add responses now include hash more consistently, improving immediate
      status polling.
    • MID resolution can now fall back to local metadata when needed.
  • UI polish
    • New logo (static + animated states).
    • Destination path row behavior adjusted (remove button behavior
      simplified).

Fixed

  • Improved search jump/scroll positioning
  • Improved Transmission tracker error visibility:
    • Tracker errors surfaced in UI status display.
    • Warning toasts triggered when tracker errors change.
  • Added additional logging around auto-organize success/details for easier
    troubleshooting.

v0.9.5

Choose a tag to compare

@sevenlayercookie sevenlayercookie released this 20 Feb 00:18

v0.9.5

This update introduces improved organization features, including multiple destination support and automated Freeleech wedge management. I've also added haptic feedback for a more native-feeling web experience, and improved background task reliability.

New Features

Multi-Destination Auto-Organization

You can now define multiple root destination paths in Settings.

  • Media-Type Mapping: Assign specific paths as defaults for Audiobooks, E-Books, Musicology, or Radio (the basic MAM categories).
  • Resolves: #15

Automated Freeleech Management

  • Auto-Wedge Purchase: New option to automatically attempt to spend a personal Freeleech wedge when a download is added.
  • Resolves: #20

Enhanced Search & Filtering

  • Hide Downloaded: A new toggle in the Advanced Search offcanvas allows you to filter out results that are already snatched or present in your torrent client.
  • Series Number Token: Use {SeriesNumber} in your path templates to support folder structures like Author/Series/Series #1 - Title.
  • Resolves: #16

Haptic Feedback

  • Added haptics to provide tactile feedback for UI interactions.

Improvements & Fixes

  • Scheduler Reliability: Added a misfire_grace_time to all background jobs (VIP checks, Bonus purchases, IP updates). This prevents "Job Missed" warnings when the server is under heavy load or momentarily suspended.
    • Resolves: #17
  • Metadata Inspector: Added a Series entry to the book details layout for better visibility.

New Environment Variables

# Attempt to purchase a personal FL wedge before each download
AUTO_BUY_PERSONAL_FL_ON_DOWNLOAD=false

# Enable/Disable frontend haptic feedback
HAPTICS_ENABLED=true