launchr/content.js
2024-12-17 18:50:58 -03:00

74 lines
2.7 KiB
JavaScript

// Função para extrair dados do post atual
function extractPostData() {
// Selecionar o post atual
const post = document.querySelector('.occludable-update');
if (!post) {
console.error('Post não encontrado.');
return null;
}
// Extrair informações do post
const contentElement = post.querySelector('.feed-shared-update-v2__description, .break-words, [data-test-id="feed-update-message"]');
const authorElement = post.querySelector('.feed-shared-actor__name, .update-components-actor__name');
const dateElement = post.querySelector('span.feed-shared-actor__sub-description span[aria-hidden="true"], span.update-components-actor__sub-description time');
const postContent = contentElement ? contentElement.innerText.trim() : '';
const postAuthor = authorElement ? authorElement.innerText.trim() : '';
// Obter o link do perfil do autor
const authorProfileLinkElement = authorElement ? authorElement.closest('a') : null;
const baseUrl = 'https://www.linkedin.com';
const authorProfileLink = authorProfileLinkElement ? new URL(authorProfileLinkElement.getAttribute('href'), baseUrl).href : '';
// Obter a data do post
const postDate = dateElement ? dateElement.innerText.trim() : '';
// Obter o link do post
const postLinkElement = post.querySelector('a[href*="/feed/update/"], a[data-control-name="share_link"], a[href*="/posts/"]');
const postLink = postLinkElement ? postLinkElement.href : window.location.href;
const postData = {
content: postContent,
author: postAuthor,
authorProfileLink: authorProfileLink,
date: postDate,
postLink: postLink
};
return postData;
}
// Adicionar um botão na página para salvar o post
function addSavePostButton() {
const button = document.createElement('button');
button.innerText = 'Salvar Post';
button.id = 'savePostButton';
button.style.position = 'fixed';
button.style.top = '10px';
button.style.right = '10px';
button.style.zIndex = '9999';
button.addEventListener('click', () => {
const postData = extractPostData();
if (postData) {
// Enviar os dados do post para o background script
chrome.runtime.sendMessage({ action: 'storePostData', data: postData }, (response) => {
if (response && response.success) {
console.log('Dados do post enviados para o background script.');
alert('Dados do post prontos para serem salvos. Clique no ícone da extensão para prosseguir.');
} else {
console.error('Erro ao enviar dados do post:', response.error);
}
});
} else {
alert('Não foi possível extrair os dados do post.');
}
});
document.body.appendChild(button);
}
// Chamar a função para adicionar o botão
addSavePostButton();