Fixed socials order.

This commit is contained in:
DebaucheryLibrarian 2024-11-04 03:04:51 +01:00
parent b41ee2e5cf
commit 3c598bdb6f
4 changed files with 39 additions and 18 deletions

View File

@ -32,30 +32,34 @@ body {
color: var(--primary);
}
.icon.icon-twitter {
.icon.icon-social.icon-twitter {
fill: #008ad8;
}
.icon.icon-onlyfans {
.icon.icon-social.icon-onlyfans {
fill: #00adef;
}
.icon.icon-fansly {
.icon.icon-social.icon-fansly {
fill: #2699f6;
}
.icon.icon-linktree {
.icon.icon-social.icon-linktree {
fill: #43e660;
}
.icon.icon-pornhub {
.icon.icon-social.icon-pornhub {
fill: #ff9000;
}
.icon.icon-cashapp {
.icon.icon-social.icon-cashapp {
fill: #00c853;
}
.icon.icon-loyalfans {
.icon.icon-social.icon-loyalfans {
fill: #d90a16;
}
.icon.icon-social {
fill: var(--highlight-strong-10);
}

View File

@ -75,15 +75,11 @@
>
<datalist id="platforms">
<option value="onlyfans">OnlyFans</option>
<option value="twitter">Twitter/X</option>
<option value="instagram">Instagram</option>
<option value="pornhub">PornHub</option>
<option value="linktree">Linktree</option>
<option value="fansly">Fansly</option>
<option value="loyalfans">LoyalFans</option>
<option value="manyvids">ManyVids</option>
<option value="cashapp">Cash App</option>
<option
v-for="platformSlug in Object.keys(env.socials.urls)"
:key="`platform-${platformSlug}`"
:value="platformSlug"
>{{ platformSlug }}</option>
</datalist>
<input

View File

@ -70,11 +70,13 @@ module.exports = {
urls: {
cashapp: 'https://cash.app/${handle}', // eslint-disable-line no-template-curly-in-string
fansly: 'https://fansly.com/{handle}',
instagram: 'https://www.instagram.com/{handle}',
linktree: 'https://linktr.ee/{handle}',
loyalfans: 'https://www.loyalfans.com/{handle}',
manyvids: 'https://www.manyvids.com/Profile/{handle}/slug/Store/Videos',
onlyfans: 'https://onlyfans.com/{handle}',
pornhub: 'https://www.pornhub.com/model/{handle}',
reddit: 'https://www.reddit.com/u/{handle}',
twitter: 'https://x.com/{handle}',
},
prefix: {

View File

@ -55,7 +55,7 @@ const keyMap = {
isCircumcised: 'circumcised',
};
const socialsOrder = ['onlyfans', 'twitter', null];
const socialsOrder = ['onlyfans', 'twitter', 'fansly', 'loyalfans', 'manyvids', 'pornhub', 'linktree', null];
export function curateActor(actor, context = {}) {
return {
@ -121,7 +121,25 @@ export function curateActor(actor, context = {}) {
url: social.url,
platform: social.platform,
handle: social.handle,
})).toSorted((socialA, socialB) => socialsOrder.indexOf(socialA.platform) - socialsOrder.indexOf(socialB.platform)),
})).toSorted((socialA, socialB) => {
if (socialA.platform && !socialB.platform) {
return -1;
}
if (socialB.platform && !socialA.platform) {
return 1;
}
if (socialsOrder.includes(socialA.platform) && !socialsOrder.includes(socialB.platform)) {
return -1;
}
if (socialsOrder.includes(socialB.platform) && !socialsOrder.includes(socialA.platform)) {
return 1;
}
return socialsOrder.indexOf(socialA.platform) - socialsOrder.indexOf(socialB.platform);
}),
profiles: context.profiles?.map((profile) => ({
id: profile.id,
description: profile.description,
@ -561,6 +579,7 @@ async function applyActorSocialsDelta(actorId, delta, trx) {
platform: social.platform,
handle: social.handle,
url: social.url,
verified_at: knex.fn.now(), // manual add implies verification
})))
.transacting(trx);
}