From 4b4d40448437af001f37295597be10c79897cbbf Mon Sep 17 00:00:00 2001 From: Nicconike <38905025+Nicconike@users.noreply.github.com> Date: Sat, 3 Aug 2024 18:11:40 +0530 Subject: [PATCH] refactor: update code docs: add codecov --- README.md | 19 ++++++++------- api/main.py | 62 +++++++++++++++++++++++------------------------ pyproject.toml | 1 + requirements.txt | Bin 132 -> 140 bytes 4 files changed, 42 insertions(+), 40 deletions(-) diff --git a/README.md b/README.md index 8dadeb4..85f3c0e 100644 --- a/README.md +++ b/README.md @@ -3,6 +3,7 @@ [![Release](https://github.com/Nicconike/Wakatime-Leaderboards/actions/workflows/release.yml/badge.svg)](https://github.com/Nicconike/Wakatime-Leaderboards/actions/workflows/release.yml) [![Bandit](https://github.com/Nicconike/Wakatime-Leaderboards/actions/workflows/bandit.yml/badge.svg)](https://github.com/Nicconike/Wakatime-Leaderboards/actions/workflows/bandit.yml) [![CodeQL & Pylint](https://github.com/Nicconike/Wakatime-Leaderboards/actions/workflows/codeql.yml/badge.svg)](https://github.com/Nicconike/Wakatime-Leaderboards/actions/workflows/codeql.yml) +[![codecov](https://codecov.io/gh/Nicconike/Wakatime-Leaderboards/graph/badge.svg?token=CX701AOW5Y)](https://codecov.io/gh/Nicconike/Wakatime-Leaderboards) ![Docker Image Size](https://img.shields.io/docker/image-size/nicconike/wakatime-leaderboards?logo=docker&label=Docker%20Image) ![Docker Pulls](https://img.shields.io/docker/pulls/nicconike/wakatime-leaderboards?logo=docker&label=Docker%20Pulls) ![Python Version from PEP 621 TOML](https://img.shields.io/python/required-version-toml?tomlFilePath=https%3A%2F%2Fgithub.com%2FNicconike%2FWakatime-Leaderboards%2Fblob%2Fmaster%2Fpyproject.toml%3Fraw%3Dtrue) @@ -24,21 +25,21 @@ ### Public Leaderboards (Weekly) -| Ranked | Hours Coded | Daily Avg | -| ------ | ----------- | --------- | -| - | 11 hrs 36 mins | 1 hrs 39 mins | +| Ranked | Hours Coded | Daily Avg | +| ------ | -------------- | ------------- | +| - | 11 hrs 36 mins | 1 hrs 39 mins | ### Country Leaderboard (Unknown) -| Ranked | Hours Coded | Daily Avg | -| ------ | ----------- | --------- | -| - | 11 hrs 36 mins | 1 hrs 39 mins | +| Ranked | Hours Coded | Daily Avg | +| ------ | -------------- | ------------- | +| - | 11 hrs 36 mins | 1 hrs 39 mins | ### Top Language (Python) -| Ranked | Hours Coded | Daily Avg | -| ------ | ----------- | --------- | -| 4173 | 2 hrs 45 mins | 23 mins | +| Ranked | Hours Coded | Daily Avg | +| ------ | ------------- | --------- | +| 4173 | 2 hrs 45 mins | 23 mins | diff --git a/api/main.py b/api/main.py index 6bf6db2..ac2756b 100644 --- a/api/main.py +++ b/api/main.py @@ -37,7 +37,7 @@ def get_wakatime_stats(api_key): headers = {"Authorization": auth_string} response = requests.get(url, headers=headers, timeout=REQUEST_TIMEOUT) if response.status_code == 200: - return response.json().get('data', {}) + return response.json().get("data", {}) raise ValueError("Failed to fetch user stats: " + str(response.status_code)) @@ -49,21 +49,21 @@ def get_leaderboards(api_key): headers = {"Authorization": auth_string} stats = get_wakatime_stats(api_key) - country_code = stats.get('country_code') - languages = stats.get('languages', []) - top_language = languages[0]['name'] if languages else None - total_coding_time = stats.get('total_seconds', 0) + country_code = stats.get("country_code") + languages = stats.get("languages", []) + top_language = languages[0]["name"] if languages else None + total_coding_time = stats.get("total_seconds", 0) leaderboards = { - 'total_coding_time': total_coding_time, - 'top_language': top_language, - 'language_times': {lang['name']: lang['total_seconds'] for lang in languages} + "total_coding_time": total_coding_time, + "top_language": top_language, + "language_times": {lang["name"]: lang["total_seconds"] for lang in languages} } # Global leaderboard response = requests.get(url, headers=headers, timeout=REQUEST_TIMEOUT) if response.status_code == 200: - leaderboards['global'] = response.json().get('current_user') + leaderboards["global"] = response.json().get("current_user") # Country leaderboard if country_code: @@ -71,7 +71,7 @@ def get_leaderboards(api_key): response = requests.get( country_url, headers=headers, timeout=REQUEST_TIMEOUT) if response.status_code == 200: - leaderboards['country'] = response.json().get('current_user') + leaderboards["country"] = response.json().get("current_user") # Language leaderboard if top_language: @@ -79,54 +79,54 @@ def get_leaderboards(api_key): response = requests.get( language_url, headers=headers, timeout=REQUEST_TIMEOUT) if response.status_code == 200: - leaderboards['language'] = response.json().get('current_user') + leaderboards["language"] = response.json().get("current_user") return leaderboards def format_leaderboard_data(leaderboards): """Format Leaderboard Stats Data""" - markdown = "## Wakatime Leaderboards (Worldwide)\n\n" + markdown = "### Wakatime Leaderboards (Worldwide)\n\n" # Helper function to create table def create_table(title, data): - table = "### " + title + "\n\n" + table = "#### " + title + "\n\n" table += "| Ranked | Hours Coded | Daily Avg |\n" table += "| ------ | ----------- | --------- |\n" - table += "| " + data['rank'] + " | " + \ - data['hours'] + " | " + data['daily_avg'] + " |\n\n" + table += "| " + data["rank"] + " | " + \ + data["hours"] + " | " + data["daily_avg"] + " |\n\n" return table - total_seconds = leaderboards['total_coding_time'] + total_seconds = leaderboards["total_coding_time"] # Public Leaderboards (Weekly) - global_data = leaderboards.get('global', {}) + global_data = leaderboards.get("global", {}) public_data = { - 'rank': str(global_data.get('rank')) if global_data.get('rank') is not None else '-', - 'hours': format_time(total_seconds), - 'daily_avg': format_time(total_seconds / 7) + "rank": str(global_data.get("rank")) if global_data.get("rank") is not None else "-", + "hours": format_time(total_seconds), + "daily_avg": format_time(total_seconds / 7) } markdown += create_table("Public Leaderboards (Weekly)", public_data) # Country Leaderboard - country_data = leaderboards.get('country', {}) - country_name = country_data.get('country', 'Unknown') + country_data = leaderboards.get("country", {}) + country_name = country_data.get("country", "Unknown") country_leaderboard_data = { - 'rank': str(country_data.get('rank')) if country_data.get('rank') is not None else '-', - 'hours': format_time(total_seconds), - 'daily_avg': format_time(total_seconds / 7) + "rank": str(country_data.get("rank")) if country_data.get("rank") is not None else "-", + "hours": format_time(total_seconds), + "daily_avg": format_time(total_seconds / 7) } markdown += create_table("Country Leaderboard (" + country_name + ")", country_leaderboard_data) # Top Language - language_data = leaderboards.get('language', {}) - top_language = leaderboards.get('top_language', 'Unknown') - language_seconds = leaderboards['language_times'].get(top_language, 0) + language_data = leaderboards.get("language", {}) + top_language = leaderboards.get("top_language", "Unknown") + language_seconds = leaderboards["language_times"].get(top_language, 0) language_leaderboard_data = { - 'rank': str(language_data.get('rank')) if language_data.get('rank') is not None else '-', - 'hours': format_time(language_seconds), - 'daily_avg': format_time(language_seconds / 7) + "rank": str(language_data.get("rank")) if language_data.get("rank") is not None else "-", + "hours": format_time(language_seconds), + "daily_avg": format_time(language_seconds / 7) } markdown += create_table("Top Language (" + top_language + ")", language_leaderboard_data) diff --git a/pyproject.toml b/pyproject.toml index ec1a70d..fe3cad5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -39,6 +39,7 @@ Homepage = "https://github.com/nicconike/wakatime-leaderboards" [tool.semantic_release] version_variables = ["api/main.py:__version__"] +tag_format = "v{version}" commit_version_number = true commit_message = "chore: Version Release {version}" upload_to_pypi = false diff --git a/requirements.txt b/requirements.txt index a4dd651fa4464fb24d776535b5b19c82b29dafb9..71247ec80b1bf1cc43cdd5af6d13e1dd229bbf0f 100644 GIT binary patch delta 27 gcmZo+>|vbXC#cJi%#hDe#$XGCrVM%v1{1?|0aO$PnE(I) delta 19 acmeBSY+;<>$7#!8%V5Ev$6z!uUKao>{sbui