48 lines
1.3 KiB
JavaScript
48 lines
1.3 KiB
JavaScript
import ext from "./utils/ext";
|
|
|
|
var extractTags = () => {
|
|
var url = document.location.href;
|
|
if (!url || !url.match(/^http/)) {
|
|
console.error("Invalid URL : " + url);
|
|
return;
|
|
}
|
|
|
|
var data = {
|
|
title: "",
|
|
description: "",
|
|
image: "",
|
|
url: url
|
|
};
|
|
|
|
var ogTitle = document.querySelector("meta[property='og:title']");
|
|
if(ogTitle) {
|
|
data.title = ogTitle.getAttribute("content");
|
|
} else {
|
|
data.title = document.title;
|
|
}
|
|
|
|
var descriptionTag = document.querySelector("meta[property='og:description']") || document.querySelector("meta[name='description']");
|
|
if(descriptionTag) {
|
|
data.description = descriptionTag.getAttribute("content")
|
|
}
|
|
|
|
var imgTag = document.querySelector("meta[property='og:image']") || document.querySelector("meta[property='twitter-image']");
|
|
if(imgTag) {
|
|
data.image = imgTag.getAttribute("content")
|
|
} else {
|
|
imgTag = document.querySelector("link[rel=icon]") || document.querySelector("link[rel=apple-touch-icon]");
|
|
if (imgTag) {
|
|
data.image = imgTag.getAttribute("href");
|
|
}
|
|
}
|
|
|
|
return data;
|
|
};
|
|
|
|
function onRequest(request, sender, sendResponse) {
|
|
if (request.action === 'process-page') {
|
|
sendResponse(extractTags())
|
|
}
|
|
}
|
|
|
|
ext.runtime.onMessage.addListener(onRequest); |