betting typing of the WS
This commit is contained in:
parent
2b69d338c3
commit
59a5d9a30b
5 changed files with 118 additions and 20 deletions
|
@ -305,15 +305,35 @@ class Localuser {
|
||||||
break;
|
break;
|
||||||
case "MESSAGE_DELETE":
|
case "MESSAGE_DELETE":
|
||||||
console.log(temp.d);
|
console.log(temp.d);
|
||||||
SnowFlake.getSnowFlakeFromID(temp.d.id, Message).getObject().deleteEvent();
|
temp.d.guild_id ??= "@me";
|
||||||
|
const guild = this.guildids.get(temp.d.guild_id);
|
||||||
|
if (guild) {
|
||||||
|
const channel = guild.channelids[temp.d.guild_id];
|
||||||
|
if (channel) {
|
||||||
|
const message = channel.messages.get(temp.d.id);
|
||||||
|
if (message) {
|
||||||
|
message.deleteEvent();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
case "READY":
|
case "READY":
|
||||||
this.gottenReady(temp);
|
this.gottenReady(temp);
|
||||||
break;
|
break;
|
||||||
case "MESSAGE_UPDATE":
|
case "MESSAGE_UPDATE": {
|
||||||
const message = SnowFlake.getSnowFlakeFromID(temp.d.id, Message).getObject();
|
temp.d.guild_id ??= "@me";
|
||||||
|
const guild = this.guildids.get(temp.d.guild_id);
|
||||||
|
if (guild) {
|
||||||
|
const channel = guild.channelids[temp.d.guild_id];
|
||||||
|
if (channel) {
|
||||||
|
const message = channel.messages.get(temp.d.id);
|
||||||
|
if (message) {
|
||||||
message.giveData(temp.d);
|
message.giveData(temp.d);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
case "TYPING_START":
|
case "TYPING_START":
|
||||||
if (this.initialized) {
|
if (this.initialized) {
|
||||||
this.typingStart(temp);
|
this.typingStart(temp);
|
||||||
|
|
|
@ -9,7 +9,7 @@
|
||||||
"removeComments": false,
|
"removeComments": false,
|
||||||
"noImplicitThis":true,
|
"noImplicitThis":true,
|
||||||
"useUnknownInCatchVariables":true,
|
"useUnknownInCatchVariables":true,
|
||||||
"strictNullChecks":false
|
"strictNullChecks":true
|
||||||
},
|
},
|
||||||
"include": [
|
"include": [
|
||||||
"./webpage/*.ts"
|
"./webpage/*.ts"
|
||||||
|
|
|
@ -10,7 +10,7 @@ import { Settings } from "./settings.js";
|
||||||
import { Role,RoleList } from "./role.js";
|
import { Role,RoleList } from "./role.js";
|
||||||
import {InfiniteScroller} from "./infiniteScroller.js";
|
import {InfiniteScroller} from "./infiniteScroller.js";
|
||||||
import { SnowFlake } from "./snowflake.js";
|
import { SnowFlake } from "./snowflake.js";
|
||||||
import { channeljson, messagejson, readyjson } from "./jsontypes.js";
|
import { channeljson, messageCreateJson, messagejson, readyjson } from "./jsontypes.js";
|
||||||
import { MarkDown } from "./markdown.js";
|
import { MarkDown } from "./markdown.js";
|
||||||
|
|
||||||
declare global {
|
declare global {
|
||||||
|
@ -994,7 +994,7 @@ class Channel{
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
messageCreate(messagep:any):void{
|
messageCreate(messagep:messageCreateJson):void{
|
||||||
if(!this.hasPermission("VIEW_CHANNEL")){return}
|
if(!this.hasPermission("VIEW_CHANNEL")){return}
|
||||||
const messagez=new Message(messagep.d,this);
|
const messagez=new Message(messagep.d,this);
|
||||||
this.lastmessage=messagez;
|
this.lastmessage=messagez;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
type readyjson={
|
type readyjson={
|
||||||
op:number;
|
op:0;
|
||||||
t:string;
|
t:"READY";
|
||||||
s:number;
|
s:number;
|
||||||
d:{
|
d:{
|
||||||
v:number;
|
v:number;
|
||||||
|
@ -341,4 +341,59 @@ type presencejson={
|
||||||
afk: boolean,
|
afk: boolean,
|
||||||
user?:userjson,
|
user?:userjson,
|
||||||
}
|
}
|
||||||
export {readyjson,dirrectjson,channeljson,guildjson,rolesjson,userjson,memberjson,mainuserjson,messagejson,filejson,embedjson,emojijson,presencejson};
|
type messageCreateJson={
|
||||||
|
op:0,
|
||||||
|
d:{
|
||||||
|
guild_id?:string,
|
||||||
|
channel_id?:string,
|
||||||
|
}&messagejson,
|
||||||
|
s:number,
|
||||||
|
t:"MESSAGE_CREATE"
|
||||||
|
}
|
||||||
|
type wsjson={
|
||||||
|
op:0,
|
||||||
|
d:any,
|
||||||
|
s:number,
|
||||||
|
t:"TYPING_START"|"USER_UPDATE"|"CHANNEL_UPDATE"|"CHANNEL_CREATE"|"CHANNEL_DELETE"|"GUILD_DELETE"|"GUILD_CREATE"|"MESSAGE_REACTION_ADD"|"MESSAGE_REACTION_REMOVE"|"MESSAGE_REACTION_REMOVE_ALL"|"MESSAGE_REACTION_REMOVE_EMOJI"
|
||||||
|
}|{
|
||||||
|
op:0,
|
||||||
|
t:"GUILD_MEMBERS_CHUNK",
|
||||||
|
d:memberChunk
|
||||||
|
}|{
|
||||||
|
op:0,
|
||||||
|
d:{
|
||||||
|
id:string,
|
||||||
|
guild_id?:string,
|
||||||
|
channel_id:string
|
||||||
|
},
|
||||||
|
s:number,
|
||||||
|
t:"MESSAGE_DELETE"
|
||||||
|
}|{
|
||||||
|
op:0,
|
||||||
|
d:{
|
||||||
|
guild_id?:string,
|
||||||
|
channel_id:string
|
||||||
|
}&messagejson,
|
||||||
|
s:number,
|
||||||
|
t:"MESSAGE_UPDATE"
|
||||||
|
}|messageCreateJson|readyjson|{
|
||||||
|
op:11,
|
||||||
|
s:undefined,
|
||||||
|
d:{}
|
||||||
|
}|{
|
||||||
|
op:10,
|
||||||
|
s:undefined,
|
||||||
|
d:{
|
||||||
|
heartbeat_interval:number
|
||||||
|
}
|
||||||
|
}
|
||||||
|
type memberChunk={
|
||||||
|
guild_id: string,
|
||||||
|
nonce: string,
|
||||||
|
members: memberjson[],
|
||||||
|
presences: presencejson[],
|
||||||
|
chunk_index: number,
|
||||||
|
chunk_count: number,
|
||||||
|
not_found: string[]
|
||||||
|
}
|
||||||
|
export {readyjson,dirrectjson,channeljson,guildjson,rolesjson,userjson,memberjson,mainuserjson,messagejson,filejson,embedjson,emojijson,presencejson,wsjson,messageCreateJson,memberChunk};
|
||||||
|
|
|
@ -7,7 +7,7 @@ import {Dialog} from "./dialog.js";
|
||||||
import {getapiurls, getBulkInfo, setTheme, Specialuser} from "./login.js";
|
import {getapiurls, getBulkInfo, setTheme, Specialuser} from "./login.js";
|
||||||
import { SnowFlake } from "./snowflake.js";
|
import { SnowFlake } from "./snowflake.js";
|
||||||
import { Message } from "./message.js";
|
import { Message } from "./message.js";
|
||||||
import { channeljson, memberjson, presencejson, readyjson } from "./jsontypes.js";
|
import { channeljson, memberChunk, memberjson, messageCreateJson, presencejson, readyjson, wsjson } from "./jsontypes.js";
|
||||||
import { Member } from "./member.js";
|
import { Member } from "./member.js";
|
||||||
import { FormError, Settings } from "./settings.js";
|
import { FormError, Settings } from "./settings.js";
|
||||||
import { MarkDown } from "./markdown.js";
|
import { MarkDown } from "./markdown.js";
|
||||||
|
@ -220,7 +220,7 @@ class Localuser{
|
||||||
if(temp.op===0&&temp.t==="READY"){
|
if(temp.op===0&&temp.t==="READY"){
|
||||||
returny();
|
returny();
|
||||||
}
|
}
|
||||||
await this.handleEvent(temp);
|
await this.handleEvent(temp as wsjson);
|
||||||
}catch(e){
|
}catch(e){
|
||||||
console.error(e);
|
console.error(e);
|
||||||
}finally{
|
}finally{
|
||||||
|
@ -300,7 +300,7 @@ class Localuser{
|
||||||
await promise;
|
await promise;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
async handleEvent(temp){
|
async handleEvent(temp:wsjson){
|
||||||
console.debug(temp);
|
console.debug(temp);
|
||||||
if (temp.s) this.lastSequence=temp.s;
|
if (temp.s) this.lastSequence=temp.s;
|
||||||
if(temp.op==0){
|
if(temp.op==0){
|
||||||
|
@ -312,15 +312,38 @@ class Localuser{
|
||||||
break;
|
break;
|
||||||
case "MESSAGE_DELETE":
|
case "MESSAGE_DELETE":
|
||||||
console.log(temp.d);
|
console.log(temp.d);
|
||||||
SnowFlake.getSnowFlakeFromID(temp.d.id,Message).getObject().deleteEvent();
|
temp.d.guild_id??="@me";
|
||||||
|
const guild=this.guildids.get(temp.d.guild_id);
|
||||||
|
if(guild){
|
||||||
|
const channel=guild.channelids[temp.d.guild_id]
|
||||||
|
if(channel){
|
||||||
|
const message=channel.messages.get(temp.d.id);
|
||||||
|
if(message){
|
||||||
|
message.deleteEvent();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
case "READY":
|
case "READY":
|
||||||
this.gottenReady(temp as readyjson);
|
this.gottenReady(temp as readyjson);
|
||||||
break;
|
break;
|
||||||
case "MESSAGE_UPDATE":
|
case "MESSAGE_UPDATE":{
|
||||||
const message=SnowFlake.getSnowFlakeFromID(temp.d.id,Message).getObject();
|
temp.d.guild_id??="@me";
|
||||||
|
const guild=this.guildids.get(temp.d.guild_id);
|
||||||
|
if(guild){
|
||||||
|
const channel=guild.channelids[temp.d.guild_id]
|
||||||
|
if(channel){
|
||||||
|
const message=channel.messages.get(temp.d.id);
|
||||||
|
if(message){
|
||||||
message.giveData(temp.d);
|
message.giveData(temp.d);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
case "TYPING_START":
|
case "TYPING_START":
|
||||||
if(this.initialized){
|
if(this.initialized){
|
||||||
this.typingStart(temp);
|
this.typingStart(temp);
|
||||||
|
@ -400,7 +423,7 @@ class Localuser{
|
||||||
const messageReactionRemoveEmoji = SnowFlake.getSnowFlakeFromID(temp.d.message_id, Message).getObject()
|
const messageReactionRemoveEmoji = SnowFlake.getSnowFlakeFromID(temp.d.message_id, Message).getObject()
|
||||||
messageReactionRemoveEmoji.reactionRemoveEmoji(temp.d.emoji)
|
messageReactionRemoveEmoji.reactionRemoveEmoji(temp.d.emoji)
|
||||||
}
|
}
|
||||||
break
|
break;
|
||||||
case "GUILD_MEMBERS_CHUNK":
|
case "GUILD_MEMBERS_CHUNK":
|
||||||
this.gotChunk(temp.d);
|
this.gotChunk(temp.d);
|
||||||
break;
|
break;
|
||||||
|
@ -702,7 +725,7 @@ class Localuser{
|
||||||
})
|
})
|
||||||
content.appendChild(guilds);
|
content.appendChild(guilds);
|
||||||
}
|
}
|
||||||
messageCreate(messagep):void{
|
messageCreate(messagep:messageCreateJson):void{
|
||||||
messagep.d.guild_id??="@me";
|
messagep.d.guild_id??="@me";
|
||||||
const guild=this.guildids.get(messagep.d.guild_id);
|
const guild=this.guildids.get(messagep.d.guild_id);
|
||||||
if(!guild) return;
|
if(!guild) return;
|
||||||
|
@ -1320,7 +1343,7 @@ class Localuser{
|
||||||
fetchingmembers:Map<string,boolean>=new Map();
|
fetchingmembers:Map<string,boolean>=new Map();
|
||||||
noncemap:Map<string,(r:[memberjson[],string[]])=>void>=new Map();
|
noncemap:Map<string,(r:[memberjson[],string[]])=>void>=new Map();
|
||||||
noncebuild:Map<string,[memberjson[],string[],number[]]>=new Map();
|
noncebuild:Map<string,[memberjson[],string[],number[]]>=new Map();
|
||||||
async gotChunk(chunk:{chunk_index:number,chunk_count:number,nonce:string,not_found?:string[],members?:memberjson[],presences:presencejson[]}){
|
async gotChunk(chunk:memberChunk){
|
||||||
for(const thing of chunk.presences){
|
for(const thing of chunk.presences){
|
||||||
if(thing.user){
|
if(thing.user){
|
||||||
this.presences.set(thing.user.id,thing);
|
this.presences.set(thing.user.id,thing);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue