2021-03-02 22:46:48 +01:00
|
|
|
import Client from "./lib/client.js";
|
2021-01-22 18:29:22 +01:00
|
|
|
|
2020-07-13 17:22:24 +02:00
|
|
|
export const SERVER_BUFFER = "*";
|
|
|
|
|
2020-06-26 10:35:38 +02:00
|
|
|
export const BufferType = {
|
|
|
|
SERVER: "server",
|
|
|
|
CHANNEL: "channel",
|
|
|
|
NICK: "nick",
|
|
|
|
};
|
2020-06-24 16:56:28 +02:00
|
|
|
|
2021-06-03 11:46:50 +02:00
|
|
|
export const ServerStatus = Client.Status;
|
2020-06-24 16:56:28 +02:00
|
|
|
|
|
|
|
export const Unread = {
|
|
|
|
NONE: "",
|
|
|
|
MESSAGE: "message",
|
2020-06-29 11:08:47 +02:00
|
|
|
HIGHLIGHT: "highlight",
|
2020-06-24 16:56:28 +02:00
|
|
|
|
2021-05-31 18:26:04 +02:00
|
|
|
compare(a, b) {
|
2020-06-24 16:56:28 +02:00
|
|
|
const priority = {
|
2021-05-27 22:35:41 +02:00
|
|
|
[Unread.NONE]: 0,
|
2020-06-24 16:56:28 +02:00
|
|
|
[Unread.MESSAGE]: 1,
|
2020-06-29 11:08:47 +02:00
|
|
|
[Unread.HIGHLIGHT]: 2,
|
2020-06-24 16:56:28 +02:00
|
|
|
};
|
2021-05-31 18:26:04 +02:00
|
|
|
return priority[a] - priority[b];
|
|
|
|
},
|
|
|
|
union(a, b) {
|
|
|
|
return (Unread.compare(a, b) > 0) ? a : b;
|
2020-06-24 16:56:28 +02:00
|
|
|
},
|
|
|
|
};
|
2020-07-15 18:47:33 +02:00
|
|
|
|
2020-07-23 09:58:05 +02:00
|
|
|
export const ReceiptType = {
|
|
|
|
DELIVERED: "delivered",
|
|
|
|
READ: "read",
|
|
|
|
};
|
|
|
|
|
2020-07-15 18:47:33 +02:00
|
|
|
export function getNickURL(nick) {
|
2021-05-25 12:42:24 +02:00
|
|
|
return "irc:///" + encodeURIComponent(nick) + ",isuser";
|
2020-07-15 18:47:33 +02:00
|
|
|
}
|
|
|
|
|
2021-06-03 11:04:32 +02:00
|
|
|
export function getChannelURL(channel) {
|
|
|
|
return "irc:///" + encodeURIComponent(channel);
|
|
|
|
}
|
|
|
|
|
2020-07-15 18:47:33 +02:00
|
|
|
export function getBufferURL(buf) {
|
|
|
|
switch (buf.type) {
|
|
|
|
case BufferType.SERVER:
|
|
|
|
return "irc:///";
|
|
|
|
case BufferType.CHANNEL:
|
2021-06-03 11:04:32 +02:00
|
|
|
return getChannelURL(buf.name);
|
2020-07-15 18:47:33 +02:00
|
|
|
case BufferType.NICK:
|
|
|
|
return getNickURL(buf.name);
|
|
|
|
}
|
|
|
|
throw new Error("Unknown buffer type: " + buf.type);
|
|
|
|
}
|
|
|
|
|
|
|
|
export function getMessageURL(buf, msg) {
|
|
|
|
var bufURL = getBufferURL(buf);
|
2020-07-21 14:48:04 +02:00
|
|
|
if (msg.tags.msgid) {
|
2021-05-25 12:46:00 +02:00
|
|
|
return bufURL + "?msgid=" + encodeURIComponent(msg.tags.msgid);
|
2020-07-21 14:48:04 +02:00
|
|
|
} else {
|
2021-05-25 12:46:00 +02:00
|
|
|
return bufURL + "?timestamp=" + encodeURIComponent(msg.tags.time);
|
2020-07-21 14:48:04 +02:00
|
|
|
}
|
2020-07-15 18:47:33 +02:00
|
|
|
}
|
2021-05-31 17:39:37 +02:00
|
|
|
|
2021-06-03 11:46:50 +02:00
|
|
|
export function getServerName(server, bouncerNetwork, isBouncer) {
|
2021-05-31 17:39:37 +02:00
|
|
|
if (bouncerNetwork && bouncerNetwork.name) {
|
|
|
|
return bouncerNetwork.name;
|
|
|
|
}
|
|
|
|
if (isBouncer) {
|
|
|
|
return "bouncer";
|
|
|
|
}
|
|
|
|
|
2021-06-03 11:46:50 +02:00
|
|
|
var netName = server.isupport.get("NETWORK");
|
2021-05-31 17:39:37 +02:00
|
|
|
if (netName) {
|
|
|
|
return netName;
|
|
|
|
}
|
|
|
|
|
|
|
|
return "server";
|
|
|
|
}
|