← Back to Skills Marketplace
tomekdot

Pursuit Maps

by tomekdot · GitHub ↗ · v2.0.0 · MIT-0
cross-platform ⚠ suspicious
30
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install pursuit-maps
Description
TrackMania Pursuit maps pipeline — fetches maps from ManiaPlanet Feedback (star ratings, vote counts), enriches with ManiaExchange data, syncs to Google Shee...
README (SKILL.md)

\r \r

Pursuit Maps Pipeline\r

\r Automated pipeline: ManiaPlanet Feedback + ManiaExchange → Google Sheets.\r \r

Quick Reference\r

\r Main script: pipeline/pipeline.py in repo tomekdot/pursuit-maps\r \r

python3 pipeline/pipeline.py                    # full pipeline\r
python3 pipeline/pipeline.py --action sync      # fetch + push new maps + auto-sort\r
python3 pipeline/pipeline.py --action votes     # update vote columns only\r
python3 pipeline/pipeline.py --action sort      # sort sheet by Uploaded At\r
python3 pipeline/pipeline.py --action report    # vote change report\r
python3 pipeline/pipeline.py --action validate  # data quality checks\r
```\r
\r
**GAS Web App**: `pipeline/gas-webapp/PursuitMaps.gs` — deploy once in Sheet (Extensions → Apps Script → Deploy as Web App). Accepts HTTP POST from pipeline.\r
\r
## Repo Structure\r
\r
```\r
pursuit-maps/\r
├── pipeline/pipeline.py      ← Main entry point (all actions)\r
├── pipeline/gas_runner.py    ← HTTP client for GAS\r
├── pipeline/gas-webapp/      ← GAS script (deploy in Sheet)\r
├── data/                     ← Cache, history, reports\r
├── docs/                     ← Setup guides\r
├── scripts/legacy/           ← Old scripts (reference)\r
└── .github/workflows/pipeline.yml  ← Daily 5:00 UTC\r
```\r
\r
## Sheet Columns\r
\r
| Col | Name | Source |\r
|-----|------|--------|\r
| A | # | Auto |\r
| B | Map name | Feedback |\r
| C | Author login | ManiaExchange |\r
| D | Environment | ManiaExchange |\r
| E | Uploaded at | ManiaExchange (ISO 8601 → normalized to YYYY-MM-DD HH:MM:SS) |\r
| F | UID | Feedback |\r
| G | TrackMania\MapType | ManiaExchange |\r
| H | Notes | Manual |\r
| I | YN Rating | Feedback YES/NO section |\r
| J | YN Votes | Feedback YES/NO section |\r
| K | 5-Star Avg | Feedback 5 STARS section |\r
| L | 5-Star Total | Feedback 5 STARS section |\r
\r
## Sorting\r
\r
Sheet is auto-sorted by **Uploaded At (column E) descending** after every sync (newest maps on top).\r
- Column E is formatted as Date (`yyyy-mm-dd hh:mm:ss`) so Sheets treats it as proper date\r
- Manual sort: `python3 pipeline/pipeline.py --action sort` or POST `{"action":"sort"}` to GAS\r
- Sort function handles both Date objects and string dates from MX API\r
\r
## Key API Endpoints\r
\r
- Feedback page: `feedback.prod.live.maniaplanet.com/votes/display/106`\r
- MX API: `tm.mania.exchange/api/maps/get_map_info/id/{UID}` (V1, accepts UID)\r
- Sheet read: gviz API (no auth for public sheets)\r
- Sheet write: GAS Web App (deployed once per user)\r
\r
## Parsing Notes\r
\r
Feed page has TWO separate star rating sections per map card:\r
1. **YES/NO** section: `\x3Ch6>YES/NO\x3C/h6>` → gold span → `rating (count)`\r
2. **5 STARS** section: `\x3Ch6>5 STARS\x3C/h6>` → gold span → `rating (count)`\r
\r
Parse independently. ~80% of maps have 5-Star data but no YES/NO votes.\r
\r
Split HTML at each `\x3Cimg src="...maps/...">` to isolate per-map cards.\r
\r
## Stats\r
\r
- 249 maps total\r
- ~75% indexed on ManiaExchange\r
- 248 thumbnails available (1 HTTP 403)\r
- 4 environments: Valley, Canyon, Stadium, Lagoon\r
- 3 map types: PursuitArena (~80%), GoalHuntArena (~15%), HuntersArena (~5%)\r
Usage Guidance
Install only in a ClawHub maintainer or admin environment where these powers are intended. Before use, consider setting AUTOREVIEW_YOLO=0 or using --no-yolo, and only run moderation, email, package transfer, org deletion, or PR publishing commands after confirming the exact target and reason.
Capability Assessment
Purpose & Capability
The stated purposes are coherent: ClawHub moderation, PR maintenance, autoreview, and Convex development guidance. Several capabilities are high-impact, including banning users, changing roles, transferring packages, deleting org publishers, sending staff email, posting PR proof, and running nested review tools.
Instruction Scope
Moderation instructions include good safeguards such as explicit targets, reasons, confirmation, auth, audit logging, and verification. The main concern is the autoreview helper defaulting nested Codex to bypass approvals and use danger-full-access, which is broader than a review workflow needs by default.
Install Mechanism
No install-time execution, hidden installer, or persistence mechanism was found in the skill artifacts. The only executable artifact reviewed is the autoreview helper script.
Credentials
The staff admin commands are purpose-aligned but operate on production-like ClawHub and GitHub surfaces when invoked. The default full-access nested review mode materially increases local environment risk even though it is disclosed and can be disabled.
Persistence & Privilege
The skills rely on existing CLI, GitHub, Convex, and ClawHub credentials rather than collecting new secrets. They do not establish background persistence, but they can perform privileged mutations when run by an authorized maintainer.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install pursuit-maps
  3. After installation, invoke the skill by name or use /pursuit-maps
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v2.0.0
Major pipeline upgrade with improved data enrichment, Sheet syncing, and reporting: - Adds enrichment of ManiaPlanet Feedback map data with ManiaExchange details (author, environment, map type, upload date). - Syncs enriched data to Google Sheets using a Google Apps Script (GAS) Web App for easy updates and automation. - Supports flexible pipeline actions: fetch & sync maps, update vote columns, sort by date, generate vote change reports, and perform data validation. - Automatically sorts the Sheet by map upload date (newest first) after each sync. - Expanded documentation and quick reference for setup, available actions, and Sheet structure.
Metadata
Slug pursuit-maps
Version 2.0.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is Pursuit Maps?

TrackMania Pursuit maps pipeline — fetches maps from ManiaPlanet Feedback (star ratings, vote counts), enriches with ManiaExchange data, syncs to Google Shee... It is an AI Agent Skill for Claude Code / OpenClaw, with 30 downloads so far.

How do I install Pursuit Maps?

Run "/install pursuit-maps" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Pursuit Maps free?

Yes, Pursuit Maps is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Pursuit Maps support?

Pursuit Maps is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Pursuit Maps?

It is built and maintained by tomekdot (@tomekdot); the current version is v2.0.0.

💬 Comments