diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..e7610f3 --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,62 @@ +name: Generate Stats Images + +on: + push: + branches: [ main ] + schedule: + - cron: "5 0 * * *" + workflow_dispatch: + +permissions: + contents: write + +jobs: + svg-generation: + runs-on: ubuntu-latest + + steps: + # Check out repository under $GITHUB_WORKSPACE, so the job can access it + - uses: actions/checkout@v2 + + # Run using Python 3.10 for consistency and aiohttp + - name: Set up Python 3.10 + uses: actions/setup-python@v2 + with: + python-version: '3.10' + architecture: 'x64' + + # Cache dependencies. From: + # https://github.com/actions/cache/blob/master/examples.md#python---pip + - uses: actions/cache@v2 + with: + path: ~/.cache/pip + key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }} + restore-keys: | + ${{ runner.os }}-pip- + # Install dependencies with `pip` + - name: Install requirements + run: | + python3 -m pip install --upgrade pip setuptools wheel + python3 -m pip install -r requirements.txt + pip install -e . + + - name: create env file + run: | + touch config/.env + cat config/.env.template > config/.env + + # Generate all statistics images + - name: Generate images + run: | + python3 --version + python3 app/main.py + + # Commit all changed files to the repository + - name: Commit to the repo + run: | + git config --global user.name "sudiptob2/cf-stats" + git config --global user.email "cf-stats[bot]@sudiptob2.github.io" + git add . + # Force the build to succeed, even if no files were changed + git commit -m 'Update generated files' || true + git push \ No newline at end of file diff --git a/app/constant.py b/app/constant.py index 5516fb4..755cb1e 100644 --- a/app/constant.py +++ b/app/constant.py @@ -6,7 +6,7 @@ class Constant: # website names CODEFORCES = 'codeforces' - LOGO = f'{settings.base_dir}/assets/cflogo.svg' + LOGO = 'https://raw.githubusercontent.com/sudiptob2/cf-stats/feature/5-github-actions/assets/cflogo.svg' # API endpoints USER_INFO = 'https://codeforces.com/api/user.info?handles={0}' diff --git a/assets/cflogo.svg b/assets/cflogo.svg index 70e2c95..8147cea 100644 --- a/assets/cflogo.svg +++ b/assets/cflogo.svg @@ -1,11 +1,5 @@ - - - - - - - + \ No newline at end of file diff --git a/output/light_card.svg b/output/light_card.svg new file mode 100644 index 0000000..196c9b0 --- /dev/null +++ b/output/light_card.svg @@ -0,0 +1,165 @@ + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ Sudipto Baral's CodeForces Stats +
+ PSTU | pupil (max: specialist) | Since 7 years +
+ + + Contest Rating + 1260
+ + + + Max Rating + 1420
+ + + Contests + 70
+ + + + Accepted + 397
+ + + Wrong Answers + 452
+ + + Contributions + 0
+
+
+
+
+
diff --git a/output/max_rating.svg b/output/max_rating.svg new file mode 100644 index 0000000..62e7186 --- /dev/null +++ b/output/max_rating.svg @@ -0,0 +1 @@ +codeforcescodeforces14201420 \ No newline at end of file diff --git a/output/rating.svg b/output/rating.svg new file mode 100644 index 0000000..4c6db8d --- /dev/null +++ b/output/rating.svg @@ -0,0 +1 @@ +codeforcescodeforces12601260 \ No newline at end of file diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..33aeb8b --- /dev/null +++ b/requirements.txt @@ -0,0 +1,23 @@ +attrs==22.1.0 +certifi==2022.6.15 +charset-normalizer==2.1.0 +idna==3.3 +iniconfig==1.1.1 +Jinja2==3.1.2 +MarkupSafe==2.1.1 +mock==4.0.3 +packaging==21.3 +pluggy==1.0.0 +py==1.11.0 +pybadges==3.0.0 +pydantic==1.9.2 +pyparsing==3.0.9 +pytest==7.1.2 +pytest-mock==3.8.2 +python-dateutil==2.8.2 +python-dotenv==0.20.0 +requests==2.28.1 +six==1.16.0 +tomli==2.0.1 +typing_extensions==4.3.0 +urllib3==1.26.11 diff --git a/setup.cfg b/setup.cfg index 83e0ed1..b457437 100644 --- a/setup.cfg +++ b/setup.cfg @@ -60,7 +60,3 @@ exclude = tests.* docs docs.* - -[options.entry_points] -console_scripts = - app=app.main \ No newline at end of file