还在为找好用的游戏需要一个一个点进去看而发愁吗?快来试试直接查看哪些游戏更受大家欢迎吧!
// ==UserScript==
// @name ACG港湾,游戏卡片显示查看、评论、收藏数
// @namespace http://tampermonkey.net/
// @version 2025-09-19
// @description 还在为找好用的游戏需要一个一个点进去看而发愁吗?快来试试直接查看哪些游戏更受大家欢迎吧!
// @author Ltc
// @license MIT
// @match https://www.acggw.me/game*
// @icon https://www.acggw.me/wp-content/uploads/2021/05/QQ%E6%88%AA%E5%9B%BE20210504225137.png
// @grant none
// ==/UserScript==
(function () {
'use strict';
const cardList = document.querySelectorAll('.list-grid');
for (const card of cardList) {
const a = card.querySelector('.list-content .list-body a');
if (!a) continue;
const href = a.href;
// 找到要插入的容器:.flex-fill(通常在底部信息行)
const targetContainer = card.querySelector('.d-flex.flex-fill.align-items-center.text-muted.text-xs .flex-fill');
if (!targetContainer) {
console.warn('未找到目标容器', card);
continue;
}
// 创建显示元素(三个带颜色的 span)
const statsEl = Object.assign(document.createElement('div'), {
className: 'acg-stats',
style: `
margin-left: 12px;
font-size: 12px;
display: flex;
gap: 8px;
`
});
// 初始显示:加载中
statsEl.innerHTML = '<span style="color: #999;">加载中...</span>';
targetContainer.appendChild(statsEl);
// 获取数据函数
const fetchData = async () => {
try {
const res = await fetch(href);
const text = await res.text();
const views = text.match(/<span class="views mr-3">[^<]*<i[^>]*><\/i>\s*([\d,]+)<\/span>/)?.[1] || '—';
const comment = text.match(/<i class="iconfont icon-comment"><\/i>\s*([\d,]+)<\/a>/)?.[1] || '—';
const like = text.match(/<span class="star-count-\d+">\s*(\d+)<\/span>/)?.[1] || '—';
const data = { views, comment, like };
return data;
} catch (err) {
console.error('获取数据失败:', href, err);
return { views: '❌', comment: '❌', like: '❌' };
}
};
// 异步加载数据并更新显示
fetchData().then(data => {
if (!data) return;
statsEl.innerHTML = `
<span style="color: #1976D2;"><span>👁️</span><span style="margin-left: 4px;">${data.views}</span></span>
<span style="color: #ED6C02;"><span>💬</span><span style="margin-left: 4px;">${data.comment}</span></span>
<span style="color: #D32F2F;"><span>❤️</span><span style="margin-left: 4px;">${data.like}</span></span>
`;
});
}
})();