mirror of
https://github.com/chylex/Discord-History-Tracker.git
synced 2025-06-17 15:51:10 +03:00
Update message panel selectors to work with the recent Discord update
Closes #41
This commit is contained in:
parent
c9b6e8a947
commit
add5163820
@ -1,8 +1,6 @@
|
|||||||
var DISCORD = (function(){
|
var DISCORD = (function(){
|
||||||
var regexMessageRequest = /\/channels\/(\d+)\/messages[^a-z]/;
|
|
||||||
|
|
||||||
var getTopMessageViewElement = function(){
|
var getTopMessageViewElement = function(){
|
||||||
let view = DOM.fcls("messages");
|
let view = DOM.queryReactClass("messages");
|
||||||
return view && view.children.length && view.children[0];
|
return view && view.children.length && view.children[0];
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -19,8 +17,8 @@ var DISCORD = (function(){
|
|||||||
if (!topEle){
|
if (!topEle){
|
||||||
restartTimer(500);
|
restartTimer(500);
|
||||||
}
|
}
|
||||||
else if (!topEle.classList.contains("loading-more")){
|
else if (!topEle.getAttribute("class").includes("loadingMore-")){
|
||||||
let messages = DOM.fcls("messages").children.length;
|
let messages = DOM.queryReactClass("messages").children.length;
|
||||||
|
|
||||||
if (messages < 100){
|
if (messages < 100){
|
||||||
waitingForCleanup = 0;
|
waitingForCleanup = 0;
|
||||||
@ -35,12 +33,12 @@ var DISCORD = (function(){
|
|||||||
waitingForCleanup = 6;
|
waitingForCleanup = 6;
|
||||||
|
|
||||||
DOM.setTimer(() => {
|
DOM.setTimer(() => {
|
||||||
let view = DOM.fcls("messages");
|
let view = DOM.queryReactClass("messages");
|
||||||
view.scrollTop = view.scrollHeight/2;
|
view.scrollTop = view.scrollHeight/2;
|
||||||
}, 1);
|
}, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
callback(topEle.classList.contains("has-more"));
|
callback(topEle.getAttribute("class").includes("hasMore-"));
|
||||||
restartTimer(200);
|
restartTimer(200);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -95,7 +93,7 @@ var DISCORD = (function(){
|
|||||||
"server": name,
|
"server": name,
|
||||||
"channel": name,
|
"channel": name,
|
||||||
"id": linkSplit[linkSplit.length-1],
|
"id": linkSplit[linkSplit.length-1],
|
||||||
"type": DOM.cls("status", channel).length ? "DM" : "GROUP"
|
"type": !!DOM.fcls("status", channel) ? "DM" : "GROUP"
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
@ -132,7 +130,7 @@ var DISCORD = (function(){
|
|||||||
* Returns an array containing currently loaded messages.
|
* Returns an array containing currently loaded messages.
|
||||||
*/
|
*/
|
||||||
getMessages: function(){
|
getMessages: function(){
|
||||||
var props = DISCORD.getReactProps(DOM.fcls("messages"));
|
var props = DISCORD.getReactProps(DOM.queryReactClass("messages"));
|
||||||
var array = props && props.children.find(ele => ele && ele.length);
|
var array = props && props.children.find(ele => ele && ele.length);
|
||||||
var messages = [];
|
var messages = [];
|
||||||
|
|
||||||
@ -150,21 +148,21 @@ var DISCORD = (function(){
|
|||||||
/*
|
/*
|
||||||
* Returns true if the message view is visible.
|
* Returns true if the message view is visible.
|
||||||
*/
|
*/
|
||||||
isInMessageView: () => DOM.cls("messages").length > 0,
|
isInMessageView: () => !!DOM.queryReactClass("messages"),
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Returns true if there are more messages available or if they're still loading.
|
* Returns true if there are more messages available or if they're still loading.
|
||||||
*/
|
*/
|
||||||
hasMoreMessages: function(){
|
hasMoreMessages: function(){
|
||||||
let classes = getTopMessageViewElement().classList;
|
let classes = getTopMessageViewElement().getAttribute("class");
|
||||||
return classes.contains("has-more") || classes.contains("loading-more");
|
return classes.includes("hasMore-") || classes.includes("loadingMore-");
|
||||||
},
|
},
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Forces the message view to load older messages by scrolling all the way up.
|
* Forces the message view to load older messages by scrolling all the way up.
|
||||||
*/
|
*/
|
||||||
loadOlderMessages: function(){
|
loadOlderMessages: function(){
|
||||||
let view = DOM.fcls("messages");
|
let view = DOM.queryReactClass("messages");
|
||||||
view.scrollTop = view.scrollHeight/2;
|
view.scrollTop = view.scrollHeight/2;
|
||||||
view.scrollTop = 0;
|
view.scrollTop = 0;
|
||||||
},
|
},
|
||||||
|
@ -11,16 +11,6 @@ var DOM = (function(){
|
|||||||
*/
|
*/
|
||||||
id: (id, parent) => (parent || document).getElementById(id),
|
id: (id, parent) => (parent || document).getElementById(id),
|
||||||
|
|
||||||
/*
|
|
||||||
* Returns an array of all child elements containing the specified class. Parent defaults to the entire document.
|
|
||||||
*/
|
|
||||||
cls: (cls, parent) => Array.prototype.slice.call((parent || document).getElementsByClassName(cls)),
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Returns an array of all child elements that have the specified tag. Parent defaults to the entire document.
|
|
||||||
*/
|
|
||||||
tag: (tag, parent) => Array.prototype.slice.call((parent || document).getElementsByTagName(tag)),
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Returns the first child element containing the specified class. Parent defaults to the entire document.
|
* Returns the first child element containing the specified class. Parent defaults to the entire document.
|
||||||
*/
|
*/
|
||||||
@ -31,6 +21,11 @@ var DOM = (function(){
|
|||||||
*/
|
*/
|
||||||
ftag: (tag, parent) => (parent || document).getElementsByTagName(tag)[0],
|
ftag: (tag, parent) => (parent || document).getElementsByTagName(tag)[0],
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Returns the first child element containing the specified obfuscated class. Parent defaults to the entire document.
|
||||||
|
*/
|
||||||
|
queryReactClass: (cls, parent) => (parent || document).querySelector(`[class*="${cls}-"]`),
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Creates an element, adds it to the DOM, and returns it.
|
* Creates an element, adds it to the DOM, and returns it.
|
||||||
*/
|
*/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user