128 lines
5.2 KiB
JavaScript
128 lines
5.2 KiB
JavaScript
function getMessages() {
|
|
let messages = [];
|
|
document.querySelectorAll('.vW7d1').forEach(msg => {
|
|
let m, meta = {
|
|
type: 'message',
|
|
direction: 'out',
|
|
status: null,
|
|
date: null,
|
|
time: null,
|
|
};
|
|
// meta
|
|
if (msg.querySelector('._1DZAH')) {
|
|
// time
|
|
meta.time = msg.querySelector('._3EFt_').textContent;
|
|
//date
|
|
if (msg.querySelector('.copyable-text')) {
|
|
meta.date = msg.querySelector('.copyable-text').getAttribute('data-pre-plain-text').split('] ')[0].slice(1).split(', ')[1];
|
|
} else if (messages.length > 0) {
|
|
meta.date = messages[messages.length - 1].date;
|
|
}
|
|
// status
|
|
if (msg.querySelector('._32uRw span')) {
|
|
if (msg.querySelector('._32uRw span').getAttribute('data-icon').includes('dblcheck')) {
|
|
meta.status = 'read';
|
|
} else if (msg.querySelector('._32uRw span').getAttribute('data-icon').includes('check')) {
|
|
meta.status = 'send';
|
|
}
|
|
} else {
|
|
meta.direction = 'in';
|
|
}
|
|
console.log(meta.date, meta.time, meta.direction, meta.status)
|
|
}
|
|
// content
|
|
if (msg.classList.contains('_3rjxZ')) {
|
|
// SYSTEM MESSAGES
|
|
if (msg.querySelector('._14b5J') != null) {
|
|
// E2E _14b5J
|
|
meta.type = 'e2e',
|
|
m = {
|
|
txt: msg.querySelector('._14b5J div').textContent,
|
|
}
|
|
} else if (msg.querySelector('._2ArBI') != null) {
|
|
console.log('GRP ANNOUNCEMENT', msg)
|
|
// GRP ANNOUNCEMENT _2ArBI
|
|
meta.type = 'groupEvent',
|
|
m = {
|
|
txt: msg.querySelector('._2ArBI span').textContent,
|
|
}
|
|
} else {
|
|
console.log('date', msg)
|
|
// DATE
|
|
meta.type = 'date';
|
|
m = {
|
|
txt: msg.querySelector('span').textContent,
|
|
}
|
|
}
|
|
} else if (msg.querySelector('._3v3PK') != null) {
|
|
console.log('media', msg)
|
|
// img .message-out
|
|
meta.type = 'media';
|
|
m = {
|
|
image: msg.querySelector('img').src,
|
|
}
|
|
// msg.querySelector('.WEu0O').style.backgroundImage
|
|
} else if(msg.querySelector('._10MiG') != null) {
|
|
console.log('GIF', msg)
|
|
// gif ._10MiG
|
|
meta.type = 'gif';
|
|
m = {
|
|
preview: msg.querySelector('.WEu0O').style.backgroundImage.slice(5, msg.querySelector('.WEu0O').style.backgroundImage.length-2),
|
|
video: msg.querySelector('._1Y0rl').src
|
|
}
|
|
} else if(msg.querySelector('._2hOiI') != null) {
|
|
// // ggf. alles gif ist in ._3CnDa
|
|
// console.log('GIF2', msg)
|
|
// // gif ._2hOiI
|
|
// // DAS IST EIN GIF, DAS GERADE LÄUFT
|
|
// meta.type = 'gif2';
|
|
// m = {
|
|
// preview: msg.querySelector('.WEu0O').style.backgroundImage.slice(5, msg.querySelector('.WEu0O').style.backgroundImage.length-2),
|
|
// video: msg.querySelector('._1Y0rl').src
|
|
// }
|
|
} else if (msg.querySelector('._3FDzO') != null) {
|
|
// link ._3FDzO
|
|
meta.type = 'link';
|
|
m = {
|
|
preview: {
|
|
img: msg.querySelector('._2H6ea').src,
|
|
content: msg.querySelector('._3BCzw').textContent
|
|
},
|
|
message: msg.querySelector('._3zb-j.ZhF0n .selectable-text.copyable-text').textContent,
|
|
}
|
|
} else if (msg.querySelector('.quoted-mention') != null) {
|
|
console.log('response', msg)
|
|
// response .quoted-mention
|
|
meta.type = 'response',
|
|
m = {
|
|
name: msg.querySelector('.copyable-text').getAttribute('data-pre-plain-text').split('] ')[1].replace(':', '').trim(),
|
|
message: msg.querySelector('.copyable-text.selectable-text').textContent,
|
|
r_name: msg.querySelector('._2a1Yw').textContent,
|
|
r_message: msg.querySelector('.quoted-mention').textContent,
|
|
}
|
|
} else {
|
|
console.log('message', msg)
|
|
// message .Tkt2p
|
|
m = {
|
|
name: msg.querySelector('.copyable-text').getAttribute('data-pre-plain-text').split('] ')[1].replace(':', '').trim(),
|
|
message: msg.querySelector('.copyable-text').textContent,
|
|
}
|
|
}
|
|
// TODO message - function getText() bauen, welche statt textContent innerHTML nimmt und emojis im text verarbeitet & integriert
|
|
messages.push({
|
|
meta: meta ? meta : null,
|
|
content: m ? m : null,
|
|
});
|
|
})
|
|
return messages;
|
|
}
|
|
|
|
function test() {
|
|
let x = getMessages();
|
|
console.log(x.length, 'messages', x);
|
|
console.table(x.find(m => m.meta.type === 'message'))
|
|
console.table(x.find(m => m.meta.type === 'response'))
|
|
console.table(x.find(m => m.meta.type === 'gif'))
|
|
console.table(x.find(m => m.meta.type === 'link'))
|
|
}
|
|
test()
|