fanqie-publisher

Automates saving novel chapters to the Fanqie draft box via Playwright browser automation.

Updated Jul 31, 2026
One-click install
npx skills add https://github.com/cwjdong-design/novel --skill fanqie-publisher-cwjdong-design
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: fanqie-publisher
Source: https://github.com/cwjdong-design/novel/tree/main/fanqie-publisher
Command: npx skills add https://github.com/cwjdong-design/novel --skill fanqie-publisher-cwjdong-design

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires playwright, and includes scripts (resource) and references (resource) components.

What problem does it solve? Manually uploading chapters to the Fanqie Novel writer backend is repetitive and error-prone: titles split across two fields, a ProseMirror editor that ignores paste events, and strict draft-box verification. This Skill automates the entire draft-submission flow while enforcing a hard boundary that it never publishes chapters officially. ## Core Features & Use Cases - Automated Draft Submission: Reads a local Markdown chapter file, fills the chapter number, title, and body in the Fanqie writer backend, clicks "Save Draft", and verifies the result in the draft box. - Persistent Login Management: Ships login scripts (manual login browser and QR-code login) that store session state in a fixed browser profile reused across runs. - Published Chapter Updates: Includes a script to update already-published chapters by editing title and body through the ProseMirror editor with React-aware DOM events. - Use Case: After finishing and polishing chapter 16 of your web novel, run one command to push it into the Fanqie draft box, then verify chapter number, title, and word count in the draft list without touching the publish button. ## Quick Start Ask the agent to save chapter 16 of your book to the Fanqie draft box using the publish_chapter.py script with your book name.

Frequently Asked Questions about fanqie-publisher

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I upload a novel chapter to the Fanqie draft box automatically?

Run publish_chapter.py with the chapter number and book name. The script reads the local Markdown file, fills the chapter number, title, and body in the Fanqie writer backend, clicks Save Draft, and then you verify the entry in the draft box.

How does Playwright login work for the Fanqie writer backend?

Login state is stored in a persistent Chromium profile at ~/.hermes/browser-profiles/fanqie. Use login_browser.py for manual login or qr_login.py for QR-code scanning; all later Playwright runs reuse this profile automatically.

Can this tool publish chapters officially on Fanqie?

No. The skill is hard-limited to saving drafts and verifying draft-box state. It never clicks official publish, confirm publish, or scheduled publish buttons, and it will not ask whether to publish after saving a draft.

Why does the Fanqie editor not respond to paste or typing in Playwright?

The Fanqie backend uses a ProseMirror editor that ignores standard paste and type events. The scripts set innerHTML directly and dispatch React-compatible input events so the editor registers the content and triggers auto-save.

Why does publish_chapter.py fail with ModuleNotFoundError for playwright?

Playwright is installed in the system Python user site-packages, not the Hermes venv. Run the script with the system python3 instead of the venv interpreter, and reinstall browser binaries with python3 -m playwright install chromium if needed.

What causes draft submission to be blocked by a dirty draft?

A leftover zero-word untitled draft in the draft box fails the script's strict count validation. Delete it via a headless browser session on the draft-box route, confirm the deletion dialog, and reload to verify the count returns to zero.