Skip to content

Commit 61f6201

Browse files
authored
Merge pull request #20 from inoue2002/master
HerokuからGitHubActionsに移行
2 parents a9d4b1a + 5163525 commit 61f6201

File tree

6 files changed

+69
-55
lines changed

6 files changed

+69
-55
lines changed

.env.sample

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
SID="xxxxxxxxx"
2+
SOURCE_PROJECT_NAME="xxxxxxxx"
3+
DESTINATION_PROJECT_NAME="xxxxxxx"
4+
# "Ttrue"にすると、デフォルトで複製するようになります。
5+
SHOULD_DUPLICATE_BY_DEFAULT="False"

.github/workflows/duplicator.yml

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
name: Duplicater
2+
3+
on:
4+
workflow_dispatch:
5+
schedule:
6+
- cron: '0 21 * * *' # JST 6:00
7+
8+
env:
9+
SID: ${{ secrets.SID }}
10+
PROJECT_NAME: ${{ secrets.PROJECT_NAME }}
11+
SOURCE_PROJECT_NAME: ${{ secrets.SOURCE_PROJECT_NAME }}
12+
DESTINATION_PROJECT_NAME: ${{ secrets.DESTINATION_PROJECT_NAME }}
13+
SHOULD_DUPLICATE_BY_DEFAULT: ${{ secrets.SHOULD_DUPLICATE_BY_DEFAULT }}
14+
15+
jobs:
16+
build:
17+
permissions:
18+
contents: 'write'
19+
runs-on: ubuntu-latest
20+
steps:
21+
- uses: actions/checkout@v3
22+
- uses: denoland/setup-deno@v1
23+
24+
- name: Export from Scrapbox(/PROJECT_NAME to PROJECT_NAME.json)
25+
run: deno run --allow-net=scrapbox.io --allow-read=./ --allow-write --allow-env index.ts

.vscode/settings.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"deno.enable": true,
3+
"deno.lint": true,
4+
"deno.unstable": true
5+
}

README.md

Lines changed: 31 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,56 @@
1-
# scrapbox-duplicator
1+
# Scrapbox Duplicator
22

33
Scrapboxの非公開・公開プロジェクトを分けて運用する際に面倒な「ページの転送」を自動で行います。
44

5+
## 目次
6+
7+
- [仕組み](#仕組み)
8+
- [スタートガイド](#スタートガイド)
9+
- [必要なもの](#必要なもの)
10+
- [注意事項](#注意事項)
11+
- [その他](#その他)
12+
- [謝辞](#謝辞)
13+
514
## 仕組み
615

716
以下の処理の定期実行によって、公開したいページのみ転送されたミラープロジェクトが作られます。
817

9-
- 転送元プロジェクトの内容をエクスポート
10-
- エクスポートされたjsonファイルから`[public.icon]`が含まれているページのみを抽出
11-
- 抽出されたページを転送先プロジェクトへインポート
18+
1. 転送元プロジェクトの内容をエクスポート
19+
2. エクスポートされたjsonファイルから`[public.icon]`が含まれているページのみを抽出
20+
3. 抽出されたページを転送先プロジェクトへインポート
1221

1322
## スタートガイド
1423

15-
以下の2ステップで実行可能です。
24+
以下のステップで実行可能です。
25+
26+
1. このリポジトリをForkする
27+
2. Forkしたリポジトリに環境変数を設定する
28+
29+
<!-- 環境変数の設定イメージ -->
30+
以下の画像は環境変数の設定方法を示しています。
31+
[![Image from Gyazo](https://i.gyazo.com/cd8630a6fb125c6d7e627b290fbe79ce.png)](https://gyazo.com/cd8630a6fb125c6d7e627b290fbe79ce)
1632

17-
1. 下のボタン('Deploy to Heroku')を押し、必要な情報を入力。
18-
2. Heroku
19-
Schedulerで`deno run --allow-net=scrapbox.io --allow-read=./ --allow-env index.ts`を定期実行するように設定
33+
<!-- すぐに動作確認がしたい時は手動で起動できる -->
34+
動作確認をすぐに行いたい場合は、以下の画像のように手動で起動することが可能です。
35+
[![Image from Gyazo](https://i.gyazo.com/e4762cda8e8566bb75d20a429c2f1cb1.png)](https://gyazo.com/e4762cda8e8566bb75d20a429c2f1cb1)
2036

21-
[![Deploy](https://www.herokucdn.com/deploy/button.svg)](https://dashboard.heroku.com/new?template=https%3A%2F%2Fgithub.com%2Fblu3mo%2Fscrapbox-duplicator%2Ftree%2Fmaster)
2237

23-
### 必要なもの
38+
## 必要なもの
2439

25-
1. `SID` ScrapboxのSID(詳しくは
26-
[こちら](https://scrapbox.io/nishio/Scrapbox%E3%81%AEprivate%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%81%AEAPI%E3%82%92%E5%8F%A9%E3%81%8F)
27-
40+
1. `SID` ScrapboxのSID(詳しくは[こちら](https://scrapbox.io/nishio/Scrapbox%E3%81%AEprivate%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%81%AEAPI%E3%82%92%E5%8F%A9%E3%81%8F)
2841
2. `SOURCE_PROJECT_NAME` 転送元のプロジェクト名
2942
3. `DESTINATION_PROJECT_NAME` 転送先のプロジェクト名
3043

31-
### 注意事項
44+
## 注意事項
3245

33-
- まともにテストしていないので、**自己責任で使用してください**。使用前にプロジェクトのバックアップ取得をお勧めします。
34-
- SIDは漏れた場合にリセットする手段が無さそうなので、気をつけて扱ってください。サブアカウントのSID等を使用する事をお勧めします。(詳しくは
35-
[こちら](https://scrapbox.io/nishio/Scrapbox%E3%81%AEprivate%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%81%AEAPI%E3%82%92%E5%8F%A9%E3%81%8F)
36-
46+
- まともにテストしていないので、**自己責任で使用してください**。使用前にプロジェクトのバックアップ取得をオススメします。
47+
- SIDは漏れた場合にリセットする手段が無さそうなので、気をつけて扱ってください。サブアカウントのSID等を使用する事をオススメします。(詳しくは[こちら](https://scrapbox.io/nishio/Scrapbox%E3%81%AEprivate%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%81%AEAPI%E3%82%92%E5%8F%A9%E3%81%8F)
3748
- export APIは使用回数に制限があるので、定期実行は一日2~3回程度が良いと思います。
3849

3950
## その他
4051

41-
- Scrapbox
42-
Duplicatorは定期実行のタイミングまで待たないと転送されません。好きなタイミングで公開したい場合は、[このUserScript](https://scrapbox.io/blu3mo-public/%E3%83%9A%E3%83%BC%E3%82%B8%E8%BB%A2%E9%80%81%E3%81%99%E3%82%8B%E6%8B%A1%E5%BC%B5script)を一緒に使う事をお勧めします。
52+
Scrapbox Duplicatorは定期実行のタイミングまで待たないと転送されません。好きなタイミングで公開したい場合は、[このUserScript](https://scrapbox.io/blu3mo-public/%E3%83%9A%E3%83%BC%E3%82%B8%E8%BB%A2%E9%80%81%E3%81%99%E3%82%8B%E6%8B%A1%E5%BC%B5script)を一緒に使う事をオススメします。
4353

4454
## 謝辞
4555

46-
- Scrapboxを開発しているNota, Inc.の皆さんに感謝します
56+
Scrapboxを開発しているNota, Inc. の皆さんに感謝します

app.json

Lines changed: 0 additions & 31 deletions
This file was deleted.

deps.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
import "https://deno.land/x/dotenv@v3.2.0/load.ts";
2-
export * from "https://raw.githubusercontent.com/takker99/scrapbox-userscript-std/0.14.1/rest/page-data.ts";
3-
export { assertString } from "https://deno.land/x/unknownutil@v2.0.0/mod.ts";
1+
import 'https://deno.land/x/dotenv@v3.2.0/load.ts';
2+
export { assertString } from 'https://deno.land/x/unknownutil@v2.0.0/mod.ts';
3+
export * from 'https://raw.githubusercontent.com/takker99/scrapbox-userscript-std/0.14.1/rest/page-data.ts';

0 commit comments

Comments
 (0)