Skip to content

douban book sync

douban book sync #874

Workflow file for this run

name: douban book sync
on:
workflow_dispatch:
schedule:
- cron: "0 16 * * *"
permissions:
contents: write
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
sync:
name: Sync
runs-on: ubuntu-latest
env:
NOTION_TOKEN: ${{ secrets.NOTION_TOKEN }}
BOOK_NOTION_TOKEN: ${{ secrets.BOOK_NOTION_TOKEN }}
NOTION_BOOK_URL: ${{ secrets.NOTION_BOOK_URL }}
DOUBAN_NAME: ${{ secrets.DOUBAN_NAME }}
AUTH_TOKEN: ${{ secrets.AUTH_TOKEN }}
YEAR: ${{ vars.YEAR }}
REF: ${{ github.ref }}
REPOSITORY: ${{ github.repository }}
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: 3.9
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt
pip install .
- name: douban book sync
run: |
douban "book"
- name: Remove folder
run: rm -rf ./OUT_FOLDER/book
- name: Set default year if not provided
run: echo "YEAR=$(date +"%Y")" >> $GITHUB_ENV
if: env.YEAR == ''
- name: notion heatmap
run: |
github_heatmap notion --notion_token "${{ secrets.BOOK_NOTION_TOKEN || secrets.NOTION_TOKEN }}" --database_id "${{ env.DATABASE_ID }}" --date_prop_name "日期" --value_prop_name "读过" --unit "本" --year $YEAR --me "${{secrets.BOOK_NAME}}" --without-type-name --background-color=${{ vars.background_color||'#FFFFFF'}} --track-color=${{ vars.track_color||'#ACE7AE'}} --special-color1=${{ vars.special_color||'#69C16E'}} --special-color2=${{ vars.special_color2||'#549F57'}} --dom-color=${{ vars.dom_color||'#EBEDF0'}} --text-color=${{ vars.text_color||'#000000'}}
- name: udpate heatmap
run: |
heatmap "book"
- name: push
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
git config --global user.email "action@github.com"
git config --global user.name "GitHub Action"
ARTIFACT_BRANCH="heatmap-artifacts"
WORK_DIR="$(mktemp -d)"
REPO_URL="https://x-access-token:${GITHUB_TOKEN}@github.com/${GITHUB_REPOSITORY}.git"
if git ls-remote --exit-code --heads "$REPO_URL" "$ARTIFACT_BRANCH" >/dev/null 2>&1; then
git clone --depth 1 --branch "$ARTIFACT_BRANCH" "$REPO_URL" "$WORK_DIR/repo"
else
git clone --depth 1 "$REPO_URL" "$WORK_DIR/repo"
cd "$WORK_DIR/repo"
git checkout --orphan "$ARTIFACT_BRANCH"
git rm -rf . >/dev/null 2>&1 || true
cd - >/dev/null
fi
mkdir -p "$WORK_DIR/repo/OUT_FOLDER"
cp -R OUT_FOLDER/. "$WORK_DIR/repo/OUT_FOLDER/" 2>/dev/null || true
cd "$WORK_DIR/repo"
git add OUT_FOLDER
git commit -m 'update heatmap artifacts' || echo "nothing to commit"
git push origin "HEAD:$ARTIFACT_BRANCH" || echo "nothing to push"