Skip to content

Commit

Permalink
Remove unused class
Browse files Browse the repository at this point in the history
  • Loading branch information
holzmaster committed Mar 26, 2024
1 parent e303c9e commit 567e6ee
Show file tree
Hide file tree
Showing 4 changed files with 101 additions and 114 deletions.
19 changes: 9 additions & 10 deletions src/app.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,10 +11,9 @@ import cron from "croner";
import * as conf from "./utils/configHandler.js";
import log from "./utils/logger.js";

// Handler
import messageHandler from "./handler/messageHandler.js";
import messageDeleteHandler from "./handler/messageDeleteHandler.js";
import BdayHandler from "./handler/bdayHandler.js";
import { checkBirthdays } from "./handler/bdayHandler.js";
import * as fadingMessageHandler from "./handler/fadingMessageHandler.js";
import * as kysely from "./storage/db.js";

Expand All @@ -33,7 +32,7 @@ import {
registerAllApplicationCommandsAsGuildCommands,
} from "./handler/commandHandler.js";
import quoteReactionHandler from "./handler/quoteHandler.js";
import NicknameHandler from "./handler/nicknameHandler.js";
import { rerollNicknames } from "./handler/nicknameHandler.js";
import { connectAndPlaySaufen } from "./handler/voiceHandler.js";
import { reminderHandler } from "./commands/erinnerung.js";
import { endAprilFools, startAprilFools } from "./handler/aprilFoolsHandler.js";
Expand All @@ -43,7 +42,7 @@ import {
woisVoteReactionHandler,
woisVoteScheduler,
} from "./commands/woisvote.js";
import { AoCHandler } from "./commands/aoc.js";
import { publishAocLeaderBoard } from "./commands/aoc.js";
import { rotate } from "./helper/bannerCarusel.js";
import deleteThreadMessagesHandler from "./handler/deleteThreadMessagesHandler.js";
import * as terminal from "./terminal.js";
Expand Down Expand Up @@ -235,14 +234,14 @@ const scheduleCronjobs = async (context: BotContext) => {
);
};

const birthday = new BdayHandler(context);
schedule("1 0 * * *", async () => await birthday.checkBdays());
schedule("1 0 * * *", async () => await checkBirthdays(context));

const aoc = new AoCHandler(context);
schedule("0 20 1-25 12 *", async () => await aoc.publishLeaderBoard());
schedule(
"0 20 1-25 12 *",
async () => await publishAocLeaderBoard(context),
);

const nicknameHandler = new NicknameHandler(context);
schedule("0 0 * * 0", async () => await nicknameHandler.rerollNicknames());
schedule("0 0 * * 0", async () => await rerollNicknames(context));

