93 lines
2.0 KiB
JavaScript
93 lines
2.0 KiB
JavaScript
// ==UserScript==
|
|
// @name data extraction linkedin
|
|
// @namespace Violentmonkey Scripts
|
|
// @match https://www.linkedin.com/*
|
|
// @grant GM_getValue
|
|
// @grant GM_setValue
|
|
// @grant GM_getValues
|
|
// @grant GM_setValues
|
|
// @grant GM_listValues
|
|
// @grant GM_deleteValue
|
|
// @grant GM_deleteValues
|
|
// @version 0.1
|
|
// @author Siarhei Siniak
|
|
// @license Unlicense
|
|
// @description 10/08/2024, 8:44:59 PM
|
|
|
|
// @inject-into document
|
|
// @require https://cdn.jsdelivr.net/npm/@violentmonkey/dom@1
|
|
// @require https://cdn.jsdelivr.net/npm/jquery@3/dist/jquery.min.js
|
|
// @noframes
|
|
// ==/UserScript==
|
|
|
|
class Linkedin {
|
|
constructor() {
|
|
this.data = new Map();
|
|
}
|
|
|
|
parse_header() {
|
|
return [
|
|
$(
|
|
'.scaffold-finite-scroll__content > div > .relative .update-components-header'
|
|
).map((i, o) => ({
|
|
header: o.innerText
|
|
})),
|
|
$(
|
|
'.scaffold-finite-scroll__content > div > .relative .update-components-actor'
|
|
).map((i, o) => {
|
|
let header = $(o);
|
|
let teaser = $(o).parents('.relative')
|
|
.parent().find('.feed-shared-update-v2__description-wrapper');
|
|
return {
|
|
header: header.text(),
|
|
teaser: teaser.text(),
|
|
};
|
|
})
|
|
]
|
|
}
|
|
|
|
data_add (entry) {
|
|
let self = this;
|
|
|
|
if (self.data.has(entry.header))
|
|
{
|
|
return;
|
|
}
|
|
|
|
self.data.set(entry.header, {
|
|
entry: entry,
|
|
ts: (new Date()).valueOf(),
|
|
});
|
|
|
|
console.log(self.data.get(entry.header));
|
|
}
|
|
|
|
document_on_changed () {
|
|
let self = this;
|
|
let current_data = self.parse_header();
|
|
|
|
current_data[0].each((i, o) => {
|
|
self.data_add(o);
|
|
});
|
|
|
|
current_data[1].each((i, o) => {
|
|
self.data_add(o);
|
|
});
|
|
}
|
|
|
|
listener_add() {
|
|
let self = this;
|
|
|
|
return VM.observe(
|
|
document.body,
|
|
() => {
|
|
self.document_on_changed();
|
|
}
|
|
);
|
|
}
|
|
}
|
|
|
|
const l = new Linkedin();
|
|
|
|
const disconnect = l.listener_add();
|