一文多发平台的程序ArtiPub

Article publishing platform that automatically distributes your articles to various media channels .

ArtiPub (Article Publisher 的简称,意为 "文章发布者") 是一款开源的一文多发平台,可以帮助文章作者将编写好的文章自动发布到掘金、SegmentFault、CSDN、知乎、开源中国等技术媒体平台,传播优质知识,获取最大的曝光度。ArtiPub 安装简单,提供了多种安装方式,可以一键安装使用,安装一般只要 5 分钟。

ArtiPub 目前支持文章编辑、文章发布、数据统计的功能,后期我们会加入存量文章导入、数据分析的功能,让您更好的管理、优化您的技术文章。此外,我们还会接入更多媒体渠道,真正做到让文章随处可阅。

增加登录注册功能之后,mongodb表结构发生较大变化,前后不兼容,建议重命名mongodb库名以做备份,后端应用启动后会重新初始化 artipub 库,再迁移原来文章至新表.

由于各个平台会不定期更新文章发布页面,所以部分平台可能会失效,没有那么及时更新支持。请勿发布垃圾文章,否则账号可能会被对应平台封禁。

支持平台

git clone 备用地址

如若github clone网络过慢,可使用如下同步更新的国内仓库。

预览截图

登录注册

平台管理

文章管理

文章编辑

文章发布

Chrome 插件

安装要求

NPM 或源码安装

  • MongoDB: 3.6+
  • NodeJS: 10+
  • NPM: > 5+ , < 7+

安装方式

ArtiPub 提供 3 种安装方式如下。

  • [npm](# 通过 npm 包安装) (大约 3 分钟): 适合熟悉 Node.js 或 npm 的开发者
  • [源码](# 通过源码安装) (大约 5-10 分钟): 适合希望了解内核原理的开发者

通过 npm 包安装

如果您对 npm 熟悉,且已经有 MongoDB 的环境,这是最为快捷的方式。

从0.1.6版本开始前后端分开打包.

安装 artipub-front 前端包

artipub-front

安装 artipub-backend 后端包

artipub-backend

安装 npm 包时,为了加速下载速度,可以加入 --registry 参数来设置镜像源(后面源码安装时也可以这样操作)

npm install -g artipub-frontend --registry=https://registry.npm.taobao.org

成功运行后,在浏览器中输入 http://localhost:8000 可以看到界面。

通过源码安装

克隆 Github Repo

安装 npm 包

cd artipub/frontend
npm install

cd artipub/backend
npm install

启动前端

//frontend 目录下
npm run dev

启动后端

//backend 目录下
npm run dev

//运行prod 需先全局安装pm2
npm i pm2 -g
npm run prod

配置数据库

数据库的配置在 backend/src/config.ts 中,可以按情况配置。

配置后端 API 地址

如果您部署的服务不在本机,需要在 frontend/src/constants.ts 中将 apiEndpoint 改成对应的 IP 地址 + 端口。

原理

利用了爬虫技术将文章发布到各大平台。ArtiPub 的爬虫是用了 Google 开发的自动化测试工具 Puppeteer,这个工具不仅可以获取需要有 ajax 动态内容的数据,还可以来做一些模拟操作,类似于 Selenium,但更强大。如何进行登陆操作呢?其实 ArtiPub 是通过 Chrome 插件获取了用户登陆信息(Cookie),将 Cookie 注入到 Puppeteer 操作的 Chromium 浏览器中,然后浏览器就可以正常登陆网站进行发文操作了。Cookie 是保存在用户自己搭建的 MongoDB 数据库里,不对外暴露,因此很安全。

下图是 ArtiPub 的架构示意图:

img

架构原理简介如下:

  • 后端(Backend)是整个架构的中枢,负责给前端交换数据、储存读取数据库、控制爬虫、收集 Cookie 等;
  • Chrome 插件(Chrome Extension)只负责从网站(Sites)获取 Cookie;
  • 爬虫(Spiders)被后端控制,负责在网站上发布文章和抓取数据;
  • 数据库(MongoDB)负责储存数据;
  • 前端(Frontend)是一个 React 应用,是 Ant Design Pro 改造而来的。

为什么创建 ArtiPub

程序员和技术人员常常会写技术文章和博客,用作技术分享、产品分享或提供咨询等等。技术博主通常需要在多个媒体渠道发布文章,例如掘金、SegmentFault、CSDN、知乎、简书、微信公众号等等,以求最大的关注度。但是,发布文章到这么多平台费时费神,需要不断地复制粘贴;同时,作者想查看阅读数时还需要来回切换各个网站来进行统计。这非常不方便。ArtiPub 主要就是为了来解决上述这些问题的。

市面上已经存在一文多发平台了,例如 OpenWrite,为何还要创建 ArtiPub 呢?或许其他一文多发平台也是一个替代方案,但它们要求用户将自己的账户信息例如 Cookie 或账号密码上传到对方服务器,这很不安全,一旦平台发生问题,自己的账户信息会遭到泄漏。虽然我相信一般平台不会恶意操作用户的账户,但如果出现误操作,您的账户隐私将遭到泄漏,平台上的财产也可能遭到损坏,有这样的风险需要考虑。ArtiPub 不要求用户上传账户信息,所有账户信息全部保存在用户自己的数据库里,因此规避了这个安全风险。

另外,由于 ArtiPub 是开源的,JS 源码也比较易于理解,可扩展性很强,用户如果有其他平台的接入需求,完全可以更改源码来实现自己的需求,不用等待平台更新。开发组也将持续开发 ArtiPub,将其打造得更实用和易用。

from 

https://github.com/crawlab-team/artipub

-------------------------------------------------

一文多发平台ArtiPub

 

ArtiPub是国人开发的一文多发平台,遵守BSD 3-Clause 开源协议。基于JS编写,可扩展性强。可以帮助文章作者将编写好的文章自动发布到掘金、SegmentFault、CSDN、知乎、开源中国等技术媒体平台,传播优质知识,获取最大的曝光度。ArtiPub安装简单,提供了多种安装方式,可以一键安装使用。ArtiPub目前支持文章编辑、文章发布、数据统计的功能。ArtiPub不要求用户上传账户信息,所有账户信息全部保存在用户自己的数据库里,避免了第三方平台账户隐私泄漏的风险。

[repo owner=”crawlab-team” name=”artipub”]