热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

内容创作者不要再复制粘贴啦,一劳永逸自建个文章多发平台吧!

本文作者:HelloGitHub-蔡文心大家好!这里是HelloGitHub推出的《讲解开


本文作者:HelloGitHub-蔡文心

大家好!这里是 HelloGitHub 推出的《讲解开源项目》系列,今天给大家带来的一款基于 Node.js 实现的一文多发平台开源项目——ArtiPub(文章发布者)。


一、介绍

众所周知文章每发到一个平台,就能增加一丝让更多人看到的机会。所以内容创作者们不仅需要编写高质量的文章,还要手动分发到不同的平台。这个同步可不是简单地复制粘贴,需要重新排版、上传图片等,十分耗时和繁琐。

HelloGitHub 明白你的痛,所以今天带来一款免费开源的文章自动分发管理平台——ArtiPub,它可以帮助内容创作者将编写好的文章自动发布到掘金、SegmentFault、CSDN、知乎、等技术社区,传播技术内容的同时获取更多的曝光和关注。它不仅能完成文件的在线编辑和同步,还有数据统计的功能,简直是内容创作的必备神器呀!

项目地址:https://github.com/crawlab-team/artipub

让我们来跟着本文了解下 ArtiPub 的优点和功能,然后跟着步骤用起来,最后让你从 手动同步 内容变为 自动同步。


1.1 安全性

市面上已经存在一文多发的平台会要求用户将自己的账户信息,例如 COOKIE 或账号密码上传到对方服务器这样不安全。因为一旦平台发生问题,自己的账户信息会遭到泄漏。虽然我相信一般平台不会恶意操作用户的账户,但如果出现误操作,您的账户隐私将遭到泄漏,平台上的财产也可能遭到损坏,所以还是要尽可能规避这样的风险。而 ArtiPub 不要求用户上传账户信息,所有账户信息全部保存在用户自己本地或者服务器的数据库中,从而规避了这个安全风险。


1.2 Chrome 插件

ArtiPub 有配套的 Chrome 插件,通过 Chrome 插件可以方便地获得用户登陆信息(COOKIE),然后将 COOKIE 注入到 Puppeteer 操作的 Chromium 浏览器中,浏览器就可以正常登陆网站进行发文操作了。


1.3 支持的平台

掘金

SegmentFault

CSDN

简书

知乎

今日头条

博客园


1.4 支持的安装方式

ArtiPub 安装简单,提供了多种安装方式,可以一键安装使用,安装一般只要 5 分钟。

Docker

Npm

源码

考虑到此项目的受众可能包括非程序员人群,接下来本文中将演示最方便的一种方案 使用 Docker 安装。


二、安装


2.1 Docker

准备

Docker 安装文档

Docker-compose 容器编排安装文档

Step 1 在项目根目录下执行

docker-compose up 命令会根据 docker-compose.yaml 文件创建镜像和容器。

cd ArtiPub
docker-compose up

Step 2 启动容器


Step 3 成功

访问 http://localhost:8000



三、使用


3.1 登录

上文提到了 ArtiPub 是通过 Chrome 插件获取 COOKIE 的,所以还需要安装 Chrome 插件,插件的下载和安装方法作者写在了登录助手菜单中。




3.2 发布

发布后需要一点时间大约 1 分钟内,就能够看到已经同步发布到勾选的各大平台。



四、技术栈


4.1 前端

React 框架

UI 是基于阿里出品的 Ant Design Pro 改造而成


4.2 后端

基于 Node.js,使用 TS 编写

Web 框架则选用了 express

爬虫功能基于 puppeteer(Google 开发的自动化测试工具)实现

数据库选用了主流的 NoSQL 数据库 Mongodb 主要用于记录文章与 COOKIE 信息


4.3 项目结构

.
├── service.json //启动文件,包含路由注册,数据库连接
├── backend
├── config
├── extensions
│ └── src
│ └── popup
├── lib
├── models // 数据库模型
├── nginx // nginx配置
├── public
│ └── icons
├── routes //相当于MVC中的controller
├── spiders // 爬虫相关功能
│ └── import
└── src
├── assets
│ └── img
├── components
│ ├── Authorized
│ ├── CopyBlock
│ ├── GlobalHeader
│ ├── HeaderDropdown
│ ├── HeaderSearch
│ ├── NoticeIcon
│ ├── PageLoading
│ ├── SelectLang
│ └── SettingDrawer
├── data
├── e2e
│ └── __mocks__
├── layouts
├── locales
│ ├── en-US
│ ├── pt-BR
│ ├── zh-CN
│ └── zh-TW
├── models
├── pages
│ ├── ArticleEdit
│ ├── ArticleList
│ ├── Demo
│ ├── Environment
│ ├── Helper
│ ├── Paste
│ └── PlatformList
├── services
└── utils

