mirror of
https://github.com/chylex/Discord-History-Tracker.git
synced 2025-04-13 07:17:12 +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 regexMessageRequest = /\/channels\/(\d+)\/messages[^a-z]/;
|
||||
|
||||
var getTopMessageViewElement = function(){
|
||||
let view = DOM.fcls("messages");
|
||||
let view = DOM.queryReactClass("messages");
|
||||
return view && view.children.length && view.children[0];
|
||||
};
|
||||
|
||||
@ -19,8 +17,8 @@ var DISCORD = (function(){
|
||||
if (!topEle){
|
||||
restartTimer(500);
|
||||
}
|
||||
else if (!topEle.classList.contains("loading-more")){
|
||||
let messages = DOM.fcls("messages").children.length;
|
||||
else if (!topEle.getAttribute("class").includes("loadingMore-")){
|
||||
let messages = DOM.queryReactClass("messages").children.length;
|
||||
|
||||
if (messages < 100){
|
||||
waitingForCleanup = 0;
|
||||
@ -35,12 +33,12 @@ var DISCORD = (function(){
|
||||
waitingForCleanup = 6;
|
||||
|
||||
DOM.setTimer(() => {
|
||||
let view = DOM.fcls("messages");
|
||||
let view = DOM.queryReactClass("messages");
|
||||
view.scrollTop = view.scrollHeight/2;
|
||||
}, 1);
|
||||
}
|
||||
|
||||
callback(topEle.classList.contains("has-more"));
|
||||
callback(topEle.getAttribute("class").includes("hasMore-"));
|
||||
restartTimer(200);
|
||||
}
|
||||
}
|
||||
@ -95,7 +93,7 @@ var DISCORD = (function(){
|
||||
"server": name,
|
||||
"channel": name,
|
||||
"id": linkSplit[linkSplit.length-1],
|
||||
"type": DOM.cls("status", channel).length ? "DM" : "GROUP"
|
||||
"type": !!DOM.fcls("status", channel) ? "DM" : "GROUP"
|
||||
};
|
||||
}
|
||||
else{
|
||||
@ -132,7 +130,7 @@ var DISCORD = (function(){
|
||||
* Returns an array containing currently loaded messages.
|
||||
*/
|
||||
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 messages = [];
|
||||
|
||||
@ -150,21 +148,21 @@ var DISCORD = (function(){
|
||||
/*
|
||||
* 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.
|
||||
*/
|
||||
hasMoreMessages: function(){
|
||||
let classes = getTopMessageViewElement().classList;
|
||||
return classes.contains("has-more") || classes.contains("loading-more");
|
||||
let classes = getTopMessageViewElement().getAttribute("class");
|
||||
return classes.includes("hasMore-") || classes.includes("loadingMore-");
|
||||
},
|
||||
|
||||
/*
|
||||
* Forces the message view to load older messages by scrolling all the way up.
|
||||
*/
|
||||
loadOlderMessages: function(){
|
||||
let view = DOM.fcls("messages");
|
||||
let view = DOM.queryReactClass("messages");
|
||||
view.scrollTop = view.scrollHeight/2;
|
||||
view.scrollTop = 0;
|
||||
},
|
||||
|
@ -11,16 +11,6 @@ var DOM = (function(){
|
||||
*/
|
||||
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.
|
||||
*/
|
||||
@ -31,6 +21,11 @@ var DOM = (function(){
|
||||
*/
|
||||
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.
|
||||
*/
|
||||
|
Loading…
x
Reference in New Issue
Block a user