From f9df323fcc9b34eaba3ba01d3a9312b2fe9d425c Mon Sep 17 00:00:00 2001 From: Simon Lecoq <22963968+lowlighter@users.noreply.github.com> Date: Sat, 31 Jul 2021 15:08:08 +0200 Subject: [PATCH] Achievements plugin: Add S rank (#435) --- .../readme/imgs/plugin_achievements_ranks.png | Bin 0 -> 10300 bytes source/plugins/achievements/README.md | 9 +++++ source/plugins/achievements/index.mjs | 6 ++-- .../achievements/list/organizations.mjs | 20 +++++------ source/plugins/achievements/list/users.mjs | 34 +++++++++--------- source/plugins/achievements/metadata.yml | 1 + source/templates/classic/style.css | 7 ++-- 7 files changed, 43 insertions(+), 34 deletions(-) create mode 100644 .github/readme/imgs/plugin_achievements_ranks.png diff --git a/.github/readme/imgs/plugin_achievements_ranks.png b/.github/readme/imgs/plugin_achievements_ranks.png new file mode 100644 index 0000000000000000000000000000000000000000..d63a3907c875cecba41680cf1abc0942e9a64667 GIT binary patch literal 10300 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 (order[a.rank] >= order[threshold]) || ((a.rank === "$") && (secrets))) .filter(a => (!only.length) || ((only.length) && (only.includes(a.title.toLocaleLowerCase())))) @@ -41,7 +41,9 @@ export default async function({login, q, imports, data, computed, graphql, queri } /**Rank */ -function rank(x, [c, b, a, m]) { +function rank(x, [c, b, a, s, m]) { + if (x >= s) + return {rank:"S", progress:(x - s) / (m - s)} if (x >= a) return {rank:"A", progress:(x - a) / (m - a)} else if (x >= b) diff --git a/source/plugins/achievements/list/organizations.mjs b/source/plugins/achievements/list/organizations.mjs index 0efc7b93..5eec8bdb 100644 --- a/source/plugins/achievements/list/organizations.mjs +++ b/source/plugins/achievements/list/organizations.mjs @@ -14,7 +14,7 @@ export default async function({list, login, data, computed, imports, graphql, qu title:"Developers", text:`Published ${value} public repositor${imports.s(value, "y")}`, icon:'', - ...rank(value, [1, 50, 100, 200]), + ...rank(value, [1, 50, 100, 200, 300]), value, unlock:new Date(unlock?.createdAt), leaderboard:leaderboard({user:ranks.created_rank.userCount, requirement:scores.created >= requirements.created, type:"users"}), @@ -29,7 +29,7 @@ export default async function({list, login, data, computed, imports, graphql, qu title:"Forkers", text:`Forked ${value} public repositor${imports.s(value, "y")}`, icon:'', - ...rank(value, [1, 10, 30, 50]), + ...rank(value, [1, 10, 30, 50, 100]), value, unlock:new Date(unlock?.createdAt), }) @@ -44,7 +44,7 @@ export default async function({list, login, data, computed, imports, graphql, qu title:"Managers", text:`Created ${value} user project${imports.s(value)}`, icon:'', - ...rank(value, [1, 2, 4, 8]), + ...rank(value, [1, 2, 4, 8, 10]), value, unlock:new Date(unlock?.createdAt), }) @@ -59,7 +59,7 @@ export default async function({list, login, data, computed, imports, graphql, qu title:"Packagers", text:`Created ${value} package${imports.s(value)}`, icon:'', - ...rank(value, [1, 20, 50, 100]), + ...rank(value, [1, 20, 50, 100, 250]), value, unlock:new Date(unlock?.createdAt), }) @@ -74,7 +74,7 @@ export default async function({list, login, data, computed, imports, graphql, qu title:"Maintainers", text:`Maintaining a repository with ${value} star${imports.s(value)}`, icon:'', - ...rank(value, [1, 5000, 10000, 30000]), + ...rank(value, [1, 5000, 10000, 30000, 50000]), value, unlock:new Date(unlock?.createdAt), leaderboard:leaderboard({user:ranks.repo_rank.repositoryCount, requirement:scores.stars >= requirements.stars, type:"repositories"}), @@ -89,7 +89,7 @@ export default async function({list, login, data, computed, imports, graphql, qu title:"Inspirationers", text:`Maintaining a repository which has been forked ${value} time${imports.s(value)}`, icon:'', - ...rank(value, [1, 500, 1000, 3000]), + ...rank(value, [1, 500, 1000, 3000, 5000]), value, unlock:new Date(unlock?.createdAt), leaderboard:leaderboard({user:ranks.forks_rank.repositoryCount, requirement:scores.forks >= requirements.forks, type:"repositories"}), @@ -105,7 +105,7 @@ export default async function({list, login, data, computed, imports, graphql, qu title:"Polyglots", text:`Using ${value} different programming language${imports.s(value)}`, icon:'', - ...rank(value, [1, 8, 16, 32]), + ...rank(value, [1, 8, 16, 32, 64]), value, unlock:new Date(unlock?.createdAt), }) @@ -120,7 +120,7 @@ export default async function({list, login, data, computed, imports, graphql, qu title:"Sponsors", text:`Sponsoring ${value} user${imports.s(value)} or organization${imports.s(value)}`, icon:'', - ...rank(value, [1, 5, 10, 20]), + ...rank(value, [1, 5, 10, 20, 50]), value, unlock:new Date(unlock?.createdAt), }) @@ -135,7 +135,7 @@ export default async function({list, login, data, computed, imports, graphql, qu title:"Organization", text:`Has ${value} member${imports.s(value)}`, icon:'', - ...rank(value, [1, 100, 500, 1000]), + ...rank(value, [1, 100, 500, 1000, 2500]), value, unlock:new Date(unlock?.createdAt), }) @@ -150,7 +150,7 @@ export default async function({list, login, data, computed, imports, graphql, qu title:"Member", text:`Registered ${Math.floor(value)} year${imports.s(Math.floor(value))} ago`, icon:'', - ...rank(value, [1, 3, 5, 10]), + ...rank(value, [1, 3, 5, 10, 15]), value, unlock:new Date(unlock?.createdAt), }) diff --git a/source/plugins/achievements/list/users.mjs b/source/plugins/achievements/list/users.mjs index ff077040..34ae49a8 100644 --- a/source/plugins/achievements/list/users.mjs +++ b/source/plugins/achievements/list/users.mjs @@ -14,7 +14,7 @@ export default async function({list, login, data, computed, imports, graphql, qu title:"Developer", text:`Published ${value} public repositor${imports.s(value, "y")}`, icon:'', - ...rank(value, [1, 20, 50, 100]), + ...rank(value, [1, 20, 50, 100, 250]), value, unlock:new Date(unlock?.createdAt), leaderboard:leaderboard({user:ranks.created_rank.userCount, requirement:scores.created >= requirements.created, type:"users"}), @@ -29,7 +29,7 @@ export default async function({list, login, data, computed, imports, graphql, qu title:"Forker", text:`Forked ${value} public repositor${imports.s(value, "y")}`, icon:'', - ...rank(value, [1, 5, 10, 20]), + ...rank(value, [1, 5, 10, 20, 50]), value, unlock:new Date(unlock?.createdAt), }) @@ -44,7 +44,7 @@ export default async function({list, login, data, computed, imports, graphql, qu title:"Contributor", text:`Opened ${value} pull request${imports.s(value)}`, icon:'', - ...rank(value, [1, 200, 500, 1000]), + ...rank(value, [1, 200, 500, 1000, 2500]), value, unlock:new Date(unlock?.createdAt), }) @@ -59,7 +59,7 @@ export default async function({list, login, data, computed, imports, graphql, qu title:"Manager", text:`Created ${value} user project${imports.s(value)}`, icon:'', - ...rank(value, [1, 2, 3, 4]), + ...rank(value, [1, 2, 3, 4, 5]), value, unlock:new Date(unlock?.createdAt), }) @@ -74,7 +74,7 @@ export default async function({list, login, data, computed, imports, graphql, qu title:"Reviewer", text:`Reviewed ${value} pull request${imports.s(value)}`, icon:'', - ...rank(value, [1, 200, 500, 1000]), + ...rank(value, [1, 200, 500, 1000, 2500]), value, unlock:new Date(unlock?.createdAt), }) @@ -89,7 +89,7 @@ export default async function({list, login, data, computed, imports, graphql, qu title:"Packager", text:`Created ${value} package${imports.s(value)}`, icon:'', - ...rank(value, [1, 5, 10, 20]), + ...rank(value, [1, 5, 10, 20, 30]), value, unlock:new Date(unlock?.createdAt), }) @@ -104,7 +104,7 @@ export default async function({list, login, data, computed, imports, graphql, qu title:"Scripter", text:`Published ${value} gist${imports.s(value)}`, icon:'', - ...rank(value, [1, 20, 50, 100]), + ...rank(value, [1, 20, 50, 100, 250]), value, unlock:new Date(unlock?.createdAt), }) @@ -119,7 +119,7 @@ export default async function({list, login, data, computed, imports, graphql, qu title:"Worker", text:`Joined ${value} organization${imports.s(value)}`, icon:'', - ...rank(value, [1, 2, 4, 8]), + ...rank(value, [1, 2, 4, 8, 10]), value, unlock:new Date(unlock?.createdAt), }) @@ -134,7 +134,7 @@ export default async function({list, login, data, computed, imports, graphql, qu title:"Stargazer", text:`Starred ${value} repositor${imports.s(value, "y")}`, icon:'', - ...rank(value, [1, 200, 500, 1000]), + ...rank(value, [1, 200, 500, 1000, 2500]), value, unlock:new Date(unlock?.createdAt), }) @@ -149,7 +149,7 @@ export default async function({list, login, data, computed, imports, graphql, qu title:"Follower", text:`Following ${value} user${imports.s(value)}`, icon:'', - ...rank(value, [1, 200, 500, 1000]), + ...rank(value, [1, 200, 500, 1000, 2500]), value, unlock:new Date(unlock?.createdAt), }) @@ -164,7 +164,7 @@ export default async function({list, login, data, computed, imports, graphql, qu title:"Influencer", text:`Followed by ${value} user${imports.s(value)}`, icon:'', - ...rank(value, [1, 200, 500, 1000]), + ...rank(value, [1, 200, 500, 1000, 2500]), value, unlock:new Date(unlock?.createdAt), leaderboard:leaderboard({user:ranks.user_rank.userCount, requirement:scores.followers >= requirements.followers, type:"users"}), @@ -180,7 +180,7 @@ export default async function({list, login, data, computed, imports, graphql, qu title:"Maintainer", text:`Maintaining a repository with ${value} star${imports.s(value)}`, icon:'', - ...rank(value, [1, 1000, 5000, 10000]), + ...rank(value, [1, 1000, 5000, 10000, 25000]), value, unlock:new Date(unlock?.createdAt), leaderboard:leaderboard({user:ranks.repo_rank.repositoryCount, requirement:scores.stars >= requirements.stars, type:"repositories"}), @@ -195,7 +195,7 @@ export default async function({list, login, data, computed, imports, graphql, qu title:"Inspirationer", text:`Maintaining a repository which has been forked ${value} time${imports.s(value)}`, icon:'', - ...rank(value, [1, 100, 500, 1000]), + ...rank(value, [1, 100, 500, 1000, 2500]), value, unlock:new Date(unlock?.createdAt), leaderboard:leaderboard({user:ranks.forks_rank.repositoryCount, requirement:scores.forks >= requirements.forks, type:"repositories"}), @@ -211,7 +211,7 @@ export default async function({list, login, data, computed, imports, graphql, qu title:"Polyglot", text:`Using ${value} different programming language${imports.s(value)}`, icon:'', - ...rank(value, [1, 4, 8, 16]), + ...rank(value, [1, 4, 8, 16, 32]), value, unlock:new Date(unlock?.createdAt), }) @@ -226,7 +226,7 @@ export default async function({list, login, data, computed, imports, graphql, qu title:"Member", text:`Registered ${Math.floor(value)} year${imports.s(Math.floor(value))} ago`, icon:'', - ...rank(value, [1, 3, 5, 10]), + ...rank(value, [1, 3, 5, 10, 15]), value, unlock:new Date(unlock?.createdAt), }) @@ -241,7 +241,7 @@ export default async function({list, login, data, computed, imports, graphql, qu title:"Sponsor", text:`Sponsoring ${value} user${imports.s(value)} or organization${imports.s(value)}`, icon:'', - ...rank(value, [1, 3, 5, 10]), + ...rank(value, [1, 3, 5, 10, 25]), value, unlock:new Date(unlock?.createdAt), }) @@ -256,7 +256,7 @@ export default async function({list, login, data, computed, imports, graphql, qu title:"Deployer", text:`Repositories have been deployed ${value} time${imports.s(value)}`, icon:'', - ...rank(value, [1, 200, 500, 1000]), + ...rank(value, [1, 200, 500, 1000, 2500]), value, unlock:new Date(unlock?.createdAt), }) diff --git a/source/plugins/achievements/metadata.yml b/source/plugins/achievements/metadata.yml index 9eb5bdb9..12713e2d 100644 --- a/source/plugins/achievements/metadata.yml +++ b/source/plugins/achievements/metadata.yml @@ -19,6 +19,7 @@ inputs: type: string default: C values: + - S - A - B - C diff --git a/source/templates/classic/style.css b/source/templates/classic/style.css index 619aa05c..d4351292 100644 --- a/source/templates/classic/style.css +++ b/source/templates/classic/style.css @@ -1013,13 +1013,10 @@ color: #E7BD69; } .achievement.s .title { - color: #FF0000; + color: #EB355E; } .achievement.s .gauge.info { - color: #FF0000; - } - .achievement.s .icon { - filter: sepia() saturate(100); + color: #EB355E; } .achievement.secret .title{ color: #FF76CD;