mirror of
https://github.com/cupcakearmy/ora.git
synced 2026-04-02 12:05:23 +00:00
dismiss & use svelte in client
This commit is contained in:
@@ -18,6 +18,7 @@ DB.version(2).stores({
|
||||
|
||||
DB.version(3).stores({
|
||||
settings: `key, value`,
|
||||
dismiss: `host, timestamp, duration`,
|
||||
})
|
||||
|
||||
export function normalizeTimestamp(timestamp) {
|
||||
|
||||
@@ -52,6 +52,12 @@ export function getUsageForRules(host, rules) {
|
||||
}
|
||||
|
||||
export async function getUsageForHost(host) {
|
||||
const dismiss = await DB.dismiss.where({ host }).first()
|
||||
if (dismiss) {
|
||||
const isDismissed = dj().isBefore(dj(dismiss.timestamp).add(dismiss.duration, 'ms'))
|
||||
if (isDismissed) return []
|
||||
}
|
||||
|
||||
const limit = await DB.limits.where({ host }).first()
|
||||
if (!limit) return []
|
||||
return await Promise.all(getUsageForRules(host, limit.rules))
|
||||
|
||||
@@ -20,6 +20,12 @@ export const LogValidator = Joi.object({
|
||||
timestamp: Joi.date(),
|
||||
})
|
||||
|
||||
export const DismissValidator = Joi.object({
|
||||
host: Joi.string(),
|
||||
timestamp: Joi.date(),
|
||||
duration: Joi.number(),
|
||||
})
|
||||
|
||||
export const SettingsValidator = Joi.object({
|
||||
lastActivity: Joi.date()
|
||||
.default(() => new Date())
|
||||
@@ -29,9 +35,10 @@ export const SettingsValidator = Joi.object({
|
||||
})
|
||||
|
||||
export const DBValidator = Joi.object({
|
||||
limits: Joi.array().items(LimitValidator),
|
||||
logs: Joi.array().items(LogValidator),
|
||||
limits: Joi.array().items(LimitValidator).optional(),
|
||||
logs: Joi.array().items(LogValidator).optional(),
|
||||
settings: SettingsValidator.optional(),
|
||||
dismiss: Joi.array().items(DismissValidator).optional(),
|
||||
})
|
||||
|
||||
export function checkForErrors(validator, data) {
|
||||
|
||||
Reference in New Issue
Block a user