(function() { var productCounts = {}; function countProductModels(products) { products.forEach(function(product) { if (product.product_items) { product.product_items.forEach(function(item) { if (item.model_name) { if (productCounts[item.model_name]) { productCounts[item.model_name]++; } else { productCounts[item.model_name] = 1; } } }); } }); } function displayResults() { var sortedCounts = Object.entries(productCounts).sort(function(a, b) { return b[1] - a[1]; }); console.info("Đã hoàn tất. Kết quả:"); console.table(sortedCounts); } function fetchProductRatings(shopId, itemId, pageOffset) { var url = "https://shopee.vn/api/v2/item/get_ratings?filter=0&flag=1&itemid=" + itemId + "&limit=50&offset=" + pageOffset + "&shopid=" + shopId + "&type=0"; console.log("Đang quét trang " + (pageOffset / 50 + 1) + "..."); fetch(url, { headers: { "x-api-source": "pc", "x-requested-with": "XMLHttpRequest", "x-shopee-language": "vi" }, method: "GET", mode: "cors", credentials: "include" }) .then(function(response) { return response.json(); }) .then(function(data) { if (!data.error && data.data && data.data.ratings.length > 0) { countProductModels(data.data.ratings); if (data.data.ratings.length < 50) { displayResults(); } else { fetchProductRatings(shopId, itemId, pageOffset + 50); } } else { displayResults(); } }); } function extractShopIdAndItemIdFromURL() { var currentURL = new URL(window.top.location.href); if (!currentURL.hostname.includes("shopee.vn")) { throw Error("Đoạn mã này chỉ có thể sử dụng trên trang web Shopee.vn"); } var regexResult = /.+-i\.([0-9]+)\.([0-9]+)/.exec(currentURL.pathname); if (regexResult) { return { shopId: regexResult[1], itemId: regexResult[2] }; } else { throw Error("Trang bạn đang xem không phải là một trang sản phẩm của Shopee."); } } console.info("Bắt đầu phân tích với Shop ID và mã sản phẩm..."); var shopAndItemIds = extractShopIdAndItemIdFromURL(); fetchProductRatings(shopAndItemIds.shopId, shopAndItemIds.itemId, 0); })();