86 lines
2.7 KiB
Markdown
86 lines
2.7 KiB
Markdown
# Star Chart Search Enhancer
|
|
|
|
Chrome MV3 extension for the Xingtu creator market page.
|
|
|
|
## Development
|
|
|
|
```bash
|
|
npm install
|
|
npm test
|
|
npm run build
|
|
```
|
|
|
|
## Load The Extension
|
|
|
|
1. Run `npm run build`
|
|
2. Open `chrome://extensions`
|
|
3. Enable developer mode
|
|
4. Choose `Load unpacked`
|
|
5. Select the `dist/` directory
|
|
|
|
## Current Scope
|
|
|
|
- Adds two after-search-rate columns to the Xingtu market list
|
|
- Adds a popup-based Logto auth entry
|
|
- Hydrates the current page immediately
|
|
- Provides plugin-owned filter, sort, and CSV export controls
|
|
- Gates the market tools until auth is available
|
|
- Triggers full-scan flow only when filter, sort, or export is used
|
|
|
|
## Auth Configuration
|
|
|
|
The Logto integration is wired with placeholder values in `src/shared/auth-config.ts`.
|
|
Replace these before real sign-in testing:
|
|
|
|
- `logtoEndpoint`
|
|
- `appId`
|
|
- `apiResource`
|
|
- Any extra scopes beyond `openid`, `profile`, and `offline_access`
|
|
|
|
The popup dev panel is controlled by `enableDevAuthPanel`.
|
|
|
|
## Popup Behavior
|
|
|
|
1. Load the unpacked extension from `dist/`
|
|
2. Click the extension icon
|
|
3. Confirm the popup shows `登录 Logto` when unauthenticated
|
|
4. After real Logto config is added, use the popup to sign in and sign out
|
|
|
|
## Protected API Mock Test
|
|
|
|
1. Set `enableDevAuthPanel` to `true` in `src/shared/auth-config.ts`
|
|
2. Run `npm run mock:protected-api`
|
|
3. Run `npm run build`
|
|
4. Reload the unpacked extension from `dist/`
|
|
5. Open the popup and log in
|
|
6. Click `测试受保护接口`
|
|
7. Confirm the popup shows JSON containing `"source": "mock-protected-api"` and `"message": "authorized"`
|
|
|
|
## Batch Submit Mock Test
|
|
|
|
1. Run `npm run mock:protected-api`
|
|
2. Run `npm run build`
|
|
3. Reload the unpacked extension from `dist/`
|
|
4. Open `https://xingtu.cn/ad/creator/market`
|
|
5. Choose an export range in the plugin toolbar
|
|
6. Click `提交批次`
|
|
7. Enter a batch name in the browser prompt
|
|
8. Confirm the toolbar shows `批次提交成功`
|
|
9. Confirm the mock batch response accepts the payload and reports the submitted `batchId`
|
|
|
|
## Market Auth Gate
|
|
|
|
When the market page is opened without a valid auth state, the content script renders
|
|
`请先登录插件` and does not boot the filter, sort, or export toolbar.
|
|
|
|
## Manual Verification
|
|
|
|
1. Load the unpacked extension from `dist/`
|
|
2. Open `https://xingtu.cn/ad/creator/market`
|
|
3. Confirm the page shows the auth gate until login is available
|
|
4. After authentication is wired, confirm the two new columns appear
|
|
5. Confirm current-page rows move through loading and then render values or failure states
|
|
6. Apply a threshold filter and confirm the list hides unmatched rows
|
|
7. Apply a sort and confirm row order changes
|
|
8. Export CSV and confirm the file includes plugin status and after-search-rate fields
|