虽然前后端代码没有分为两个仓库,但是采用的是前后端分离模式,使用 Nginx 作为反向代理。后端部分与传统 MVC 模式相比有些许改变,但主要的 controller、models 和 service 还是存在(只是名字变了)。

下图是 ArtiPub 的架构示意图:



五、最后

ArtiPub 本身并不是一个非常复杂的项目,但是其中包含了很多有趣的功能和思路,比如通过 Chrome 插件获取用户在各大平台的 COOKIE 来解决当用户账号太多,授权麻烦的问题。还有通过 puppeteer 一种自动化工具来实现发布。通过对 ArtiPub 源码的学习能够学到除 Node.js 以外的很多技术,并且这些技术使用场景也是非常丰富的。

希望今天推荐的 ArtiPub 你能喜欢,也希望你能在读完文章后 clone 项目阅读一番,觉得不错的话可以关注 「HelloGitHub」 公众号,收到第一时间的更新。爱你呦~



推荐阅读
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • JavaScript和Python是用于构建各种应用程序的两种有影响力的编程语言。尽管JavaScript多年来一直是占主导地位的编程语言,但Python的迅猛发展有 ... [详细]
  • 2018年人工智能大数据的爆发,学Java还是Python?
    本文介绍了2018年人工智能大数据的爆发以及学习Java和Python的相关知识。在人工智能和大数据时代,Java和Python这两门编程语言都很优秀且火爆。选择学习哪门语言要根据个人兴趣爱好来决定。Python是一门拥有简洁语法的高级编程语言,容易上手。其特色之一是强制使用空白符作为语句缩进,使得新手可以快速上手。目前,Python在人工智能领域有着广泛的应用。如果对Java、Python或大数据感兴趣,欢迎加入qq群458345782。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 本文介绍了在Python3中如何使用选择文件对话框的格式打开和保存图片的方法。通过使用tkinter库中的filedialog模块的asksaveasfilename和askopenfilename函数,可以方便地选择要打开或保存的图片文件,并进行相关操作。具体的代码示例和操作步骤也被提供。 ... [详细]
  • 如何用UE4制作2D游戏文档——计算篇
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了如何用UE4制作2D游戏文档——计算篇相关的知识,希望对你有一定的参考价值。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 也就是|小窗_卷积的特征提取与参数计算
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了卷积的特征提取与参数计算相关的知识,希望对你有一定的参考价值。Dense和Conv2D根本区别在于,Den ... [详细]
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • MySQL中的MVVC多版本并发控制机制的应用及实现
    本文介绍了MySQL中MVCC的应用及实现机制。MVCC是一种提高并发性能的技术,通过对事务内读取的内存进行处理,避免写操作堵塞读操作的并发问题。与其他数据库系统的MVCC实现机制不尽相同,MySQL的MVCC是在undolog中实现的。通过undolog可以找回数据的历史版本,提供给用户读取或在回滚时覆盖数据页上的数据。MySQL的大多数事务型存储引擎都实现了MVCC,但各自的实现机制有所不同。 ... [详细]
  • 从零基础到精通的前台学习路线
    随着互联网的发展,前台开发工程师成为市场上非常抢手的人才。本文介绍了从零基础到精通前台开发的学习路线,包括学习HTML、CSS、JavaScript等基础知识和常用工具的使用。通过循序渐进的学习,可以掌握前台开发的基本技能,并有能力找到一份月薪8000以上的工作。 ... [详细]
  • PHP组合工具以及开发所需的工具
    本文介绍了PHP开发中常用的组合工具和开发所需的工具。对于数据分析软件,包括Excel、hihidata、SPSS、SAS、MARLAB、Eview以及各种BI与报表工具等。同时还介绍了PHP开发所需的PHP MySQL Apache集成环境,包括推荐的AppServ等版本。 ... [详细]
  • DAO设计模式(九)_1.设计分层初步 ... [详细]
  • docker+k8s+git+jenkins
    docker+k8s+git+jenkins,Go语言社区,Golang程序员人脉社 ... [详细]
  • 在程序设计竞赛中使用Go语言
    在程序设计竞赛中使用Go语言,Go语言社区,Golang程序员人脉社 ... [详细]
author-avatar
看看2502895567
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有