summaryrefslogtreecommitdiffstats
path: root/src/modules/messages.ts
blob: 4a4b48af24c2c0bdb24351dffc407c1dbbbacab2 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
// import Irc from "@/index";

export default class Messages {
  readonly url = "http://localhost:5000/";

  sendMessage(msg: Message): void {
    fetch(this.url + "send", {
      method: "POST",
      headers: {
        Accept: "application/json",
        "Content-Type": "application/json",
      },
      body: JSON.stringify(msg),
    });
  }

  async addMessage(msg: Message): Promise<void> {
    const board = $(".overview")[0],
      time = new Date(msg.time),
      div = document.createElement("div"),
      spans = [
        document.createElement("span"),
        document.createElement("span"),
        document.createElement("span"),
      ];

    let min = new Date().getMinutes().toString();
    min = min.length === 1 ? "0" + min : min;

    spans[0].innerText = `[${time.getHours()}:${min}] `;
    spans[1].innerText = `<@${msg.username}> `;
    spans[1].style.color = msg.color;
    spans[2].innerText = msg.text;

    // @ts-expect-error
    $(spans[2]).emoticonize();
    spans.forEach(span => div.appendChild(span));

    board.appendChild(div);
  }
}
export interface Message {
  text: string;
  color: string;
  username: string;
  time: number;
}