Skip to content

Weekly KEXP Catalog Update #2

Weekly KEXP Catalog Update

Weekly KEXP Catalog Update #2

name: Weekly KEXP Catalog Update
on:
schedule:
# Run every Sunday at 9:00 AM UTC (adjust timezone as needed)
- cron: '0 9 * * 0'
workflow_dispatch: # Allow manual triggers
jobs:
update-catalog:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- 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 spotipy requests python-dateutil
- name: Create config.json from secrets
env:
SPOTIPY_CLIENT_ID: ${{ secrets.SPOTIPY_CLIENT_ID }}
SPOTIPY_CLIENT_SECRET: ${{ secrets.SPOTIPY_CLIENT_SECRET }}
SPOTIPY_REDIRECT_URI: ${{ secrets.SPOTIPY_REDIRECT_URI }}
SPOTIFY_USERNAME: ${{ secrets.SPOTIFY_USERNAME }}
PLAYLIST_NAME: ${{ secrets.PLAYLIST_NAME }}
DAYS_TO_PARSE: ${{ secrets.DAYS_TO_PARSE }}
TOP_N: ${{ secrets.TOP_N }}
PIVOT: ${{ secrets.PIVOT }}
run: |
cat > config.json << EOF
{
"environment": {
"SPOTIPY_CLIENT_ID": "$SPOTIPY_CLIENT_ID",
"SPOTIPY_CLIENT_SECRET": "$SPOTIPY_CLIENT_SECRET",
"SPOTIPY_REDIRECT_URI": "$SPOTIPY_REDIRECT_URI"
},
"spotify_username": "$SPOTIFY_USERNAME",
"playlist_name": "$PLAYLIST_NAME",
"daysToParse": ${DAYS_TO_PARSE:-14},
"topN": ${TOP_N:-100},
"pivot": "${PIVOT:-track}"
}
EOF
- name: Run KEXP catalog processing
run: python processCatalog.py --config config.json
- name: Clean up config file
if: always()
run: rm -f config.json