Skip to content

Commit 139c79b

Browse files
Merge pull request #9 from kcoderhtml/slack-status-age-count
slack-status-age-count
2 parents f0215af + 51fa7c4 commit 139c79b

File tree

3 files changed

+37
-2
lines changed

3 files changed

+37
-2
lines changed

content/message.txt

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ type Person = {
1010
let usr: Person = {
1111
name: "Kieran",
1212
nomeDeGuerra: "Kieran",
13-
age: 15.834,
13+
age: {age},
1414
roles: [
1515
"student",
1616
"developer",
@@ -28,7 +28,7 @@ let usr: Person = {
2828
],
2929
isAlive: true,
3030
};
31-
3231
console.log(usr);
3332

3433
console.log("{greeting} This is my plain text site!");
34+
console.log("{slack_status}");

utils/files.ts

+15
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import { getSlackStatus } from "./slack";
2+
13
// get the greeting from a file and return a random greeting
24
async function getGreeting() {
35
const greetingFile = await Bun.file("content/greeting.txt").text();
@@ -9,5 +11,18 @@ async function getGreeting() {
911
export async function getMessage() {
1012
let messageFile = await Bun.file("content/message.txt").text();
1113
messageFile = messageFile.replace("{greeting}", await getGreeting());
14+
// get a decimal value of the time since 2008-04-27
15+
messageFile = messageFile.replace(
16+
"{age}",
17+
(
18+
(Date.now() - new Date("2008-04-27").getTime()) /
19+
1000 /
20+
60 /
21+
60 /
22+
24 /
23+
365
24+
).toFixed(10),
25+
);
26+
messageFile = messageFile.replace("{slack_status}", await getSlackStatus());
1227
return messageFile;
1328
}

utils/slack.ts

+20
Original file line numberDiff line numberDiff line change
@@ -104,3 +104,23 @@ export async function get10DaysLeaderboard(start: Date, end: Date) {
104104

105105
return leaderboardFormatted;
106106
}
107+
108+
export async function getSlackStatus() {
109+
// get slack status from the slack API
110+
const response = await fetch(
111+
"https://slack.com/api/users.getPresence?user=U062UG485EE&pretty=1",
112+
{
113+
headers: {
114+
Authorization: `Bearer ${process.env.SLACK_OAUTH_TOKEN}`,
115+
},
116+
},
117+
);
118+
119+
const status = await response.json();
120+
121+
return status.presence === "active"
122+
? new Date().getHours() > 20 && new Date().getHours() < 8
123+
? "I'm currently listed as active on slack but i probably forgot to set myself not active :)"
124+
: "I'm currently listed as active on slack :)"
125+
: "I'm currently listed as not active on slack :( catch you later?";
126+
}

0 commit comments

Comments
 (0)