diff --git a/.github/workflows/update-pages.yml b/.github/workflows/update-pages.yml index 2e2e4104..232f0db6 100644 --- a/.github/workflows/update-pages.yml +++ b/.github/workflows/update-pages.yml @@ -11,6 +11,10 @@ on: - cron: '0 0 * * *' # every day at midnight workflow_dispatch: +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + jobs: update: runs-on: ubuntu-latest @@ -38,7 +42,7 @@ jobs: - name: Install Python dependencies run: | - python -m pip install --upgrade pip + python -m pip install --upgrade pip setuptools wheel pip install -r requirements.txt - name: Prepare gh-pages @@ -52,7 +56,7 @@ jobs: - name: Update working-directory: gh-pages run: | - python ../update.py \ + python -u ../update.py \ --discord_invite ${{ secrets.DISCORD_INVITE }} \ --facebook_group_id ${{ secrets.FACEBOOK_GROUP_ID }} \ --facebook_page_id ${{ secrets.FACEBOOK_PAGE_ID }} \ @@ -69,6 +73,7 @@ jobs: if-no-files-found: error # 'warn' or 'ignore' are also available, defaults to `warn` path: | ${{ github.workspace }}/gh-pages + !**/*.git - name: Deploy to gh-pages if: ${{ (github.event_name == 'push' && github.ref == 'refs/heads/master') || (github.event_name == 'schedule' || github.event_name == 'workflow_dispatch') }} # yamllint disable-line rule:line-length diff --git a/requirements.txt b/requirements.txt index 55f2b8fb..3a52a5f3 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,4 +1,4 @@ cloudscraper==1.2.71 -Pillow==10.0.0 +Pillow==10.0.1 python-dotenv==1.0.0 requests==2.31.0 diff --git a/update.py b/update.py index 6075ab0d..9a4cf9e0 100644 --- a/update.py +++ b/update.py @@ -3,7 +3,6 @@ import json import os import pathlib -import re # lib imports import cloudscraper @@ -193,13 +192,11 @@ def update_patreon(): Get patron count from Patreon. """ print('Updating Patreon data...') - patreon_url = 'https://www.patreon.com/LizardByte' + patreon_url = 'https://www.patreon.com/api/campaigns/6131567' response = s.get(url=patreon_url) - data = dict( - patron_count=int(re.search(r'\"patron_count\":\s(\d+)', response.text).group(1)) - ) + data = response.json()['data']['attributes'] file_path = os.path.join('patreon', 'LizardByte') write_json_files(file_path=file_path, data=data)