Skip to content

Commit 77ceee6

Browse files
committed
finally update credits
1 parent 7370277 commit 77ceee6

3 files changed

Lines changed: 177 additions & 20 deletions

File tree

src/playground/credits/credits.css

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,3 +64,44 @@ a {
6464
[theme="dark"] .user:link:hover {
6565
background: #222;
6666
}
67+
.user-info {
68+
width: 100%;
69+
70+
overflow-wrap: anywhere;
71+
}
72+
73+
@keyframes gradient {
74+
0% {
75+
background-position: 0% 0%;
76+
}
77+
78+
100% {
79+
background-position: 100% 100%;
80+
}
81+
}
82+
.users-golden .user {
83+
width: 296px;
84+
margin: 2px;
85+
86+
color: #a237db !important;
87+
background-color: #ffc400;
88+
background: linear-gradient(
89+
145deg,
90+
rgba(255, 196, 0, 1) 0%,
91+
rgba(255, 196, 0, 1) 45%,
92+
rgba(255, 255, 255, 1) 50%,
93+
rgba(255, 196, 0, 1) 54%,
94+
rgba(255, 196, 0, 1) 100%
95+
);
96+
background-size: 300% 300%;
97+
animation: gradient 3s ease infinite;
98+
99+
transition-property: none !important;
100+
transition-duration: 0 !important;
101+
}
102+
.users-golden .user:link:hover {
103+
background: #ffae00;
104+
105+
transition-property: none !important;
106+
transition-duration: 0 !important;
107+
}

src/playground/credits/credits.jsx

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import ReactDOM from 'react-dom';
33
import PropTypes from 'prop-types';
44
import appTarget from '../app-target';
55
import styles from './credits.css';
6+
import classNames from 'classnames';
67
import { getInitialDarkMode } from '../../lib/tw-theme-hoc.jsx';
78

89
// import fosshostLogo from './fosshost-light.png';
@@ -36,8 +37,10 @@ User.propTypes = {
3637
href: PropTypes.string
3738
};
3839

39-
const UserList = ({ users }) => (
40-
<div className={styles.users}>
40+
const UserList = ({ users, golden }) => (
41+
<div className={classNames(styles.users, {
42+
[styles.usersGolden]: golden,
43+
})}>
4144
{users.map((data, index) => (
4245
<User
4346
key={index}
@@ -47,7 +50,8 @@ const UserList = ({ users }) => (
4750
</div>
4851
);
4952
UserList.propTypes = {
50-
users: PropTypes.arrayOf(PropTypes.object)
53+
users: PropTypes.arrayOf(PropTypes.object),
54+
golden: PropTypes.bool
5155
};
5256

5357
const Credits = () => (
@@ -70,10 +74,24 @@ const Credits = () => (
7074
<a href="https://scratch.mit.edu/donate">
7175
Donate to support Scratch.
7276
</a>
73-
<br></br><br></br>
77+
<br></br>
78+
{/* TurboWarp no longer accepts donations */}
79+
{/* <br></br>
7480
<a href="https://github.com/sponsors/GarboMuffin">
7581
Donate to support TurboWarp.
82+
</a> */}
83+
<h2>Our Supporters</h2>
84+
<p>
85+
We rely on the support of our users to keep running parts of the website for free.
86+
You do not need to support PenguinMod if you do not want to, but it will help us run the services that power
87+
our project sharing and other online features.
88+
</p>
89+
<a href="https://penguinmod.com/support">
90+
Support PenguinMod
7691
</a>
92+
<br></br>
93+
<UserList users={UserData.pmSupporters} golden={true} />
94+
<p><i>The list order is randomized on each refresh.</i></p>
7795
<h2>Contributors</h2>
7896
<p>
7997
PenguinMod is made by a small bunch of developers.
@@ -218,10 +236,6 @@ const Credits = () => (
218236
The TurboWarp project is made possible by the work of many volunteers.
219237
<br></br>
220238
You can check out TurboWarp's individual credits <a href="https://turbowarp.org/credits.html">here</a>.
221-
<br></br>
222-
<a href="https://github.com/sponsors/GarboMuffin">
223-
Donate to support TurboWarp.
224-
</a>
225239
</p>
226240
</section>
227241
{/* RIP Fosshost */}

src/playground/credits/users.js

Lines changed: 114 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,97 @@ const fromHardcodedNamed = username => ({
2525
text: username
2626
});
2727

28+
// doing it like this for now since this is how we have it in the disc server
29+
const pmSupportersText = `
30+
jwklong (https://penguinmod.com/profile?user=jwklong)
31+
lord cat (https://penguinmod.com/profile?user=lordcat) (discord: lordcat__)
32+
qloak (discord: qloakalt)
33+
bubasxd (https://penguinmod.com/profile?user=bubasxd) (discord: bubasgaming)
34+
anonymous_cat1 (https://penguinmod.com/profile?user=anonymous_cat1)
35+
silverstero
36+
evilvowel_murdersscarykiller
37+
jpsAR (https://penguinmod.com/profile?user=jpsar) (discord: jpsar_)
38+
CarrotD1scord (https://penguinmod.com/profile?user=CarrotScr4tch) (discord: carrotd1scord)
39+
anonygoose (https://penguinmod.com/profile?user=anonygoose)
40+
legume1
41+
ianyourgod (https://penguinmod.com/profile?user=ianyourgod)
42+
MubiLop (https://penguinmod.com/profile?user=mubilop)
43+
keura (https://penguinmod.com/profile?user=keura) (discord: thekeura)
44+
10000000_fireflies
45+
adurrina
46+
jeremygamer13 (https://penguinmod.com/profile?user=jeremygamer13)
47+
glacialtemptation
48+
camthekirby
49+
redman13 (https://penguinmod.com/profile?user=redman13) (discord: godslayerakp)
50+
joshatticus
51+
krkika
52+
mralien7893 (https://en.pronouns.page/@Mr.Alien7893) (discord: mr.alien)
53+
gunner_the_bear
54+
autoimi
55+
.funkoid
56+
tech_wizard72
57+
koffeejava (https://penguinmod.com/profile?user=koffeejava)
58+
mrredstonia (https://penguinmod.com/profile?user=mrredstonia)
59+
vchi5332664 (https://penguinmod.com/profile?user=vchi5332664) (discord: vchidev2487)
60+
windowsbuild3r
61+
atomicoperations
62+
joe (https://penguinmod.com/profile?user=joe) (discord: puzzlingggg)
63+
algebruh_35
64+
giganttech (https://penguinmod.com/profile?user=giganttech)
65+
wwtv1 (https://penguinmod.com/profile?user=wwtv1) (discord: wwtv2346)
66+
freshpenguin112 (https://penguinmod.com/profile?user=freshpenguin112)
67+
stealpop_games
68+
TPR (https://penguinmod.com/profile?user=tpr)
69+
kypo
70+
alpacalii (https://penguinmod.com/profile?user=alpacalii)
71+
vedal (https://penguinmod.com/profile?user=vedal) (discord: itzkingfrfr)
72+
TheShovel (https://penguinmod.com/profile?user=theshovel)
73+
electricfuzzball_pm (https://www.youtube.com/@ElectricFuzzball_YT) (discord: electricfuzzball_official)
74+
gug. [iamgugreal1939] (https://penguinmod.com/profile?user=kiwi) (discord: iamgugreal1939)
75+
aubreymcleen (https://penguinmod.com/profile?user=aubreymcleen) (discord: 2faceaub)
76+
kylomaskgamer (https://kylomaskgamer.ca/) (discord: kylomaskgamer)
77+
afk (https://penguinmod.com/profile?user=afk) (discord: aefarkalibastafinfein)
78+
`;
79+
const pmSupporterImage = (username) => {
80+
switch (username) {
81+
case "mralien7893":
82+
return "https://projects.penguinmod.com/api/v1/users/getpfp?username=mralien7893";
83+
case "electricfuzzball_pm":
84+
return "https://projects.penguinmod.com/api/v1/users/getpfp?username=electricfuzzball_pm";
85+
case "kylomaskgamer":
86+
return "https://projects.penguinmod.com/api/v1/users/getpfp?username=kylomaskgamer";
87+
default:
88+
return `https://penguinmod.com/unknown_user.png`;
89+
}
90+
};
91+
const pmSupporterImageFromLine = (line) => {
92+
const match = line.match(/penguinmod\.com\/profile\?user=([a-zA-Z0-9_-]+)/);
93+
return match ? `https://projects.penguinmod.com/api/v1/users/getpfp?username=${match[1]}` : null;
94+
};
95+
const pmSupporters = pmSupportersText
96+
.replace(/\r/g, "")
97+
.split('\n')
98+
.map(line => line.trim())
99+
.filter(line => !!line)
100+
.map(line => {
101+
const bracketSection = line.indexOf(" [");
102+
const linkSection = line.indexOf(" (");
103+
104+
// use full text if no "name [fullname]" or "name (link) (etc)"
105+
const username = linkSection === -1 && bracketSection === -1 ? line : line.slice(0, bracketSection === -1 ? linkSection : bracketSection);
106+
const image = pmSupporterImageFromLine(line) || pmSupporterImage(username);
107+
108+
// getting url has ( at the start with this regex
109+
const linkMatch = line.match(/\(([^\)]+)/gm);
110+
const potentialLink = !linkMatch ? "https://studio.penguinmod.com/credits.html#" :
111+
(`${linkMatch[0]}`.slice(1));
112+
return {
113+
text: username,
114+
image,
115+
href: potentialLink.startsWith("https://") ? potentialLink : "https://studio.penguinmod.com/credits.html#",
116+
};
117+
});
118+
28119
const addonDevelopers = [
29120
{
30121
userId: '34018398',
@@ -174,7 +265,7 @@ const pmPullRequestDevelopers = [ // these people made a PR that got merged, or
174265
},
175266
{
176267
text: 'ilikecoding-197',
177-
image: `https://github.com/ilikecoding-197.png`,
268+
image: `https://penguinmod.com/unknown_user.png`,
178269
href: `https://github.com/ilikecoding-197/`,
179270
},
180271
{
@@ -216,7 +307,7 @@ const pmApiDevelopers = [
216307
const pmTranslators = [
217308
{
218309
text: 'Mildanner',
219-
image: `https://avatars.githubusercontent.com/u/179844994`,
310+
image: `https://penguinmod.com/unknown_user.png`,
220311
href: "https://github.com/mildannerofc",
221312
},
222313
{
@@ -404,6 +495,16 @@ const pmTranslators = [
404495
image: `https://projects.penguinmod.com/api/v1/users/getpfp?username=Prode`,
405496
href: "https://penguinmod.com/profile?user=Prode",
406497
},
498+
{
499+
text: 'afk',
500+
image: `https://projects.penguinmod.com/api/v1/users/getpfp?username=afk`,
501+
href: "https://penguinmod.com/profile?user=afk",
502+
},
503+
{
504+
text: 'phi_wpentomino',
505+
image: `https://projects.penguinmod.com/api/v1/users/getpfp?username=phi_wpentomino`,
506+
href: "https://penguinmod.com/profile?user=phi_wpentomino",
507+
},
407508
];
408509

409510
const pmCostumeSubmittors = [
@@ -504,8 +605,8 @@ const pmCostumeSubmittors = [
504605
},
505606
{
506607
text: 'mildannerofc',
507-
image: `https://github.com/mildannerofc.png`,
508-
href: `https://github.com/mildannerofc/`,
608+
image: `https://penguinmod.com/unknown_user.png`,
609+
href: "https://studio.penguinmod.com/credits.html#",
509610
},
510611
{
511612
text: 'bonemaster96',
@@ -679,8 +780,8 @@ const pmCostumeSubmittors = [
679780
},
680781
{
681782
text: "FloppyDisk_OSC",
682-
image: "https://projects.penguinmod.com/api/v1/users/getpfp?username=FloppyDisk_OSC",
683-
href: "https://penguinmod.com/profile?user=FloppyDisk_OSC",
783+
image: `https://penguinmod.com/unknown_user.png`,
784+
href: "https://studio.penguinmod.com/credits.html#",
684785
},
685786
{
686787
text: "dogstudiostuff",
@@ -689,8 +790,8 @@ const pmCostumeSubmittors = [
689790
},
690791
{
691792
text: "oldalx2020",
692-
image: `https://github.com/oldalx2020.png`,
693-
href: `https://github.com/oldalx2020/`,
793+
image: `https://penguinmod.com/unknown_user.png`,
794+
href: "https://studio.penguinmod.com/credits.html#",
694795
},
695796
{
696797
text: "DogeIsCut",
@@ -891,8 +992,8 @@ const pmSoundSubmittors = [
891992
},
892993
{
893994
text: 'furbyguy',
894-
image: `https://freesound.org/data/avatars/5829/5829171_XL.jpg`,
895-
href: "https://freesound.org/people/furbyguy/",
995+
image: `https://penguinmod.com/unknown_user.png`,
996+
href: "https://studio.penguinmod.com/credits.html#",
896997
},
897998
{
898999
text: 'cynicmusic',
@@ -916,8 +1017,8 @@ const pmSoundSubmittors = [
9161017
},
9171018
{
9181019
text: "mildannerofc",
919-
image: `https://github.com/mildannerofc.png`,
920-
href: `https://github.com/mildannerofc/`,
1020+
image: `https://penguinmod.com/unknown_user.png`,
1021+
href: "https://studio.penguinmod.com/credits.html#",
9211022
},
9221023
{
9231024
text: "nataliexists",
@@ -999,4 +1100,5 @@ export default {
9991100
pmCostumeSubmittors: shuffle(pmCostumeSubmittors),
10001101
pmPullRequestDevelopers: shuffle(pmPullRequestDevelopers),
10011102
pmCodeUsedFrom: shuffle(pmCodeUsedFrom),
1103+
pmSupporters: shuffle(pmSupporters),
10021104
};

0 commit comments

Comments
 (0)