From e84b1b18aeb20dde1834bd71ec0683248bc3a04d Mon Sep 17 00:00:00 2001 From: Bhupesh-V Date: Sun, 1 Dec 2024 12:45:37 +0530 Subject: [PATCH] fix env reference --- .github/workflows/aoc.yml | 59 ++++++++++++++++++++------------------- aoc/main.py | 8 ++---- aoc/readme.md | 29 +++++++++---------- 3 files changed, 46 insertions(+), 50 deletions(-) diff --git a/.github/workflows/aoc.yml b/.github/workflows/aoc.yml index d1c1917..70f39be 100644 --- a/.github/workflows/aoc.yml +++ b/.github/workflows/aoc.yml @@ -1,37 +1,38 @@ -name : AoC leaderboard +name: AoC leaderboard on: - # schedule: - # Every 2 hours” - # - cron: '0 */2 * * *' - workflow_dispatch: + schedule: + # Run every 24 hours at 00:00 UTC + - cron: "0 0 * * *" + workflow_dispatch: permissions: contents: read jobs: - build: - runs-on: ubuntu-latest + build: + runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v3 - - name: Set up Python 3.10 - uses: actions/setup-python@v3 - with: - python-version: "3.10" - - name: Install dependencies - run: | - python -m pip install --upgrade pip - if [ -f requirements.txt ]; then pip install -r requirements.txt; fi - - name: Update Learderboard - env: - REDDIT_CLIENT_ID: ${{ secrets.REDDIT_CLIENT_ID }} - REDDIT_CLIENT_SECRET: ${{ secrets.REDDIT_CLIENT_SECRET }} - REDDIT_PASSWORD: ${{ secrets.REDDIT_PASSWORD }} - REDDIT_USERNAME: ${{ secrets.REDDIT_USERNAME }} - AOC_SESSION_COOKIE: ${{ secrets.AOC_SESSION_COOKIE }} - AOC_LEADERBOARD_CODE: ${{ secrets.AOC_LEADERBOARD_CODE }} - REDDIT_POST_ID: ${{ secrets.REDDIT_POST_ID }} - run: | - cd aoc - python main.py + steps: + - uses: actions/checkout@v3 + - name: Set up Python 3.10 + uses: actions/setup-python@v3 + with: + python-version: "3.10" + - name: Install dependencies + run: | + python -m pip install --upgrade pip + if [ -f requirements.txt ]; then pip install -r requirements.txt; fi + - name: Update Leaderboard + env: + REDDIT_CLIENT_ID: ${{ secrets.REDDIT_CLIENT_ID }} + REDDIT_CLIENT_SECRET: ${{ secrets.REDDIT_CLIENT_SECRET }} + REDDIT_PASSWORD: ${{ secrets.REDDIT_PASSWORD }} + REDDIT_USERNAME: ${{ secrets.REDDIT_USERNAME }} + AOC_SESSION_COOKIE: ${{ secrets.AOC_SESSION_COOKIE }} + AOC_LEADERBOARD_CODE: ${{ secrets.AOC_LEADERBOARD_CODE }} + AOC_LEADERBOARD_REDDIT_POST_ID: ${{ secrets.AOC_LEADERBOARD_REDDIT_POST_ID }} + AOC_YEAR: ${{ secrets.AOC_YEAR }} + run: | + cd aoc + python main.py diff --git a/aoc/main.py b/aoc/main.py index 5e190e5..d1e4e60 100644 --- a/aoc/main.py +++ b/aoc/main.py @@ -10,9 +10,9 @@ user_agent = 'AdventOfCode Leaderboard Updater - developersIndia' aoc_session_cookie = os.environ["AOC_SESSION_COOKIE"] aoc_leaderboard_code = os.environ["AOC_LEADERBOARD_CODE"] aoc_year = os.environ.get("AOC_YEAR") -reddit_post_id = os.environ.get("REDDIT_POST_ID") +reddit_post_id = os.environ.get("AOC_LEADERBOARD_REDDIT_POST_ID") -aoc_url = f'https://adventofcode.com/{{year}}/leaderboard/private/view/{aoc_leaderboard_code}.json' +aoc_url = f'https://adventofcode.com/{aoc_year}/leaderboard/private/view/{aoc_leaderboard_code}.json' def get_leaderboard_data(): response = requests.get(aoc_url.format(year=aoc_year), cookies={'session': aoc_session_cookie}) @@ -44,7 +44,7 @@ def update_reddit_post(reddit, post_id, new_stats): def main(): if not reddit_post_id: - print("Please set the REDDIT_POST_ID environment variable.") + print("Please set the AOC_LEADERBOARD_REDDIT_POST_ID environment variable.") return reddit = praw.Reddit( @@ -56,9 +56,7 @@ def main(): ) leaderboard_data = get_leaderboard_data() - formatted_stats = format_leaderboard(leaderboard_data) - update_reddit_post(reddit, reddit_post_id, formatted_stats) if __name__ == "__main__": diff --git a/aoc/readme.md b/aoc/readme.md index f26b9d4..638425e 100644 --- a/aoc/readme.md +++ b/aoc/readme.md @@ -1,27 +1,28 @@ # AoC Private Leaderboard Stats Updater Script for Reddit -## Required Environment Variables +## Required Environment Variables - -1. `REDDIT_CLIENT_ID`: Reddit API client ID. -2. `REDDIT_CLIENT_SECRET`: Reddit API client secret. -3. `REDDIT_PASSWORD`: Reddit account password. -4. `REDDIT_USERNAME`: Reddit account username. -5. `AOC_SESSION_COOKIE`: Session cookie for the Advent of Code website. -6. `AOC_LEADERBOARD_CODE`: Code for the Advent of Code leaderboard. -7. `REDDIT_POST_ID`: ID of Reddit post which is used as leaderboard. +1. `REDDIT_CLIENT_ID`: Reddit API client ID. +2. `REDDIT_CLIENT_SECRET`: Reddit API client secret. +3. `REDDIT_PASSWORD`: Reddit account password. +4. `REDDIT_USERNAME`: Reddit account username. +5. `AOC_SESSION_COOKIE`: Session cookie for the Advent of Code website. +6. `AOC_LEADERBOARD_CODE`: Code for the Advent of Code leaderboard. +7. `AOC_LEADERBOARD_REDDIT_POST_ID`: ID of Reddit post which is used as leaderboard. ---- + ## Instructions on how to get `AOC_SESSION_COOKIE` + 1. **Create an Advent of Code Account:** - If you don't have an Advent of Code account, go to the [Advent of Code website](https://adventofcode.com/), and sign up for an account. 2. **Log into Your AoC Account & open the leaderboard** - After creating an account, log into the AoC website using your credentials. Make sure you have joined the private leaderboard which's ID you have set in `AOC_LEADERBOARD_CODE`. Now navigate to the leaderboard page. - + 3. **Open Developer Tools in Your Browser:** - Open the browser's developer tools. You can usually do this by right-clicking on the web page, selecting "Inspect" or "Inspect Element," and then navigating to the "Network" tab. - + 4. **Go to the Network Tab:** - In the developer tools, go to the "Network" tab. This tab will show all network requests made by the website. @@ -41,8 +42,4 @@ 9. **Use the Session Cookie:** - Paste the copied session cookie value into the appropriate environment variable (`AOC_SESSION_COOKIE` in this case) in your code or set it as an environment variable. -![session-cookie](https://github.com/ni5arga/deviras/blob/main/aoc/cookie.png?raw=true) - - - - +![session-cookie](https://raw.githubusercontent.com/developersindia/deviras/refs/heads/main/aoc/cookie.png)