Skip to content

Commit e782982

Browse files
committed
fix: reply in thread and don't run morning greeting if no new messages
1 parent b76e06a commit e782982

File tree

4 files changed

+38
-13
lines changed

4 files changed

+38
-13
lines changed

app.ts

Lines changed: 27 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,15 +22,34 @@ registerListeners(app);
2222
(async () => {
2323
try {
2424
await app.start(process.env.PORT || 3000);
25+
const appUserId = (await app.client.auth.test()).bot_id;
26+
if (appUserId === undefined) throw new Error("Failed to get bot id!");
27+
2528
app.logger.info("⚡️ Bolt app is running! ⚡️");
26-
setUpDailyGreeting((msg) =>
27-
app.client.chat
28-
.postMessage({
29-
text: msg,
30-
channel: CMUEATS_CHANNEL_ID,
31-
})
32-
.catch(app.logger.error)
33-
);
29+
app.logger.info(`Bot user id: ${appUserId}`);
30+
setUpDailyGreeting(async (msg) => {
31+
// make sure latest message was not by mem-cho
32+
const latestMessage = (
33+
await app.client.conversations
34+
.history({
35+
limit: 1,
36+
channel: CMUEATS_CHANNEL_ID,
37+
})
38+
.catch(app.logger.error)
39+
)?.messages?.[0];
40+
41+
if (latestMessage?.bot_profile?.id !== appUserId) {
42+
app.logger.info("Sending morning greeting :3");
43+
app.client.chat
44+
.postMessage({
45+
text: msg,
46+
channel: CMUEATS_CHANNEL_ID,
47+
})
48+
.catch(app.logger.error);
49+
} else {
50+
app.logger.info("Skipping morning greeting. Dead chat");
51+
}
52+
});
3453
setUpUptimeChecker((msg) =>
3554
app.client.chat
3655
.postMessage({

intervals/morning.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,9 @@ export const setUpDailyGreeting = (
3838
) => {
3939
const currentTime = DateTime.local({ zone: "America/New_York" });
4040
const nextMorningTime =
41-
currentTime.hour < greetingTime.hour
41+
currentTime.hour < greetingTime.hour ||
42+
(currentTime.hour === greetingTime.hour &&
43+
currentTime.minute < greetingTime.minute)
4244
? currentTime.set(greetingTime)
4345
: currentTime.set(greetingTime).plus({ days: 1 });
4446
scheduleNextGreeting(sendMessage, nextMorningTime);

listeners/events/index.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,10 @@ import appHomeOpenedCallback from "./app-home-opened";
44
const register = (app: App) => {
55
app.event("app_home_opened", appHomeOpenedCallback);
66
app.event("app_mention", async ({ payload, say }) => {
7-
await say("hai! I'm here to let you know when cmueats goes down :3");
7+
await say({
8+
text: "hai! I'm here to let you know when cmueats goes down :3",
9+
thread_ts: payload.ts,
10+
});
811
});
912
};
1013

listeners/messages/index.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -40,11 +40,12 @@ class GabeSenpaiMessages {
4040

4141
const register = (app: App) => {
4242
const gabeMessages = new GabeSenpaiMessages();
43-
44-
app.message("gabe-senpai", async ({ say }) => {
43+
app.message("gabe-senpai", async ({ say, message }) => {
4544
const nextMessage = gabeMessages.getNextMessage();
4645
if (nextMessage !== "") {
47-
await say(nextMessage);
46+
await say({ text: nextMessage, thread_ts: message.ts }).catch(
47+
console.error
48+
);
4849
}
4950
});
5051
};

0 commit comments

Comments
 (0)