Repository navigation
Expand file tree
/
Copy pathcontent.js
More file actions
67 lines (46 loc) · 1.67 KB
/
Copy pathcontent.js
File metadata and controls
67 lines (46 loc) · 1.67 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
console.log("🚀 Review Export Pro | Content script loaded");
chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
console.log("📨 Message received:", message);
if (message.action !== "start-export") {
return;
}
const reviews = document.querySelectorAll('[data-hook="review"]');
console.log("📦 Reviews found:", reviews.length);
const reviewsData = [];
for (const review of reviews) {
const reviewerName = review.querySelector(".a-profile-name").innerText.trim();
const rating = review.querySelector(
'[data-hook="review-star-rating"] .a-icon-alt'
).innerText.trim();
const reviewTitle = review.querySelector(
'[data-hook="reviewTitle"]'
).innerText.trim();
const reviewDate = review.querySelector(
'[data-hook="review-date"]'
).innerText.trim();
const reviewContent = review.querySelector(
'[data-hook="reviewRichContentContainer"]'
).innerText.trim();
const reviewData = {
reviewer: reviewerName,
rating: rating,
title: reviewTitle,
date: reviewDate,
content: reviewContent
};
reviewsData.push(reviewData);
}
console.log("📊 Final review dataset:", reviewsData);
const csv = generateCSV(reviewsData);
const csvBlob = new Blob(
[csv],
{type:"text/csv"}
);
console.log("CSV Blob: ",csvBlob);
const csvURL = URL.createObjectURL(csvBlob);
console.log("🔗 CSV URL: ",csvURL);
chrome.runtime.sendMessage({
action: "download-csv",
csv: csv
});
});