cron zum aktuallisieren der Discord Avatare hinzugefügt
This commit is contained in:
@@ -3,6 +3,7 @@ import { io } from "index";
|
|||||||
import cron from "node-cron";
|
import cron from "node-cron";
|
||||||
import { setUserStandardNamePermissions } from "routes/helper";
|
import { setUserStandardNamePermissions } from "routes/helper";
|
||||||
import { changeMemberRoles } from "routes/member";
|
import { changeMemberRoles } from "routes/member";
|
||||||
|
import client from "./discord";
|
||||||
|
|
||||||
const removeMission = async (id: number, reason: string) => {
|
const removeMission = async (id: number, reason: string) => {
|
||||||
const log: MissionLog = {
|
const log: MissionLog = {
|
||||||
@@ -121,6 +122,37 @@ const removeClosedMissions = async () => {
|
|||||||
return removeMission(mission.id, "dem freimelden aller Stationen");
|
return removeMission(mission.id, "dem freimelden aller Stationen");
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const syncDiscordImgUrls = async () => {
|
||||||
|
try {
|
||||||
|
const discordAccounts = await prisma.discordAccount.findMany({
|
||||||
|
where: {
|
||||||
|
updatedAt: {
|
||||||
|
lt: new Date(Date.now() - 7 * 24 * 60 * 60 * 1000),
|
||||||
|
},
|
||||||
|
User: {
|
||||||
|
isNot: null,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
for (const account of discordAccounts) {
|
||||||
|
client.users.fetch(account.discordId).then((discordUser) => {
|
||||||
|
const nextAvatar = discordUser?.avatar ?? null;
|
||||||
|
if (typeof nextAvatar !== "string") return;
|
||||||
|
if (nextAvatar === account.avatar) return;
|
||||||
|
prisma.discordAccount.update({
|
||||||
|
where: {
|
||||||
|
id: account.id,
|
||||||
|
},
|
||||||
|
data: {
|
||||||
|
avatar: nextAvatar,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
} catch (error) {}
|
||||||
|
};
|
||||||
|
|
||||||
const removeConnectedAircrafts = async () => {
|
const removeConnectedAircrafts = async () => {
|
||||||
const connectedAircrafts = await prisma.connectedAircraft.findMany({
|
const connectedAircrafts = await prisma.connectedAircraft.findMany({
|
||||||
where: {
|
where: {
|
||||||
@@ -216,7 +248,13 @@ const removePermissionsForBannedUsers = async () => {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
removePermissionsForBannedUsers();
|
cron.schedule("0 0 * * *", async () => {
|
||||||
|
try {
|
||||||
|
await syncDiscordImgUrls();
|
||||||
|
} catch (error) {
|
||||||
|
console.error("Error on daily cron job:", error);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
cron.schedule("*/1 * * * *", async () => {
|
cron.schedule("*/1 * * * *", async () => {
|
||||||
try {
|
try {
|
||||||
|
|||||||
@@ -84,6 +84,7 @@ const updateParticipantMoodleResults = async () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
CronJob.from({ cronTime: "0 * * * *", onTick: syncMoodleIds, start: true });
|
CronJob.from({ cronTime: "0 * * * *", onTick: syncMoodleIds, start: true });
|
||||||
|
|
||||||
CronJob.from({
|
CronJob.from({
|
||||||
cronTime: "*/1 * * * *",
|
cronTime: "*/1 * * * *",
|
||||||
onTick: async () => {
|
onTick: async () => {
|
||||||
|
|||||||
Reference in New Issue
Block a user