35 lines
1.2 KiB
JavaScript
35 lines
1.2 KiB
JavaScript
import { UserProfiles } from "../../../models/index.js";
|
|
import { Not } from "typeorm";
|
|
import { queueLogger } from "../../logger.js";
|
|
import { verifyLink } from "../../../services/fetch-rel-me.js";
|
|
const logger = queueLogger.createSubLogger("verify-links");
|
|
export async function verifyLinks() {
|
|
logger.info("Verifying links...");
|
|
const usersToVerify = await UserProfiles.findBy({
|
|
fields: Not(null),
|
|
userHost: ""
|
|
});
|
|
for (const user of usersToVerify){
|
|
for (const field of user.fields){
|
|
if (!field || field.name === "" || field.value === "") {
|
|
continue;
|
|
}
|
|
if (field.value.startsWith("http") && user.user?.username) {
|
|
field.verified = await verifyLink(field.value, user.user.username);
|
|
}
|
|
}
|
|
if (user.fields.length > 0) {
|
|
try {
|
|
await UserProfiles.update(user.userId, {
|
|
fields: user.fields
|
|
});
|
|
} catch (e) {
|
|
logger.error(`Failed to update user ${user.userId} ${e}`);
|
|
throw e;
|
|
}
|
|
}
|
|
}
|
|
logger.succ("All links successfully verified.");
|
|
return "Success";
|
|
}
|