freelance-project-34-market.../deps/greasyfork/linkedin.user.js
2024-08-10 22:07:39 +03:00

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();