diff --git a/.gitignore b/.gitignore index b7faf40..4f9a9c2 100644 --- a/.gitignore +++ b/.gitignore @@ -205,3 +205,6 @@ cython_debug/ marimo/_static/ marimo/_lsp/ __marimo__/ + +# Sponsors eligibility cache (generated by scripts/leaderboard.py) +.sponsors_cache.json diff --git a/profile/README.md b/profile/README.md index e705f5c..275bc31 100644 --- a/profile/README.md +++ b/profile/README.md @@ -13,12 +13,28 @@

Easter Eggs

+ +

+ ๐Ÿ† Featured Leaderboard Sponsors Showcase ๐Ÿ†
+ The first 5 contributors on our leaderboard who have GitHub Sponsors profiles get showcased here โ€” climb the ranks, enable Sponsors, and get featured! +

- Sponsor John Bampton + Sponsor jbampton +
- Sponsor Max Base -

+ Sponsor BaseMax +
+ + Sponsor Subham-KRLX +
+ + Sponsor basalumutgazi +
+ + Sponsor anufdo +

+
@@ -40,81 +56,81 @@ | Rank | Contributor | Level | Rarity | Commits | Progress | Streak | Badges | Points | |------|-------------|:-----:|:------:|:-------:|----------|:------:|--------|-------:| -| 1 ๐Ÿฅ‡ | [@jbampton](https://github.com/jbampton) | ๐Ÿ”ฆ Lv.304 Dungeon Delver | ๐ŸŸฉ uncommon | โœ๏ธ 179 ยท ๐Ÿค 125 ยท ๐Ÿ“ฆ 2 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 4% โ†’ 400 | โšก 2d / ๐Ÿ† 5d | ๐Ÿ…ร—15 ๐ŸŽฏ โœ‹ ๐ŸŒŸ ๐ŸŒ ๐Ÿ’ช ๐Ÿš€ ๐Ÿ›ก๏ธ ๐ŸŒฑ ๐Ÿ“† โฌœ ๐ŸŸฉ ๐ŸŸฆ ๐ŸŸช ๐ŸŸง ๐ŸŸฅ | 3,510 | +| 1 ๐Ÿฅ‡ | [@jbampton](https://github.com/jbampton) | ๐Ÿ“ฆ Lv.317 Mimic Victim | ๐ŸŸฉ uncommon | โœ๏ธ 179 ยท ๐Ÿค 138 ยท ๐Ÿ“ฆ 2 | `[โ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 17% โ†’ 400 | โšก 2d / ๐Ÿ† 5d | ๐Ÿ…ร—15 ๐ŸŽฏ โœ‹ ๐ŸŒŸ ๐ŸŒ ๐Ÿ’ช ๐Ÿš€ ๐Ÿ›ก๏ธ ๐ŸŒฑ ๐Ÿ“† โฌœ ๐ŸŸฉ ๐ŸŸฆ ๐ŸŸช ๐ŸŸง ๐ŸŸฅ | 3,640 | | 2 ๐Ÿฅˆ | [@BaseMax](https://github.com/BaseMax) | ๐Ÿ‘‘ Lv.178 Sith Emperor | ๐ŸŸง legendary | โœ๏ธ 177 ยท ๐Ÿค 1 ยท ๐Ÿ“ฆ 1 | `[โ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘]` 56% โ†’ 200 | โšก 1d / ๐Ÿ† 3d | ๐Ÿ…ร—12 ๐ŸŽฏ โœ‹ ๐ŸŒŸ ๐Ÿ’ช ๐Ÿš€ ๐ŸŒฑ โฌœ ๐ŸŸฉ ๐ŸŸฆ ๐ŸŸช ๐ŸŸง ๐ŸŸฅ | 2,175 | | 3 ๐Ÿฅ‰ | [@Passion-Over-Pain](https://github.com/Passion-Over-Pain) | ๐Ÿฆ‡ Lv.14 Flying Menace | ๐ŸŸฉ uncommon | โœ๏ธ 14 ยท ๐Ÿ“ฆ 1 | `[โ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘]` 40% โ†’ 20 | โšก 2d | ๐Ÿ…ร—6 ๐ŸŽฏ โœ‹ โฌœ ๐ŸŸฉ ๐ŸŸฆ ๐ŸŸช | 290 | | 4 | [@iabdr](https://github.com/iabdr) | โŒจ๏ธ Lv.7 Terminal Pro | ๐ŸŸฆ rare | โœ๏ธ 7 ยท ๐Ÿ“ฆ 1 | `[โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘]` 70% โ†’ 10 | โšก 1d | ๐Ÿ…ร—5 ๐ŸŽฏ โœ‹ โฌœ ๐ŸŸฉ ๐ŸŸฆ | 175 | -| 5 | [@basalumutgazi](https://github.com/basalumutgazi) | ๐Ÿ’Ž Lv.5 Data Miner | ๐ŸŸฉ uncommon | โœ๏ธ 5 ยท ๐Ÿ“ฆ 1 | `[โ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘]` 50% โ†’ 10 | โšก 1d | ๐Ÿ…ร—4 ๐ŸŽฏ โœ‹ โฌœ ๐ŸŸฉ | 125 | -| 6 | [@Subham-KRLX](https://github.com/Subham-KRLX) | ๐Ÿ’Ž Lv.5 Data Miner | ๐ŸŸฉ uncommon | โœ๏ธ 5 ยท ๐Ÿ“ฆ 1 | `[โ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘]` 50% โ†’ 10 | โšก 2d | ๐Ÿ…ร—4 ๐ŸŽฏ โœ‹ โฌœ ๐ŸŸฉ | 130 | -| 7 | [@Anekenonso](https://github.com/Anekenonso) | ๐ŸŒŒ Lv.3 Void Walker | ๐ŸŸฉ uncommon | โœ๏ธ 3 ยท ๐Ÿ“ฆ 1 | `[โ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 30% โ†’ 10 | โšก 1d | ๐Ÿ…ร—3 ๐ŸŽฏ โฌœ ๐ŸŸฉ | 90 | +| 5 | [@Subham-KRLX](https://github.com/Subham-KRLX) | ๐Ÿ’Ž Lv.5 Data Miner | ๐ŸŸฉ uncommon | โœ๏ธ 5 ยท ๐Ÿ“ฆ 1 | `[โ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘]` 50% โ†’ 10 | โšก 2d | ๐Ÿ…ร—4 ๐ŸŽฏ โœ‹ โฌœ ๐ŸŸฉ | 130 | +| 6 | [@basalumutgazi](https://github.com/basalumutgazi) | ๐Ÿ’Ž Lv.5 Data Miner | ๐ŸŸฉ uncommon | โœ๏ธ 5 ยท ๐Ÿ“ฆ 1 | `[โ–ˆโ–ˆโ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘]` 50% โ†’ 10 | โšก 1d | ๐Ÿ…ร—4 ๐ŸŽฏ โœ‹ โฌœ ๐ŸŸฉ | 125 | +| 7 | [@tanverified](https://github.com/tanverified) | ๐ŸŒŒ Lv.3 Void Walker | ๐ŸŸฉ uncommon | โœ๏ธ 3 ยท ๐Ÿ“ฆ 1 | `[โ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 30% โ†’ 10 | โšก 1d | ๐Ÿ…ร—3 ๐ŸŽฏ โฌœ ๐ŸŸฉ | 90 | | 8 | [@ayushrana182](https://github.com/ayushrana182) | ๐ŸŒŒ Lv.3 Void Walker | ๐ŸŸฉ uncommon | โœ๏ธ 3 ยท ๐Ÿ“ฆ 1 | `[โ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 30% โ†’ 10 | โšก 1d | ๐Ÿ…ร—3 ๐ŸŽฏ โฌœ ๐ŸŸฉ | 90 | | 9 | [@rjphares](https://github.com/rjphares) | ๐ŸŒŒ Lv.3 Void Walker | ๐ŸŸฉ uncommon | โœ๏ธ 3 ยท ๐Ÿ“ฆ 1 | `[โ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 30% โ†’ 10 | โšก 1d | ๐Ÿ…ร—3 ๐ŸŽฏ โฌœ ๐ŸŸฉ | 90 | -| 10 | [@tanverified](https://github.com/tanverified) | ๐ŸŒŒ Lv.3 Void Walker | ๐ŸŸฉ uncommon | โœ๏ธ 3 ยท ๐Ÿ“ฆ 1 | `[โ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 30% โ†’ 10 | โšก 1d | ๐Ÿ…ร—3 ๐ŸŽฏ โฌœ ๐ŸŸฉ | 90 | -| 11 | [@0xMRTT](https://github.com/0xMRTT) | ๐Ÿ•ต๏ธโ€โ™‚๏ธ Lv.2 Code Breaker | โฌœ common | โœ๏ธ 2 ยท ๐Ÿ“ฆ 1 | `[โ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 20% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 55 | -| 12 | [@abdorah](https://github.com/abdorah) | ๐Ÿ•ต๏ธโ€โ™‚๏ธ Lv.2 Code Breaker | โฌœ common | โœ๏ธ 2 ยท ๐Ÿ“ฆ 1 | `[โ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 20% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 55 | -| 13 | [@ajakov](https://github.com/ajakov) | ๐Ÿ•ต๏ธโ€โ™‚๏ธ Lv.2 Code Breaker | โฌœ common | โœ๏ธ 2 ยท ๐Ÿ“ฆ 1 | `[โ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 20% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 55 | -| 14 | [@alifiroozidev](https://github.com/alifiroozidev) | ๐Ÿ•ต๏ธโ€โ™‚๏ธ Lv.2 Code Breaker | โฌœ common | โœ๏ธ 2 ยท ๐Ÿ“ฆ 1 | `[โ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 20% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 55 | +| 10 | [@Anekenonso](https://github.com/Anekenonso) | ๐ŸŒŒ Lv.3 Void Walker | ๐ŸŸฉ uncommon | โœ๏ธ 3 ยท ๐Ÿ“ฆ 1 | `[โ–ˆโ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 30% โ†’ 10 | โšก 1d | ๐Ÿ…ร—3 ๐ŸŽฏ โฌœ ๐ŸŸฉ | 90 | +| 11 | [@sm4rtdev](https://github.com/sm4rtdev) | ๐Ÿ•ต๏ธโ€โ™‚๏ธ Lv.2 Code Breaker | โฌœ common | โœ๏ธ 2 ยท ๐Ÿ“ฆ 1 | `[โ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 20% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 55 | +| 12 | [@MichaelHinrichs](https://github.com/MichaelHinrichs) | ๐Ÿ•ต๏ธโ€โ™‚๏ธ Lv.2 Code Breaker | โฌœ common | โœ๏ธ 2 ยท ๐Ÿ“ฆ 1 | `[โ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 20% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 55 | +| 13 | [@TheGuyDangerous](https://github.com/TheGuyDangerous) | ๐Ÿ•ต๏ธโ€โ™‚๏ธ Lv.2 Code Breaker | โฌœ common | โœ๏ธ 2 ยท ๐Ÿ“ฆ 1 | `[โ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 20% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 55 | +| 14 | [@eugene4545](https://github.com/eugene4545) | ๐Ÿ•ต๏ธโ€โ™‚๏ธ Lv.2 Code Breaker | โฌœ common | โœ๏ธ 2 ยท ๐Ÿ“ฆ 1 | `[โ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 20% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 55 | | 15 | [@anufdo](https://github.com/anufdo) | ๐Ÿ•ต๏ธโ€โ™‚๏ธ Lv.2 Code Breaker | โฌœ common | โœ๏ธ 2 ยท ๐Ÿ“ฆ 1 | `[โ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 20% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 55 | -| 16 | [@eugene4545](https://github.com/eugene4545) | ๐Ÿ•ต๏ธโ€โ™‚๏ธ Lv.2 Code Breaker | โฌœ common | โœ๏ธ 2 ยท ๐Ÿ“ฆ 1 | `[โ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 20% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 55 | +| 16 | [@alifiroozidev](https://github.com/alifiroozidev) | ๐Ÿ•ต๏ธโ€โ™‚๏ธ Lv.2 Code Breaker | โฌœ common | โœ๏ธ 2 ยท ๐Ÿ“ฆ 1 | `[โ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 20% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 55 | | 17 | [@itsjoniur](https://github.com/itsjoniur) | ๐Ÿ•ต๏ธโ€โ™‚๏ธ Lv.2 Code Breaker | โฌœ common | โœ๏ธ 2 ยท ๐Ÿ“ฆ 1 | `[โ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 20% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 55 | -| 18 | [@MichaelHinrichs](https://github.com/MichaelHinrichs) | ๐Ÿ•ต๏ธโ€โ™‚๏ธ Lv.2 Code Breaker | โฌœ common | โœ๏ธ 2 ยท ๐Ÿ“ฆ 1 | `[โ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 20% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 55 | -| 19 | [@ps-19](https://github.com/ps-19) | ๐Ÿ•ต๏ธโ€โ™‚๏ธ Lv.2 Code Breaker | โฌœ common | โœ๏ธ 2 ยท ๐Ÿ“ฆ 1 | `[โ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 20% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 55 | +| 18 | [@0xMRTT](https://github.com/0xMRTT) | ๐Ÿ•ต๏ธโ€โ™‚๏ธ Lv.2 Code Breaker | โฌœ common | โœ๏ธ 2 ยท ๐Ÿ“ฆ 1 | `[โ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 20% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 55 | +| 19 | [@SushantAdh07](https://github.com/SushantAdh07) | ๐Ÿ•ต๏ธโ€โ™‚๏ธ Lv.2 Code Breaker | โฌœ common | โœ๏ธ 2 ยท ๐Ÿ“ฆ 1 | `[โ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 20% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 55 | | 20 | [@rtewari056](https://github.com/rtewari056) | ๐Ÿ•ต๏ธโ€โ™‚๏ธ Lv.2 Code Breaker | โฌœ common | โœ๏ธ 2 ยท ๐Ÿ“ฆ 1 | `[โ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 20% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 55 | -| 21 | [@sm4rtdev](https://github.com/sm4rtdev) | ๐Ÿ•ต๏ธโ€โ™‚๏ธ Lv.2 Code Breaker | โฌœ common | โœ๏ธ 2 ยท ๐Ÿ“ฆ 1 | `[โ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 20% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 55 | -| 22 | [@SushantAdh07](https://github.com/SushantAdh07) | ๐Ÿ•ต๏ธโ€โ™‚๏ธ Lv.2 Code Breaker | โฌœ common | โœ๏ธ 2 ยท ๐Ÿ“ฆ 1 | `[โ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 20% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 55 | -| 23 | [@TheGuyDangerous](https://github.com/TheGuyDangerous) | ๐Ÿ•ต๏ธโ€โ™‚๏ธ Lv.2 Code Breaker | โฌœ common | โœ๏ธ 2 ยท ๐Ÿ“ฆ 1 | `[โ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 20% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 55 | +| 21 | [@yhdesai](https://github.com/yhdesai) | ๐Ÿ•ต๏ธโ€โ™‚๏ธ Lv.2 Code Breaker | โฌœ common | โœ๏ธ 2 ยท ๐Ÿ“ฆ 1 | `[โ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 20% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 55 | +| 22 | [@ps-19](https://github.com/ps-19) | ๐Ÿ•ต๏ธโ€โ™‚๏ธ Lv.2 Code Breaker | โฌœ common | โœ๏ธ 2 ยท ๐Ÿ“ฆ 1 | `[โ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 20% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 55 | +| 23 | [@abdorah](https://github.com/abdorah) | ๐Ÿ•ต๏ธโ€โ™‚๏ธ Lv.2 Code Breaker | โฌœ common | โœ๏ธ 2 ยท ๐Ÿ“ฆ 1 | `[โ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 20% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 55 | | 24 | [@VictorAraica](https://github.com/VictorAraica) | ๐Ÿ•ต๏ธโ€โ™‚๏ธ Lv.2 Code Breaker | โฌœ common | โœ๏ธ 2 ยท ๐Ÿ“ฆ 1 | `[โ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 20% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 55 | -| 25 | [@yhdesai](https://github.com/yhdesai) | ๐Ÿ•ต๏ธโ€โ™‚๏ธ Lv.2 Code Breaker | โฌœ common | โœ๏ธ 2 ยท ๐Ÿ“ฆ 1 | `[โ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 20% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 55 | -| 26 | [@an1rxdh664](https://github.com/an1rxdh664) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | -| 27 | [@Anderson-Garcia](https://github.com/Anderson-Garcia) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | -| 28 | [@arthsaAr](https://github.com/arthsaAr) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | -| 29 | [@Barrerson](https://github.com/Barrerson) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | -| 30 | [@BDadmehr0](https://github.com/BDadmehr0) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | -| 31 | [@Cima9642](https://github.com/Cima9642) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | -| 32 | [@DipendraChandel](https://github.com/DipendraChandel) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | -| 33 | [@enimiste](https://github.com/enimiste) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | -| 34 | [@Favourene](https://github.com/Favourene) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | -| 35 | [@GabrielTheophilo](https://github.com/GabrielTheophilo) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | -| 36 | [@gakramx](https://github.com/gakramx) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | -| 37 | [@HammedBabatunde](https://github.com/HammedBabatunde) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | -| 38 | [@hariket-sheth1](https://github.com/hariket-sheth1) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | -| 39 | [@HITMAN5050](https://github.com/HITMAN5050) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | -| 40 | [@hunainanis](https://github.com/hunainanis) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 0 ยท ๐Ÿค 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | -| 41 | [@ierfaaan](https://github.com/ierfaaan) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | -| 42 | [@JayantGoel001](https://github.com/JayantGoel001) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | -| 43 | [@kaifansariw](https://github.com/kaifansariw) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | -| 44 | [@kenhorlador](https://github.com/kenhorlador) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | -| 45 | [@koolamusic](https://github.com/koolamusic) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | -| 46 | [@Majalian](https://github.com/Majalian) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | -| 47 | [@majidabdulred](https://github.com/majidabdulred) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | -| 48 | [@maurobalades-contributions](https://github.com/maurobalades-contributions) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | -| 49 | [@MaxCkett](https://github.com/MaxCkett) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | -| 50 | [@MaxianEdison](https://github.com/MaxianEdison) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | -| 51 | [@mohammadshaad](https://github.com/mohammadshaad) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | -| 52 | [@MohdRash](https://github.com/MohdRash) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | -| 53 | [@mr-cheffy](https://github.com/mr-cheffy) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | -| 54 | [@mujeebshk](https://github.com/mujeebshk) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | -| 55 | [@muntasiractive](https://github.com/muntasiractive) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | -| 56 | [@Muriturca](https://github.com/Muriturca) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | -| 57 | [@MutanPlex](https://github.com/MutanPlex) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | -| 58 | [@NeuroPeakX](https://github.com/NeuroPeakX) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | -| 59 | [@nikultaka](https://github.com/nikultaka) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | -| 60 | [@NimishKashyap](https://github.com/NimishKashyap) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | -| 61 | [@novalramdhani](https://github.com/novalramdhani) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | -| 62 | [@NS007-dev](https://github.com/NS007-dev) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | -| 63 | [@okxint](https://github.com/okxint) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | -| 64 | [@OrionFable](https://github.com/OrionFable) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | -| 65 | [@pratik-wadhai](https://github.com/pratik-wadhai) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | -| 66 | [@prio101](https://github.com/prio101) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | -| 67 | [@ra1nbow1](https://github.com/ra1nbow1) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | -| 68 | [@rubiin](https://github.com/rubiin) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | -| 69 | [@sbhatm1213](https://github.com/sbhatm1213) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | -| 70 | [@Sweetdevil144](https://github.com/Sweetdevil144) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | -| 71 | [@SyeddTaha](https://github.com/SyeddTaha) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | -| 72 | [@theashishgavade](https://github.com/theashishgavade) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | -| 73 | [@vinfinity7](https://github.com/vinfinity7) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | -| 74 | [@Yadavpreethi](https://github.com/Yadavpreethi) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | -| 75 | [@yazdanhaider](https://github.com/yazdanhaider) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | +| 25 | [@ajakov](https://github.com/ajakov) | ๐Ÿ•ต๏ธโ€โ™‚๏ธ Lv.2 Code Breaker | โฌœ common | โœ๏ธ 2 ยท ๐Ÿ“ฆ 1 | `[โ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 20% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 55 | +| 26 | [@SyeddTaha](https://github.com/SyeddTaha) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | +| 27 | [@okxint](https://github.com/okxint) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | +| 28 | [@muntasiractive](https://github.com/muntasiractive) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | +| 29 | [@DipendraChandel](https://github.com/DipendraChandel) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | +| 30 | [@HITMAN5050](https://github.com/HITMAN5050) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | +| 31 | [@BDadmehr0](https://github.com/BDadmehr0) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | +| 32 | [@Yadavpreethi](https://github.com/Yadavpreethi) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | +| 33 | [@kaifansariw](https://github.com/kaifansariw) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | +| 34 | [@nikultaka](https://github.com/nikultaka) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | +| 35 | [@arthsaAr](https://github.com/arthsaAr) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | +| 36 | [@an1rxdh664](https://github.com/an1rxdh664) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | +| 37 | [@Cima9642](https://github.com/Cima9642) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | +| 38 | [@NeuroPeakX](https://github.com/NeuroPeakX) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | +| 39 | [@MohdRash](https://github.com/MohdRash) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | +| 40 | [@OrionFable](https://github.com/OrionFable) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | +| 41 | [@MutanPlex](https://github.com/MutanPlex) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | +| 42 | [@yazdanhaider](https://github.com/yazdanhaider) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | +| 43 | [@mr-cheffy](https://github.com/mr-cheffy) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | +| 44 | [@mujeebshk](https://github.com/mujeebshk) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | +| 45 | [@sbhatm1213](https://github.com/sbhatm1213) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | +| 46 | [@vinfinity7](https://github.com/vinfinity7) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | +| 47 | [@Sweetdevil144](https://github.com/Sweetdevil144) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | +| 48 | [@mohammadshaad](https://github.com/mohammadshaad) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | +| 49 | [@rubiin](https://github.com/rubiin) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | +| 50 | [@pratik-wadhai](https://github.com/pratik-wadhai) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | +| 51 | [@theashishgavade](https://github.com/theashishgavade) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | +| 52 | [@GabrielTheophilo](https://github.com/GabrielTheophilo) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | +| 53 | [@MaxianEdison](https://github.com/MaxianEdison) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | +| 54 | [@Barrerson](https://github.com/Barrerson) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | +| 55 | [@NimishKashyap](https://github.com/NimishKashyap) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | +| 56 | [@MaxCkett](https://github.com/MaxCkett) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | +| 57 | [@kenhorlador](https://github.com/kenhorlador) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | +| 58 | [@novalramdhani](https://github.com/novalramdhani) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | +| 59 | [@maurobalades-contributions](https://github.com/maurobalades-contributions) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | +| 60 | [@hariket-sheth1](https://github.com/hariket-sheth1) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | +| 61 | [@Favourene](https://github.com/Favourene) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | +| 62 | [@HammedBabatunde](https://github.com/HammedBabatunde) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | +| 63 | [@NS007-dev](https://github.com/NS007-dev) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | +| 64 | [@koolamusic](https://github.com/koolamusic) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | +| 65 | [@ierfaaan](https://github.com/ierfaaan) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | +| 66 | [@hunainanis](https://github.com/hunainanis) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 0 ยท ๐Ÿค 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | +| 67 | [@JayantGoel001](https://github.com/JayantGoel001) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | +| 68 | [@gakramx](https://github.com/gakramx) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | +| 69 | [@ra1nbow1](https://github.com/ra1nbow1) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | +| 70 | [@prio101](https://github.com/prio101) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | +| 71 | [@Anderson-Garcia](https://github.com/Anderson-Garcia) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | +| 72 | [@Majalian](https://github.com/Majalian) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | +| 73 | [@majidabdulred](https://github.com/majidabdulred) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | +| 74 | [@enimiste](https://github.com/enimiste) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | +| 75 | [@Muriturca](https://github.com/Muriturca) | ๐Ÿ›น Lv.1 Script Kid | โฌœ common | โœ๏ธ 1 ยท ๐Ÿ“ฆ 1 | `[โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]` 10% โ†’ 10 | โšก 1d | ๐Ÿ…ร—2 ๐ŸŽฏ โฌœ | 45 | @@ -123,81 +139,81 @@ | Rank | Contributor | First Commit | Last Active | Days Active | Commits/Day | Repo Breakdown | Percentile | |------|-------------|:------------:|:-----------:|:-----------:|:-----------:|----------------|:----------:| -| 1 | [@jbampton](https://github.com/jbampton) | 2021-06-14 | 2026-04-04 | 49 | 6.2 | ๐ŸŒ 231 ยท โš™๏ธ 73 | Top 1% | +| 1 | [@jbampton](https://github.com/jbampton) | 2021-06-14 | 2026-04-04 | 49 | 6.5 | ๐ŸŒ 236 ยท โš™๏ธ 81 | Top 1% | | 2 | [@BaseMax](https://github.com/BaseMax) | 2021-06-13 | 2026-04-03 | 57 | 3.1 | ๐ŸŒ 178 | Top 3% | | 3 | [@Passion-Over-Pain](https://github.com/Passion-Over-Pain) | 2025-03-16 | 2025-03-17 | 2 | 7.0 | ๐ŸŒ 14 | Top 4% | | 4 | [@iabdr](https://github.com/iabdr) | 2021-08-04 | 2021-08-04 | 1 | 7.0 | ๐ŸŒ 7 | Top 5% | -| 5 | [@basalumutgazi](https://github.com/basalumutgazi) | 2021-06-14 | 2026-01-26 | 2 | 2.5 | ๐ŸŒ 5 | Top 7% | -| 6 | [@Subham-KRLX](https://github.com/Subham-KRLX) | 2026-01-26 | 2026-01-29 | 3 | 1.7 | ๐ŸŒ 5 | Top 8% | -| 7 | [@Anekenonso](https://github.com/Anekenonso) | 2021-06-15 | 2021-06-15 | 1 | 3.0 | ๐ŸŒ 3 | Top 9% | +| 5 | [@Subham-KRLX](https://github.com/Subham-KRLX) | 2026-01-26 | 2026-01-29 | 3 | 1.7 | ๐ŸŒ 5 | Top 7% | +| 6 | [@basalumutgazi](https://github.com/basalumutgazi) | 2021-06-14 | 2026-01-26 | 2 | 2.5 | ๐ŸŒ 5 | Top 8% | +| 7 | [@tanverified](https://github.com/tanverified) | 2025-07-23 | 2025-07-23 | 1 | 3.0 | ๐ŸŒ 3 | Top 9% | | 8 | [@ayushrana182](https://github.com/ayushrana182) | 2021-06-17 | 2021-08-24 | 2 | 1.5 | ๐ŸŒ 3 | Top 11% | | 9 | [@rjphares](https://github.com/rjphares) | 2021-06-15 | 2021-06-15 | 1 | 3.0 | ๐ŸŒ 3 | Top 12% | -| 10 | [@tanverified](https://github.com/tanverified) | 2025-07-23 | 2025-07-23 | 1 | 3.0 | ๐ŸŒ 3 | Top 13% | -| 11 | [@0xMRTT](https://github.com/0xMRTT) | 2022-08-07 | 2022-08-07 | 1 | 2.0 | ๐ŸŒ 2 | Top 15% | -| 12 | [@abdorah](https://github.com/abdorah) | 2021-06-19 | 2021-06-23 | 2 | 1.0 | ๐ŸŒ 2 | Top 16% | -| 13 | [@ajakov](https://github.com/ajakov) | 2021-06-17 | 2021-06-17 | 1 | 2.0 | ๐ŸŒ 2 | Top 17% | -| 14 | [@alifiroozidev](https://github.com/alifiroozidev) | 2022-11-02 | 2022-11-02 | 1 | 2.0 | ๐ŸŒ 2 | Top 19% | +| 10 | [@Anekenonso](https://github.com/Anekenonso) | 2021-06-15 | 2021-06-15 | 1 | 3.0 | ๐ŸŒ 3 | Top 13% | +| 11 | [@sm4rtdev](https://github.com/sm4rtdev) | 2025-04-01 | 2025-04-01 | 1 | 2.0 | ๐ŸŒ 2 | Top 15% | +| 12 | [@MichaelHinrichs](https://github.com/MichaelHinrichs) | 2024-11-08 | 2024-11-08 | 1 | 2.0 | ๐ŸŒ 2 | Top 16% | +| 13 | [@TheGuyDangerous](https://github.com/TheGuyDangerous) | 2024-09-20 | 2024-09-20 | 1 | 2.0 | ๐ŸŒ 2 | Top 17% | +| 14 | [@eugene4545](https://github.com/eugene4545) | 2024-06-02 | 2024-08-19 | 2 | 1.0 | ๐ŸŒ 2 | Top 19% | | 15 | [@anufdo](https://github.com/anufdo) | 2024-05-18 | 2024-07-13 | 2 | 1.0 | ๐ŸŒ 2 | Top 20% | -| 16 | [@eugene4545](https://github.com/eugene4545) | 2024-06-02 | 2024-08-19 | 2 | 1.0 | ๐ŸŒ 2 | Top 21% | +| 16 | [@alifiroozidev](https://github.com/alifiroozidev) | 2022-11-02 | 2022-11-02 | 1 | 2.0 | ๐ŸŒ 2 | Top 21% | | 17 | [@itsjoniur](https://github.com/itsjoniur) | 2022-09-03 | 2022-09-03 | 1 | 2.0 | ๐ŸŒ 2 | Top 23% | -| 18 | [@MichaelHinrichs](https://github.com/MichaelHinrichs) | 2024-11-08 | 2024-11-08 | 1 | 2.0 | ๐ŸŒ 2 | Top 24% | -| 19 | [@ps-19](https://github.com/ps-19) | 2021-08-06 | 2021-08-06 | 1 | 2.0 | ๐ŸŒ 2 | Top 25% | +| 18 | [@0xMRTT](https://github.com/0xMRTT) | 2022-08-07 | 2022-08-07 | 1 | 2.0 | ๐ŸŒ 2 | Top 24% | +| 19 | [@SushantAdh07](https://github.com/SushantAdh07) | 2022-01-23 | 2022-01-23 | 1 | 2.0 | ๐ŸŒ 2 | Top 25% | | 20 | [@rtewari056](https://github.com/rtewari056) | 2021-10-11 | 2021-10-11 | 1 | 2.0 | ๐ŸŒ 2 | Top 27% | -| 21 | [@sm4rtdev](https://github.com/sm4rtdev) | 2025-04-01 | 2025-04-01 | 1 | 2.0 | ๐ŸŒ 2 | Top 28% | -| 22 | [@SushantAdh07](https://github.com/SushantAdh07) | 2022-01-23 | 2022-01-23 | 1 | 2.0 | ๐ŸŒ 2 | Top 29% | -| 23 | [@TheGuyDangerous](https://github.com/TheGuyDangerous) | 2024-09-20 | 2024-09-20 | 1 | 2.0 | ๐ŸŒ 2 | Top 31% | +| 21 | [@yhdesai](https://github.com/yhdesai) | 2021-08-31 | 2021-08-31 | 1 | 2.0 | ๐ŸŒ 2 | Top 28% | +| 22 | [@ps-19](https://github.com/ps-19) | 2021-08-06 | 2021-08-06 | 1 | 2.0 | ๐ŸŒ 2 | Top 29% | +| 23 | [@abdorah](https://github.com/abdorah) | 2021-06-19 | 2021-06-23 | 2 | 1.0 | ๐ŸŒ 2 | Top 31% | | 24 | [@VictorAraica](https://github.com/VictorAraica) | 2021-06-18 | 2021-06-18 | 1 | 2.0 | ๐ŸŒ 2 | Top 32% | -| 25 | [@yhdesai](https://github.com/yhdesai) | 2021-08-31 | 2021-08-31 | 1 | 2.0 | ๐ŸŒ 2 | Top 33% | -| 26 | [@an1rxdh664](https://github.com/an1rxdh664) | 2026-01-28 | 2026-01-28 | 1 | 1.0 | ๐ŸŒ 1 | Top 35% | -| 27 | [@Anderson-Garcia](https://github.com/Anderson-Garcia) | 2021-06-17 | 2021-06-17 | 1 | 1.0 | ๐ŸŒ 1 | Top 36% | -| 28 | [@arthsaAr](https://github.com/arthsaAr) | 2026-01-28 | 2026-01-28 | 1 | 1.0 | ๐ŸŒ 1 | Top 37% | -| 29 | [@Barrerson](https://github.com/Barrerson) | 2022-02-11 | 2022-02-11 | 1 | 1.0 | ๐ŸŒ 1 | Top 39% | -| 30 | [@BDadmehr0](https://github.com/BDadmehr0) | 2026-02-01 | 2026-02-01 | 1 | 1.0 | ๐ŸŒ 1 | Top 40% | -| 31 | [@Cima9642](https://github.com/Cima9642) | 2026-01-27 | 2026-01-27 | 1 | 1.0 | ๐ŸŒ 1 | Top 41% | -| 32 | [@DipendraChandel](https://github.com/DipendraChandel) | 2026-02-04 | 2026-02-04 | 1 | 1.0 | ๐ŸŒ 1 | Top 43% | -| 33 | [@enimiste](https://github.com/enimiste) | 2021-06-15 | 2021-06-15 | 1 | 1.0 | ๐ŸŒ 1 | Top 44% | -| 34 | [@Favourene](https://github.com/Favourene) | 2021-10-30 | 2021-10-30 | 1 | 1.0 | ๐ŸŒ 1 | Top 45% | -| 35 | [@GabrielTheophilo](https://github.com/GabrielTheophilo) | 2022-04-17 | 2022-04-17 | 1 | 1.0 | ๐ŸŒ 1 | Top 47% | -| 36 | [@gakramx](https://github.com/gakramx) | 2021-06-19 | 2021-06-19 | 1 | 1.0 | ๐ŸŒ 1 | Top 48% | -| 37 | [@HammedBabatunde](https://github.com/HammedBabatunde) | 2021-10-10 | 2021-10-10 | 1 | 1.0 | ๐ŸŒ 1 | Top 49% | -| 38 | [@hariket-sheth1](https://github.com/hariket-sheth1) | 2021-12-30 | 2021-12-30 | 1 | 1.0 | ๐ŸŒ 1 | Top 51% | -| 39 | [@HITMAN5050](https://github.com/HITMAN5050) | 2026-02-03 | 2026-02-03 | 1 | 1.0 | ๐ŸŒ 1 | Top 52% | -| 40 | [@hunainanis](https://github.com/hunainanis) | 2021-06-25 | 2021-06-25 | 1 | 1.0 | ๐ŸŒ 1 | Top 53% | -| 41 | [@ierfaaan](https://github.com/ierfaaan) | 2021-08-06 | 2021-08-06 | 1 | 1.0 | ๐ŸŒ 1 | Top 55% | -| 42 | [@JayantGoel001](https://github.com/JayantGoel001) | 2021-06-25 | 2021-06-25 | 1 | 1.0 | ๐ŸŒ 1 | Top 56% | -| 43 | [@kaifansariw](https://github.com/kaifansariw) | 2026-01-28 | 2026-01-28 | 1 | 1.0 | ๐ŸŒ 1 | Top 57% | -| 44 | [@kenhorlador](https://github.com/kenhorlador) | 2022-02-02 | 2022-02-02 | 1 | 1.0 | ๐ŸŒ 1 | Top 59% | -| 45 | [@koolamusic](https://github.com/koolamusic) | 2021-08-30 | 2021-08-30 | 1 | 1.0 | ๐ŸŒ 1 | Top 60% | -| 46 | [@Majalian](https://github.com/Majalian) | 2021-06-17 | 2021-06-17 | 1 | 1.0 | ๐ŸŒ 1 | Top 61% | -| 47 | [@majidabdulred](https://github.com/majidabdulred) | 2021-06-17 | 2021-06-17 | 1 | 1.0 | ๐ŸŒ 1 | Top 63% | -| 48 | [@maurobalades-contributions](https://github.com/maurobalades-contributions) | 2021-12-30 | 2021-12-30 | 1 | 1.0 | ๐ŸŒ 1 | Top 64% | -| 49 | [@MaxCkett](https://github.com/MaxCkett) | 2022-02-06 | 2022-02-06 | 1 | 1.0 | ๐ŸŒ 1 | Top 65% | -| 50 | [@MaxianEdison](https://github.com/MaxianEdison) | 2022-03-02 | 2022-03-02 | 1 | 1.0 | ๐ŸŒ 1 | Top 67% | -| 51 | [@mohammadshaad](https://github.com/mohammadshaad) | 2023-05-29 | 2023-05-29 | 1 | 1.0 | ๐ŸŒ 1 | Top 68% | -| 52 | [@MohdRash](https://github.com/MohdRash) | 2025-09-22 | 2025-09-22 | 1 | 1.0 | ๐ŸŒ 1 | Top 69% | -| 53 | [@mr-cheffy](https://github.com/mr-cheffy) | 2024-08-07 | 2024-08-07 | 1 | 1.0 | ๐ŸŒ 1 | Top 71% | -| 54 | [@mujeebshk](https://github.com/mujeebshk) | 2024-06-07 | 2024-06-07 | 1 | 1.0 | ๐ŸŒ 1 | Top 72% | -| 55 | [@muntasiractive](https://github.com/muntasiractive) | 2026-03-05 | 2026-03-05 | 1 | 1.0 | ๐ŸŒ 1 | Top 73% | -| 56 | [@Muriturca](https://github.com/Muriturca) | 2021-06-14 | 2021-06-14 | 1 | 1.0 | ๐ŸŒ 1 | Top 75% | -| 57 | [@MutanPlex](https://github.com/MutanPlex) | 2024-10-27 | 2024-10-27 | 1 | 1.0 | ๐ŸŒ 1 | Top 76% | -| 58 | [@NeuroPeakX](https://github.com/NeuroPeakX) | 2025-10-14 | 2025-10-14 | 1 | 1.0 | ๐ŸŒ 1 | Top 77% | -| 59 | [@nikultaka](https://github.com/nikultaka) | 2026-01-28 | 2026-01-28 | 1 | 1.0 | ๐ŸŒ 1 | Top 79% | -| 60 | [@NimishKashyap](https://github.com/NimishKashyap) | 2022-02-07 | 2022-02-07 | 1 | 1.0 | ๐ŸŒ 1 | Top 80% | -| 61 | [@novalramdhani](https://github.com/novalramdhani) | 2022-01-18 | 2022-01-18 | 1 | 1.0 | ๐ŸŒ 1 | Top 81% | -| 62 | [@NS007-dev](https://github.com/NS007-dev) | 2021-09-11 | 2021-09-11 | 1 | 1.0 | ๐ŸŒ 1 | Top 83% | -| 63 | [@okxint](https://github.com/okxint) | 2026-03-22 | 2026-03-22 | 1 | 1.0 | ๐ŸŒ 1 | Top 84% | -| 64 | [@OrionFable](https://github.com/OrionFable) | 2025-03-26 | 2025-03-26 | 1 | 1.0 | ๐ŸŒ 1 | Top 85% | -| 65 | [@pratik-wadhai](https://github.com/pratik-wadhai) | 2023-03-03 | 2023-03-03 | 1 | 1.0 | ๐ŸŒ 1 | Top 87% | -| 66 | [@prio101](https://github.com/prio101) | 2021-06-17 | 2021-06-17 | 1 | 1.0 | ๐ŸŒ 1 | Top 88% | -| 67 | [@ra1nbow1](https://github.com/ra1nbow1) | 2021-06-18 | 2021-06-18 | 1 | 1.0 | ๐ŸŒ 1 | Top 89% | -| 68 | [@rubiin](https://github.com/rubiin) | 2023-05-22 | 2023-05-22 | 1 | 1.0 | ๐ŸŒ 1 | Top 91% | -| 69 | [@sbhatm1213](https://github.com/sbhatm1213) | 2024-05-18 | 2024-05-18 | 1 | 1.0 | ๐ŸŒ 1 | Top 92% | -| 70 | [@Sweetdevil144](https://github.com/Sweetdevil144) | 2023-10-23 | 2023-10-23 | 1 | 1.0 | ๐ŸŒ 1 | Top 93% | -| 71 | [@SyeddTaha](https://github.com/SyeddTaha) | 2026-04-03 | 2026-04-03 | 1 | 1.0 | ๐ŸŒ 1 | Top 95% | -| 72 | [@theashishgavade](https://github.com/theashishgavade) | 2022-08-13 | 2022-08-13 | 1 | 1.0 | ๐ŸŒ 1 | Top 96% | -| 73 | [@vinfinity7](https://github.com/vinfinity7) | 2023-10-25 | 2023-10-25 | 1 | 1.0 | ๐ŸŒ 1 | Top 97% | -| 74 | [@Yadavpreethi](https://github.com/Yadavpreethi) | 2026-01-28 | 2026-01-28 | 1 | 1.0 | ๐ŸŒ 1 | Top 99% | -| 75 | [@yazdanhaider](https://github.com/yazdanhaider) | 2024-08-24 | 2024-08-24 | 1 | 1.0 | ๐ŸŒ 1 | Top 100% | +| 25 | [@ajakov](https://github.com/ajakov) | 2021-06-17 | 2021-06-17 | 1 | 2.0 | ๐ŸŒ 2 | Top 33% | +| 26 | [@SyeddTaha](https://github.com/SyeddTaha) | 2026-04-03 | 2026-04-03 | 1 | 1.0 | ๐ŸŒ 1 | Top 35% | +| 27 | [@okxint](https://github.com/okxint) | 2026-03-22 | 2026-03-22 | 1 | 1.0 | ๐ŸŒ 1 | Top 36% | +| 28 | [@muntasiractive](https://github.com/muntasiractive) | 2026-03-05 | 2026-03-05 | 1 | 1.0 | ๐ŸŒ 1 | Top 37% | +| 29 | [@DipendraChandel](https://github.com/DipendraChandel) | 2026-02-04 | 2026-02-04 | 1 | 1.0 | ๐ŸŒ 1 | Top 39% | +| 30 | [@HITMAN5050](https://github.com/HITMAN5050) | 2026-02-03 | 2026-02-03 | 1 | 1.0 | ๐ŸŒ 1 | Top 40% | +| 31 | [@BDadmehr0](https://github.com/BDadmehr0) | 2026-02-01 | 2026-02-01 | 1 | 1.0 | ๐ŸŒ 1 | Top 41% | +| 32 | [@Yadavpreethi](https://github.com/Yadavpreethi) | 2026-01-28 | 2026-01-28 | 1 | 1.0 | ๐ŸŒ 1 | Top 43% | +| 33 | [@kaifansariw](https://github.com/kaifansariw) | 2026-01-28 | 2026-01-28 | 1 | 1.0 | ๐ŸŒ 1 | Top 44% | +| 34 | [@nikultaka](https://github.com/nikultaka) | 2026-01-28 | 2026-01-28 | 1 | 1.0 | ๐ŸŒ 1 | Top 45% | +| 35 | [@arthsaAr](https://github.com/arthsaAr) | 2026-01-28 | 2026-01-28 | 1 | 1.0 | ๐ŸŒ 1 | Top 47% | +| 36 | [@an1rxdh664](https://github.com/an1rxdh664) | 2026-01-28 | 2026-01-28 | 1 | 1.0 | ๐ŸŒ 1 | Top 48% | +| 37 | [@Cima9642](https://github.com/Cima9642) | 2026-01-27 | 2026-01-27 | 1 | 1.0 | ๐ŸŒ 1 | Top 49% | +| 38 | [@NeuroPeakX](https://github.com/NeuroPeakX) | 2025-10-14 | 2025-10-14 | 1 | 1.0 | ๐ŸŒ 1 | Top 51% | +| 39 | [@MohdRash](https://github.com/MohdRash) | 2025-09-22 | 2025-09-22 | 1 | 1.0 | ๐ŸŒ 1 | Top 52% | +| 40 | [@OrionFable](https://github.com/OrionFable) | 2025-03-26 | 2025-03-26 | 1 | 1.0 | ๐ŸŒ 1 | Top 53% | +| 41 | [@MutanPlex](https://github.com/MutanPlex) | 2024-10-27 | 2024-10-27 | 1 | 1.0 | ๐ŸŒ 1 | Top 55% | +| 42 | [@yazdanhaider](https://github.com/yazdanhaider) | 2024-08-24 | 2024-08-24 | 1 | 1.0 | ๐ŸŒ 1 | Top 56% | +| 43 | [@mr-cheffy](https://github.com/mr-cheffy) | 2024-08-07 | 2024-08-07 | 1 | 1.0 | ๐ŸŒ 1 | Top 57% | +| 44 | [@mujeebshk](https://github.com/mujeebshk) | 2024-06-07 | 2024-06-07 | 1 | 1.0 | ๐ŸŒ 1 | Top 59% | +| 45 | [@sbhatm1213](https://github.com/sbhatm1213) | 2024-05-18 | 2024-05-18 | 1 | 1.0 | ๐ŸŒ 1 | Top 60% | +| 46 | [@vinfinity7](https://github.com/vinfinity7) | 2023-10-25 | 2023-10-25 | 1 | 1.0 | ๐ŸŒ 1 | Top 61% | +| 47 | [@Sweetdevil144](https://github.com/Sweetdevil144) | 2023-10-23 | 2023-10-23 | 1 | 1.0 | ๐ŸŒ 1 | Top 63% | +| 48 | [@mohammadshaad](https://github.com/mohammadshaad) | 2023-05-29 | 2023-05-29 | 1 | 1.0 | ๐ŸŒ 1 | Top 64% | +| 49 | [@rubiin](https://github.com/rubiin) | 2023-05-22 | 2023-05-22 | 1 | 1.0 | ๐ŸŒ 1 | Top 65% | +| 50 | [@pratik-wadhai](https://github.com/pratik-wadhai) | 2023-03-03 | 2023-03-03 | 1 | 1.0 | ๐ŸŒ 1 | Top 67% | +| 51 | [@theashishgavade](https://github.com/theashishgavade) | 2022-08-13 | 2022-08-13 | 1 | 1.0 | ๐ŸŒ 1 | Top 68% | +| 52 | [@GabrielTheophilo](https://github.com/GabrielTheophilo) | 2022-04-17 | 2022-04-17 | 1 | 1.0 | ๐ŸŒ 1 | Top 69% | +| 53 | [@MaxianEdison](https://github.com/MaxianEdison) | 2022-03-02 | 2022-03-02 | 1 | 1.0 | ๐ŸŒ 1 | Top 71% | +| 54 | [@Barrerson](https://github.com/Barrerson) | 2022-02-11 | 2022-02-11 | 1 | 1.0 | ๐ŸŒ 1 | Top 72% | +| 55 | [@NimishKashyap](https://github.com/NimishKashyap) | 2022-02-07 | 2022-02-07 | 1 | 1.0 | ๐ŸŒ 1 | Top 73% | +| 56 | [@MaxCkett](https://github.com/MaxCkett) | 2022-02-06 | 2022-02-06 | 1 | 1.0 | ๐ŸŒ 1 | Top 75% | +| 57 | [@kenhorlador](https://github.com/kenhorlador) | 2022-02-02 | 2022-02-02 | 1 | 1.0 | ๐ŸŒ 1 | Top 76% | +| 58 | [@novalramdhani](https://github.com/novalramdhani) | 2022-01-18 | 2022-01-18 | 1 | 1.0 | ๐ŸŒ 1 | Top 77% | +| 59 | [@maurobalades-contributions](https://github.com/maurobalades-contributions) | 2021-12-30 | 2021-12-30 | 1 | 1.0 | ๐ŸŒ 1 | Top 79% | +| 60 | [@hariket-sheth1](https://github.com/hariket-sheth1) | 2021-12-30 | 2021-12-30 | 1 | 1.0 | ๐ŸŒ 1 | Top 80% | +| 61 | [@Favourene](https://github.com/Favourene) | 2021-10-30 | 2021-10-30 | 1 | 1.0 | ๐ŸŒ 1 | Top 81% | +| 62 | [@HammedBabatunde](https://github.com/HammedBabatunde) | 2021-10-10 | 2021-10-10 | 1 | 1.0 | ๐ŸŒ 1 | Top 83% | +| 63 | [@NS007-dev](https://github.com/NS007-dev) | 2021-09-11 | 2021-09-11 | 1 | 1.0 | ๐ŸŒ 1 | Top 84% | +| 64 | [@koolamusic](https://github.com/koolamusic) | 2021-08-30 | 2021-08-30 | 1 | 1.0 | ๐ŸŒ 1 | Top 85% | +| 65 | [@ierfaaan](https://github.com/ierfaaan) | 2021-08-06 | 2021-08-06 | 1 | 1.0 | ๐ŸŒ 1 | Top 87% | +| 66 | [@hunainanis](https://github.com/hunainanis) | 2021-06-25 | 2021-06-25 | 1 | 1.0 | ๐ŸŒ 1 | Top 88% | +| 67 | [@JayantGoel001](https://github.com/JayantGoel001) | 2021-06-25 | 2021-06-25 | 1 | 1.0 | ๐ŸŒ 1 | Top 89% | +| 68 | [@gakramx](https://github.com/gakramx) | 2021-06-19 | 2021-06-19 | 1 | 1.0 | ๐ŸŒ 1 | Top 91% | +| 69 | [@ra1nbow1](https://github.com/ra1nbow1) | 2021-06-18 | 2021-06-18 | 1 | 1.0 | ๐ŸŒ 1 | Top 92% | +| 70 | [@prio101](https://github.com/prio101) | 2021-06-17 | 2021-06-17 | 1 | 1.0 | ๐ŸŒ 1 | Top 93% | +| 71 | [@Anderson-Garcia](https://github.com/Anderson-Garcia) | 2021-06-17 | 2021-06-17 | 1 | 1.0 | ๐ŸŒ 1 | Top 95% | +| 72 | [@Majalian](https://github.com/Majalian) | 2021-06-17 | 2021-06-17 | 1 | 1.0 | ๐ŸŒ 1 | Top 96% | +| 73 | [@majidabdulred](https://github.com/majidabdulred) | 2021-06-17 | 2021-06-17 | 1 | 1.0 | ๐ŸŒ 1 | Top 97% | +| 74 | [@enimiste](https://github.com/enimiste) | 2021-06-15 | 2021-06-15 | 1 | 1.0 | ๐ŸŒ 1 | Top 99% | +| 75 | [@Muriturca](https://github.com/Muriturca) | 2021-06-14 | 2021-06-14 | 1 | 1.0 | ๐ŸŒ 1 | Top 100% | > ๐ŸŒ = site commits ยท โš™๏ธ = .github commits ยท ๐Ÿ“ = other repos diff --git a/scripts/leaderboard.py b/scripts/leaderboard.py index cbcd6c4..84b7884 100644 --- a/scripts/leaderboard.py +++ b/scripts/leaderboard.py @@ -3,7 +3,9 @@ import os import re import sys +import time import urllib.error +import urllib.parse import urllib.request import json from bisect import bisect_right @@ -15,6 +17,28 @@ README_PATH = os.path.join(os.path.dirname(__file__), "..", "profile", "README.md") LEADERBOARD_START = "" LEADERBOARD_END = "" +SPONSORS_START = "" +SPONSORS_END = "" + +# Maximum number of sponsor buttons to show in the showcase section. +MAX_SPONSOR_BUTTONS = 5 +# Only check the top N contributors for sponsors eligibility to avoid +# excessive API calls. Most sponsorable contributors will be near the top. +MAX_SPONSOR_SCAN_DEPTH = 50 +# Path for caching sponsors eligibility results between runs. +# In GitHub Actions the workspace is recreated each run, so place the cache +# in RUNNER_TEMP (per-job temp dir) to make it explicit it is single-run only. +# For local runs the cache lives next to the repo root for reuse between runs. +_SPONSORS_CACHE_FILENAME = ".sponsors_cache.json" +if os.environ.get("GITHUB_ACTIONS") == "true": + SPONSORS_CACHE_PATH = os.path.join( + os.environ.get("RUNNER_TEMP", os.path.dirname(__file__)), + _SPONSORS_CACHE_FILENAME, + ) +else: + SPONSORS_CACHE_PATH = os.path.join( + os.path.dirname(__file__), "..", _SPONSORS_CACHE_FILENAME + ) SITE_REPO_NAME = "NextCommunity.github.io" DOTGITHUB_REPO_NAME = ".github" @@ -692,6 +716,175 @@ def build_leaderboard(token=None): return sorted_contributors, had_errors, levels_data +# --- Sponsor button generation --- + +# Rotating color pairs (badge_color, label_color) used for the shields.io +# sponsor buttons so each contributor gets a distinct look. +_SPONSOR_COLORS = [ + ("ff6b6b", "feca57"), + ("ff9ff3", "48dbfb"), + ("54a0ff", "5f27cd"), + ("ee5a24", "10ac84"), + ("0abde3", "f368e0"), + ("6c5ce7", "fdcb6e"), + ("e17055", "00b894"), + ("fd79a8", "636e72"), +] + + +def _badge_escape(text): + """Escape characters that are special in shields.io badge URLs. + + Shields.io uses ``-`` as a separator and ``_`` as a space. Literal + hyphens must be doubled and literal underscores must be doubled too. + """ + return text.replace("-", "--").replace("_", "__") + + +def _load_sponsors_cache(): + """Load the sponsors eligibility cache from disk. + + Returns a dict mapping GitHub login to a cached boolean result. + Only entries with a string key and a boolean value are kept; corrupted + or invalid entries are silently dropped. + Returns an empty dict if the cache file does not exist or is invalid. + """ + try: + with open(SPONSORS_CACHE_PATH, "r", encoding="utf-8") as fh: + data = json.load(fh) + if isinstance(data, dict): + return { + login: eligible + for login, eligible in data.items() + if isinstance(login, str) and isinstance(eligible, bool) + } + except (FileNotFoundError, json.JSONDecodeError, OSError): + pass + return {} + + +def _save_sponsors_cache(cache): + """Persist the sponsors eligibility cache to disk.""" + try: + with open(SPONSORS_CACHE_PATH, "w", encoding="utf-8") as fh: + json.dump(cache, fh, indent=2, sort_keys=True) + except OSError as exc: + print(f" Warning: could not write sponsors cache: {exc}") + + +def has_sponsors_page(login, token=None): + """Check whether *login* has an active GitHub Sponsors page. + + Uses the ``GET /users/{login}`` endpoint and inspects the + ``has_sponsors_listing`` field from the GitHub REST API. + + Returns ``True`` if the user is sponsorable, ``False`` if the user + definitively has no sponsors listing (including a 404 response). + Raises :exc:`urllib.error.URLError` on transient errors (rate limits, + network failures, etc.) so that the caller can avoid caching incorrect + results. + """ + url = f"{API_URL}/users/{login}" + try: + data = gh_request(url, token) + if isinstance(data, dict): + return bool(data.get("has_sponsors_listing", False)) + except urllib.error.URLError as exc: + # A 404 means the user account was not found โ€” treat as not sponsorable. + # All other errors are transient and should be propagated to the caller. + cause = getattr(exc, "__cause__", None) + if isinstance(cause, urllib.error.HTTPError) and cause.code == 404: + return False + raise + return False + + +def generate_sponsors_html(contributors, token=None): + """Generate the HTML for the sponsors showcase buttons. + + Iterates through the top :data:`MAX_SPONSOR_SCAN_DEPTH` ranked + contributors and checks each one for an active GitHub Sponsors page. + Up to :data:`MAX_SPONSOR_BUTTONS` sponsorable contributors are included. + Inclusion and skip decisions are logged with ``print``. + + Previously cached eligibility results are loaded from + :data:`SPONSORS_CACHE_PATH` and re-used to avoid redundant API calls. + New results are written back to the cache after scanning. + + Returns the inner HTML (without the surrounding markers). + """ + rank_badges = {1: "๐Ÿฅ‡", 2: "๐Ÿฅˆ", 3: "๐Ÿฅ‰"} + lines = [ + '

', + ' ๐Ÿ† Featured Leaderboard Sponsors Showcase ๐Ÿ†
', + ' The first {n} contributors on our leaderboard who have ' + 'GitHub Sponsors profiles ' + 'get showcased here โ€” climb the ranks, enable Sponsors, and get ' + 'featured!'.format(n=MAX_SPONSOR_BUTTONS), + '

', + '

', + ] + + cache = _load_sponsors_cache() + shown = 0 + for rank, contrib in enumerate(contributors[:MAX_SPONSOR_SCAN_DEPTH], start=1): + if shown >= MAX_SPONSOR_BUTTONS: + break + login = contrib["login"] + # Use cache when available; otherwise query the API. + if login in cache: + eligible = cache[login] + else: + try: + eligible = has_sponsors_page(login, token) + # Only cache confirmed positive results. Negative results are + # re-checked on every run so that users who later enable Sponsors + # are picked up automatically. Errors are never cached so that + # a transient failure doesn't permanently suppress a sponsor. + if eligible: + cache[login] = eligible + # Brief pause between uncached API calls to be polite. + time.sleep(0.25) + except urllib.error.URLError as exc: + print(f" Warning: could not check sponsors for {login}: {exc}") + continue + if not eligible: + print(f" Skipping {login} (rank {rank}): no GitHub Sponsors page") + continue + print(f" Including {login} (rank {rank}): has GitHub Sponsors page") + badge_color, label_color = _SPONSOR_COLORS[ + shown % len(_SPONSOR_COLORS) + ] + rank_label = rank_badges.get(rank, "๐Ÿ…") + escaped = _badge_escape(login) + label = urllib.parse.quote( + f"๐Ÿ’–_Sponsor_{escaped}", safe="_-" + ) + message = urllib.parse.quote( + f"{rank_label}_Rank_{rank}", safe="_-" + ) + badge_url = ( + f"https://img.shields.io/badge/" + f"{label}-{message}-" + f"{badge_color}?style=for-the-badge&labelColor={label_color}" + ) + link = f"https://github.com/sponsors/{login}" + if shown > 0: + lines.append('
') + lines.append( + f' \n' + f' Sponsor {login}' + ) + shown += 1 + _save_sponsors_cache(cache) + + if shown == 0: + return "" + + lines.append('

') + return "\n".join(lines) + + def generate_markdown(contributors, levels_data): """Generate a gamified markdown leaderboard from contributor data.""" rank_badges = {1: "๐Ÿฅ‡", 2: "๐Ÿฅˆ", 3: "๐Ÿฅ‰"} @@ -913,34 +1106,57 @@ def generate_markdown(contributors, levels_data): return "\n".join(lines) -def update_readme(leaderboard_md): - """Update the profile README with the leaderboard content.""" - with open(README_PATH, "r", encoding="utf-8") as f: - content = f.read() +def _replace_section(content, start_marker, end_marker, new_inner): + """Replace content between *start_marker* and *end_marker*. - start_idx = content.find(LEADERBOARD_START) - end_idx = content.find(LEADERBOARD_END, start_idx) if start_idx != -1 else -1 + Returns the updated string. If both markers are missing the section is + appended. If only one marker is present an error is printed and *None* + is returned. + """ + start_idx = content.find(start_marker) + end_idx = content.find(end_marker, start_idx) if start_idx != -1 else -1 if start_idx != -1 and end_idx != -1: before = content[:start_idx] - after = content[end_idx + len(LEADERBOARD_END) :] - new_content = ( - f"{before}{LEADERBOARD_START}\n" - f"{leaderboard_md}\n" - f"{LEADERBOARD_END}{after}" + after = content[end_idx + len(end_marker):] + return ( + f"{before}{start_marker}\n" + f"{new_inner}\n" + f"{end_marker}{after}" ) - elif start_idx == -1 and end_idx == -1: - new_content = ( + if start_idx == -1 and end_idx == -1: + return ( f"{content.rstrip()}\n\n" - f"{LEADERBOARD_START}\n" - f"{leaderboard_md}\n" - f"{LEADERBOARD_END}\n" + f"{start_marker}\n" + f"{new_inner}\n" + f"{end_marker}\n" ) - else: - print(f"Error: Mismatched leaderboard markers in {README_PATH}", file=sys.stderr) + print( + f"Error: Mismatched markers ({start_marker} / {end_marker}) in {README_PATH}", + file=sys.stderr, + ) + return None + + +def update_readme(leaderboard_md, sponsors_html=None): + """Update the profile README with the leaderboard and sponsors content.""" + with open(README_PATH, "r", encoding="utf-8") as f: + content = f.read() + + # Update sponsors section first (appears earlier in the file). + if sponsors_html is not None: + result = _replace_section(content, SPONSORS_START, SPONSORS_END, sponsors_html) + if result is None: + return + content = result + + # Update leaderboard section. + result = _replace_section(content, LEADERBOARD_START, LEADERBOARD_END, leaderboard_md) + if result is None: return + content = result with open(README_PATH, "w", encoding="utf-8") as f: - f.write(new_content) + f.write(content) print(f"Updated {README_PATH}") @@ -964,7 +1180,9 @@ def main(): sys.exit(0) leaderboard_md = generate_markdown(contributors, levels_data) - update_readme(leaderboard_md) + print("Checking GitHub Sponsors status for top contributors...") + sponsors_html = generate_sponsors_html(contributors, token=token) + update_readme(leaderboard_md, sponsors_html=sponsors_html) print(f"Leaderboard updated with {len(contributors)} contributors.")