Skip to content

Commit

Permalink
兼容headless模式头条发布,更新镜像
Browse files Browse the repository at this point in the history
  • Loading branch information
tanliyuan committed Feb 24, 2021
1 parent 882bf2b commit 0a28581
Show file tree
Hide file tree
Showing 4 changed files with 39 additions and 12 deletions.
28 changes: 21 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ ArtiPub 目前支持文章编辑、文章发布、数据统计的功能,后期
#### NPM 或源码安装

- MongoDB: 3.6+
- NodeJS: 8.12+
- NodeJS: 10+

## 安装方式

Expand All @@ -71,18 +71,22 @@ ArtiPub 提供 3 种安装方式如下。

### 通过 Docker 安装

通过 Docker,可以免去安装 MongoDB 的步骤,也是我们最推荐的安装方式。使用 Docker 安装 ArtiPub 前,请确保您安装了 Docker 以及 Docker Compose。
通过 Docker,可以免去安装 MongoDB 的步骤,也是我们最推荐的安装方式。使用 Docker 安装 ArtiPub 前,请确保您安装了 Docker 以及 Docker Compose。docker运行 ArtiPub 有两种方式。

在您的项目目录下创建 `docker-compose.yaml` 文件,输入如下内容。
- 通过 docker-compose.yaml 启动

适用于你本地之前没有运行 `mongodb` 容器。 在您的项目目录下创建 `docker-compose.yaml` 文件,输入如下内容。

```yaml
version: '3.3'
version: "3.3"
services:
app:
image: "tikazyq/artipub:latest"
image: "tanliyuan123/artipub:1.0"
environment:
MONGO_HOST: "mongo"
ARTIPUB_API_ADDRESS: "http://localhost:3000" # 后端 API 地址,如果安装地址不在本机,请修改为协议 + 服务器 IP 地址 + 端口号(默认为 3000)
# MONGO_USERNAME: root
# MONGO_PASSWORD: example
ARTIPUB_API_ADDRESS: "http://localhost:3000" # 后端API地址,如果安装地址不在本机,请修改为协议+服务器IP地址+端口号(默认为3000)
ports:
- "8000:8000" # frontend
- "3000:3000" # backend
Expand All @@ -91,11 +95,13 @@ services:
mongo:
image: mongo:latest
restart: always
#volumes:
# - "E:\\mongodb:/data/db"
ports:
- "27017:27017"
```
然后在命令行中输入如下命令。
然后在命令行中输入如下命令。如果你想再次启动容器时上次内容不会被销毁,去掉 `volumes` 两行的注释,改成自己本地路径即可。

```bash
docker-compose up
Expand All @@ -105,6 +111,14 @@ docker-compose up

注意⚠️,如果您的 Docker 宿主机不是本机,例如您用了 Docker Machine 或者 Docker 服务在其他机器上,您需要将环境变量 `ARTIPUB_API_ADDRESS` 改为宿主机 IP + 端口号(默认 3000)。然后,在浏览器输入 `http://< 宿主机 IP>:8000` 即可看到界面。

- 独立启动 artipub 镜像

如果你本地已有启动的mongodb容器,不想用上面方式再起一个。其中 `goofy_ganguly` 为本地已启动的 mongodb 容器名, 替换成你本地的即可。

```bash
docker run --rm -it --link goofy_ganguly -p 3000:3000/tcp -p 8000:8000/tcp tanliyuan123/artipub:1.0
```

### 通过 npm 包安装

如果您对 npm 熟悉,且已经有 MongoDB 的环境,这是最为快捷的方式。
Expand Down
6 changes: 3 additions & 3 deletions docker-compose.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
version: "3.3"
services:
app:
image: "artipub:1.0"
image: "tanliyuan123/artipub:1.0"
environment:
MONGO_HOST: "mongo"
# MONGO_USERNAME: root
Expand All @@ -15,7 +15,7 @@ services:
mongo:
image: mongo:latest
restart: always
volumes:
- "E:\\mongodb:/data/db"
#volumes:
# - "E:\\mongodb:/data/db"
ports:
- "27017:27017"
1 change: 1 addition & 0 deletions spiders/oschina.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ class OschinaSpider extends BaseSpider {
//切换到HTML编辑器
await this.page.click('#editorTabList a');
await this.page.waitForSelector('.cke_wysiwyg_frame');
await this.page.waitForTimeout(500);
}

async inputContent(article, editorSel) {
Expand Down
16 changes: 14 additions & 2 deletions spiders/toutiao.js
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,10 @@ class ToutiaoSpider extends BaseSpider {
await this.page.waitForTimeout(100);
}

await this.page.waitForSelector(this.editorSel.content, {
visible: true
});

}

async inputFooter(article, editorSel) {
Expand All @@ -50,13 +54,21 @@ class ToutiaoSpider extends BaseSpider {
}

async afterInputEditor() {
//部分分辨率会展开右侧发文助手,影响点击
await this.page.evaluate(() => {
document.querySelector('.byte-drawer-close-icon')?.click();
});
await this.page.waitForTimeout(1000);

//处理图片,要点击下
const editLinks = await this.page.$$('.editor-image-menu > .image-menu-event-prevent:nth-child(2) > a');

for (let element of editLinks) {
await element.click();
await this.page.waitForTimeout(2000);

await this.page.waitForTimeout(1000);
await this.page.click('.btns button:nth-child(2)');
await this.page.waitForTimeout(2000);
await this.page.waitForTimeout(1000);
};
}

Expand Down

0 comments on commit 0a28581

Please sign in to comment.