Porównaj commity

...

2 Commity

Autor SHA1 Wiadomość Data
Štěpán Škorpil 87f5ddc8b1 If nodeinfo refresh is failed, software name and version is unset 2022-12-27 22:40:15 +01:00
Štěpán Škorpil a8e6dbdb9d Fixed old feed deleting 2022-12-27 22:11:19 +01:00
6 zmienionych plików z 30 dodań i 11 usunięć

Wyświetl plik

@ -6,10 +6,10 @@ import RobotsTxt from '../RobotsTxt/RobotsTxt.js'
const schema = z.object({
name: z.string().optional(),
software: z.object({
name: z.string(),
version: z.string()
name: z.string().nullable(),
version: z.string().nullable()
}),
protocols: z.array(z.string()),
protocols: z.array(z.string()).optional(),
usage: z.optional(
z.object({
users: z.optional(

Wyświetl plik

@ -14,7 +14,12 @@ export const refreshNodeInfo = async (
const nodeInfo = await retrieveDomainNodeInfo(node.domain, robotsTxt)
return await updateNodeInfo(elastic, node, nodeInfo)
} catch (error) {
console.warn('Failed to update node info', error)
return node
console.warn('Failed to update node info, unsetting node', error)
return await updateNodeInfo(elastic, node, {
software: {
name: null,
version: null
}
})
}
}

Wyświetl plik

@ -30,6 +30,7 @@ export const createFeed = async (
displayName: feedData.displayName,
locked: feedData.locked,
createdAt: feedData.createdAt.getTime(),
refreshedAt: new Date().getTime(),
foundAt: new Date().getTime(),
fields: feedData.fields.map((field) => {
return { name: field.name, value: field.value }

Wyświetl plik

@ -7,13 +7,26 @@ export const deleteOldFeeds = async (
node: Node
): Promise<number> => {
await elastic.indices.refresh({ index: feedIndex })
// delete by domain and (refreshedAt < node.refreshAttepmtedAt or refreshedAt=null)
const result = await elastic.deleteByQuery({
index: feedIndex,
query: {
bool: {
must: [
{ match: { domain: node.domain } },
{ range: { refreshedAt: { lt: node.refreshAttemptedAt } } }
{
bool: {
should: [
{ range: { refreshedAt: { lt: node.refreshAttemptedAt } } },
{
bool: {
must_not: { exists: { field: 'refreshedAt' } }
}
}
],
minimum_should_match: 1
}
}
]
}
}

Wyświetl plik

@ -20,11 +20,11 @@ export const updateFeed = async (
followersCount: feedData.followersCount,
followingCount: feedData.followingCount,
statusesCount: feedData.statusesCount,
lastStatusAt: feedData.lastStatusAt,
lastStatusAt: feedData.lastStatusAt?.getTime(),
description: feedData.description,
displayName: feedData.displayName,
locked: feedData.locked,
createdAt: feedData.createdAt,
createdAt: feedData.createdAt.getTime(),
refreshedAt: new Date().getTime(),
type: feedData.type,
fields: feedData.fields.map((field) => {

Wyświetl plik

@ -23,8 +23,8 @@ export const updateNodeInfo = async (
doc: {
name: nodeInfo?.name,
openRegistrations: nodeInfo?.openRegistrations,
softwareName: nodeInfo?.software?.name?.toLocaleLowerCase(),
softwareVersion: nodeInfo?.software?.version,
softwareName: nodeInfo?.software?.name?.toLocaleLowerCase() ?? null,
softwareVersion: nodeInfo?.software?.version ?? null,
halfYearActiveUserCount: assertPositiveInt(
nodeInfo?.usage?.users?.activeHalfyear
),
@ -40,6 +40,6 @@ export const updateNodeInfo = async (
await getNode(elastic, node.domain),
'Missing node after updating it'
)
console.info('Updated node info', { node })
console.info('Updated node info', { resultNode })
return resultNode
}