Release 202507010740

This commit is contained in:
pluja
2025-07-01 07:40:26 +00:00
parent e4a5fa8fa7
commit b7ae6dc22c
11 changed files with 511 additions and 482 deletions

View File

@@ -367,13 +367,8 @@ const apiCalls = await Astro.locals.banners.try(
description="Date the service started operating"
inputProps={{
type: 'date',
value: service.operatingSince
? new Date(
service.operatingSince.getTime() - service.operatingSince.getTimezoneOffset() * 60000
)
.toISOString()
.slice(0, 10)
: '',
value: service.operatingSince?.toISOString().slice(0, 10),
max: new Date().toISOString().slice(0, 10),
}}
error={serviceInputErrors.operatingSince}
/>

View File

@@ -15,13 +15,11 @@ import KarmaUnlocksTable from '../../components/KarmaUnlocksTable.astro'
There are several ways to earn karma points:
1. **Comment Approval** (+1 point)
- When your comment moves from 'unmoderated' to 'approved' status.
- This is the basic reward for contributing a valid comment.
- Users related to the service (e.g. owners, admins, etc.) do not get karma for their comments.
2. **Comment Verification** (+5 points)
- When your comment is marked as 'verified'.
- This is a significant reward for providing particularly valuable or verified information.
@@ -44,7 +42,6 @@ The system also includes penalties to discourage spam and low-quality content:
The system maintains a detailed record of all karma changes through:
1. **Karma Transactions**
- Every karma change is recorded as a transaction.
- Each transaction includes:
- The action that triggered it.

View File

@@ -238,27 +238,29 @@ const [categories, attributes] = await Astro.locals.banners.tryMany([
/>
</div>
<InputTextArea
label="ToS URLs"
description="One per line. AI review uses the first working URL only."
name="tosUrls"
inputProps={{
placeholder: 'example.com/tos',
required: true,
class: 'min-h-10',
}}
error={inputErrors.tosUrls}
/>
<div class="grid grid-cols-1 gap-4 md:grid-cols-2">
<InputTextArea
label="ToS URLs"
description="One per line. AI review uses the first working URL only."
name="tosUrls"
inputProps={{
placeholder: 'example.com/tos',
required: true,
class: 'min-h-10',
}}
error={inputErrors.tosUrls}
/>
<InputText
label="Operating since"
name="operatingSince"
description="Date the service started operating"
inputProps={{
type: 'date',
}}
error={(inputErrors as Record<string, unknown>).operatingSince}
/>
<InputText
label="Operating since"
name="operatingSince"
inputProps={{
type: 'date',
max: new Date().toISOString().slice(0, 10),
}}
error={inputErrors.operatingSince}
/>
</div>
<InputCardGroup
name="kycLevel"
@@ -321,6 +323,7 @@ const [categories, attributes] = await Astro.locals.banners.tryMany([
icon: [attribute.categoryInfo.icon, attribute.typeInfo.icon],
iconClassName: [attribute.categoryInfo.classNames.icon, attribute.typeInfo.classNames.icon],
}))}
description="See list of [all attributes](/attributes) and their scoring."
error={inputErrors.attributes}
size="lg"
/>