Skip to content

Repository files navigation

SeatCat

SeatCat is a local-first Tampermonkey userscript that monitors Maoyan showtimes, ranks cinema seats with an explicit strategy, and automates only the steps selected by the user.

SeatCat does not bypass CAPTCHA, authentication, risk controls, or rate limits. It never performs payment. Start with monitor-only mode and verify the detected page and candidates before enabling clicks.

简体中文

SeatCat floating control panel

Features

  • Maoyan page, showtime, seat-map, and order-confirmation detection
  • Movie, cinema, date, time-window, and showtime-text filters
  • Strategy-driven 1–6 seat selection with adjacency, row, center, edge, and front-row preferences
  • Four automation levels from notifications only to opening the order-confirmation page
  • Draggable and collapsible Shadow DOM panel with logs, settings, and debug data
  • Versioned GM storage, desktop notifications, menu commands, and refresh recovery
  • Tab-local task state that survives refreshes without coordinating unrelated tabs
  • Mutation-driven scanning with a low-frequency fallback and an 8-second minimum refresh interval
  • Automatic pause for CAPTCHA or identity verification; automatic stop before payment

Installation

The source repository is on GitHub. The first GitHub Release and Greasy Fork listing have not been published yet.

For local installation, open dist/seatcat.user.js, copy it into a new Tampermonkey script, and save it. Once releases are published, use either the Greasy Fork listing or the seatcat.user.js asset from GitHub Releases. Each channel maintains its own updates; see Releasing.

Usage

  1. Open a page under https://www.maoyan.com/.
  2. Configure the target showtime, seat count, and seat preferences.
  3. Keep the default Monitor and notify only level for the first run.
  4. Enable Debug Mode and verify page detection, selector hits, and rankings.
  5. Increase the automation level only after the detected result is correct.
  6. Review the complete order and pay manually on the order-confirmation page.

An active task resumes after a refresh. Stop, reaching order confirmation, or the userscript menu can end it.

Configuration

  • Row specifications accept values such as 5-8,10.
  • Center offset uses 0 for the exact center and 100 for the hall edge.
  • Disabling “multiple candidates” pauses automatic entry when more than one showtime matches.
  • “Suboptimal seats” can relax row and center preferences, but never overrides disabled edge or front-row seating.
  • Refreshes use the configured 8–300 second interval with ±10% jitter.

Supported Platforms

Platform Status
Maoyan Web Phase-one adapter with a sanitized fixture; authenticated live-page validation is pending
Chrome / Edge + Tampermonkey Primary target; release-manager acceptance test still required
Firefox / Violentmonkey Compatible APIs are used, currently experimental
Taopiaopiao Not implemented

Development

Node.js 22.13 or later is required.

npm install
npm run dev

See Architecture and Selector maintenance.

Build

npm run check

The readable, non-minified install artifact is generated at dist/seatcat.user.js; dist/seatcat.meta.js is the lightweight GitHub update manifest. Release metadata URLs are injected only by the tag workflow using the real repository name.

Privacy

SeatCat has no telemetry, ads, referral links, or author-operated network service. Configuration remains in userscript-manager storage, and runtime logs remain in the current page. See PRIVACY.md.

Disclaimer

SeatCat is a personal browsing assistant and does not guarantee availability or purchase success. Users are responsible for complying with platform terms and local rules and for reviewing every order. CAPTCHA, identity checks, and payment always require the user.

Roadmap

  • Validate selectors against sanitized authenticated Maoyan snapshots
  • Verify real Tampermonkey and Violentmonkey upgrade paths
  • Add multi-cinema and multi-showtime fallback tasks
  • Add a second ticket platform only after the adapter contract is stable

Contributing

Read CONTRIBUTING.md. Use the bug report form for sanitized DOM or selector failures.

License

MIT

About

A local-first Maoyan showtime monitor and cinema seat-selection userscript with configurable automation.

Topics

Resources

Contributing

Security policy

Stars

2 stars

Watchers

0 watching

Forks

Releases

Contributors

Languages