remove more uses of the deprictated function

This commit is contained in:
MathMan05 2024-08-26 14:16:01 -05:00
parent 00946b500a
commit 3894fcb976
8 changed files with 156 additions and 145 deletions

View file

@ -154,23 +154,23 @@ class Channel {
}
setUpInfiniteScroller() {
this.infinite = new InfiniteScroller(async function (id, offset) {
const snowflake = this.messages.get(id).snowflake;
const snowflake = id;
if (offset === 1) {
if (this.idToPrev.has(snowflake)) {
return this.idToPrev.get(snowflake)?.id;
return this.idToPrev.get(snowflake);
}
else {
await this.grabBefore(id);
return this.idToPrev.get(snowflake)?.id;
return this.idToPrev.get(snowflake);
}
}
else {
if (this.idToNext.has(snowflake)) {
return this.idToNext.get(snowflake)?.id;
return this.idToNext.get(snowflake);
}
else if (this.lastmessage?.id !== id) {
await this.grabAfter(id);
return this.idToNext.get(snowflake)?.id;
return this.idToNext.get(snowflake);
}
else {
console.log("at bottom");
@ -237,12 +237,12 @@ class Channel {
this.topic = json.topic;
this.nsfw = json.nsfw;
this.position = json.position;
this.lastreadmessageid = null;
this.lastreadmessageid = undefined;
if (json.last_message_id) {
this.lastmessageid = SnowFlake.getSnowFlakeFromID(json.last_message_id, Message);
this.lastmessageid = json.last_message_id;
}
else {
this.lastmessageid = null;
this.lastmessageid = undefined;
}
this.setUpInfiniteScroller();
}
@ -259,7 +259,7 @@ class Channel {
return this.owner.info;
}
readStateInfo(json) {
this.lastreadmessageid = SnowFlake.getSnowFlakeFromID(json.last_message_id, Message);
this.lastreadmessageid = json.last_message_id;
this.mentions = json.mention_count;
this.mentions ??= 0;
this.lastpin = json.last_pin_timestamp;
@ -626,9 +626,9 @@ class Channel {
}
}
async getmessage(id) {
const snowflake = SnowFlake.getSnowFlakeFromID(id, Message);
if (snowflake.getObject()) {
return snowflake.getObject();
const message = this.messages.get(id);
if (message) {
return message;
}
else {
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;
}
;
if (this.lastreadmessageid && this.lastreadmessageid.getObject()) {
if (this.lastreadmessageid && this.messages.has(this.lastreadmessageid)) {
return;
}
const j = await fetch(this.info.api + "/channels/" + this.snowflake + "/messages?limit=100", {
@ -719,8 +719,8 @@ class Channel {
for (const thing of response) {
const message = new Message(thing, this);
if (prev) {
this.idToNext.set(message.snowflake, prev.snowflake);
this.idToPrev.set(prev.snowflake, message.snowflake);
this.idToNext.set(message.id, prev.id);
this.idToPrev.set(prev.id, message.id);
}
else {
this.lastmessage = message;
@ -747,7 +747,7 @@ class Channel {
await fetch(this.info.api + "/channels/" + this.id + "/messages?limit=100&after=" + id, {
headers: this.headers
}).then((j) => { return j.json(); }).then(response => {
let previd = SnowFlake.getSnowFlakeFromID(id, Message);
let previd = id;
for (const i in response) {
let messager;
let willbreak = false;
@ -758,9 +758,9 @@ class Channel {
messager = SnowFlake.getSnowFlakeFromID(response[i].id, Message).getObject();
willbreak = true;
}
this.idToPrev.set(messager.snowflake, previd);
this.idToNext.set(previd, messager.snowflake);
previd = messager.snowflake;
this.idToPrev.set(messager.id, previd);
this.idToNext.set(previd, messager.id);
previd = messager.id;
this.messageids.set(messager.snowflake, messager);
if (willbreak) {
break;
@ -772,33 +772,33 @@ class Channel {
}
topid;
async grabBefore(id) {
if (this.topid && id === this.topid.id) {
if (this.topid && id === this.topid) {
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
}).then((j) => { return j.json(); }).then((response) => {
if (response.length < 100) {
this.allthewayup = true;
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) {
let messager;
let willbreak = false;
if (!SnowFlake.hasSnowFlakeFromID(response[i].id, Message)) {
messager = new Message(response[i], this);
}
else {
if (this.messages.has(response[i].id)) {
console.log("flaky");
messager = SnowFlake.getSnowFlakeFromID(response[i].id, Message).getObject();
messager = this.messages.get(response[i].id);
willbreak = true;
}
this.idToNext.set(messager.snowflake, previd);
this.idToPrev.set(previd, messager.snowflake);
previd = messager.snowflake;
else {
messager = new Message(response[i], this);
}
this.idToNext.set(messager.id, previd);
this.idToPrev.set(previd, messager.id);
previd = messager.id;
this.messageids.set(messager.snowflake, messager);
if (+i === response.length - 1 && response.length < 100) {
this.topid = previd;
@ -840,13 +840,13 @@ class Channel {
const removetitle = document.getElementById("removetitle");
//messages.innerHTML="";
let id;
if (this.lastreadmessageid && this.lastreadmessageid.getObject()) {
if (this.lastreadmessageid && this.messages.has(this.lastreadmessageid)) {
id = this.lastreadmessageid;
}
else if (this.lastreadmessageid && (id = this.findClosest(this.lastreadmessageid))) {
}
else if (this.lastmessage && this.lastmessage.snowflake) {
id = this.goBackIds(this.lastmessage.snowflake, 50);
else if (this.lastmessageid && this.messages.has(this.lastmessageid)) {
id = this.goBackIds(this.lastmessageid, 50);
}
if (!id) {
if (!removetitle) {
@ -863,11 +863,11 @@ class Channel {
else if (removetitle) {
removetitle.remove();
}
messages.append(await this.infinite.getDiv(id.id));
messages.append(await this.infinite.getDiv(id));
this.infinite.updatestuff();
this.infinite.watchForChange().then(async (_) => {
//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");
});
//this.infinite.focus(id.id,false);
@ -890,22 +890,18 @@ class Channel {
}
return id;
}
findClosest(snowflake) {
if (!this.lastmessage)
findClosest(id) {
if (!this.lastmessageid || !id)
return;
let flake = this.lastmessage.snowflake;
if (!snowflake) {
return;
}
;
const time = snowflake.getUnixTime();
let flaketime = flake.getUnixTime();
let flake = this.lastmessageid;
const time = Number((BigInt(id) >> 22n) + 1420070400000n);
let flaketime = Number((BigInt(flake) >> 22n) + 1420070400000n);
while (flake && time < flaketime) {
flake = this.idToPrev.get(flake);
if (!flake) {
return undefined;
}
flaketime = flake.getUnixTime();
flaketime = Number((BigInt(flake) >> 22n) + 1420070400000n);
}
return flake;
}
@ -1013,13 +1009,13 @@ class Channel {
const messagez = new Message(messagep.d, this);
this.lastmessage = messagez;
if (this.lastmessageid) {
this.idToNext.set(this.lastmessageid, messagez.snowflake);
this.idToPrev.set(messagez.snowflake, this.lastmessageid);
this.idToNext.set(this.lastmessageid, messagez.id);
this.idToPrev.set(messagez.id, this.lastmessageid);
}
this.lastmessageid = messagez.snowflake;
this.lastmessageid = messagez.id;
this.messageids.set(messagez.snowflake, messagez);
if (messagez.author === this.localuser.user) {
this.lastreadmessageid = messagez.snowflake;
this.lastreadmessageid = messagez.id;
if (this.myhtml) {
this.myhtml.classList.remove("cunread");
}