summaryrefslogtreecommitdiffstats
path: root/src/modules/messages.ts
blob: 67e3983dc1862daf33b82e71b9665bbc2d2c938d (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
48
49
// import Irc from "@/index";

export default class Messages {
  readonly url = "irc/";

  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],
      div = document.createElement("div"),
      spans = [
        document.createElement("span"),
        document.createElement("span"),
        document.createElement("span"),
      ];

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

    spans[0].innerText = `[${h}:${min}] `;
    spans[1].innerText = msg.username === "Server" ? `<${msg.username}> ` : `<@${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;
}