Skip to content

Commit 3f9d90d

Browse files
committed
feat: Update statistics and configuration for improved accuracy and consistency
1 parent a052fe3 commit 3f9d90d

5 files changed

Lines changed: 95 additions & 83 deletions

File tree

data/last_known_counts.json

Lines changed: 42 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -1,65 +1,73 @@
11
{
22
"counts": {
3-
"CSES": 22,
43
"Codeforces": 2609,
5-
"CodeChef": 126,
6-
"AtCoder": 157,
74
"LeetCode": 412,
5+
"AtCoder": 157,
6+
"CodeChef": 126,
87
"Toph": 37,
9-
"VJudge": 347,
108
"LightOJ": 31,
11-
"Uva": 7,
12-
"HackerEarth": 2
9+
"CSES": 66,
10+
"HackerEarth": 2,
11+
"SPOJ": 18,
12+
"HackerRank": 7,
13+
"VJudge": 347,
14+
"Uva": 7
1315
},
1416
"dates": {
15-
"CSES": "2026-01-24",
1617
"Codeforces": "2026-01-24",
17-
"CodeChef": "2026-01-24",
18-
"AtCoder": "2026-01-24",
1918
"LeetCode": "2026-01-24",
19+
"AtCoder": "2026-01-24",
20+
"CodeChef": "2026-01-24",
2021
"Toph": "2026-01-24",
21-
"VJudge": "2026-01-24",
2222
"LightOJ": "2026-01-24",
23-
"Uva": "2026-01-24",
24-
"HackerEarth": "2026-01-24"
23+
"CSES": "2026-01-15",
24+
"HackerEarth": "2026-01-24",
25+
"SPOJ": "2026-01-16",
26+
"HackerRank": "2026-01-17",
27+
"VJudge": "2026-01-24",
28+
"Uva": "2026-01-24"
2529
},
2630
"modes": {
27-
"CSES": "manual",
2831
"Codeforces": "automatic",
29-
"CodeChef": "automatic",
30-
"AtCoder": "automatic",
3132
"LeetCode": "automatic",
33+
"AtCoder": "automatic",
34+
"CodeChef": "automatic",
3235
"Toph": "automatic",
33-
"VJudge": "automatic",
3436
"LightOJ": "automatic",
35-
"Uva": "automatic",
36-
"HackerEarth": "automatic"
37+
"CSES": "manual",
38+
"HackerEarth": "automatic",
39+
"SPOJ": "manual",
40+
"HackerRank": "manual",
41+
"VJudge": "automatic",
42+
"Uva": "automatic"
3743
},
3844
"last_solved_dates": {
39-
"CSES": "2026-01-24",
4045
"Codeforces": "2026-01-24",
41-
"CodeChef": "2026-01-24",
42-
"AtCoder": "2026-01-24",
43-
"LeetCode": "1970-01-01",
44-
"Toph": "1970-01-01",
45-
"VJudge": "1970-01-01",
46-
"LightOJ": "1970-01-01",
47-
"Uva": "1970-01-01",
48-
"HackerEarth": "1970-01-01"
46+
"LeetCode": "2026-01-10",
47+
"AtCoder": "2025-11-29",
48+
"CodeChef": "2026-01-17",
49+
"Toph": "2026-01-17",
50+
"LightOJ": "2023-08-12",
51+
"CSES": "2025-08-18",
52+
"HackerEarth": "1970-01-01",
53+
"SPOJ": "2025-05-06",
54+
"HackerRank": "1970-01-01",
55+
"VJudge": "2025-05-02",
56+
"Uva": "2026-01-17"
4957
},
5058
"usernames": {
51-
"CSES": "165802",
5259
"Codeforces": "MishkatIT",
60+
"LeetCode": "MishkatIT",
5361
"AtCoder": "MishkatIT",
5462
"CodeChef": "MishkatIT",
55-
"LeetCode": "MishkatIT",
56-
"HackerEarth": "MishkatIT",
57-
"HackerRank": "MishkatIT",
58-
"LightOJ": "mishkatit",
63+
"CSES": "165802",
5964
"Toph": "MishkatIT",
65+
"LightOJ": "mishkatit",
66+
"SPOJ": "mishkatit",
67+
"HackerRank": "MishkatIT",
68+
"HackerEarth": "MishkatIT",
6069
"Uva": "1615470",
61-
"VJudge": "MishkatIT",
62-
"SPOJ": "mishkatit"
70+
"VJudge": "MishkatIT"
6371
},
6472
"ratings": {
6573
"Codeforces": {

data/stats.json

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
{
2-
"Codeforces": null,
3-
"LeetCode": null,
4-
"CodeChef": null,
5-
"AtCoder": null,
6-
"CSES": null,
7-
"HackerEarth": null,
8-
"HackerRank": null,
9-
"LightOJ": null,
10-
"Toph": null,
11-
"Uva": null,
12-
"VJudge": null,
13-
"SPOJ": null
2+
"HackerRank": 7,
3+
"CSES": 66,
4+
"LeetCode": 412,
5+
"Toph": 37,
6+
"AtCoder": 157,
7+
"Codeforces": 2609,
8+
"SPOJ": 18,
9+
"VJudge": 347,
10+
"CodeChef": 126,
11+
"HackerEarth": 2,
12+
"Uva": 7,
13+
"LightOJ": 31
1414
}

docs/README.md

Lines changed: 31 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -6,28 +6,30 @@
66

77
<!-- DYNAMIC_BADGES_START -->
88
![Last Updated](https://img.shields.io/badge/Last%20Updated-24%20January%202026-blue?style=for-the-badge)
9-
![Total Problems](https://img.shields.io/badge/Total%20Solved-3750-success?style=for-the-badge)
10-
![Platforms](https://img.shields.io/badge/Platforms-10-orange?style=for-the-badge)
9+
![Total Problems](https://img.shields.io/badge/Total%20Solved-3819-success?style=for-the-badge)
10+
![Platforms](https://img.shields.io/badge/Platforms-12-orange?style=for-the-badge)
1111
<!-- DYNAMIC_BADGES_END -->
1212

1313
<!-- UPDATE_METADATA_START -->
14-
<p align="center"><strong>Updated:</strong> 24 January 2026 at 09:19:36 PM • Unknown</p>
14+
<p align="center"><strong>Updated:</strong> 24 January 2026 at 09:46:41 PM • Unknown</p>
1515
<!-- UPDATE_METADATA_END -->
1616

1717
<!-- AUTO_GENERATED_SECTION_START: STATS_TABLE -->
1818
| 🎯 Platform | 👤 Profile | ✅ Solved | 📈 Progress | 📅 Updated On | 🔄 Mode |
1919
|-------------|------------|-----------|-------------|---------------|----------|
20-
| <img src="https://www.google.com/s2/favicons?domain=codeforces.com&sz=16" width="16" height="16" alt="Codeforces logo"/> **Codeforces** | [MishkatIT](https://codeforces.com/profile/MishkatIT) | **2609** | ![Progress](https://img.shields.io/badge/Progress-69.6%25-AA0000?style=flat-square) | 24 January 2026 | ![Automatic](https://img.shields.io/badge/Automatic-2196F3?style=flat) |
21-
| <img src="https://www.google.com/s2/favicons?domain=leetcode.com&sz=16" width="16" height="16" alt="LeetCode logo"/> **LeetCode** | [MishkatIT](https://leetcode.com/u/MishkatIT/) | **412** | ![Progress](https://img.shields.io/badge/Progress-11.0%25-FF3333?style=flat-square) | 24 January 2026 | ![Automatic](https://img.shields.io/badge/Automatic-2196F3?style=flat) |
22-
| <img src="https://www.google.com/s2/favicons?domain=vjudge.net&sz=16" width="16" height="16" alt="VJudge logo"/> **VJudge** | [MishkatIT](https://vjudge.net/user/MishkatIT) | **347** | ![Progress](https://img.shields.io/badge/Progress-9.3%25-FF7777?style=flat-square) | 24 January 2026 | ![Automatic](https://img.shields.io/badge/Automatic-2196F3?style=flat) |
23-
| <img src="https://www.google.com/s2/favicons?domain=atcoder.jp&sz=16" width="16" height="16" alt="AtCoder logo"/> **AtCoder** | [MishkatIT](https://atcoder.jp/users/MishkatIT) | **157** | ![Progress](https://img.shields.io/badge/Progress-4.2%25-FFBB55?style=flat-square) | 24 January 2026 | ![Automatic](https://img.shields.io/badge/Automatic-2196F3?style=flat) |
24-
| <img src="https://www.google.com/s2/favicons?domain=www.codechef.com&sz=16" width="16" height="16" alt="CodeChef logo"/> **CodeChef** | [MishkatIT](https://www.codechef.com/users/MishkatIT) | **126** | ![Progress](https://img.shields.io/badge/Progress-3.4%25-FFCC88?style=flat-square) | 24 January 2026 | ![Automatic](https://img.shields.io/badge/Automatic-2196F3?style=flat) |
25-
| <img src="https://www.google.com/s2/favicons?domain=toph.co&sz=16" width="16" height="16" alt="Toph logo"/> **Toph** | [MishkatIT](https://toph.co/u/MishkatIT) | **37** | ![Progress](https://img.shields.io/badge/Progress-1.0%25-FF88FF?style=flat-square) | 24 January 2026 | ![Automatic](https://img.shields.io/badge/Automatic-2196F3?style=flat) |
26-
| <img src="https://www.google.com/s2/favicons?domain=lightoj.com&sz=16" width="16" height="16" alt="LightOJ logo"/> **LightOJ** | [mishkatit](https://lightoj.com/user/mishkatit) | **31** | ![Progress](https://img.shields.io/badge/Progress-0.8%25-AAAAFF?style=flat-square) | 24 January 2026 | ![Automatic](https://img.shields.io/badge/Automatic-2196F3?style=flat) |
27-
| <img src="https://www.google.com/s2/favicons?domain=cses.fi&sz=16" width="16" height="16" alt="CSES logo"/> **CSES** | [165802](https://cses.fi/user/165802/) | **22** | ![Progress](https://img.shields.io/badge/Progress-0.6%25-90C3DD?style=flat-square) | 24 January 2026 | ![Manual](https://img.shields.io/badge/Manual-F44336?style=flat) |
28-
| <img src="https://www.google.com/s2/favicons?domain=uhunt.onlinejudge.org&sz=16" width="16" height="16" alt="Uva logo"/> **Uva** | [1615470](https://uhunt.onlinejudge.org/id/1615470) | **7** | ![Progress](https://img.shields.io/badge/Progress-0.2%25-77DDBB?style=flat-square) | 24 January 2026 | ![Automatic](https://img.shields.io/badge/Automatic-2196F3?style=flat) |
29-
| <img src="https://www.google.com/s2/favicons?domain=www.hackerearth.com&sz=16" width="16" height="16" alt="HackerEarth logo"/> **HackerEarth** | [MishkatIT](https://www.hackerearth.com/@MishkatIT/) | **2** | ![Progress](https://img.shields.io/badge/Progress-0.1%25-77EE99?style=flat-square) | 24 January 2026 | ![Automatic](https://img.shields.io/badge/Automatic-2196F3?style=flat) |
30-
| 🎖️ **TOTAL** | | **3750** | **100%** | 24 January 2026 | |
20+
| <img src="https://www.google.com/s2/favicons?domain=codeforces.com&sz=16" width="16" height="16"/> **Codeforces** | [MishkatIT](https://codeforces.com/profile/MishkatIT) | **2609** | ![Progress](https://img.shields.io/badge/Progress-68.3%25-AA0000?style=flat-square) | 24 January 2026 | ![Automatic](https://img.shields.io/badge/Automatic-2196F3?style=flat) |
21+
| <img src="https://www.google.com/s2/favicons?domain=leetcode.com&sz=16" width="16" height="16"/> **LeetCode** | [MishkatIT](https://leetcode.com/u/MishkatIT/) | **412** | ![Progress](https://img.shields.io/badge/Progress-10.8%25-FF3333?style=flat-square) | 24 January 2026 | ![Automatic](https://img.shields.io/badge/Automatic-2196F3?style=flat) |
22+
| <img src="https://www.google.com/s2/favicons?domain=vjudge.net&sz=16" width="16" height="16"/> **VJudge** | [MishkatIT](https://vjudge.net/user/MishkatIT) | **347** | ![Progress](https://img.shields.io/badge/Progress-9.1%25-FF7777?style=flat-square) | 24 January 2026 | ![Automatic](https://img.shields.io/badge/Automatic-2196F3?style=flat) |
23+
| <img src="https://www.google.com/s2/favicons?domain=atcoder.jp&sz=16" width="16" height="16"/> **AtCoder** | [MishkatIT](https://atcoder.jp/users/MishkatIT) | **157** | ![Progress](https://img.shields.io/badge/Progress-4.1%25-FFBB55?style=flat-square) | 24 January 2026 | ![Automatic](https://img.shields.io/badge/Automatic-2196F3?style=flat) |
24+
| <img src="https://www.google.com/s2/favicons?domain=www.codechef.com&sz=16" width="16" height="16"/> **CodeChef** | [MishkatIT](https://www.codechef.com/users/MishkatIT) | **126** | ![Progress](https://img.shields.io/badge/Progress-3.3%25-FFCC88?style=flat-square) | 24 January 2026 | ![Automatic](https://img.shields.io/badge/Automatic-2196F3?style=flat) |
25+
| <img src="https://www.google.com/s2/favicons?domain=cses.fi&sz=16" width="16" height="16"/> **CSES** | [MishkatIT](https://cses.fi/user/165802/) | **66** | ![Progress](https://img.shields.io/badge/Progress-1.7%25-FF88FF?style=flat-square) | 15 January 2026 | ![Manual](https://img.shields.io/badge/Manual-F44336?style=flat) |
26+
| <img src="https://www.google.com/s2/favicons?domain=toph.co&sz=16" width="16" height="16"/> **Toph** | [MishkatIT](https://toph.co/u/MishkatIT) | **37** | ![Progress](https://img.shields.io/badge/Progress-1.0%25-AAAAFF?style=flat-square) | 24 January 2026 | ![Automatic](https://img.shields.io/badge/Automatic-2196F3?style=flat) |
27+
| <img src="https://www.google.com/s2/favicons?domain=lightoj.com&sz=16" width="16" height="16"/> **LightOJ** | [mishkatit](https://lightoj.com/user/mishkatit) | **31** | ![Progress](https://img.shields.io/badge/Progress-0.8%25-90C3DD?style=flat-square) | 24 January 2026 | ![Automatic](https://img.shields.io/badge/Automatic-2196F3?style=flat) |
28+
| <img src="https://www.google.com/s2/favicons?domain=www.spoj.com&sz=16" width="16" height="16"/> **SPOJ** | [mishkatit](https://www.spoj.com/users/mishkatit/) | **18** | ![Progress](https://img.shields.io/badge/Progress-0.5%25-77DDBB?style=flat-square) | 16 January 2026 | ![Manual](https://img.shields.io/badge/Manual-F44336?style=flat) |
29+
| <img src="https://www.google.com/s2/favicons?domain=www.hackerrank.com&sz=16" width="16" height="16"/> **HackerRank** | [MishkatIT](https://www.hackerrank.com/profile/MishkatIT) | **7** | ![Progress](https://img.shields.io/badge/Progress-0.2%25-77EE99?style=flat-square) | 17 January 2026 | ![Manual](https://img.shields.io/badge/Manual-F44336?style=flat) |
30+
| <img src="https://www.google.com/s2/favicons?domain=uhunt.onlinejudge.org&sz=16" width="16" height="16"/> **Uva** | [MishkatIT](https://uhunt.onlinejudge.org/id/1615470) | **7** | ![Progress](https://img.shields.io/badge/Progress-0.2%25-77FF77?style=flat-square) | 24 January 2026 | ![Automatic](https://img.shields.io/badge/Automatic-2196F3?style=flat) |
31+
| <img src="https://www.google.com/s2/favicons?domain=www.hackerearth.com&sz=16" width="16" height="16"/> **HackerEarth** | [MishkatIT](https://www.hackerearth.com/@MishkatIT/) | **2** | ![Progress](https://img.shields.io/badge/Progress-0.1%25-CCCCCC?style=flat-square) | 24 January 2026 | ![Automatic](https://img.shields.io/badge/Automatic-2196F3?style=flat) |
32+
| 🎖️ **TOTAL** | | **3819** | **100%** | 24 January 2026 | |
3133

3234
---
3335

@@ -40,7 +42,7 @@
4042

4143
| 🥇 Top Platform | 🎯 Main Focus | 📚 Platforms Active |
4244
|:---------------:|:-------------:|:------------------:|
43-
| **Codeforces** | **Competitive Programming** | **10** |
45+
| **Codeforces** | **Competitive Programming** | **12** |
4446
| 2609 Problems | Algorithm Mastery | Multi-Platform |
4547

4648
</div>
@@ -60,9 +62,9 @@
6062
<!-- AUTO_GENERATED_SECTION_START: LATEST_SOLVE -->
6163
<div align="center">
6264

63-
| 📅 Last Solved | 🏆 Platforms |
65+
| 📅 Last Solved | 🏆 Platform |
6466
|:-------------:|:-------------:|
65-
| **24 January 2026** | **AtCoder**, **CSES**, **CodeChef**, and **Codeforces** |
67+
| **24 January 2026** | **Codeforces** |
6668

6769
</div>
6870

@@ -92,16 +94,18 @@
9294
</tr>
9395
</thead>
9496
<tbody>
95-
<tr><td><img src="https://www.google.com/s2/favicons?domain=atcoder.jp&sz=16" alt="AtCoder" width="16" height="16" onerror="this.style.display='none'"/> <strong>AtCoder</strong></td><td align="right" data-date="2026-01-24">24 January 2026</td></tr>
96-
<tr><td><img src="https://www.google.com/s2/favicons?domain=cses.fi&sz=16" alt="CSES" width="16" height="16" onerror="this.style.display='none'"/> <strong>CSES</strong></td><td align="right" data-date="2026-01-24">24 January 2026</td></tr>
97-
<tr><td><img src="https://www.google.com/s2/favicons?domain=www.codechef.com&sz=16" alt="CodeChef" width="16" height="16" onerror="this.style.display='none'"/> <strong>CodeChef</strong></td><td align="right" data-date="2026-01-24">24 January 2026</td></tr>
98-
<tr><td><img src="https://www.google.com/s2/favicons?domain=codeforces.com&sz=16" alt="Codeforces" width="16" height="16" onerror="this.style.display='none'"/> <strong>Codeforces</strong></td><td align="right" data-date="2026-01-24">24 January 2026</td></tr>
99-
<tr><td><img src="https://www.google.com/s2/favicons?domain=www.hackerearth.com&sz=16" alt="HackerEarth" width="16" height="16" onerror="this.style.display='none'"/> <strong>HackerEarth</strong></td><td align="right" data-date="1970-01-01">01 January 1970</td></tr>
100-
<tr><td><img src="https://www.google.com/s2/favicons?domain=leetcode.com&sz=16" alt="LeetCode" width="16" height="16" onerror="this.style.display='none'"/> <strong>LeetCode</strong></td><td align="right" data-date="1970-01-01">01 January 1970</td></tr>
101-
<tr><td><img src="https://www.google.com/s2/favicons?domain=lightoj.com&sz=16" alt="LightOJ" width="16" height="16" onerror="this.style.display='none'"/> <strong>LightOJ</strong></td><td align="right" data-date="1970-01-01">01 January 1970</td></tr>
102-
<tr><td><img src="https://www.google.com/s2/favicons?domain=toph.co&sz=16" alt="Toph" width="16" height="16" onerror="this.style.display='none'"/> <strong>Toph</strong></td><td align="right" data-date="1970-01-01">01 January 1970</td></tr>
103-
<tr><td><img src="https://www.google.com/s2/favicons?domain=uhunt.onlinejudge.org&sz=16" alt="Uva" width="16" height="16" onerror="this.style.display='none'"/> <strong>Uva</strong></td><td align="right" data-date="1970-01-01">01 January 1970</td></tr>
104-
<tr><td><img src="https://www.google.com/s2/favicons?domain=vjudge.net&sz=16" alt="VJudge" width="16" height="16" onerror="this.style.display='none'"/> <strong>VJudge</strong></td><td align="right" data-date="1970-01-01">01 January 1970</td></tr>
97+
<tr><td><img src="https://www.google.com/s2/favicons?domain=codeforces.com&sz=16" width="16" height="16" onerror="this.style.display='none'"/> <strong>Codeforces</strong></td><td align="right" data-date="2026-01-24">24 January 2026</td></tr>
98+
<tr><td><img src="https://www.google.com/s2/favicons?domain=www.codechef.com&sz=16" width="16" height="16" onerror="this.style.display='none'"/> <strong>CodeChef</strong></td><td align="right" data-date="2026-01-17">17 January 2026</td></tr>
99+
<tr><td><img src="https://www.google.com/s2/favicons?domain=toph.co&sz=16" width="16" height="16" onerror="this.style.display='none'"/> <strong>Toph</strong></td><td align="right" data-date="2026-01-17">17 January 2026</td></tr>
100+
<tr><td><img src="https://www.google.com/s2/favicons?domain=uhunt.onlinejudge.org&sz=16" width="16" height="16" onerror="this.style.display='none'"/> <strong>Uva</strong></td><td align="right" data-date="2026-01-17">17 January 2026</td></tr>
101+
<tr><td><img src="https://www.google.com/s2/favicons?domain=leetcode.com&sz=16" width="16" height="16" onerror="this.style.display='none'"/> <strong>LeetCode</strong></td><td align="right" data-date="2026-01-10">10 January 2026</td></tr>
102+
<tr><td><img src="https://www.google.com/s2/favicons?domain=atcoder.jp&sz=16" width="16" height="16" onerror="this.style.display='none'"/> <strong>AtCoder</strong></td><td align="right" data-date="2025-11-29">29 November 2025</td></tr>
103+
<tr><td><img src="https://www.google.com/s2/favicons?domain=cses.fi&sz=16" width="16" height="16" onerror="this.style.display='none'"/> <strong>CSES</strong></td><td align="right" data-date="2025-08-18">18 August 2025</td></tr>
104+
<tr><td><img src="https://www.google.com/s2/favicons?domain=www.spoj.com&sz=16" width="16" height="16" onerror="this.style.display='none'"/> <strong>SPOJ</strong></td><td align="right" data-date="2025-05-06">06 May 2025</td></tr>
105+
<tr><td><img src="https://www.google.com/s2/favicons?domain=vjudge.net&sz=16" width="16" height="16" onerror="this.style.display='none'"/> <strong>VJudge</strong></td><td align="right" data-date="2025-05-02">02 May 2025</td></tr>
106+
<tr><td><img src="https://www.google.com/s2/favicons?domain=lightoj.com&sz=16" width="16" height="16" onerror="this.style.display='none'"/> <strong>LightOJ</strong></td><td align="right" data-date="2023-08-12">12 August 2023</td></tr>
107+
<tr><td><img src="https://www.google.com/s2/favicons?domain=www.hackerearth.com&sz=16" width="16" height="16" onerror="this.style.display='none'"/> <strong>HackerEarth</strong></td><td align="right" data-date="1970-01-01">01 January 1970</td></tr>
108+
<tr><td><img src="https://www.google.com/s2/favicons?domain=www.hackerrank.com&sz=16" width="16" height="16" onerror="this.style.display='none'"/> <strong>HackerRank</strong></td><td align="right" data-date="1970-01-01">01 January 1970</td></tr>
105109
</tbody>
106110
</table>
107111

scripts/update_readme.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -294,7 +294,7 @@ def parse_date_for_sorting(date_str):
294294
# Add platform with logo (matching main stats table format)
295295
logo_url, use_onerror = PLATFORM_LOGOS.get(platform, ('', False))
296296
onerror_attr = ' onerror="this.style.display=\'none\'"' if use_onerror else ''
297-
platform_cell = f'<img src="{logo_url}" alt="{platform}" width="16" height="16"{onerror_attr}/> <strong>{platform}</strong>'
297+
platform_cell = f'<img src="{logo_url}" width="16" height="16"{onerror_attr}/> <strong>{platform}</strong>'
298298
rows.append(f' <tr><td>{platform_cell}</td><td align="right" data-date="{date}">{formatted_date}</td></tr>')
299299

300300
if not rows:
@@ -417,7 +417,7 @@ def generate_platform_statistics_table(effective_counts, current_date, today_iso
417417
mode_color = 'F44336' if platform_mode == 'manual' else '2196F3'
418418

419419
# Create markdown table row
420-
logo_md = f'<img src="{logo_url}" width="16" height="16" alt="{platform} logo"/>' if logo_url else '🏆'
420+
logo_md = f'<img src="{logo_url}" width="16" height="16"/>' if logo_url else '🏆'
421421
progress_badge = f'![Progress](https://img.shields.io/badge/Progress-{percentage}%25-{color}?style=flat-square)'
422422
mode_badge = f'![{mode_display}](https://img.shields.io/badge/{mode_display}-{mode_color}?style=flat)'
423423

0 commit comments

Comments
 (0)