mirror of
https://github.com/developersIndia/deviras.git
synced 2025-02-21 17:58:21 +05:30
Compare commits
2 Commits
a73d956b23
...
2824227ac9
Author | SHA1 | Date | |
---|---|---|---|
|
2824227ac9 | ||
|
e84b1b18ae |
13
.github/workflows/aoc.yml
vendored
13
.github/workflows/aoc.yml
vendored
@ -1,9 +1,9 @@
|
||||
name : AoC leaderboard
|
||||
name: AoC leaderboard
|
||||
|
||||
on:
|
||||
# schedule:
|
||||
# Every 2 hours”
|
||||
# - cron: '0 */2 * * *'
|
||||
schedule:
|
||||
# Run every 24 hours at 00:00 UTC
|
||||
- cron: "0 0 * * *"
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
@ -23,7 +23,7 @@ jobs:
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
|
||||
- name: Update Learderboard
|
||||
- name: Update Leaderboard
|
||||
env:
|
||||
REDDIT_CLIENT_ID: ${{ secrets.REDDIT_CLIENT_ID }}
|
||||
REDDIT_CLIENT_SECRET: ${{ secrets.REDDIT_CLIENT_SECRET }}
|
||||
@ -31,7 +31,8 @@ jobs:
|
||||
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 }}
|
||||
AOC_LEADERBOARD_REDDIT_POST_ID: ${{ secrets.AOC_LEADERBOARD_REDDIT_POST_ID }}
|
||||
AOC_YEAR: ${{ secrets.AOC_YEAR }}
|
||||
run: |
|
||||
cd aoc
|
||||
python 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})
|
||||
@ -33,7 +33,6 @@ def format_leaderboard(data, num_players=100):
|
||||
if member_data['local_score'] > 0:
|
||||
leaderboard_stats += f"| {i + 1} | {member_data['name']} | {member_data['stars']} | {member_data['local_score']} |\n"
|
||||
|
||||
leaderboard_stats += f"\n[Advent of Code Leaderboard](https://adventofcode.com/{aoc_year}/leaderboard/private/view/{aoc_leaderboard_code})\n"
|
||||
leaderboard_stats += f"\nUpdated every 24 hours"
|
||||
|
||||
return leaderboard_stats
|
||||
@ -44,7 +43,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 +55,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__":
|
||||
|
@ -2,17 +2,18 @@
|
||||
|
||||
## 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.
|
||||
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.
|
||||
|
||||
@ -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.
|
||||
|
||||

|
||||
|
||||
|
||||
|
||||
|
||||

|
||||
|
Loading…
x
Reference in New Issue
Block a user