schedule(
"36 0-23 * * FRI-SUN",
Expand Down
38 changes: 17 additions & 21 deletions src/commands/aoc.ts
Original file line number Diff line number Diff line change
Expand Up @@ -147,29 +147,25 @@ const getLeaderBoard = async (): Promise<LeaderBoard> => {
return leaderBoard;
};

export class AoCHandler {
constructor(private readonly context: BotContext) {}
export async function publishAocLeaderBoard(context: BotContext) {
log.debug("Entered `AoCHandler#publishLeaderBoard`");

async publishLeaderBoard() {
log.debug("Entered `AoCHandler#publishLeaderBoard`");

const targetChannel = this.context.guild.channels.cache.get(
aocConfig.targetChannelId,
);
if (!targetChannel) {
log.error(`Target channel ${aocConfig.targetChannelId} not found`);
return;
}

const channel = targetChannel as discord.ThreadChannel;
const leaderBoard = await getLeaderBoard();
const embed = createEmbedFromLeaderBoard(
aocConfig.userMap,
leaderBoard,
"local_score",
);
return channel.send({ embeds: [embed] });
const targetChannel = context.guild.channels.cache.get(
aocConfig.targetChannelId,
);
if (!targetChannel) {
log.error(`Target channel ${aocConfig.targetChannelId} not found`);
return;
}

const channel = targetChannel as discord.ThreadChannel;
const leaderBoard = await getLeaderBoard();
const embed = createEmbedFromLeaderBoard(
aocConfig.userMap,
leaderBoard,
"local_score",
);
return channel.send({ embeds: [embed] });
}

export class AoCCommand implements ApplicationCommand {
Expand Down
102 changes: 50 additions & 52 deletions src/handler/bdayHandler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,66 +5,65 @@ import * as birthday from "../storage/birthday.js";

import type { BotContext } from "../context.js";

export default class BdayHandler {
constructor(readonly context: BotContext) {}
/**
* Iterates over the list of bdays and assigns a role to people having their cake day.
*/
export async function checkBirthdays(context: BotContext): Promise<void> {
log.debug("Entered `BdayHandler#checkBirthdays`");

/**
* Iterates over the list of bdays and assigns a role to people having their cake day.
*/
async checkBdays(): Promise<void> {
log.debug("Entered `BdayHandler#checkBdays`");
const birthdayRole = context.roles.bday;
// const todaysBirthdays = await Birthday.getTodaysBirthdays();
const todaysBirthdays = await birthday.getTodaysBirthdays();

const birthdayRole = this.context.roles.bday;
// const todaysBirthdays = await Birthday.getTodaysBirthdays();
const todaysBirthdays = await birthday.getTodaysBirthdays();
const todaysBirthdaysAsMembers = todaysBirthdays
.map(b => context.guild.members.cache.get(b.userId))
.filter(
b =>
b !== undefined &&
b.roles.cache.get(birthdayRole.id) === undefined,
);

const todaysBirthdaysAsMembers = todaysBirthdays
.map(b => this.context.guild.members.cache.get(b.userId))
.filter(
b =>
b !== undefined &&
b.roles.cache.get(birthdayRole.id) === undefined,
);
const memberWithRoleThatDontHaveBirthday = context.guild.members.cache
.filter(m => m.roles.cache.get(birthdayRole.id) !== undefined)
.filter(m => !todaysBirthdays.some(b => b.userId === m.id));

const memberWithRoleThatDontHaveBirthday =
this.context.guild.members.cache
.filter(m => m.roles.cache.get(birthdayRole.id) !== undefined)
.filter(m => !todaysBirthdays.some(b => b.userId === m.id));
if (todaysBirthdaysAsMembers.length > 0) {
await Promise.all(
todaysBirthdaysAsMembers.map(member =>
member?.roles?.add(birthdayRole),
),
);
await sendBirthdayMessage(
context,
todaysBirthdaysAsMembers as GuildMember[],
birthdayRole,
);
}

if (todaysBirthdaysAsMembers.length > 0) {
await Promise.all(
todaysBirthdaysAsMembers.map(member =>
member?.roles?.add(birthdayRole),
),
);
await this.sendBirthdayMessage(
todaysBirthdaysAsMembers as GuildMember[],
birthdayRole,
);
for (const member of memberWithRoleThatDontHaveBirthday.values()) {
if (!member.roles.cache.find(t => t.id === birthdayRole.id)) {
continue;
}

for (const member of memberWithRoleThatDontHaveBirthday.values()) {
if (!member.roles.cache.find(t => t.id === birthdayRole.id))
continue;

try {
await member.roles.remove(birthdayRole);
} catch (e) {
log.error(
e,
`Could not remove role "${birthdayRole}" from "${member}"`,
);
}
try {
await member.roles.remove(birthdayRole);
} catch (e) {
log.error(
e,
`Could not remove role "${birthdayRole}" from "${member}"`,
);
}
}
}

async sendBirthdayMessage(
users: GuildMember[],
birthdayRole: Role,
): Promise<void> {
const plural = users.length > 1;
await this.context.textChannels.hauptchat.send(
`Heute kann es regnen,
async function sendBirthdayMessage(
context: BotContext,
users: GuildMember[],
birthdayRole: Role,
): Promise<void> {
const plural = users.length > 1;
await context.textChannels.hauptchat.send(
`Heute kann es regnen,
stürmen oder schneien,
denn ${plural ? "ihr" : "du"} ${plural ? "strahlt" : "strahlst"} ja selber
wie der Sonnenschein.
Expand All @@ -81,6 +80,5 @@ export default class BdayHandler {
wir gratulieren ${plural ? "euch" : "dir"}, ${birthdayRole}
${users.map(u => u).join()}`.replaceAll(/\n\s+/g, "\n"),
);
}
);
}
56 changes: 25 additions & 31 deletions src/handler/nicknameHandler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,39 +2,33 @@ import * as nickName from "../storage/nickName.js";
import log from "../utils/logger.js";
import type { BotContext } from "../context.js";

export default class NicknameHandler {
constructor(private readonly context: BotContext) {}
export async function rerollNicknames(context: BotContext) {
log.debug("Entered `rerollNicknames`");

async rerollNicknames() {
log.debug("Entered `rerollNicknames`");
const allUsersAndNames = Object.entries(await nickName.allUsersAndNames());

const allUsersAndNames = Object.entries(
await nickName.allUsersAndNames(),
);

const updateTasks = allUsersAndNames.map(([userId, nicknames]) =>
this.updateNickname(userId, nicknames),
);
await Promise.all(updateTasks);
}
const updateTasks = allUsersAndNames.map(([userId, nicknames]) =>
updateNickname(context, userId, nicknames),
);
await Promise.all(updateTasks);
}

async updateNickname(userId: string, storedNicknames: string[]) {
try {
const member = this.context.guild.members.cache.find(
m => m.id === userId,
);
if (!member) return;
const nicknames = [member.user.username, ...storedNicknames];
const pickableNicknames = nicknames.filter(
n => n !== member.nickname,
);
const randomizedNickname =
pickableNicknames[
Math.floor(Math.random() * pickableNicknames.length)
];
await member.setNickname(randomizedNickname);
} catch (err) {
log.error(err, `Couldn't update user '${userId}' nickname`);
}
async function updateNickname(
context: BotContext,
userId: string,
storedNicknames: string[],
) {
try {
const member = context.guild.members.cache.find(m => m.id === userId);
if (!member) return;
const nicknames = [member.user.username, ...storedNicknames];
const pickableNicknames = nicknames.filter(n => n !== member.nickname);
const randomizedNickname =
pickableNicknames[
Math.floor(Math.random() * pickableNicknames.length)
];
await member.setNickname(randomizedNickname);
} catch (err) {
log.error(err, `Couldn't update user '${userId}' nickname`);
}
}

0 comments on commit 567e6ee

Please sign in to comment.