Compare commits

...

2 Commits

Author SHA1 Message Date
pluja
bf30a6cb2b Release 202506130639 2025-06-13 06:39:29 +00:00
pluja
4ca9b9a5c2 Release 202506112249 2025-06-11 22:49:54 +00:00
8 changed files with 50 additions and 13 deletions

View File

@@ -92,7 +92,9 @@ def prompt_check_tos_review(content: str) -> TosReviewCheck:
{"role": "user", "content": content}, {"role": "user", "content": content},
] ]
result_dict = query_openai_json(messages, model="openai/gpt-4.1-mini") result_dict = query_openai_json(
messages, model="openai/gemini-2.5-flash-preview-05-20"
)
return cast(TosReviewCheck, result_dict) return cast(TosReviewCheck, result_dict)

View File

@@ -35,9 +35,11 @@ export default defineConfig({
registerType: 'autoUpdate', registerType: 'autoUpdate',
manifest: { manifest: {
name: 'KYCnot.me', name: 'KYCnot.me',
short_name: 'KYCnot.me',
description: 'Find services that respect your privacy', description: 'Find services that respect your privacy',
theme_color: '#040505', theme_color: '#040505',
background_color: '#171c1b', background_color: '#171c1b',
display: 'minimal-ui',
}, },
pwaAssets: { pwaAssets: {
image: './public/favicon.svg', image: './public/favicon.svg',
@@ -107,8 +109,9 @@ export default defineConfig({
'/service/[...slug]/proof': '/service/[...slug]/#verification', '/service/[...slug]/proof': '/service/[...slug]/#verification',
'/attribute/[...slug]': '/attributes', '/attribute/[...slug]': '/attributes',
'/attr/[...slug]': '/attributes', '/attr/[...slug]': '/attributes',
'/service/[...slug]/review': '/service/[...slug]#comments',
// #endregion // #endregion
'/service/[...slug]/review': '/service/[...slug]#comments',
}, },
env: { env: {
schema: { schema: {

View File

@@ -288,6 +288,7 @@ const ActualTag = disabled && Tag === 'a' ? 'span' : Tag
class={base({ class: cn({ 'opacity-20 hover:opacity-50': disabled }, className) })} class={base({ class: cn({ 'opacity-20 hover:opacity-50': disabled }, className) })}
role={role ?? (Tag === 'button' || Tag === 'label' || (disabled && Tag === 'a') ? undefined : 'button')} role={role ?? (Tag === 'button' || Tag === 'label' || (disabled && Tag === 'a') ? undefined : 'button')}
aria-disabled={disabled} aria-disabled={disabled}
aria-label={label}
{...dataAstroReload && { 'data-astro-reload': dataAstroReload }} {...dataAstroReload && { 'data-astro-reload': dataAstroReload }}
{...htmlProps} {...htmlProps}
> >

View File

@@ -29,7 +29,15 @@
font-family: cursive; font-family: cursive;
font-size: 2rem; font-size: 2rem;
font-weight: bold; font-weight: bold;
background: repeating-linear-gradient(90deg, #14ffe9 0%, #ffc800 16.66666%, #ff00e0 33.33333%, #14ffe9 50.0%) -100%/ 200%; background: repeating-linear-gradient(
90deg,
#d97706 0%,
#f59e0b 20%,
#f97316 40%,
#ea580c 60%,
#f97316 80%,
#f59e0b 100%
) -100%/ 200%;
-webkit-background-clip: text; -webkit-background-clip: text;
background-clip: text; background-clip: text;
color: transparent; color: transparent;

View File

@@ -123,6 +123,7 @@ const splashText = showSplashText ? sample(splashTexts) : null
transition:name="header-admin-link" transition:name="header-admin-link"
text="Admin Dashboard" text="Admin Dashboard"
position="left" position="left"
aria-label="Admin Dashboard"
> >
<Icon name="ri:home-gear-line" class="size-10" /> <Icon name="ri:home-gear-line" class="size-10" />
</Tooltip> </Tooltip>

View File

@@ -44,4 +44,8 @@
void updateSW(true) void updateSW(true)
} }
} }
window.addEventListener('beforeinstallprompt', (event) => {
event.preventDefault()
})
</script> </script>

View File

@@ -13,6 +13,8 @@ Please, link back to [KYCnot.me](https://kycnot.me) when possible, and use respo
<PressAssets /> <PressAssets />
Review service link format: `https://kycnot.me/service/[slug]/review`
## Brand design ## Brand design
- Brand color: `#3bdb78` - Brand color: `#3bdb78`

View File

@@ -294,6 +294,8 @@ const statusIcon = {
APPROVED: undefined, APPROVED: undefined,
}[service.verificationStatus] }[service.verificationStatus]
const isScam = service.verificationStatus === 'VERIFICATION_FAILED'
const shuffledLinks = { const shuffledLinks = {
clearnet: shuffle(service.serviceUrls), clearnet: shuffle(service.serviceUrls),
onion: shuffle(service.onionUrls), onion: shuffle(service.onionUrls),
@@ -756,11 +758,18 @@ const activeEventToShow =
<ul aria-label="Service links" class="xs:justify-start mt-4 flex flex-wrap justify-center gap-2"> <ul aria-label="Service links" class="xs:justify-start mt-4 flex flex-wrap justify-center gap-2">
{shownLinks.map((url) => ( {shownLinks.map((url) => (
<li> <li>
<ServiceLinkButton {isScam ? (
url={url} <span class="2xs:text-sm 2xs:h-8 2xs:gap-2 2xs:px-4 bg-day-800 inline-flex h-6 items-center gap-1 rounded-full px-2 text-xs whitespace-nowrap text-red-400">
referral={service.referral} <Icon name="ri:alert-line" class="size-4 text-red-400" />
enableMinWidth={shuffledLinks.onion.length + shuffledLinks.i2p.length > 0} {urlDomain(url)}
/> </span>
) : (
<ServiceLinkButton
url={url}
referral={service.referral}
enableMinWidth={shuffledLinks.onion.length + shuffledLinks.i2p.length > 0}
/>
)}
</li> </li>
))} ))}
@@ -784,11 +793,18 @@ const activeEventToShow =
{hiddenLinks.map((url) => ( {hiddenLinks.map((url) => (
<li class="hidden peer-checked:block"> <li class="hidden peer-checked:block">
<ServiceLinkButton {isScam ? (
url={url} <span class="2xs:text-sm 2xs:h-8 2xs:gap-2 2xs:px-4 bg-day-800 inline-flex h-6 items-center gap-1 rounded-full px-2 text-xs whitespace-nowrap text-red-400">
referral={service.referral} <Icon name="ri:alert-line" class="size-4 text-red-400" />
enableMinWidth={shuffledLinks.onion.length + shuffledLinks.i2p.length > 0} {urlDomain(url)}
/> </span>
) : (
<ServiceLinkButton
url={url}
referral={service.referral}
enableMinWidth={shuffledLinks.onion.length + shuffledLinks.i2p.length > 0}
/>
)}
</li> </li>
))} ))}
</ul> </ul>