You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
2.0 KiB
55 lines
2.0 KiB
chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {
|
|
console.log('收到消息:', request);
|
|
if (request.action === 'checkOnlineStatus') {
|
|
const isDouyin = window.location.hostname.includes('douyin.com');
|
|
sendResponse({isDouyin: isDouyin});
|
|
} else if (request.action === 'checkViewers') {
|
|
const viewersCounts = [];
|
|
const liveRooms = document.querySelectorAll('[data-e2e="user-card"]');
|
|
liveRooms.forEach(room => {
|
|
const viewersElement = room.querySelector('[data-e2e="watch-count"]');
|
|
if (viewersElement) {
|
|
const viewersText = viewersElement.textContent.trim();
|
|
const viewers = parseViewersCount(viewersText);
|
|
const roomTitle = room.querySelector('[data-e2e="video-title"]')?.textContent.trim() || '未知直播间';
|
|
viewersCounts.push({ room: roomTitle, viewers: viewers });
|
|
}
|
|
});
|
|
sendResponse({viewersCounts: viewersCounts});
|
|
} else if (request.action === 'getCurrentRoomId') {
|
|
try {
|
|
const url = window.location.href;
|
|
const match = url.match(/live\.douyin\.com\/([^/?]+)/);
|
|
if (match && match[1]) {
|
|
sendResponse({ roomId: match[1] });
|
|
} else {
|
|
const roomIdElement = document.querySelector('[data-room-id]');
|
|
if (roomIdElement) {
|
|
sendResponse({ roomId: roomIdElement.getAttribute('data-room-id') });
|
|
} else {
|
|
sendResponse({ error: '未找到直播间ID' });
|
|
}
|
|
}
|
|
} catch (error) {
|
|
console.error('获取直播间ID时出错:', error);
|
|
sendResponse({ error: error.message });
|
|
}
|
|
return true; // 保持消息通道开启
|
|
}
|
|
return true; // 保持消息通道开放
|
|
});
|
|
|
|
function parseViewersCount(viewersText) {
|
|
const number = parseFloat(viewersText.replace(/[^0-9.]/g, ''));
|
|
const unit = viewersText.replace(/[0-9.]/g, '').trim();
|
|
switch(unit) {
|
|
case '万':
|
|
return number * 10000;
|
|
case '亿':
|
|
return number * 100000000;
|
|
default:
|
|
return number;
|
|
}
|
|
}
|
|
|
|
console.log('内容脚本已加载');
|
|
|