推荐我的小作品——问候海报制作Greet Poster

  • 2026年7月24日
  • 3
AI智能摘要
可自部署的每日问候海报生成工具,每日推送一首诗词,支持自定义背景图片、画中画、农历日历、诗词搜索,适配1125×2436手机海报尺寸。提供管理员编辑、用户系统、定时推送至企业微信等功能,前后端分离(FastAPI + React),可自由配置管理。
— 此摘要由AI分析文章内容生成,仅供参考。

一款可自部署的每日问候海报生成工具。每日推送一首诗词,支持自定义背景图片、画中画、农历日历、诗词搜索,适配 1125×2436 手机海报尺寸。

推荐我的小作品——问候海报制作Greet Poster

项目地址【开源】:https://github.com/sunclchina/greet-poster

功能特性

  • 每日诗词 — 每日自动匹配节气/季节诗词,支持手动换诗、搜索
  • 诗词编辑 — 管理员双击诗词框即可编辑标题、作者、正文
  • 问候语编辑 — 管理员双击问候语框即可编辑文案,也可在管理面板批量修改各时段问候语
  • 自定义诗词 — 管理面板新增自定义诗词,混入随机池
  • 用户系统 — 注册/登录,昵称显示,管理员权限
  • 自定义背景 — 本地上传、拖拽图片、URL 加载、自动配图、渐变色
  • 画中画 — 图片叠加,自由移动/缩放/旋转/滤镜(黑白、怀旧、反色等)
  • 农历日历 — 公历→农历转换,节气、节日标注
  • 文本框 — 问候语、诗词、日历三个独立框,自由拖拽调整位置和大小
  • 导出分享 — 导出 PNG/JPG/WebP,支持 Web Share API
  • 定时推送 — 每日定时推送诗词到企业微信机器人
  • 系统设置 — 管理用户、配置数据源、AI 模型参数、赞赏码

项目结构

greet-poster/
├── backend/                  # FastAPI 后端(Python)
│   ├── main.py               # API 服务 + 用户系统 + 诗词/问候语管理 + 设置管理
│   ├── poetry_loader.py       # 诗词数据加载器
│   ├── requirements.txt       # Python 依赖
│   ├── .env                   # 本地配置(不入库)
│   └── .env.example           # 配置模板
├── frontend/                 # React 前端(Vite + TypeScript)
│   ├── src/
│   │   ├── App.tsx            # 主应用(登录/注册/设置面板/管理面板)
│   │   ├── main.tsx           # 入口
│   │   └── components/
│   │       └── GreetingPoster.tsx  # 海报核心组件(含编辑器)
│   │   └── utils/
│   │       ├── greetings.ts   # 问候语生成(API 优先,本地 fallback)
│   │       ├── poetry.ts      # 诗词 API 客户端
│   │       └── calendar.ts    # 公农历转换
│   ├── public/
│   │       └── donate-qr.jpg  # 赞赏码图片
│   ├── index.html
│   ├── package.json
│   └── vite.config.ts         # 端口从 .env 读取
├── start.ps1                 # 一键启动脚本
└── README.md

部署指南

前置依赖

  • Python >= 3.10(后端)
  • Node.js >= 18(前端构建)
  • 诗词数据:chinese-poetry 项目(本地克隆,约 500MB)

快速开始(Windows)

# 1. 克隆仓库
git clone https://github.com/sunclchina/greet-poster.git
cd greet-poster

# 2. 安装 Python 依赖
pip install -r backend/requirements.txt

# 3. 安装前端依赖
cd frontend
npm install
cd ..

# 4. 配置诗词数据源
#    编辑 backend/.env,设置 POETRY_ROOT 指向本地数据目录
#    POETRY_ROOT=E:my-projectchinese-poetry

# 5. 一键启动
.start.ps1

配置说明

编辑 backend/.env

# ── 前后端端口 ──
BACKEND_HOST=0.0.0.0
BACKEND_PORT=8001
FRONTEND_PORT=8082

# ── 管理员账号 ──
DEFAULT_USERNAME=admin
DEFAULT_PASSWORD=***

# ── 诗词数据源 ──
POETRY_ROOT=E:my-projectchinese-poetry

# ── AI 模型(可选) ──
AI_ENABLED=false
AI_API_URL=http://localhost:11434/v1
AI_MODEL=qwen2.5:7b

# ── 定时推送(可选) ──
PUSH_ENABLED=false
PUSH_TIME=08:00
PUSH_WEBHOOK_URL=

使用说明

首次使用

  1. 打开 http://localhost:8082
  2. 注册或使用默认管理员登录
  3. 登录进入海报页面

默认管理员

用户名密码
adminadmin123

管理员登录后可在顶部「设置」中管理用户、诗词、问候语、系统配置。

海报操作

操作方式
切换日期左右滑动 /  + 按钮逐日调整
换诗词点击「换诗」按钮 / 搜索诗词
换问候点击「换问候」按钮随机切换
编辑诗词管理员双击诗词框
编辑问候语管理员双击问候语框
移动文本框拖拽框体
调整文本框大小拖拽右下角 ◢ 拉手
背景图片点击「背景」→ 本地上传 / URL / 自动配图
画中画点击「画中画」→ 上传图片 / 拖拽 / URL
导出选择格式(PNG/JPG/WebP)→ 点击「下载」
分享点击「分享」→ 系统原生分享面板

API 接口

接口方法说明
/api/auth/registerPOST注册
/api/auth/loginPOST登录
/api/poetry/randomGET随机诗词
/api/poetry/searchGET搜索诗词
/api/healthGET健康检查
/api/settingsGET/PUT系统配置(需 admin)
/api/poems/customGET/POST自定义诗词(需 admin)
/api/greetingsGET/POST问候语管理(需 admin)

定时推送配置

支持通过 Webhook 每日定时推送早安诗词到微信。

方式一:PushPlus(推荐)

  1. 打开 https://www.pushplus.plus 微信扫码登录
  2. 获取你的 Token(个人中心 → 一对一推送 → Token)
  3. 在设置面板中填入:
    • 启用定时推送 → 打开
    • 推送时间 → 设置(默认 08:00)
    • Webhook 地址 → https://www.pushplus.plus/send?token=你的Token
    • 推送联系人 → 留空
  4. 保存后点击「测试推送」验证

方式二:企业微信群机器人

  1. 企业微信 → 创建群聊 → 群设置 → 群机器人 → 添加
  2. 复制 Webhook 地址,填到设置面板
  3. 推送联系人可填 @all 或指定成员

方式三:Server酱

  1. 打开 https://sct.ftqq.com 微信扫码
  2. 复制 SendKey
  3. Webhook 地址填:https://sct.ftqq.com/你的SendKey.send

技术栈

  • 后端: FastAPI + SQLite + JWT
  • 前端: React + TypeScript + Vite
  • 诗词数据: chinese-poetry(15 文集,9 万余首)
  • 农历: 1900-2100 公农历转换