Skip to content

781797330/One2Many

Repository files navigation

One2Many - 一文多发工具

License Java Spring Boot MySQL

项目简介

One2Many 是一个开源的多平台内容发布工具,支持一键将文章同时发布到多个技术平台,包括知乎、CSDN、博客园、思否、开源中国、稀土掘金、慕课手记、微信公众号等。

核心特性

  • 🚀 一键多发:支持同时发布到多个平台,提高内容传播效率
  • 📝 Markdown编辑器:内置专业的Markdown编辑器,支持实时预览
  • 🔗 多平台适配:支持8个主流技术平台的API适配
  • 📊 发布监控:实时监控发布状态,提供详细的发布报告
  • 📈 数据统计:提供发布历史、成功率等统计分析
  • 🎨 现代化UI:采用Material Design风格,提供优秀的用户体验

支持平台

平台 状态 认证方式 备注
知乎 Token 支持文章发布和更新
CSDN Cookie 支持Markdown和HTML
博客园 Cookie 原生支持Markdown
思否 🚧 开发中 计划支持
开源中国 🚧 开发中 计划支持
稀土掘金 🚧 开发中 计划支持
慕课手记 🚧 开发中 计划支持
微信公众号 🚧 开发中 计划支持

技术栈

后端

  • Java 17+:编程语言
  • Spring Boot 3.2+:应用框架
  • Spring Security:安全框架
  • MyBatis Plus:ORM框架
  • MySQL 8.0+:数据库
  • JWT:身份认证
  • Swagger:API文档

前端

  • HTML5/CSS3:页面结构和样式
  • JavaScript ES6+:交互逻辑
  • Material Design:UI设计规范
  • Markdown编辑器:内容编辑

快速开始

环境要求

  • Java 17 或更高版本
  • MySQL 8.0 或更高版本
  • Maven 3.6 或更高版本

安装步骤

  1. 克隆项目
git clone https://github.com/your-username/One2Many.git
cd One2Many
  1. 配置数据库
# 创建数据库
mysql -u root -p
CREATE DATABASE one2many DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
  1. 修改配置文件
# src/main/resources/application.yml
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/one2many?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai
    username: your_username
    password: your_password
  1. 运行项目
# 编译项目
mvn clean compile

# 运行项目
mvn spring-boot:run
  1. 访问应用

Docker 部署

  1. 构建镜像
docker build -t one2many:latest .
  1. 运行容器
docker-compose up -d

使用指南

1. 用户注册和登录

  • 访问应用首页,点击注册创建账号
  • 使用用户名和密码登录系统

2. 配置平台账号

  • 进入"平台管理"页面
  • 选择要连接的平台,配置相应的认证信息
  • 测试连接确保配置正确

3. 创建和编辑文章

  • 点击"新建文章"进入编辑器
  • 使用Markdown语法编写内容
  • 支持实时预览和工具栏快捷操作

4. 一键多发

  • 在文章列表中选择要发布的文章
  • 点击"发布"按钮,选择目标平台
  • 系统将自动发布到所选平台

5. 监控发布状态

  • 在"发布历史"页面查看发布记录
  • 实时监控发布进度和状态
  • 查看详细的发布报告和错误信息

API 文档

认证相关

  • POST /api/auth/register - 用户注册
  • POST /api/auth/login - 用户登录
  • GET /api/auth/userinfo - 获取用户信息

文章管理

  • GET /api/articles - 获取文章列表
  • POST /api/articles - 创建文章
  • PUT /api/articles/{id} - 更新文章
  • DELETE /api/articles/{id} - 删除文章

平台管理

  • GET /api/platforms - 获取平台列表
  • POST /api/platforms/accounts - 添加平台账号
  • PUT /api/platforms/accounts/{id} - 更新平台账号

发布管理

  • POST /api/publish/batch - 创建批量发布任务
  • GET /api/publish/tasks/{id} - 获取任务详情
  • POST /api/publish/tasks/{id}/execute - 执行发布任务

详细的API文档请访问:http://localhost:8080/swagger-ui.html

开发指南

项目结构

src/
├── main/
│   ├── java/com/one2many/
│   │   ├── adapter/          # 平台适配器
│   │   ├── common/           # 通用工具类
│   │   ├── config/           # 配置类
│   │   ├── controller/       # 控制器
│   │   ├── dto/              # 数据传输对象
│   │   ├── entity/           # 实体类
│   │   ├── mapper/           # 数据访问层
│   │   ├── security/         # 安全相关
│   │   └── service/          # 业务逻辑层
│   └── resources/
│       ├── static/           # 静态资源
│       ├── db/               # 数据库脚本
│       └── application.yml   # 配置文件

添加新平台适配器

  1. 创建适配器类
@Component
public class NewPlatformAdapter extends AbstractPlatformAdapter {
    @Override
    public String getPlatformCode() {
        return "new_platform";
    }
    
    @Override
    public PublishResult doPublish(PublishRequest request, UserPlatformAccount account) {
        // 实现发布逻辑
    }
}
  1. 添加平台信息
INSERT INTO platform (code, name, description, status) 
VALUES ('new_platform', '新平台', '新平台描述', 'ACTIVE');

贡献指南

  1. Fork 项目
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 创建 Pull Request

常见问题

Q: 如何获取平台的认证信息?

A: 不同平台的认证方式不同:

  • 知乎:需要获取个人Token,可通过开发者工具获取
  • CSDN:需要登录后的Cookie信息
  • 博客园:需要配置API密钥

Q: 发布失败怎么办?

A: 检查以下几点:

  1. 平台账号配置是否正确
  2. 网络连接是否正常
  3. 平台API是否有变更
  4. 查看详细错误日志

Q: 支持自定义发布模板吗?

A: 目前支持基本的内容格式转换,后续版本将支持自定义模板功能。

更新日志

v1.0.0 (2024-01-XX)

  • ✨ 初始版本发布
  • ✨ 支持知乎、CSDN、博客园三个平台
  • ✨ 实现基础的一键多发功能
  • ✨ 提供Markdown编辑器
  • ✨ 实现发布状态监控

许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情。

联系我们

致谢

感谢所有为这个项目做出贡献的开发者!


⭐ 如果这个项目对你有帮助,请给我们一个星标!

About

One2Many - 一文多发工具,支持多平台内容发布的开源项目。支持知乎、CSDN、博客园、思否、开源中国、稀土掘金、慕课手记、微信公众号等平台。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors