Skip to content

Fetch Kobo wishlist #52

Fetch Kobo wishlist

Fetch Kobo wishlist #52

Workflow file for this run

name: Fetch Kobo wishlist
on:
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
schedule:
- cron: '0 12 * * *' # Noon UTC every day
push:
paths:
- '.github/workflows/cron-wishlist.yml'
- 'script/fetch-kobo-wishlist.ts'
env:
DENO_VERSION: v1.40.3
permissions:
contents: write # to checkout repo and write back log file
pages: write # to deploy to Pages
id-token: write # to verify the deployment originates from an appropriate source
jobs:
fetch:
name: Fetch Kobo wishlist and sync
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Deno
uses: denoland/setup-deno@v1
with:
deno-version: ${{ env.DENO_VERSION }}
- name: Fetch Kobo wishlist data
id: fetch
run: |
json=$(deno run --allow-net --allow-env ./script/fetch-kobo-wishlist.ts)
if [[ -n "$json" ]]; then
echo "changes_made=true" >> $GITHUB_OUTPUT
echo "json<<EOF" >> $GITHUB_OUTPUT
echo "$json" >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
echo "Posting this Kobo JSON wishlist to Johan's API"
echo "$json" | jq
else
echo "No new items to add"
echo "changes_made=false" >> $GITHUB_OUTPUT
fi
env:
KOBO_ACCESS_TOKEN: ${{ secrets.KOBO_ACCESS_TOKEN }}
KOBO_REFRESH_TOKEN: ${{ secrets.KOBO_REFRESH_TOKEN }}
- name: Post to Johan's API
if: steps.fetch.outputs.changes_made == 'true'
run: |
curl -s -X PUT \
-H "Authorization: API-Token $TOKEN" \
-H "Content-Type: application/json" \
-d '${{ steps.fetch.outputs.json }}' \
--fail-with-body \
https://johan-api.deno.dev/reading-list/sync-kobo
env:
TOKEN: ${{ secrets.JOHAN_API_ACTION_TOKEN }}