remove more uses of the deprictated function
This commit is contained in:
parent
00946b500a
commit
3894fcb976
8 changed files with 156 additions and 145 deletions
|
@ -154,23 +154,23 @@ class Channel {
|
||||||
}
|
}
|
||||||
setUpInfiniteScroller() {
|
setUpInfiniteScroller() {
|
||||||
this.infinite = new InfiniteScroller(async function (id, offset) {
|
this.infinite = new InfiniteScroller(async function (id, offset) {
|
||||||
const snowflake = this.messages.get(id).snowflake;
|
const snowflake = id;
|
||||||
if (offset === 1) {
|
if (offset === 1) {
|
||||||
if (this.idToPrev.has(snowflake)) {
|
if (this.idToPrev.has(snowflake)) {
|
||||||
return this.idToPrev.get(snowflake)?.id;
|
return this.idToPrev.get(snowflake);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
await this.grabBefore(id);
|
await this.grabBefore(id);
|
||||||
return this.idToPrev.get(snowflake)?.id;
|
return this.idToPrev.get(snowflake);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (this.idToNext.has(snowflake)) {
|
if (this.idToNext.has(snowflake)) {
|
||||||
return this.idToNext.get(snowflake)?.id;
|
return this.idToNext.get(snowflake);
|
||||||
}
|
}
|
||||||
else if (this.lastmessage?.id !== id) {
|
else if (this.lastmessage?.id !== id) {
|
||||||
await this.grabAfter(id);
|
await this.grabAfter(id);
|
||||||
return this.idToNext.get(snowflake)?.id;
|
return this.idToNext.get(snowflake);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
console.log("at bottom");
|
console.log("at bottom");
|
||||||
|
@ -237,12 +237,12 @@ class Channel {
|
||||||
this.topic = json.topic;
|
this.topic = json.topic;
|
||||||
this.nsfw = json.nsfw;
|
this.nsfw = json.nsfw;
|
||||||
this.position = json.position;
|
this.position = json.position;
|
||||||
this.lastreadmessageid = null;
|
this.lastreadmessageid = undefined;
|
||||||
if (json.last_message_id) {
|
if (json.last_message_id) {
|
||||||
this.lastmessageid = SnowFlake.getSnowFlakeFromID(json.last_message_id, Message);
|
this.lastmessageid = json.last_message_id;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
this.lastmessageid = null;
|
this.lastmessageid = undefined;
|
||||||
}
|
}
|
||||||
this.setUpInfiniteScroller();
|
this.setUpInfiniteScroller();
|
||||||
}
|
}
|
||||||
|
@ -259,7 +259,7 @@ class Channel {
|
||||||
return this.owner.info;
|
return this.owner.info;
|
||||||
}
|
}
|
||||||
readStateInfo(json) {
|
readStateInfo(json) {
|
||||||
this.lastreadmessageid = SnowFlake.getSnowFlakeFromID(json.last_message_id, Message);
|
this.lastreadmessageid = json.last_message_id;
|
||||||
this.mentions = json.mention_count;
|
this.mentions = json.mention_count;
|
||||||
this.mentions ??= 0;
|
this.mentions ??= 0;
|
||||||
this.lastpin = json.last_pin_timestamp;
|
this.lastpin = json.last_pin_timestamp;
|
||||||
|
@ -626,9 +626,9 @@ class Channel {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
async getmessage(id) {
|
async getmessage(id) {
|
||||||
const snowflake = SnowFlake.getSnowFlakeFromID(id, Message);
|
const message = this.messages.get(id);
|
||||||
if (snowflake.getObject()) {
|
if (message) {
|
||||||
return snowflake.getObject();
|
return message;
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
const gety = await fetch(this.info.api + "/channels/" + this.snowflake + "/messages?limit=1&around=" + id, { headers: this.headers });
|
const gety = await fetch(this.info.api + "/channels/" + this.snowflake + "/messages?limit=1&around=" + id, { headers: this.headers });
|
||||||
|
@ -705,7 +705,7 @@ class Channel {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
;
|
;
|
||||||
if (this.lastreadmessageid && this.lastreadmessageid.getObject()) {
|
if (this.lastreadmessageid && this.messages.has(this.lastreadmessageid)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const j = await fetch(this.info.api + "/channels/" + this.snowflake + "/messages?limit=100", {
|
const j = await fetch(this.info.api + "/channels/" + this.snowflake + "/messages?limit=100", {
|
||||||
|
@ -719,8 +719,8 @@ class Channel {
|
||||||
for (const thing of response) {
|
for (const thing of response) {
|
||||||
const message = new Message(thing, this);
|
const message = new Message(thing, this);
|
||||||
if (prev) {
|
if (prev) {
|
||||||
this.idToNext.set(message.snowflake, prev.snowflake);
|
this.idToNext.set(message.id, prev.id);
|
||||||
this.idToPrev.set(prev.snowflake, message.snowflake);
|
this.idToPrev.set(prev.id, message.id);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
this.lastmessage = message;
|
this.lastmessage = message;
|
||||||
|
@ -747,7 +747,7 @@ class Channel {
|
||||||
await fetch(this.info.api + "/channels/" + this.id + "/messages?limit=100&after=" + id, {
|
await fetch(this.info.api + "/channels/" + this.id + "/messages?limit=100&after=" + id, {
|
||||||
headers: this.headers
|
headers: this.headers
|
||||||
}).then((j) => { return j.json(); }).then(response => {
|
}).then((j) => { return j.json(); }).then(response => {
|
||||||
let previd = SnowFlake.getSnowFlakeFromID(id, Message);
|
let previd = id;
|
||||||
for (const i in response) {
|
for (const i in response) {
|
||||||
let messager;
|
let messager;
|
||||||
let willbreak = false;
|
let willbreak = false;
|
||||||
|
@ -758,9 +758,9 @@ class Channel {
|
||||||
messager = SnowFlake.getSnowFlakeFromID(response[i].id, Message).getObject();
|
messager = SnowFlake.getSnowFlakeFromID(response[i].id, Message).getObject();
|
||||||
willbreak = true;
|
willbreak = true;
|
||||||
}
|
}
|
||||||
this.idToPrev.set(messager.snowflake, previd);
|
this.idToPrev.set(messager.id, previd);
|
||||||
this.idToNext.set(previd, messager.snowflake);
|
this.idToNext.set(previd, messager.id);
|
||||||
previd = messager.snowflake;
|
previd = messager.id;
|
||||||
this.messageids.set(messager.snowflake, messager);
|
this.messageids.set(messager.snowflake, messager);
|
||||||
if (willbreak) {
|
if (willbreak) {
|
||||||
break;
|
break;
|
||||||
|
@ -772,33 +772,33 @@ class Channel {
|
||||||
}
|
}
|
||||||
topid;
|
topid;
|
||||||
async grabBefore(id) {
|
async grabBefore(id) {
|
||||||
if (this.topid && id === this.topid.id) {
|
if (this.topid && id === this.topid) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
await fetch(this.info.api + "/channels/" + this.snowflake + "/messages?before=" + id + "&limit=100", {
|
await fetch(this.info.api + "/channels/" + this.id + "/messages?before=" + id + "&limit=100", {
|
||||||
headers: this.headers
|
headers: this.headers
|
||||||
}).then((j) => { return j.json(); }).then((response) => {
|
}).then((j) => { return j.json(); }).then((response) => {
|
||||||
if (response.length < 100) {
|
if (response.length < 100) {
|
||||||
this.allthewayup = true;
|
this.allthewayup = true;
|
||||||
if (response.length === 0) {
|
if (response.length === 0) {
|
||||||
this.topid = SnowFlake.getSnowFlakeFromID(id, Message);
|
this.topid = id;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
let previd = SnowFlake.getSnowFlakeFromID(id, Message);
|
let previd = id;
|
||||||
for (const i in response) {
|
for (const i in response) {
|
||||||
let messager;
|
let messager;
|
||||||
let willbreak = false;
|
let willbreak = false;
|
||||||
if (!SnowFlake.hasSnowFlakeFromID(response[i].id, Message)) {
|
if (this.messages.has(response[i].id)) {
|
||||||
messager = new Message(response[i], this);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
console.log("flaky");
|
console.log("flaky");
|
||||||
messager = SnowFlake.getSnowFlakeFromID(response[i].id, Message).getObject();
|
messager = this.messages.get(response[i].id);
|
||||||
willbreak = true;
|
willbreak = true;
|
||||||
}
|
}
|
||||||
this.idToNext.set(messager.snowflake, previd);
|
else {
|
||||||
this.idToPrev.set(previd, messager.snowflake);
|
messager = new Message(response[i], this);
|
||||||
previd = messager.snowflake;
|
}
|
||||||
|
this.idToNext.set(messager.id, previd);
|
||||||
|
this.idToPrev.set(previd, messager.id);
|
||||||
|
previd = messager.id;
|
||||||
this.messageids.set(messager.snowflake, messager);
|
this.messageids.set(messager.snowflake, messager);
|
||||||
if (+i === response.length - 1 && response.length < 100) {
|
if (+i === response.length - 1 && response.length < 100) {
|
||||||
this.topid = previd;
|
this.topid = previd;
|
||||||
|
@ -840,13 +840,13 @@ class Channel {
|
||||||
const removetitle = document.getElementById("removetitle");
|
const removetitle = document.getElementById("removetitle");
|
||||||
//messages.innerHTML="";
|
//messages.innerHTML="";
|
||||||
let id;
|
let id;
|
||||||
if (this.lastreadmessageid && this.lastreadmessageid.getObject()) {
|
if (this.lastreadmessageid && this.messages.has(this.lastreadmessageid)) {
|
||||||
id = this.lastreadmessageid;
|
id = this.lastreadmessageid;
|
||||||
}
|
}
|
||||||
else if (this.lastreadmessageid && (id = this.findClosest(this.lastreadmessageid))) {
|
else if (this.lastreadmessageid && (id = this.findClosest(this.lastreadmessageid))) {
|
||||||
}
|
}
|
||||||
else if (this.lastmessage && this.lastmessage.snowflake) {
|
else if (this.lastmessageid && this.messages.has(this.lastmessageid)) {
|
||||||
id = this.goBackIds(this.lastmessage.snowflake, 50);
|
id = this.goBackIds(this.lastmessageid, 50);
|
||||||
}
|
}
|
||||||
if (!id) {
|
if (!id) {
|
||||||
if (!removetitle) {
|
if (!removetitle) {
|
||||||
|
@ -863,11 +863,11 @@ class Channel {
|
||||||
else if (removetitle) {
|
else if (removetitle) {
|
||||||
removetitle.remove();
|
removetitle.remove();
|
||||||
}
|
}
|
||||||
messages.append(await this.infinite.getDiv(id.id));
|
messages.append(await this.infinite.getDiv(id));
|
||||||
this.infinite.updatestuff();
|
this.infinite.updatestuff();
|
||||||
this.infinite.watchForChange().then(async (_) => {
|
this.infinite.watchForChange().then(async (_) => {
|
||||||
//await new Promise(resolve => setTimeout(resolve, 0));
|
//await new Promise(resolve => setTimeout(resolve, 0));
|
||||||
this.infinite.focus(id.id, false); //if someone could figure out how to make this work correctly without this, that's be great :P
|
this.infinite.focus(id, false); //if someone could figure out how to make this work correctly without this, that's be great :P
|
||||||
loading.classList.remove("loading");
|
loading.classList.remove("loading");
|
||||||
});
|
});
|
||||||
//this.infinite.focus(id.id,false);
|
//this.infinite.focus(id.id,false);
|
||||||
|
@ -890,22 +890,18 @@ class Channel {
|
||||||
}
|
}
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
findClosest(snowflake) {
|
findClosest(id) {
|
||||||
if (!this.lastmessage)
|
if (!this.lastmessageid || !id)
|
||||||
return;
|
return;
|
||||||
let flake = this.lastmessage.snowflake;
|
let flake = this.lastmessageid;
|
||||||
if (!snowflake) {
|
const time = Number((BigInt(id) >> 22n) + 1420070400000n);
|
||||||
return;
|
let flaketime = Number((BigInt(flake) >> 22n) + 1420070400000n);
|
||||||
}
|
|
||||||
;
|
|
||||||
const time = snowflake.getUnixTime();
|
|
||||||
let flaketime = flake.getUnixTime();
|
|
||||||
while (flake && time < flaketime) {
|
while (flake && time < flaketime) {
|
||||||
flake = this.idToPrev.get(flake);
|
flake = this.idToPrev.get(flake);
|
||||||
if (!flake) {
|
if (!flake) {
|
||||||
return undefined;
|
return undefined;
|
||||||
}
|
}
|
||||||
flaketime = flake.getUnixTime();
|
flaketime = Number((BigInt(flake) >> 22n) + 1420070400000n);
|
||||||
}
|
}
|
||||||
return flake;
|
return flake;
|
||||||
}
|
}
|
||||||
|
@ -1013,13 +1009,13 @@ class Channel {
|
||||||
const messagez = new Message(messagep.d, this);
|
const messagez = new Message(messagep.d, this);
|
||||||
this.lastmessage = messagez;
|
this.lastmessage = messagez;
|
||||||
if (this.lastmessageid) {
|
if (this.lastmessageid) {
|
||||||
this.idToNext.set(this.lastmessageid, messagez.snowflake);
|
this.idToNext.set(this.lastmessageid, messagez.id);
|
||||||
this.idToPrev.set(messagez.snowflake, this.lastmessageid);
|
this.idToPrev.set(messagez.id, this.lastmessageid);
|
||||||
}
|
}
|
||||||
this.lastmessageid = messagez.snowflake;
|
this.lastmessageid = messagez.id;
|
||||||
this.messageids.set(messagez.snowflake, messagez);
|
this.messageids.set(messagez.snowflake, messagez);
|
||||||
if (messagez.author === this.localuser.user) {
|
if (messagez.author === this.localuser.user) {
|
||||||
this.lastreadmessageid = messagez.snowflake;
|
this.lastreadmessageid = messagez.id;
|
||||||
if (this.myhtml) {
|
if (this.myhtml) {
|
||||||
this.myhtml.classList.remove("cunread");
|
this.myhtml.classList.remove("cunread");
|
||||||
}
|
}
|
||||||
|
|
|
@ -95,12 +95,12 @@ class Group extends Channel {
|
||||||
this.guild_id = "@me";
|
this.guild_id = "@me";
|
||||||
this.messageids = new Map();
|
this.messageids = new Map();
|
||||||
this.permission_overwrites = new Map();
|
this.permission_overwrites = new Map();
|
||||||
this.lastmessageid = SnowFlake.getSnowFlakeFromID(json.last_message_id, Message);
|
this.lastmessageid = json.last_message_id;
|
||||||
this.lastmessageid ??= null;
|
this.lastmessageid ??= null;
|
||||||
this.mentions = 0;
|
this.mentions = 0;
|
||||||
this.setUpInfiniteScroller();
|
this.setUpInfiniteScroller();
|
||||||
if (this.lastmessageid) {
|
if (this.lastmessageid) {
|
||||||
this.position = this.lastmessageid.getUnixTime();
|
this.position = Number((BigInt(this.lastmessageid) >> 22n) + 1420070400000n);
|
||||||
}
|
}
|
||||||
this.position = -Math.max(this.position, this.snowflake.getUnixTime());
|
this.position = -Math.max(this.position, this.snowflake.getUnixTime());
|
||||||
}
|
}
|
||||||
|
@ -139,13 +139,13 @@ class Group extends Channel {
|
||||||
messageCreate(messagep) {
|
messageCreate(messagep) {
|
||||||
const messagez = new Message(messagep.d, this);
|
const messagez = new Message(messagep.d, this);
|
||||||
if (this.lastmessageid) {
|
if (this.lastmessageid) {
|
||||||
this.idToNext.set(this.lastmessageid, messagez.snowflake);
|
this.idToNext.set(this.lastmessageid, messagez.id);
|
||||||
}
|
}
|
||||||
this.idToPrev.set(messagez.snowflake, this.lastmessageid);
|
this.idToPrev.set(messagez.id, this.lastmessageid);
|
||||||
this.lastmessageid = messagez.snowflake;
|
this.lastmessageid = messagez.id;
|
||||||
this.messageids.set(messagez.snowflake, messagez);
|
this.messageids.set(messagez.snowflake, messagez);
|
||||||
if (messagez.author === this.localuser.user) {
|
if (messagez.author === this.localuser.user) {
|
||||||
this.lastreadmessageid = messagez.snowflake;
|
this.lastreadmessageid = messagez.id;
|
||||||
if (this.myhtml) {
|
if (this.myhtml) {
|
||||||
this.myhtml.classList.remove("cunread");
|
this.myhtml.classList.remove("cunread");
|
||||||
}
|
}
|
||||||
|
|
|
@ -55,7 +55,7 @@ class Message {
|
||||||
Message.contextmenu.addbutton("Copy message id", function () {
|
Message.contextmenu.addbutton("Copy message id", function () {
|
||||||
navigator.clipboard.writeText(this.id);
|
navigator.clipboard.writeText(this.id);
|
||||||
});
|
});
|
||||||
Message.contextmenu.addsubmenu("Add reaction", function (e) {
|
Message.contextmenu.addsubmenu("Add reaction", function (arg, e) {
|
||||||
Emoji.emojiPicker(e.x, e.y, this.localuser).then(_ => {
|
Emoji.emojiPicker(e.x, e.y, this.localuser).then(_ => {
|
||||||
this.reactionToggle(_);
|
this.reactionToggle(_);
|
||||||
});
|
});
|
||||||
|
@ -223,25 +223,28 @@ class Message {
|
||||||
this.div.innerHTML = "";
|
this.div.innerHTML = "";
|
||||||
this.div = undefined;
|
this.div = undefined;
|
||||||
}
|
}
|
||||||
const prev = this.channel.idToPrev.get(this.snowflake);
|
const prev = this.channel.idToPrev.get(this.id);
|
||||||
const next = this.channel.idToNext.get(this.snowflake);
|
const next = this.channel.idToNext.get(this.id);
|
||||||
if (prev) {
|
if (prev) {
|
||||||
this.channel.idToPrev.delete(this.snowflake);
|
this.channel.idToPrev.delete(this.id);
|
||||||
}
|
}
|
||||||
if (next) {
|
if (next) {
|
||||||
this.channel.idToNext.delete(this.snowflake);
|
this.channel.idToNext.delete(this.id);
|
||||||
}
|
}
|
||||||
if (prev && next) {
|
if (prev && next) {
|
||||||
this.channel.idToPrev.set(next, prev);
|
this.channel.idToPrev.set(next, prev);
|
||||||
this.channel.idToNext.set(prev, next);
|
this.channel.idToNext.set(prev, next);
|
||||||
}
|
}
|
||||||
this.channel.messageids.delete(this.snowflake);
|
this.channel.messageids.delete(this.snowflake);
|
||||||
if (prev && prev.getObject()) {
|
if (prev) {
|
||||||
prev.getObject().generateMessage();
|
const prevmessage = this.channel.messages.get(prev);
|
||||||
|
if (prevmessage) {
|
||||||
|
prevmessage.generateMessage();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (this.channel.lastmessage === this) {
|
if (this.channel.lastmessage === this) {
|
||||||
if (prev) {
|
if (prev) {
|
||||||
this.channel.lastmessage = prev.getObject();
|
this.channel.lastmessage = this.channel.messages.get(prev);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
this.channel.lastmessage = undefined;
|
this.channel.lastmessage = undefined;
|
||||||
|
@ -250,7 +253,12 @@ class Message {
|
||||||
}
|
}
|
||||||
reactdiv;
|
reactdiv;
|
||||||
blockedPropigate() {
|
blockedPropigate() {
|
||||||
const premessage = this.channel.idToPrev.get(this.snowflake)?.getObject();
|
const previd = this.channel.idToPrev.get(this.id);
|
||||||
|
if (!previd) {
|
||||||
|
this.generateMessage();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const premessage = this.channel.messages.get(previd);
|
||||||
if (premessage?.author === this.author) {
|
if (premessage?.author === this.author) {
|
||||||
premessage.blockedPropigate();
|
premessage.blockedPropigate();
|
||||||
}
|
}
|
||||||
|
@ -262,7 +270,7 @@ class Message {
|
||||||
if (!this.div)
|
if (!this.div)
|
||||||
return;
|
return;
|
||||||
if (!premessage) {
|
if (!premessage) {
|
||||||
premessage = this.channel.idToPrev.get(this.snowflake)?.getObject();
|
premessage = this.channel.messages.get(this.channel.idToPrev.get(this.id));
|
||||||
}
|
}
|
||||||
const div = this.div;
|
const div = this.div;
|
||||||
if (this === this.channel.replyingto) {
|
if (this === this.channel.replyingto) {
|
||||||
|
@ -284,7 +292,7 @@ class Message {
|
||||||
let next = this;
|
let next = this;
|
||||||
while (next?.author === this.author) {
|
while (next?.author === this.author) {
|
||||||
next.generateMessage(undefined);
|
next.generateMessage(undefined);
|
||||||
next = this.channel.idToNext.get(next.snowflake)?.getObject();
|
next = this.channel.messages.get(this.channel.idToNext.get(next.id));
|
||||||
}
|
}
|
||||||
if (this.channel.infinite.scroll && scroll) {
|
if (this.channel.infinite.scroll && scroll) {
|
||||||
this.channel.infinite.scroll.scrollTop = scroll;
|
this.channel.infinite.scroll.scrollTop = scroll;
|
||||||
|
@ -304,10 +312,10 @@ class Message {
|
||||||
build.classList.add("blocked", "topMessage");
|
build.classList.add("blocked", "topMessage");
|
||||||
const span = document.createElement("span");
|
const span = document.createElement("span");
|
||||||
let count = 1;
|
let count = 1;
|
||||||
let next = this.channel.idToNext.get(this.snowflake)?.getObject();
|
let next = this.channel.messages.get(this.channel.idToNext.get(this.id));
|
||||||
while (next?.author === this.author) {
|
while (next?.author === this.author) {
|
||||||
count++;
|
count++;
|
||||||
next = this.channel.idToNext.get(next.snowflake)?.getObject();
|
next = this.channel.messages.get(this.channel.idToNext.get(next.id));
|
||||||
}
|
}
|
||||||
span.textContent = `You have this user blocked, click to see the ${count} blocked messages.`;
|
span.textContent = `You have this user blocked, click to see the ${count} blocked messages.`;
|
||||||
build.append(span);
|
build.append(span);
|
||||||
|
@ -317,7 +325,7 @@ class Message {
|
||||||
let next = this;
|
let next = this;
|
||||||
while (next?.author === this.author) {
|
while (next?.author === this.author) {
|
||||||
next.generateMessage(undefined, true);
|
next.generateMessage(undefined, true);
|
||||||
next = this.channel.idToNext.get(next.snowflake)?.getObject();
|
next = this.channel.messages.get(this.channel.idToNext.get(next.id));
|
||||||
console.log("loopy");
|
console.log("loopy");
|
||||||
}
|
}
|
||||||
if (this.channel.infinite.scroll && scroll) {
|
if (this.channel.infinite.scroll && scroll) {
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
"removeComments": false,
|
"removeComments": false,
|
||||||
"noImplicitThis":true,
|
"noImplicitThis":true,
|
||||||
"useUnknownInCatchVariables":true,
|
"useUnknownInCatchVariables":true,
|
||||||
"strictNullChecks":true
|
"strictNullChecks":false
|
||||||
},
|
},
|
||||||
"include": [
|
"include": [
|
||||||
"./webpage/*.ts"
|
"./webpage/*.ts"
|
||||||
|
|
|
@ -35,8 +35,8 @@ class Channel{
|
||||||
topic:string;
|
topic:string;
|
||||||
nsfw:boolean;
|
nsfw:boolean;
|
||||||
position:number;
|
position:number;
|
||||||
lastreadmessageid:SnowFlake<Message>|null;
|
lastreadmessageid:string|undefined;
|
||||||
lastmessageid:SnowFlake<Message>|null;
|
lastmessageid:string|undefined;
|
||||||
mentions:number;
|
mentions:number;
|
||||||
lastpin:string;
|
lastpin:string;
|
||||||
move_id:SnowFlake<Channel>|null;
|
move_id:SnowFlake<Channel>|null;
|
||||||
|
@ -46,8 +46,8 @@ class Channel{
|
||||||
static contextmenu=new Contextmenu<Channel,undefined>("channel menu");
|
static contextmenu=new Contextmenu<Channel,undefined>("channel menu");
|
||||||
replyingto:Message|null;
|
replyingto:Message|null;
|
||||||
infinite:InfiniteScroller;
|
infinite:InfiniteScroller;
|
||||||
idToPrev:Map<SnowFlake<Message>,SnowFlake<Message>>=new Map();
|
idToPrev:Map<string,string>=new Map();
|
||||||
idToNext:Map<SnowFlake<Message>,SnowFlake<Message>>=new Map();
|
idToNext:Map<string,string>=new Map();
|
||||||
messages:Map<string,Message>=new Map();
|
messages:Map<string,Message>=new Map();
|
||||||
get id(){
|
get id(){
|
||||||
return this.snowflake.id;
|
return this.snowflake.id;
|
||||||
|
@ -170,20 +170,20 @@ class Channel{
|
||||||
}
|
}
|
||||||
setUpInfiniteScroller(){
|
setUpInfiniteScroller(){
|
||||||
this.infinite=new InfiniteScroller(async function(this:Channel,id:string,offset:number):Promise<string|undefined>{
|
this.infinite=new InfiniteScroller(async function(this:Channel,id:string,offset:number):Promise<string|undefined>{
|
||||||
const snowflake=(this.messages.get(id) as Message).snowflake;
|
const snowflake=id;
|
||||||
if(offset===1){
|
if(offset===1){
|
||||||
if(this.idToPrev.has(snowflake)){
|
if(this.idToPrev.has(snowflake)){
|
||||||
return this.idToPrev.get(snowflake)?.id;
|
return this.idToPrev.get(snowflake);
|
||||||
}else{
|
}else{
|
||||||
await this.grabBefore(id);
|
await this.grabBefore(id);
|
||||||
return this.idToPrev.get(snowflake)?.id;
|
return this.idToPrev.get(snowflake);
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
if(this.idToNext.has(snowflake)){
|
if(this.idToNext.has(snowflake)){
|
||||||
return this.idToNext.get(snowflake)?.id;
|
return this.idToNext.get(snowflake);
|
||||||
}else if(this.lastmessage?.id!==id){
|
}else if(this.lastmessage?.id!==id){
|
||||||
await this.grabAfter(id);
|
await this.grabAfter(id);
|
||||||
return this.idToNext.get(snowflake)?.id;
|
return this.idToNext.get(snowflake);
|
||||||
}else{
|
}else{
|
||||||
console.log("at bottom")
|
console.log("at bottom")
|
||||||
}
|
}
|
||||||
|
@ -246,11 +246,11 @@ class Channel{
|
||||||
this.topic=json.topic;
|
this.topic=json.topic;
|
||||||
this.nsfw=json.nsfw;
|
this.nsfw=json.nsfw;
|
||||||
this.position=json.position;
|
this.position=json.position;
|
||||||
this.lastreadmessageid=null;
|
this.lastreadmessageid=undefined;
|
||||||
if(json.last_message_id){
|
if(json.last_message_id){
|
||||||
this.lastmessageid=SnowFlake.getSnowFlakeFromID(json.last_message_id,Message);
|
this.lastmessageid=json.last_message_id;
|
||||||
}else{
|
}else{
|
||||||
this.lastmessageid=null;
|
this.lastmessageid=undefined;
|
||||||
}
|
}
|
||||||
this.setUpInfiniteScroller();
|
this.setUpInfiniteScroller();
|
||||||
}
|
}
|
||||||
|
@ -267,7 +267,7 @@ class Channel{
|
||||||
return this.owner.info;
|
return this.owner.info;
|
||||||
}
|
}
|
||||||
readStateInfo(json:readyjson["d"]["read_state"]["entries"][0]){
|
readStateInfo(json:readyjson["d"]["read_state"]["entries"][0]){
|
||||||
this.lastreadmessageid=SnowFlake.getSnowFlakeFromID(json.last_message_id,Message);
|
this.lastreadmessageid=json.last_message_id;
|
||||||
this.mentions=json.mention_count;
|
this.mentions=json.mention_count;
|
||||||
this.mentions??=0;
|
this.mentions??=0;
|
||||||
this.lastpin=json.last_pin_timestamp;
|
this.lastpin=json.last_pin_timestamp;
|
||||||
|
@ -629,9 +629,9 @@ class Channel{
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
async getmessage(id:string):Promise<Message>{
|
async getmessage(id:string):Promise<Message>{
|
||||||
const snowflake=SnowFlake.getSnowFlakeFromID(id,Message) as SnowFlake<Message>;
|
const message=this.messages.get(id);
|
||||||
if(snowflake.getObject()){
|
if(message){
|
||||||
return snowflake.getObject();
|
return message;
|
||||||
}else{
|
}else{
|
||||||
const gety=await fetch(this.info.api+"/channels/"+this.snowflake+"/messages?limit=1&around="+id,{headers:this.headers})
|
const gety=await fetch(this.info.api+"/channels/"+this.snowflake+"/messages?limit=1&around="+id,{headers:this.headers})
|
||||||
const json=await gety.json();
|
const json=await gety.json();
|
||||||
|
@ -705,7 +705,7 @@ class Channel{
|
||||||
lastmessage:Message|undefined;
|
lastmessage:Message|undefined;
|
||||||
async putmessages(){
|
async putmessages(){
|
||||||
if(this.allthewayup){return};
|
if(this.allthewayup){return};
|
||||||
if(this.lastreadmessageid&&this.lastreadmessageid.getObject()){
|
if(this.lastreadmessageid&&this.messages.has(this.lastreadmessageid)){
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
const j=await fetch(this.info.api+"/channels/"+this.snowflake+"/messages?limit=100",{
|
const j=await fetch(this.info.api+"/channels/"+this.snowflake+"/messages?limit=100",{
|
||||||
|
@ -720,8 +720,8 @@ class Channel{
|
||||||
for(const thing of response){
|
for(const thing of response){
|
||||||
const message=new Message(thing,this);
|
const message=new Message(thing,this);
|
||||||
if(prev){
|
if(prev){
|
||||||
this.idToNext.set(message.snowflake,prev.snowflake);
|
this.idToNext.set(message.id,prev.id);
|
||||||
this.idToPrev.set(prev.snowflake,message.snowflake);
|
this.idToPrev.set(prev.id,message.id);
|
||||||
}else{
|
}else{
|
||||||
this.lastmessage=message;
|
this.lastmessage=message;
|
||||||
}
|
}
|
||||||
|
@ -747,7 +747,7 @@ class Channel{
|
||||||
await fetch(this.info.api+"/channels/"+this.id+"/messages?limit=100&after="+id,{
|
await fetch(this.info.api+"/channels/"+this.id+"/messages?limit=100&after="+id,{
|
||||||
headers:this.headers
|
headers:this.headers
|
||||||
}).then((j)=>{return j.json()}).then(response=>{
|
}).then((j)=>{return j.json()}).then(response=>{
|
||||||
let previd:SnowFlake<Message>=SnowFlake.getSnowFlakeFromID(id,Message);
|
let previd:string=id;
|
||||||
for(const i in response){
|
for(const i in response){
|
||||||
let messager:Message;
|
let messager:Message;
|
||||||
let willbreak=false
|
let willbreak=false
|
||||||
|
@ -757,9 +757,9 @@ class Channel{
|
||||||
messager=SnowFlake.getSnowFlakeFromID(response[i].id,Message).getObject();
|
messager=SnowFlake.getSnowFlakeFromID(response[i].id,Message).getObject();
|
||||||
willbreak=true;
|
willbreak=true;
|
||||||
}
|
}
|
||||||
this.idToPrev.set(messager.snowflake,previd);
|
this.idToPrev.set(messager.id,previd);
|
||||||
this.idToNext.set(previd,messager.snowflake);
|
this.idToNext.set(previd,messager.id);
|
||||||
previd=messager.snowflake;
|
previd=messager.id;
|
||||||
this.messageids.set(messager.snowflake,messager);
|
this.messageids.set(messager.snowflake,messager);
|
||||||
if(willbreak){
|
if(willbreak){
|
||||||
break;
|
break;
|
||||||
|
@ -769,36 +769,36 @@ class Channel{
|
||||||
})
|
})
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
topid:SnowFlake<Message>;
|
topid:string;
|
||||||
async grabBefore(id:string){
|
async grabBefore(id:string){
|
||||||
if(this.topid&&id===this.topid.id){
|
if(this.topid&&id===this.topid){
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
await fetch(this.info.api+"/channels/"+this.snowflake+"/messages?before="+id+"&limit=100",{
|
await fetch(this.info.api+"/channels/"+this.id+"/messages?before="+id+"&limit=100",{
|
||||||
headers:this.headers
|
headers:this.headers
|
||||||
}).then((j)=>{return j.json()}).then((response:messagejson[])=>{
|
}).then((j)=>{return j.json()}).then((response:messagejson[])=>{
|
||||||
if(response.length<100){
|
if(response.length<100){
|
||||||
this.allthewayup=true;
|
this.allthewayup=true;
|
||||||
if(response.length===0){
|
if(response.length===0){
|
||||||
this.topid=SnowFlake.getSnowFlakeFromID(id,Message);
|
this.topid=id;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
let previd=SnowFlake.getSnowFlakeFromID(id,Message) as SnowFlake<Message>;
|
let previd=id;
|
||||||
for(const i in response){
|
for(const i in response){
|
||||||
let messager:Message;
|
let messager:Message;
|
||||||
let willbreak=false;
|
let willbreak=false;
|
||||||
if(!SnowFlake.hasSnowFlakeFromID(response[i].id,Message)){
|
if(this.messages.has(response[i].id)){
|
||||||
messager=new Message(response[i],this);
|
|
||||||
}else{
|
|
||||||
console.log("flaky")
|
console.log("flaky")
|
||||||
messager=SnowFlake.getSnowFlakeFromID(response[i].id,Message).getObject();
|
messager=this.messages.get(response[i].id) as Message;
|
||||||
willbreak=true;
|
willbreak=true;
|
||||||
|
}else{
|
||||||
|
messager=new Message(response[i],this);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.idToNext.set(messager.snowflake,previd);
|
this.idToNext.set(messager.id,previd);
|
||||||
this.idToPrev.set(previd,messager.snowflake);
|
this.idToPrev.set(previd,messager.id);
|
||||||
previd=messager.snowflake;
|
previd=messager.id;
|
||||||
this.messageids.set(messager.snowflake,messager);
|
this.messageids.set(messager.snowflake,messager);
|
||||||
|
|
||||||
if(+i===response.length-1&&response.length<100){
|
if(+i===response.length-1&&response.length<100){
|
||||||
|
@ -839,13 +839,13 @@ class Channel{
|
||||||
const loading=document.getElementById("loadingdiv") as HTMLDivElement;
|
const loading=document.getElementById("loadingdiv") as HTMLDivElement;
|
||||||
const removetitle=document.getElementById("removetitle");
|
const removetitle=document.getElementById("removetitle");
|
||||||
//messages.innerHTML="";
|
//messages.innerHTML="";
|
||||||
let id:SnowFlake<Message>|undefined;
|
let id:string|undefined;
|
||||||
if(this.lastreadmessageid&&this.lastreadmessageid.getObject()){
|
if(this.lastreadmessageid&&this.messages.has(this.lastreadmessageid)){
|
||||||
id=this.lastreadmessageid;
|
id=this.lastreadmessageid;
|
||||||
}else if(this.lastreadmessageid&&(id=this.findClosest(this.lastreadmessageid))){
|
}else if(this.lastreadmessageid&&(id=this.findClosest(this.lastreadmessageid))){
|
||||||
|
|
||||||
}else if(this.lastmessage&&this.lastmessage.snowflake){
|
}else if(this.lastmessageid&&this.messages.has(this.lastmessageid)){
|
||||||
id=this.goBackIds(this.lastmessage.snowflake,50);
|
id=this.goBackIds(this.lastmessageid,50);
|
||||||
}
|
}
|
||||||
if(!id){
|
if(!id){
|
||||||
if(!removetitle){
|
if(!removetitle){
|
||||||
|
@ -861,17 +861,17 @@ class Channel{
|
||||||
}else if(removetitle){
|
}else if(removetitle){
|
||||||
removetitle.remove();
|
removetitle.remove();
|
||||||
}
|
}
|
||||||
messages.append(await this.infinite.getDiv(id.id));
|
messages.append(await this.infinite.getDiv(id));
|
||||||
this.infinite.updatestuff();
|
this.infinite.updatestuff();
|
||||||
this.infinite.watchForChange().then(async _=>{
|
this.infinite.watchForChange().then(async _=>{
|
||||||
//await new Promise(resolve => setTimeout(resolve, 0));
|
//await new Promise(resolve => setTimeout(resolve, 0));
|
||||||
this.infinite.focus(id.id,false);//if someone could figure out how to make this work correctly without this, that's be great :P
|
this.infinite.focus(id,false);//if someone could figure out how to make this work correctly without this, that's be great :P
|
||||||
loading.classList.remove("loading");
|
loading.classList.remove("loading");
|
||||||
});
|
});
|
||||||
//this.infinite.focus(id.id,false);
|
//this.infinite.focus(id.id,false);
|
||||||
|
|
||||||
}
|
}
|
||||||
private goBackIds(id:SnowFlake<Message>,back:number,returnifnotexistant=true):SnowFlake<Message>|undefined{
|
private goBackIds(id:string,back:number,returnifnotexistant=true):string|undefined{
|
||||||
while(back!==0){
|
while(back!==0){
|
||||||
const nextid=this.idToPrev.get(id);
|
const nextid=this.idToPrev.get(id);
|
||||||
if(nextid){
|
if(nextid){
|
||||||
|
@ -887,19 +887,18 @@ class Channel{
|
||||||
}
|
}
|
||||||
return id;
|
return id;
|
||||||
}
|
}
|
||||||
private findClosest(snowflake:SnowFlake<Message>){
|
private findClosest(id:string|undefined){
|
||||||
if(!this.lastmessage) return;
|
if(!this.lastmessageid||!id) return;
|
||||||
let flake:SnowFlake<Message>|null|undefined=this.lastmessage.snowflake;
|
let flake:string|undefined=this.lastmessageid;
|
||||||
if(!snowflake){return};
|
const time=Number((BigInt(id)>>22n)+1420070400000n);
|
||||||
const time=snowflake.getUnixTime();
|
let flaketime=Number((BigInt(flake)>>22n)+1420070400000n);
|
||||||
let flaketime=flake.getUnixTime()
|
|
||||||
while(flake&&time<flaketime){
|
while(flake&&time<flaketime){
|
||||||
flake=this.idToPrev.get(flake);
|
flake=this.idToPrev.get(flake);
|
||||||
|
|
||||||
if(!flake){
|
if(!flake){
|
||||||
return undefined;
|
return undefined;
|
||||||
}
|
}
|
||||||
flaketime=flake.getUnixTime();
|
flaketime=Number((BigInt(flake)>>22n)+1420070400000n);
|
||||||
}
|
}
|
||||||
return flake;
|
return flake;
|
||||||
}
|
}
|
||||||
|
@ -999,15 +998,15 @@ class Channel{
|
||||||
const messagez=new Message(messagep.d,this);
|
const messagez=new Message(messagep.d,this);
|
||||||
this.lastmessage=messagez;
|
this.lastmessage=messagez;
|
||||||
if(this.lastmessageid){
|
if(this.lastmessageid){
|
||||||
this.idToNext.set(this.lastmessageid,messagez.snowflake);
|
this.idToNext.set(this.lastmessageid,messagez.id);
|
||||||
this.idToPrev.set(messagez.snowflake,this.lastmessageid);
|
this.idToPrev.set(messagez.id,this.lastmessageid);
|
||||||
}
|
}
|
||||||
|
|
||||||
this.lastmessageid=messagez.snowflake;
|
this.lastmessageid=messagez.id;
|
||||||
this.messageids.set(messagez.snowflake,messagez);
|
this.messageids.set(messagez.snowflake,messagez);
|
||||||
|
|
||||||
if(messagez.author===this.localuser.user){
|
if(messagez.author===this.localuser.user){
|
||||||
this.lastreadmessageid=messagez.snowflake;
|
this.lastreadmessageid=messagez.id;
|
||||||
if(this.myhtml){
|
if(this.myhtml){
|
||||||
this.myhtml.classList.remove("cunread");
|
this.myhtml.classList.remove("cunread");
|
||||||
}
|
}
|
||||||
|
|
|
@ -101,12 +101,12 @@ class Group extends Channel{
|
||||||
this.guild_id="@me";
|
this.guild_id="@me";
|
||||||
this.messageids=new Map();
|
this.messageids=new Map();
|
||||||
this.permission_overwrites=new Map();
|
this.permission_overwrites=new Map();
|
||||||
this.lastmessageid=SnowFlake.getSnowFlakeFromID(json.last_message_id,Message);
|
this.lastmessageid=json.last_message_id;
|
||||||
this.lastmessageid??=null;
|
this.lastmessageid??=null;
|
||||||
this.mentions=0;
|
this.mentions=0;
|
||||||
this.setUpInfiniteScroller();
|
this.setUpInfiniteScroller();
|
||||||
if(this.lastmessageid){
|
if(this.lastmessageid){
|
||||||
this.position=this.lastmessageid.getUnixTime()
|
this.position=Number((BigInt(this.lastmessageid)>>22n)+1420070400000n);
|
||||||
}
|
}
|
||||||
this.position=-Math.max(this.position,this.snowflake.getUnixTime());
|
this.position=-Math.max(this.position,this.snowflake.getUnixTime());
|
||||||
}
|
}
|
||||||
|
@ -145,13 +145,13 @@ class Group extends Channel{
|
||||||
messageCreate(messagep){
|
messageCreate(messagep){
|
||||||
const messagez=new Message(messagep.d,this);
|
const messagez=new Message(messagep.d,this);
|
||||||
if(this.lastmessageid){
|
if(this.lastmessageid){
|
||||||
this.idToNext.set(this.lastmessageid,messagez.snowflake);
|
this.idToNext.set(this.lastmessageid,messagez.id);
|
||||||
}
|
}
|
||||||
this.idToPrev.set(messagez.snowflake,this.lastmessageid);
|
this.idToPrev.set(messagez.id,this.lastmessageid);
|
||||||
this.lastmessageid=messagez.snowflake;
|
this.lastmessageid=messagez.id;
|
||||||
this.messageids.set(messagez.snowflake,messagez);
|
this.messageids.set(messagez.snowflake,messagez);
|
||||||
if(messagez.author===this.localuser.user){
|
if(messagez.author===this.localuser.user){
|
||||||
this.lastreadmessageid=messagez.snowflake;
|
this.lastreadmessageid=messagez.id;
|
||||||
if(this.myhtml){
|
if(this.myhtml){
|
||||||
this.myhtml.classList.remove("cunread");
|
this.myhtml.classList.remove("cunread");
|
||||||
}
|
}
|
||||||
|
|
|
@ -384,7 +384,7 @@ class Guild{
|
||||||
return this.member.isAdmin()
|
return this.member.isAdmin()
|
||||||
}
|
}
|
||||||
async markAsRead(){
|
async markAsRead(){
|
||||||
const build:{read_states:{channel_id:SnowFlake<Channel>,message_id:SnowFlake<Message>|null,read_state_type:number}[]}={read_states:[]};
|
const build:{read_states:{channel_id:SnowFlake<Channel>,message_id:string|null,read_state_type:number}[]}={read_states:[]};
|
||||||
for(const thing of this.channels){
|
for(const thing of this.channels){
|
||||||
if(thing.hasunreads){
|
if(thing.hasunreads){
|
||||||
build.read_states.push({channel_id:thing.snowflake,message_id:thing.lastmessageid,read_state_type:0});
|
build.read_states.push({channel_id:thing.snowflake,message_id:thing.lastmessageid,read_state_type:0});
|
||||||
|
|
|
@ -60,7 +60,7 @@ class Message{
|
||||||
Message.contextmenu.addbutton("Copy message id",function(this:Message){
|
Message.contextmenu.addbutton("Copy message id",function(this:Message){
|
||||||
navigator.clipboard.writeText(this.id);
|
navigator.clipboard.writeText(this.id);
|
||||||
});
|
});
|
||||||
Message.contextmenu.addsubmenu("Add reaction",function(this:Message,e:{x:number,y:number}){
|
Message.contextmenu.addsubmenu("Add reaction",function(this:Message,arg,e:MouseEvent){
|
||||||
Emoji.emojiPicker(e.x,e.y,this.localuser).then(_=>{
|
Emoji.emojiPicker(e.x,e.y,this.localuser).then(_=>{
|
||||||
this.reactionToggle(_);
|
this.reactionToggle(_);
|
||||||
});
|
});
|
||||||
|
@ -224,25 +224,28 @@ class Message{
|
||||||
this.div.innerHTML="";
|
this.div.innerHTML="";
|
||||||
this.div=undefined;
|
this.div=undefined;
|
||||||
}
|
}
|
||||||
const prev=this.channel.idToPrev.get(this.snowflake) as SnowFlake<Message> | null;
|
const prev=this.channel.idToPrev.get(this.id);
|
||||||
const next=this.channel.idToNext.get(this.snowflake) as SnowFlake<Message> | null;
|
const next=this.channel.idToNext.get(this.id);
|
||||||
if(prev){
|
if(prev){
|
||||||
this.channel.idToPrev.delete(this.snowflake)
|
this.channel.idToPrev.delete(this.id)
|
||||||
}
|
}
|
||||||
if(next){
|
if(next){
|
||||||
this.channel.idToNext.delete(this.snowflake)
|
this.channel.idToNext.delete(this.id)
|
||||||
}
|
}
|
||||||
if(prev&&next){
|
if(prev&&next){
|
||||||
this.channel.idToPrev.set(next,prev);
|
this.channel.idToPrev.set(next,prev);
|
||||||
this.channel.idToNext.set(prev,next);
|
this.channel.idToNext.set(prev,next);
|
||||||
}
|
}
|
||||||
this.channel.messageids.delete(this.snowflake);
|
this.channel.messageids.delete(this.snowflake);
|
||||||
if(prev&&prev.getObject()){
|
if(prev){
|
||||||
prev.getObject().generateMessage();
|
const prevmessage=this.channel.messages.get(prev);
|
||||||
|
if(prevmessage){
|
||||||
|
prevmessage.generateMessage();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if(this.channel.lastmessage===this){
|
if(this.channel.lastmessage===this){
|
||||||
if(prev){
|
if(prev){
|
||||||
this.channel.lastmessage=prev.getObject();
|
this.channel.lastmessage=this.channel.messages.get(prev);
|
||||||
}else{
|
}else{
|
||||||
this.channel.lastmessage=undefined;
|
this.channel.lastmessage=undefined;
|
||||||
}
|
}
|
||||||
|
@ -250,7 +253,12 @@ class Message{
|
||||||
}
|
}
|
||||||
reactdiv:WeakRef<HTMLDivElement>;
|
reactdiv:WeakRef<HTMLDivElement>;
|
||||||
blockedPropigate(){
|
blockedPropigate(){
|
||||||
const premessage=this.channel.idToPrev.get(this.snowflake)?.getObject();
|
const previd=this.channel.idToPrev.get(this.id);
|
||||||
|
if(!previd){
|
||||||
|
this.generateMessage();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const premessage=this.channel.messages.get(previd);
|
||||||
if(premessage?.author===this.author){
|
if(premessage?.author===this.author){
|
||||||
premessage.blockedPropigate();
|
premessage.blockedPropigate();
|
||||||
}else{
|
}else{
|
||||||
|
@ -260,7 +268,7 @@ class Message{
|
||||||
generateMessage(premessage:Message|undefined=undefined,ignoredblock=false){
|
generateMessage(premessage:Message|undefined=undefined,ignoredblock=false){
|
||||||
if(!this.div) return;
|
if(!this.div) return;
|
||||||
if(!premessage){
|
if(!premessage){
|
||||||
premessage=this.channel.idToPrev.get(this.snowflake)?.getObject();
|
premessage=this.channel.messages.get(this.channel.idToPrev.get(this.id) as string);
|
||||||
}
|
}
|
||||||
const div=this.div;
|
const div=this.div;
|
||||||
if(this===this.channel.replyingto){
|
if(this===this.channel.replyingto){
|
||||||
|
@ -283,7 +291,7 @@ class Message{
|
||||||
let next:Message|undefined=this;
|
let next:Message|undefined=this;
|
||||||
while(next?.author===this.author){
|
while(next?.author===this.author){
|
||||||
next.generateMessage(undefined);
|
next.generateMessage(undefined);
|
||||||
next=this.channel.idToNext.get(next.snowflake)?.getObject();
|
next=this.channel.messages.get(this.channel.idToNext.get(next.id) as string);
|
||||||
}
|
}
|
||||||
if(this.channel.infinite.scroll&&scroll){
|
if(this.channel.infinite.scroll&&scroll){
|
||||||
this.channel.infinite.scroll.scrollTop=scroll;
|
this.channel.infinite.scroll.scrollTop=scroll;
|
||||||
|
@ -301,10 +309,10 @@ class Message{
|
||||||
build.classList.add("blocked","topMessage")
|
build.classList.add("blocked","topMessage")
|
||||||
const span=document.createElement("span");
|
const span=document.createElement("span");
|
||||||
let count=1;
|
let count=1;
|
||||||
let next=this.channel.idToNext.get(this.snowflake)?.getObject()
|
let next=this.channel.messages.get(this.channel.idToNext.get(this.id) as string);
|
||||||
while(next?.author===this.author){
|
while(next?.author===this.author){
|
||||||
count++;
|
count++;
|
||||||
next=this.channel.idToNext.get(next.snowflake)?.getObject()
|
next=this.channel.messages.get(this.channel.idToNext.get(next.id) as string);
|
||||||
}
|
}
|
||||||
span.textContent=`You have this user blocked, click to see the ${count} blocked messages.`;
|
span.textContent=`You have this user blocked, click to see the ${count} blocked messages.`;
|
||||||
build.append(span);
|
build.append(span);
|
||||||
|
@ -314,7 +322,7 @@ class Message{
|
||||||
let next:Message|undefined=this;
|
let next:Message|undefined=this;
|
||||||
while(next?.author===this.author){
|
while(next?.author===this.author){
|
||||||
next.generateMessage(undefined,true);
|
next.generateMessage(undefined,true);
|
||||||
next=this.channel.idToNext.get(next.snowflake)?.getObject();
|
next=this.channel.messages.get(this.channel.idToNext.get(next.id) as string);
|
||||||
console.log("loopy")
|
console.log("loopy")
|
||||||
}
|
}
|
||||||
if(this.channel.infinite.scroll&&scroll){
|
if(this.channel.infinite.scroll&&scroll){
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue