# Contributing to dsh-status-rotator Thanks for wanting to help! This plugin replaces the DSH Web status line with configurable phrases, and it lives on contributions — code, phrases and bug reports all count. [中文版 →](./CONTRIBUTING_ZH.md) ## Ways to contribute | What | How | | --- | --- | | **Phrases** (most common) | Use the **[phrase submission form](https://github.com/01Virex/dsh-status-rotator/issues/new?template=phrase-submit.yml)** — the bot validates it and opens a PR for you. Ad entries go through the same form by picking the `ads` target pack (**one line = one ad**, written as a progressive phrase + its source). Do **not** hand-edit `config.example.json` for this; the bot keeps counts and formatting in sync. | | **Code / docs** | Fork → branch → PR (see below). | | **Bugs** | Open an issue with your dsh version, the host profile, what you saw and any console output. | ## Development There is **no build step** and no runtime dependency: the plugin is plain JS (`lib/index.js` = node half, `lib/client.js` = client half, `config.example.json` = the shipped phrase bank). ```bash git clone https://github.com//dsh-status-rotator && cd dsh-status-rotator npm test # smoke: pure functions + bank integrity (~400 assertions) node scripts/run-danmaku-mount-test.cjs --page=settings # settings page in a real browser node scripts/run-turn-process-test.cjs # status-line scenarios (0.1.6 / 0.1.7 / 0.2.0 fixtures) node scripts/verify-settings-survive-upgrade.cjs # endpoint-level verifiers ``` `scripts/` is **dev-only** (it is not in `package.json` `files`). CI runs three jobs (see [`.github/workflows/test.yml`](./.github/workflows/test.yml)): `qc` (plugin manifest), `test` (smoke + verifiers) and `browser` (the browser harnesses). **All three must be green before a PR is merged.** ## Conventions that reviewers will check - **Host generations**: the plugin must keep working on dsh ≤0.1.6 (`role="status"`), 0.1.7+ (`button[data-turn-process]`) **and** 0.2.0+ (`div[data-chat-running]`). Never key off hashed class names; prefer the stable attributes. - **`