use more generic function for time conversions

This commit is contained in:
MathMan05 2024-09-03 11:17:06 -05:00
parent 0fc51f0e71
commit 4c4f7f8619
4 changed files with 10 additions and 8 deletions

View file

@ -906,14 +906,14 @@ class Channel extends SnowFlake {
if (!this.lastmessageid || !id)
return;
let flake = this.lastmessageid;
const time = Number((BigInt(id) >> 22n) + 1420070400000n);
let flaketime = Number((BigInt(flake) >> 22n) + 1420070400000n);
const time = SnowFlake.stringToUnixTime(id);
let flaketime = SnowFlake.stringToUnixTime(flake);
while (flake && time < flaketime) {
flake = this.idToPrev.get(flake);
if (!flake) {
return;
}
flaketime = Number((BigInt(flake) >> 22n) + 1420070400000n);
flaketime = SnowFlake.stringToUnixTime(flake);
}
return flake;
}

View file

@ -3,6 +3,7 @@ import { Channel } from "./channel.js";
import { Message } from "./message.js";
import { User } from "./user.js";
import { Permissions } from "./permissions.js";
import { SnowFlake } from "./snowflake.js";
class Direct extends Guild {
constructor(json, owner) {
super(-1, owner, null);
@ -95,7 +96,7 @@ class Group extends Channel {
this.mentions = 0;
this.setUpInfiniteScroller();
if (this.lastmessageid) {
this.position = Number((BigInt(this.lastmessageid) >> 22n) + 1420070400000n);
this.position = SnowFlake.stringToUnixTime(this.lastmessageid);
}
this.position = -Math.max(this.position, this.getUnixTime());
}

View file

@ -910,15 +910,15 @@ class Channel extends SnowFlake{
private findClosest(id:string|undefined){
if(!this.lastmessageid||!id)return;
let flake:string|undefined=this.lastmessageid;
const time=Number((BigInt(id)>>22n)+1420070400000n);
let flaketime=Number((BigInt(flake)>>22n)+1420070400000n);
const time=SnowFlake.stringToUnixTime(id);
let flaketime=SnowFlake.stringToUnixTime(flake);
while(flake&&time<flaketime){
flake=this.idToPrev.get(flake);
if(!flake){
return;
}
flaketime=Number((BigInt(flake)>>22n)+1420070400000n);
flaketime=SnowFlake.stringToUnixTime(flake);
}
return flake;
}

View file

@ -6,6 +6,7 @@ import{User}from"./user.js";
import{ Member }from"./member.js";
import{ dirrectjson, memberjson }from"./jsontypes.js";
import{ Permissions }from"./permissions.js";
import { SnowFlake } from "./snowflake.js";
class Direct extends Guild{
constructor(json:dirrectjson[],owner:Localuser){
@ -101,7 +102,7 @@ class Group extends Channel{
this.mentions=0;
this.setUpInfiniteScroller();
if(this.lastmessageid){
this.position=Number((BigInt(this.lastmessageid)>>22n)+1420070400000n);
this.position=SnowFlake.stringToUnixTime(this.lastmessageid);
}
this.position=-Math.max(this.position,this.getUnixTime());