segmentfault — read & draft on 思否 via your own cookies
Drives the user's real SegmentFault account through the same
segmentfault.com/gateway endpoints the site uses, authenticated by the login
cookie they captured with the ACE extension. No browser, no third-party deps —
just urllib.
The connector injects the cookie jar as a JSON env var $SEGMENTFAULT_COOKIES.
Never print it.
python3 "$SKILL_DIR/scripts/segmentfault.py" whoami
If $SKILL_DIR points at a different skill loaded in the same turn, resolve
this skill's directory explicitly before running the commands below.
Important: draft only
SegmentFault's write endpoint (/gateway/draft) creates a draft. This skill
returns the draft's editor URL and does not publish. Tell the user plainly that
they must open that URL and publish themselves — do not claim the article went
live.
Verify the connection first
python3 "$SKILL_DIR/scripts/segmentfault.py" whoami
If this fails with an auth error, the cookie has expired. Ask the user to
reconnect at https://studio.acedata.cloud/console/connectors rather than retrying.
Create a draft — GATED
Prepare the complete Markdown in a file. The first call is always a dry run and does not write anything.
# Dry run — shows exactly what would be written.
python3 "$SKILL_DIR/scripts/segmentfault.py" draft \
--title "标题" --content-file /tmp/article.md --tags "python,api"
# Actually create the draft after the user confirms.
python3 "$SKILL_DIR/scripts/segmentfault.py" draft \
--title "标题" --content-file /tmp/article.md --tags "python,api" --confirm
--confirm is valid only as the final argument. Show the title, tags and full
content to the user before writing.
Gotchas
- The write API needs a per-session token scraped from the
/writepage. If the CLI reports it could not find that token, the cookie is stale — reconnect rather than retrying. - A restricted account (禁言 / 锁定) is reported as an explicit error. Do not retry; tell the user their account is restricted.
- Content is sent as Markdown. Do not pre-render it to HTML.
- Images referenced by external URL are not re-hosted. If the source host blocks hotlinking they will not render; mention this when the article has images.
- Do not retry a timed-out write automatically — the outcome may be unknown and a retry can create a duplicate draft.
Record the output
This skill only produces drafts, so do not call publish_artifact. Report
the returned draft_id and edit_url to the user instead.