2C项目还处于快速迭代的开发状态,此文档随时会变动,切记。
如果阅读体验不好,建议移步博客阅读2C 使用教程。
2C的目的是为了构建一个多源(公众号、RSS)、干净、个性化的阅读环境,如果你在公众号阅读体验下深切感受到对于广告的无奈,那么这个项目就是你需要的,一起看看怎么安装部署2C吧。
开始
2C项目对于一些基础环境是有一点要求的,为了尽可能减少开发者部署使用的复杂度(特别是非Python开发者),因此我计划使用Docker
进行调度运行,这样对用户的使用来说是比较方便的,请按照顺序执行以下TODO
:
- 安装
Docker
:推荐直接使用Docker 极速下载 - 安装
MongoDB
:用于持久化,可手动或使用镜像安装 - 代码安装
2C
:- 下载
2C
- 配置
2C
- 运行
2C
- 下载
- 镜像安装运行:开发中。。。
- 镜像版本配置
MongoDB
2C项目的存储部署依赖MongoDB
,如果你已经部署好了MongoDB
,直接在配置里面进行数据库配置即可。
如果你没有准备好的MongoDB
,可以使用Docker
一键执行:
# 数据库路径,开发者可自由设置
mkdir -p /data/db
docker run --name mongodb --restart=always -p 27017:27017 -e /data/db:/data/db -d mongo:3.6
可在Docker
查询是否成功启动:
[root@centos ~]# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
758617a57827 mongo:3.6 "docker-entrypoint.s…" 3 seconds ago Up 2 seconds 0.0.0.0:27017->27017/tcp mongodb
镜像安装
开发中
代码安装
下载2C
安装2C前,需要你的系统环境安装有Python3.6+环境。如果确认准备好环境,请进入终端,做环境检查,如下命令:
[~] python --version
Python 3.6.8 :: Anaconda, Inc.
[~] pip --version
pip 21.1.1 from /Users/howie6879/.local/share/virtualenvs/2c-BCq66QuF/lib/python3.6/site-packages/pip (python 3.6)
本项目使用 pipenv 进行项目管理,安装使用过程如下:
# 确保有Python3.6+环境
git clone https://github.com/howie6879/2c.git
cd 2c
# 创建基础环境
pipenv install --python={your_python3.6+_path} --skip-lock --dev
搭建好基础环境后,就需要对项目进行配置,具体参考如下2C配置部分。
配置2C
2C项目的配置文件位于路径src/config/config.py
下,使用者可以进行以下配置:
- 配置需要订阅的公众号
- 数据库
- 分发器类型配置
公众号配置
输入你订阅的公众号名称即可:
WECHAT_LIST = [
"小道消息",
"是不是很酷",
"caoz的梦呓",
"美团技术团队",
"阿里技术",
"ThoughtWorks洞见",
"小米技术",
"老胡的储物柜",
"我就BB怎么了",
"stormzhang",
]
数据库配置
如果是本机开发,使用上述方法搭建的MongoDB
,保持不变即可:
# 数据库配置
MONGODB_CONFIG = {
# "mongodb://0.0.0.0:27017"
"username": os.getenv("CC_M_USER", ""),
"password": os.getenv("CC_M_PASS", ""),
"host": os.getenv("CC_M_HOST", "0.0.0.0"),
"port": int(os.getenv("CC_M_PORT", "27017")),
"db": os.getenv("CC_M_DB", "2c"),
}
分发器配置
目前分发器支持类型如下:
- ding:钉钉
- wecom:企业微信
- tg:Telegram
钉钉
建立一个群聊用于接收文章消息,然后新增一个群机器人,如下图:
然后配置机器人:
最后记住机器人对应的Token
,一般格式如下:1dea61224e683d90c5d3694c89e30841681567747f41fb9722597d48655f4365
,那么此时分发器配置如下:
# 分发配置,目标支持:ding[钉钉]、wecom[企业微信]、tg[Telegram] 等等
# 目前仅支持钉钉
SENDER_LIST = ["ding"]
# 申请钉钉TOKEN时候,关键字必须带有 [2c]
DD_TOKEN = os.getenv('CC_D_TOKEN', '1dea61224e683d90c5d3694c89e30841681567747f41fb9722597d48655f4365')
企业微信
如果你热衷微信生态,2C
同样对企业微信做了支持,请先随便用手机号注册一个企业微信。
首先创造应用:
获取相关ID:
企业ID在我的企业->企业信息->企业ID
。
为了方便可以在微信上接收消息,记得开启微信插件,进入下图所在位置,然扫码关注你的二维码即可:
现在你获取了以下三个参数,请填写到对应配置:
WECOM_ID = os.getenv("CC_WECOM_ID", "wwee29721ad4f6e1c9")
WECOM_AGENT_ID = os.getenv("CC_WECOM_AGENT_ID", "1000001")
WECOM_SECRET = os.getenv(
"CC_WECOM_SECRET", "O4M9w38wuwAxCMr0O3lTqAgzLC7yxjsDGr6lgv12345"
)
关于配置,除了可以直接在代码中的配置文件中进行,更建议直接在.env
中进行配置,具体说明请参考[环境变量](2c/00.2C环境变量.md at main · howie6879/2c (github.com))文件。
运行2C
配置完成后,直接在终端运行即可:
pipenv run dev
不出意外,会得到以下输出:
[2c] pipenv run python src/run.py
Loading .env environment variables…
[2021:04:11 22:08:50] INFO Request <GET: https://wechat.privacyhide.com/VERSION?>
[2021:04:11 22:08:52] INFO Ruia Spider started!
[2021:04:11 22:08:52] INFO Ruia Worker started: 140195525068320
[2021:04:11 22:08:52] INFO Ruia Worker started: 140195525068728
[2021:04:11 22:08:52] INFO Request <GET: https://cdn.jsdelivr.net/gh/hellodword/wechat-feeds@4153bf9/details.json>
[2021:04:11 22:12:45] INFO Ruia Stopping spider: Ruia
[2021:04:11 22:12:45] INFO Ruia Total requests: 1
[2021:04:11 22:12:45] INFO Ruia Time usage: 0:03:53.628657
[2021:04:11 22:12:45] INFO Ruia Spider finished!
[2021:04:11 22:12:45] INFO 2c Schedule started successfully :)
[2021:04:11 22:12:45] INFO 2c Schedule time:
07:10
11:10
16:10
20:10
23:10
这样就成功启动了,微信终端分发效果如下:
