# oneblog4j **Repository Path**: terwer/oneblog4j ## Basic Information - **Project Name**: oneblog4j - **Description**: JavaFX实现的自动发布笔记到博客平台的客户端 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-12-25 - **Last Updated**: 2022-07-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: 博客, Javafx, Java ## README # oneblog4j JavaFX实现的自动发布笔记到博客平台的客户端 # 目标 1、一键发布文章到博客园,自动读取Typra/MWeb目录,自动上传图片 ⭐️⭐️⭐️⭐️⭐️ 2、其他平台:Confluence、Wordpress、CSDN、简书、以及metaweblog api兼容的平台等 ️⭐️ 3、统一日志框架 ⭐️⭐️⭐️⭐️⭐️ 4、支持metaWeblogAPI,并开发其他平台适配器(目前已经支持Confluence) ⭐️⭐️⭐️⭐️⭐️ 5、支持打开vuepress的md文件,并读取yaml元数据 ⭐️⭐️⭐️⭐️⭐️ 6、适配1024*600以上的分辨率 ⭐️⭐️⭐️ 7、自动截取备注 ⭐️⭐️⭐️⭐️⭐️ 8、处理剪贴板图片,配合PigGO ⭐️⭐️⭐️⭐️⭐️ 9、自动生成标签,自动修复缺失标题 ⭐️⭐️⭐️⭐️⭐️ 10、根据文章发布状态进行文章发布与更新,集成Spring Data JPA,配合MySQL实现跨平台状态共享 ⭐️⭐ # 相关技术 JDK1.8.0_291 Maven3.8.4 JavaFX(JDK1.8集成在JDK了,JDK11因为依赖第三方库版本问题,暂不支持) flexmark0.34.58 slugify2.2 snakeyaml1.30 xmlrpc-client3.1.3 fastjson1.2.79 # 问题 目前实现自动发布文章有这么几个方案 ## 1、metaWeblogAPI(推荐) 这个可以无缝集成,但是很多平台已经关闭了这个API,目前只有 cnblogs 还是可用状态 适用的平台:博客园 优点:可纯后台运行 缺点:目前仅仅博客园可用 更新:目前做了适配器,完美解决了问题,此方案最终采用 ## 2、JSON API 这个需要自己实现,我自己的博客实现了这个API 适用的平台:我自己写的博客 优点:可纯后台运行 缺点:只有满足api规范的可用 ## 3、代码模拟登陆 这个比较通用,但是可能会受到验证码的困扰,而且需要抓包分析http请求。极容易失效。 适用的平台:部分比较容易抓包的网站 优点:可纯后台运行 缺点:部分网站不可用,比如使用Vue或者React写的非服务端渲染的页面,抓取不到真正的html,html是由js引擎动态生成的,比如CSDN 参考我的另一个项目: https://github.com/geekerteam/simulation-login ## 4、selenium自动化模拟登陆 适用的平台:几乎所有网站 优点:通用,几乎万能 缺点:依赖浏览器模拟点击,不能在一个后台去完成。当然可以使用selenium的后台支持去实现无界面运行。 比3更容易实现,而且自动点击,比代码层面更安全,这个是浏览器层面,更加通用。基于dom的查询更加容易。 # TODO - [x] 统一日志框架 - [x] 支持metaWeblogAPI,并开发其他平台适配器(目前已经支持Confluence) - [x] 支持打开vuepress的md文件,并读取yaml元数据 - [x] 适配1024*600以上的分辨率 - [x] 自动截取备注 - [x] 处理剪贴板图片,配合PigGO - [x] 自动生成标签,自动修复缺失标题 - [ ] 根据文章发布状态进行文章发布与更新,集成Spring Data JPA,配合MySQL实现跨平台状态共享