good-mp-post
npx skills add https://github.com/imgoodbai/goodable --skill good-mp-post
Agent 安装分布
Skill 文档
Good å ¬ä¼å·åå¸
ä»»å¡ç®æ
éè¿AIè¾ å©å®æå¾®ä¿¡å ¬ä¼å·æç« çåä½ãæçååå¸å ¨æµç¨ã
è½åï¼ æç« åä½ãå¾ççæä¸ä¸ä¼ ãè稿å建ãæç« åå¸
触åï¼ ç¨æ·éè¦å建æåå¸å¾®ä¿¡å ¬ä¼å·æç«
ä½¿ç¨æ¨¡å¼
模å¼1ï¼Web UI (æ¨è)
å¯è§åçé¢ï¼æ¯ææç« 管çãå¨çº¿ç¼è¾ååå¸ï¼
# å®è£
ä¾èµ
pip install -r requirements.txt
# å¯å¨æå¡ï¼é»è®¤ç«¯å£8000ï¼
uvicorn app.main:app --reload
# æµè§å¨è®¿é®
http://localhost:8000
åè½ï¼
- æç« CRUDæä½ï¼åå»ºãæ¥çãç¼è¾ãå é¤ï¼
- Markdownå 容ç¼è¾
- æ°æ®åºæä¹ åï¼SQLiteï¼
- ç´æ¥åå¸å°å¾®ä¿¡å ¬ä¼å·
- åå¸åå²è®°å½
模å¼2ï¼èæ¬ (å½ä»¤è¡)
éåèªå¨ååºæ¯ï¼ä¸Web UIå ±äº«æ°æ®åºï¼
# ä¸ä¼ å¾ç
python scripts/upload_media.py /path/to/image.jpg thumb
# å建è稿
python scripts/create_draft.py --title "æ é¢" --content "å
容"
# å叿ç«
python scripts/publish_article.py --media_id <è稿ID>
æ°æ®äºéï¼ èæ¬åå¸çæç« ä¼èªå¨è®°å½å°æ°æ®åºï¼Web UI坿¥çå管çã
åç½®åå¤
ä¾èµï¼ requests>=2.28.0, python-dotenv>=1.0.0, fastapi>=0.104.1, sqlalchemy>=2.0.35
åè¯é ç½®ï¼
- å¨ .env æä»¶é
ç½®
WECHAT_APP_IDåWECHAT_APP_SECRET - è·åæ¹å¼ï¼å¾®ä¿¡å ¬ä¼å¹³å° â å¼å â åºæ¬é ç½®
- éé ç½®IPç½åå
æ°æ®åºï¼ èªå¨å建 SQLite æ°æ®åºï¼data/articles.dbï¼ï¼æ éæå¨é ç½®
æ åæµç¨ï¼Web UIï¼
1. å¯å¨æå¡
cd skills/good-mp-post
uvicorn app.main:app --reload
2. å建æç«
- æå¼ http://localhost:8000
- å¡«åæ é¢ãä½è ãæè¦
- ç¼å Markdown å 容
- ä¿åè稿
3. å叿ç«
- å¨æç« å表ç¹å»”å帔æé®
- èªå¨å¤çå°é¢å¾ä¸ä¼ ãè稿å建ãå叿µç¨
- æ¥çåå¸ç¶æ
èæ¬æµç¨ï¼å½ä»¤è¡ï¼
1. åä½æç« å 容
- æ ¹æ®ç¨æ·éæ±åä½æç« ï¼Markdownæ ¼å¼ï¼
- åè
assets/templates/article-template.mdäºè§£æ ¼å¼å»ºè®®
2. çæå¾ç
- çæå°é¢å¾ï¼å»ºè®® 900Ã383pxï¼<5MBï¼
- çææå¾ï¼å®½åº¦â¤900pxï¼
3. ä¸ä¼ å¾ç
è°ç¨ scripts/upload_media.py:
python scripts/upload_media.py /path/to/cover.jpg thumb # å°é¢å¾
python scripts/upload_media.py /path/to/image.png image # æ£æå¾
4. å建è稿
è°ç¨ scripts/create_draft.py:
python scripts/create_draft.py \
--title "æç« æ é¢" \
--author "ä½è
å" \
--thumb_media_id <å°é¢å¾ID> \
--content "<p>HTMLæ£æ</p>" \
--media_ids '[]'
注æï¼ ä½è åæé¿8ä¸ªä¸æå符
5. å叿ç«
è°ç¨ scripts/publish_article.py:
python scripts/publish_article.py --media_id <è稿ID>
èµæºç´¢å¼
app/main.py– FastAPI 主åºç¨å ¥å£app/api/articles.py– æç« 管ç APIapp/api/images.py– å¾çä¸ä¼ APIapp/database.py– æ°æ®åºæ¨¡ååè¿æ¥app/static/index.html– Web UI çé¢scripts/upload_media.py– ä¸ä¼ å¾çå°ç´ æåºscripts/create_draft.py– åå»ºå¾æè稿scripts/publish_article.py– åå¸è稿scripts/db_logger.py– æ°æ®åºæ¥å¿è®°å½ï¼å¯éï¼references/api-guide.md– API详ç»è¯´æassets/templates/article-template.md– æç« æ ¼å¼æ¨¡æ¿
å¾çè·¯å¾è§èï¼éè¦ï¼
AIçææç« æ¶å¿ é¡»éµå¾ªä»¥ä¸è§èï¼
ç¦æ¢ä½¿ç¨ç¸å¯¹è·¯å¾
â é误示ä¾ï¼



æ£ç¡®çå¾çå¤çæµç¨
- å çæå¾çæä»¶å¹¶ä¿åå°ä¸´æ¶ç®å½
- è°ç¨
upload_media.pyä¸ä¼ å°å¾®ä¿¡è·å media_id - 使ç¨å ä½ç¬¦æè¯´ææåï¼ä¸è¦ç´æ¥æå ¥æ¬å°è·¯å¾
â æ£ç¡®ç¤ºä¾ï¼
<!-- æ¥éª¤1ï¼çæå¾ç -->
<!-- æ¥éª¤2ï¼ä¸ä¼ å¾ç -->
python scripts/upload_media.py /path/to/cover.jpg thumb
<!-- æ¥éª¤3ï¼è®°å½ media_idï¼å¨å建è稿æ¶ä½¿ç¨ -->
<!-- æ£æä¸ä¸æå
¥ç¸å¯¹è·¯å¾ -->
åå 说æ
- ç¸å¯¹è·¯å¾å¨é¢è§åå叿¶æ æ³æ£å¸¸æ¾ç¤º
- å¾®ä¿¡å ¬ä¼å·è¦æ±å ä¸ä¼ å¾çè·å media_id
- å·²æç工使µï¼ä¸ä¼ å¾çâå建èç¨¿ï¼æ¯æ£ç¡®ç
å ³é®æ³¨æäºé¡¹
- ä½è åéå¶ï¼ æé¿8ä¸ªä¸æå符
- å¾çæææï¼ å°é¢å¾æ°¸ä¹ ï¼æ£æå¾3天
- å¾çè·¯å¾ï¼ ç¦æ¢ä½¿ç¨ç¸å¯¹è·¯å¾ï¼è§ä¸æ¹å¾çè·¯å¾è§èï¼
- HTMLè¦æ±ï¼ 使ç¨ç®åæ ç¾ï¼p/h1-h3/ul/li/img/aï¼ï¼é¿å 夿CSS
- åå¸å®¡æ ¸ï¼ åå¸åéå¾®ä¿¡å®¡æ ¸æè½å±ç¤º
- è°ç¨é¢çï¼ ä¸ä¼ 1000次/天ï¼å建è稿100次/天ï¼åå¸10次/天