From d19b125618f13b9689a15256dab17dfca89dcafa Mon Sep 17 00:00:00 2001 From: CenTdemeern1 Date: Sat, 7 Dec 2024 19:47:32 +0100 Subject: [PATCH 1/6] Data driven about page sections --- packages/frontend/src/pages/about-sharkey.vue | 250 +++++++++++------- 1 file changed, 149 insertions(+), 101 deletions(-) diff --git a/packages/frontend/src/pages/about-sharkey.vue b/packages/frontend/src/pages/about-sharkey.vue index 7ebae62a7b..8c295971eb 100644 --- a/packages/frontend/src/pages/about-sharkey.vue +++ b/packages/frontend/src/pages/about-sharkey.vue @@ -74,108 +74,15 @@ SPDX-License-Identifier: AGPL-3.0-only - - + +
- - - @dakkar - - - - @supakaity - - - - @julia - - - - @Leah - - - - @fEmber - - - - @tess - - - - @Marie - - - - @Luna + + + {{ person.handle }}
- -
- - -
- - - @lucent - - - - @privateger - - - - @phoenix_fairy - -
-
- - -
- - - @syuilo - - - - @tamaina - - - - @acid-chicken - - - - @kakkokari-gtyih - - - - @tai-cha - - - - @samunohito - - - - @anatawa12 - -
-
- - -
- - - - {{ sponsor.name }} - - -
+
@@ -201,15 +108,156 @@ import { definePageMetadata } from '@/scripts/page-metadata.js'; import { claimAchievement, claimedAchievements } from '@/scripts/achievements.js'; import { $i } from '@/account.js'; +type Section = { + heading: string, + link?: { + label: string, + url: string, + }, + people: { + handle: string, + avatar: string, + link?: string + }[], +}; + const thereIsTreasure = ref($i && !claimedAchievements.includes('foundTreasure')); let easterEggReady = false; const easterEggEmojis = ref([]); const easterEggEngine = ref(null); -const sponsors = ref([]); +const everyone = ref([ + { + heading: i18n.ts._aboutMisskey.projectMembers, + link: { + label: i18n.ts._aboutMisskey.allContributors, + url: 'https://activitypub.software/TransFem-org/Sharkey/-/graphs/develop', + }, + people: [ + { + handle: '@CenTdemeern1', + avatar: 'https://secure.gravatar.com/avatar/e97dd57d32caf703cea556ace6304617b7420f17f5b1aac4a1eea8e4234735bb?s=1600&d=identicon', + link: 'https://activitypub.software/CenTdemeern1', + }, + { + handle: '@dakkar', + avatar: 'https://secure.gravatar.com/avatar/c71b315eed7c63ff94c42b1b3e8dbad1?s=192&d=identicon', + link: 'https://activitypub.software/dakkar', + }, + { + handle: '@fEmber', + avatar: 'https://secure.gravatar.com/avatar/ea0ea6451fdb74311efad369bdce018e?s=80&d=identicon', + link: 'https://activitypub.software/fEmber', + }, + { + handle: '@julia', + avatar: 'https://activitypub.software/uploads/-/system/user/avatar/41/avatar.png?width=40', + link: 'https://activitypub.software/julia', + }, + { + handle: '@Leah', + avatar: 'https://secure.gravatar.com/avatar/3b35b921b284ccfd1fe348508f6f705b?s=80&d=identicon', + link: 'https://activitypub.software/Leah', + }, + { + handle: '@Luna', + avatar: 'https://secure.gravatar.com/avatar/4faf37df86a3d93a6c19ed6abf8588eade4efb837410dbbc53021b4fd12eaae7?s=80&d=identicon', + link: 'https://activitypub.software/luna', + }, + { + handle: '@Marie', + avatar: 'https://activitypub.software/uploads/-/system/user/avatar/2/avatar.png?width=128', + link: 'https://activitypub.software/marie', + }, + { + handle: '@supakaity', + avatar: 'https://activitypub.software/uploads/-/system/user/avatar/65/avatar.png?width=40', + link: 'https://activitypub.software/supakaity', + }, + { + handle: '@tess', + avatar: 'https://activitypub.software/uploads/-/system/user/avatar/132/avatar.png?width=128', + link: 'https://activitypub.software/tess', + }, + ], + }, + { + heading: i18n.ts._aboutMisskey.testers, + people: [ + { + handle: '@lucent', + avatar: 'https://antani.cyou/proxy/avatar.webp?url=https%3A%2F%2Fantani.cyou%2Ffiles%2Fa2944119-024c-4abd-86e5-64bf0d30b26f&avatar=1', + link: 'https://antani.cyou/@lucent', + }, + { + handle: '@privateger', + avatar: 'https://mediaproxy.plasmatrap.com/?url=https%3A%2F%2Fplasmatrap.com%2Ffiles%2F2cf35a8f-6520-4d4c-9611-bf22ee983293&avatar=1', + link: 'https://plasmatrap.com/@privateger', + }, + { + handle: '@phoenix_fairy', + avatar: 'https://thetransagenda.gay/proxy/avatar.webp?url=https%3A%2F%2Fs3.us-east-005.backblazeb2.com%2Ftranssharkey%2Fnull%2Fd93ac6dc-2020-4b5a-bce7-84b41e97a0ac.png&avatar=1', + link: 'https://thetransagenda.gay/@phoenix_fairy', + }, + ], + }, + { + heading: 'Misskey Contributors', + people: [ + { + handle: '@syuilo', + avatar: 'https://avatars.githubusercontent.com/u/4439005?v=4', + link: 'https://github.com/syuilo', + }, + { + handle: '@tamaina', + avatar: 'https://avatars.githubusercontent.com/u/7973572?v=4', + link: 'https://github.com/tamaina', + }, + { + handle: '@acid-chicken', + avatar: 'https://avatars.githubusercontent.com/u/20679825?v=4', + link: 'https://github.com/acid-chicken', + }, + { + handle: '@kakkokari-gtyih', + avatar: 'https://avatars.githubusercontent.com/u/67428053?v=4', + link: 'https://github.com/kakkokari-gtyih', + }, + { + handle: '@tai-cha', + avatar: 'https://avatars.githubusercontent.com/u/40626578?v=4', + link: 'https://github.com/tai-cha', + }, + { + handle: '@samunohito', + avatar: 'https://avatars.githubusercontent.com/u/46447427?v=4', + link: 'https://github.com/samunohito', + }, + { + handle: '@anatawa12', + avatar: 'https://avatars.githubusercontent.com/u/22656849?v=4', + link: 'https://github.com/anatawa12', + }, + ], + }, +]); const containerEl = shallowRef(); -await misskeyApi('sponsors', { forceUpdate: false }).then((res) => sponsors.value.push(res.sponsor_data)); +await misskeyApi('sponsors', { forceUpdate: false }).then((res) => { + const section: Section = { + heading: 'Our lovely Sponsors', + people: [], + }; + for (const sponsor of res.sponsor_data) { + section.people.push({ + handle: sponsor.name, + avatar: sponsor.image || `https://ui-avatars.com/api/?background=0D8ABC&color=fff&name=${sponsor.name}`, + link: sponsor.website || sponsor.profile, + }); + } + everyone.value.push(section); +}); function iconLoaded() { const emojis = defaultStore.state.reactions; From 88125b887f2b60c80e871fbadb080b3278651f91 Mon Sep 17 00:00:00 2001 From: CenTdemeern1 Date: Sun, 8 Dec 2024 14:42:03 +0100 Subject: [PATCH 2/6] Shuffle Sharkey contributors using Fisher-Yates --- packages/frontend/src/pages/about-sharkey.vue | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/packages/frontend/src/pages/about-sharkey.vue b/packages/frontend/src/pages/about-sharkey.vue index 8c295971eb..9452a5d046 100644 --- a/packages/frontend/src/pages/about-sharkey.vue +++ b/packages/frontend/src/pages/about-sharkey.vue @@ -133,7 +133,7 @@ const everyone = ref([ label: i18n.ts._aboutMisskey.allContributors, url: 'https://activitypub.software/TransFem-org/Sharkey/-/graphs/develop', }, - people: [ + people: fisher_yates([ { handle: '@CenTdemeern1', avatar: 'https://secure.gravatar.com/avatar/e97dd57d32caf703cea556ace6304617b7420f17f5b1aac4a1eea8e4234735bb?s=1600&d=identicon', @@ -179,7 +179,7 @@ const everyone = ref([ avatar: 'https://activitypub.software/uploads/-/system/user/avatar/132/avatar.png?width=128', link: 'https://activitypub.software/tess', }, - ], + ]), }, { heading: i18n.ts._aboutMisskey.testers, @@ -259,6 +259,19 @@ await misskeyApi('sponsors', { forceUpdate: false }).then((res) => { everyone.value.push(section); }); +/** + * Based on the pseudocode description from Wikipedia: + * https://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle + * Modifies the array in-place, but still returns it for the sake of convenience + */ +function fisher_yates(array: T[]): T[] { + for (let i = array.length - 1; i > 0; i--) { + const j = Math.floor(Math.random() * (i + 1)); + [array[i], array[j]] = [array[j], array[i]]; + } + return array; +} + function iconLoaded() { const emojis = defaultStore.state.reactions; const containerWidth = containerEl.value.offsetWidth; From 8e505336ae2fb8a7d587610331d8056b58da20ab Mon Sep 17 00:00:00 2001 From: CenTdemeern1 Date: Sun, 8 Dec 2024 14:26:30 +0100 Subject: [PATCH 3/6] Update Hazel's information --- packages/frontend/src/pages/about-sharkey.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/frontend/src/pages/about-sharkey.vue b/packages/frontend/src/pages/about-sharkey.vue index 9452a5d046..fc358a6176 100644 --- a/packages/frontend/src/pages/about-sharkey.vue +++ b/packages/frontend/src/pages/about-sharkey.vue @@ -145,8 +145,8 @@ const everyone = ref([ link: 'https://activitypub.software/dakkar', }, { - handle: '@fEmber', - avatar: 'https://secure.gravatar.com/avatar/ea0ea6451fdb74311efad369bdce018e?s=80&d=identicon', + handle: '@hazelnoot', + avatar: 'https://activitypub.software/uploads/-/system/user/avatar/5/avatar.png?width=192', link: 'https://activitypub.software/fEmber', }, { From 8a6970255de005078bbe687ce7d8846cc1c550a7 Mon Sep 17 00:00:00 2001 From: CenTdemeern1 Date: Sun, 8 Dec 2024 14:48:47 +0100 Subject: [PATCH 4/6] Make everyone's pfp sizes consistent --- packages/frontend/src/pages/about-sharkey.vue | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/packages/frontend/src/pages/about-sharkey.vue b/packages/frontend/src/pages/about-sharkey.vue index fc358a6176..d46868c0e0 100644 --- a/packages/frontend/src/pages/about-sharkey.vue +++ b/packages/frontend/src/pages/about-sharkey.vue @@ -136,32 +136,32 @@ const everyone = ref([ people: fisher_yates([ { handle: '@CenTdemeern1', - avatar: 'https://secure.gravatar.com/avatar/e97dd57d32caf703cea556ace6304617b7420f17f5b1aac4a1eea8e4234735bb?s=1600&d=identicon', + avatar: 'https://secure.gravatar.com/avatar/e97dd57d32caf703cea556ace6304617b7420f17f5b1aac4a1eea8e4234735bb?s=128&d=identicon', link: 'https://activitypub.software/CenTdemeern1', }, { handle: '@dakkar', - avatar: 'https://secure.gravatar.com/avatar/c71b315eed7c63ff94c42b1b3e8dbad1?s=192&d=identicon', + avatar: 'https://secure.gravatar.com/avatar/c71b315eed7c63ff94c42b1b3e8dbad1?s=128&d=identicon', link: 'https://activitypub.software/dakkar', }, { handle: '@hazelnoot', - avatar: 'https://activitypub.software/uploads/-/system/user/avatar/5/avatar.png?width=192', + avatar: 'https://activitypub.software/uploads/-/system/user/avatar/5/avatar.png?width=128', link: 'https://activitypub.software/fEmber', }, { handle: '@julia', - avatar: 'https://activitypub.software/uploads/-/system/user/avatar/41/avatar.png?width=40', + avatar: 'https://activitypub.software/uploads/-/system/user/avatar/41/avatar.png?width=128', link: 'https://activitypub.software/julia', }, { handle: '@Leah', - avatar: 'https://secure.gravatar.com/avatar/3b35b921b284ccfd1fe348508f6f705b?s=80&d=identicon', + avatar: 'https://secure.gravatar.com/avatar/3b35b921b284ccfd1fe348508f6f705b?s=128&d=identicon', link: 'https://activitypub.software/Leah', }, { handle: '@Luna', - avatar: 'https://secure.gravatar.com/avatar/4faf37df86a3d93a6c19ed6abf8588eade4efb837410dbbc53021b4fd12eaae7?s=80&d=identicon', + avatar: 'https://secure.gravatar.com/avatar/4faf37df86a3d93a6c19ed6abf8588eade4efb837410dbbc53021b4fd12eaae7?s=128&d=identicon', link: 'https://activitypub.software/luna', }, { @@ -171,7 +171,7 @@ const everyone = ref([ }, { handle: '@supakaity', - avatar: 'https://activitypub.software/uploads/-/system/user/avatar/65/avatar.png?width=40', + avatar: 'https://activitypub.software/uploads/-/system/user/avatar/65/avatar.png?width=128', link: 'https://activitypub.software/supakaity', }, { @@ -206,37 +206,37 @@ const everyone = ref([ people: [ { handle: '@syuilo', - avatar: 'https://avatars.githubusercontent.com/u/4439005?v=4', + avatar: 'https://avatars.githubusercontent.com/u/4439005?s=128&v=4', link: 'https://github.com/syuilo', }, { handle: '@tamaina', - avatar: 'https://avatars.githubusercontent.com/u/7973572?v=4', + avatar: 'https://avatars.githubusercontent.com/u/7973572?s=128&v=4', link: 'https://github.com/tamaina', }, { handle: '@acid-chicken', - avatar: 'https://avatars.githubusercontent.com/u/20679825?v=4', + avatar: 'https://avatars.githubusercontent.com/u/20679825?s=128&v=4', link: 'https://github.com/acid-chicken', }, { handle: '@kakkokari-gtyih', - avatar: 'https://avatars.githubusercontent.com/u/67428053?v=4', + avatar: 'https://avatars.githubusercontent.com/u/67428053?s=128&v=4', link: 'https://github.com/kakkokari-gtyih', }, { handle: '@tai-cha', - avatar: 'https://avatars.githubusercontent.com/u/40626578?v=4', + avatar: 'https://avatars.githubusercontent.com/u/40626578?s=128&v=4', link: 'https://github.com/tai-cha', }, { handle: '@samunohito', - avatar: 'https://avatars.githubusercontent.com/u/46447427?v=4', + avatar: 'https://avatars.githubusercontent.com/u/46447427?s=128&v=4', link: 'https://github.com/samunohito', }, { handle: '@anatawa12', - avatar: 'https://avatars.githubusercontent.com/u/22656849?v=4', + avatar: 'https://avatars.githubusercontent.com/u/22656849?s=128&v=4', link: 'https://github.com/anatawa12', }, ], From 57a62832e5f9531b73deaa3051ad5d1398b8aa9e Mon Sep 17 00:00:00 2001 From: CenTdemeern1 Date: Sun, 8 Dec 2024 14:59:25 +0100 Subject: [PATCH 5/6] Update Mi contributor list --- packages/frontend/src/pages/about-sharkey.vue | 31 +++++++++++++++++-- 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/packages/frontend/src/pages/about-sharkey.vue b/packages/frontend/src/pages/about-sharkey.vue index d46868c0e0..18d8045db7 100644 --- a/packages/frontend/src/pages/about-sharkey.vue +++ b/packages/frontend/src/pages/about-sharkey.vue @@ -219,6 +219,16 @@ const everyone = ref([ avatar: 'https://avatars.githubusercontent.com/u/20679825?s=128&v=4', link: 'https://github.com/acid-chicken', }, + { + handle: '@mei23', + avatar: 'https://avatars.githubusercontent.com/u/30769358?s=128&v=4', + link: 'https://github.com/mei23', + }, + { + handle: '@AyaMorisawa', + avatar: 'https://avatars.githubusercontent.com/u/10798641?s=128&v=4', + link: 'https://github.com/AyaMorisawa', + }, { handle: '@kakkokari-gtyih', avatar: 'https://avatars.githubusercontent.com/u/67428053?s=128&v=4', @@ -230,15 +240,30 @@ const everyone = ref([ link: 'https://github.com/tai-cha', }, { - handle: '@samunohito', - avatar: 'https://avatars.githubusercontent.com/u/46447427?s=128&v=4', - link: 'https://github.com/samunohito', + handle: '@Johann150', + avatar: 'https://avatars.githubusercontent.com/u/20990607?s=128&v=4', + link: 'https://github.com/Johann150', }, { handle: '@anatawa12', avatar: 'https://avatars.githubusercontent.com/u/22656849?s=128&v=4', link: 'https://github.com/anatawa12', }, + { + handle: '@saschanaz', + avatar: 'https://avatars.githubusercontent.com/u/3396686?s=128&v=4', + link: 'https://github.com/saschanaz', + }, + { + handle: '@zyoshoka', + avatar: 'https://avatars.githubusercontent.com/u/107108195?s=128&v=4', + link: 'https://github.com/zyoshoka', + }, + { + handle: '@samunohito', + avatar: 'https://avatars.githubusercontent.com/u/46447427?s=128&v=4', + link: 'https://github.com/samunohito', + }, ], }, ]); From c472794959a20c8e493453961bb8f1cacb849085 Mon Sep 17 00:00:00 2001 From: CenTdemeern1 Date: Sun, 8 Dec 2024 15:05:43 +0100 Subject: [PATCH 6/6] Move strings to sharkey-locales --- locales/index.d.ts | 8 ++++++++ packages/frontend/src/pages/about-sharkey.vue | 4 ++-- sharkey-locales/en-US.yml | 2 ++ 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/locales/index.d.ts b/locales/index.d.ts index d8eb90f4e5..6df2191e9d 100644 --- a/locales/index.d.ts +++ b/locales/index.d.ts @@ -7396,6 +7396,14 @@ export interface Locale extends ILocale { * Testers */ "testers": string; + /** + * Misskey Contributors + */ + "misskeyContributors": string; + /** + * Our lovely Sponsors + */ + "ourLovelySponsors": string; }; "_displayOfSensitiveMedia": { /** diff --git a/packages/frontend/src/pages/about-sharkey.vue b/packages/frontend/src/pages/about-sharkey.vue index 18d8045db7..1746fc0e68 100644 --- a/packages/frontend/src/pages/about-sharkey.vue +++ b/packages/frontend/src/pages/about-sharkey.vue @@ -202,7 +202,7 @@ const everyone = ref([ ], }, { - heading: 'Misskey Contributors', + heading: i18n.ts._aboutMisskey.misskeyContributors, people: [ { handle: '@syuilo', @@ -271,7 +271,7 @@ const containerEl = shallowRef(); await misskeyApi('sponsors', { forceUpdate: false }).then((res) => { const section: Section = { - heading: 'Our lovely Sponsors', + heading: i18n.ts._aboutMisskey.ourLovelySponsors, people: [], }; for (const sponsor of res.sponsor_data) { diff --git a/sharkey-locales/en-US.yml b/sharkey-locales/en-US.yml index 1f9b6ef4f5..6fc38b414c 100644 --- a/sharkey-locales/en-US.yml +++ b/sharkey-locales/en-US.yml @@ -231,6 +231,8 @@ _aboutMisskey: translation: "Translate Sharkey" donate_sharkey: "Donate to Sharkey" testers: "Testers" + misskeyContributors: "Misskey Contributors" + ourLovelySponsors: "Our lovely Sponsors" _serverDisconnectedBehavior: disabled: "Disable warning" _channel: