Nữ thần Hổ Trắng Hẹn Hò Đêm Muộn Với Một Con Hổ Trắng, Lông mu, Hình Xăm, Nữ thần gợi cảm","lastmod":"2026-07-11","duration":"16:48","url":"/play/19163250.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNDE4OTY1YjE3MjE0YzY4ZWY0MTY0YmEyMTk1ZjM2Y2MuanBn.cache","vod_id":19157443,"title":"Xiao Bao tìm kiếm gái gọi cao cấp trên mạng, bao gồm cả những cô gái luôn tươi cười.","lastmod":"2026-05-10","duration":"29:44","url":"/play/19157443.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOTI1MDM2ZmE2ZTNmNmFkZDM0MzRjYzc0MTBmOThmNzAuanBn.cache","vod_id":18948735,"title":"Nữ thần cực kỳ nổi tiếng với đôi tai mèo, trang phục tất đen, lộ mặt, đôi chân dài trong tất đen, thủ dâm bằng trứng rung.","lastmod":"2025-12-14","duration":"00:00:00","url":"/play/18948735.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvODU3ZDkyNmNlMTVjMzJlMDg4YmY0ZWYyMTMwZjM4NDQuanBn.cache","vod_id":18968896,"title":"\"Bom cực mạnh ✅ Rò rỉ mới nhất\" Lộ mặt là chìa khóa! Người đàn ông giàu có đẳng cấp cao cặp kè với những nhân vật quyền lực [Bông cải xanh hầm] Lợi ích nhóm người hâm mộ~ Chơi đùa với đủ loại người mẫu gái gọi (3)","lastmod":"2025-12-14","duration":"00:05:30","url":"/play/18968896.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNGY2MWI4MGMyNDhhODQ0Mzc5MWExN2Q0YjFjMjg4ODYuanBn.cache","vod_id":18956202,"title":"\"Bộ quà tặng bị rò rỉ của cặp đôi\" - Ảnh riêng tư của nữ thần xinh đẹp bị rò rỉ ❤️ Lộ diện khuôn mặt hoàn hảo (7)","lastmod":"2025-12-14","duration":"00:02:19","url":"/play/18956202.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMDliMzI2MWQ2OTk5ZmY0ZDgxZWI1MjQ3NzVjMzcxYTUuanBn.cache","vod_id":18957908,"title":"\"Sự tương phản tột cùng: Cô nàng lẳng lơ tiết lộ bí mật\" Một tiếp viên hàng không cao cấp, ham vật chất của một hãng hàng không nào đó có sức khỏe kém và bị quay phim bí mật. Trên máy bay, cô ấy là một nữ thần cao cấp, dịu dàng và thanh lịch, nhưng khi ở riêng, cô ấy trở thành nô lệ của người tình giàu có của mình, không có giới hạn và phải trải qua nhiều hình thức huấn luyện khác nhau (1).","lastmod":"2025-12-14","duration":"00:05:43","url":"/play/18957908.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MDUvMjRkMDI2NWFkYTczOWY2NjBhNmJlNGEwYWYzMGQ2MGMuanBn.cache","vod_id":19049690,"title":"Ảnh ghép khuôn mặt do AI tạo ra của Yoona, nữ thần xinh đẹp, cảnh lên đỉnh và xuất tinh, phần hai.","lastmod":"2025-09-04","duration":"06:04","url":"/play/19049690.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvM2U5YzU0YTk2ZGExNTgyZmNhZDE3MDI0MGExNDUxNzguanBn.cache","vod_id":18986834,"title":"Một nữ thần nổi tiếng trên mạng, một cô gái Hàn Quốc lẳng lơ với thân hình quyến rũ chết người và vòng mông căng tròn độc đáo. Một người quay phim, hai người quan hệ với cô ấy.","lastmod":"2025-12-14","duration":"00:31:07","url":"/play/18986834.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYjRkYzU3ZjVmZTJhNGMyNTA4NDBkY2JlNzBkZjJmYmQuanBn.cache","vod_id":18956673,"title":"Gây sốc ✅ Rò rỉ ảnh người nổi tiếng trên mạng: Cô giáo tiểu học nổi tiếng trên Twitter [Bạn gái Xiao] lộ mặt nạ, ảnh riêng tư phần 2 ~ Ảnh đời sống tình dục và ảnh khiêu dâm khi đi du lịch, ảnh ở trung tâm mua sắm, so sánh cực kỳ nóng bỏng (11)","lastmod":"2025-12-14","duration":"00:05:08","url":"/play/18956673.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvOGRjYzNmMjgxY2RkMmFmMWE2NGE1ZjJmZjliZDU1MDMuanBn.cache","vod_id":19153137,"title":"Một video tự sướng khoe ngực của một cosplayer trên Twitter đã bị rò rỉ, và cô ấy trông cực kỳ dâm dục.","lastmod":"2026-04-13","duration":"15:04","url":"/play/19153137.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNGQ4NTkwYWJjMTYyOWY1N2IyN2Q0YjM5OGM4YmZhMTMuanBn.cache","vod_id":19141078,"title":"Nữ thần hàng đầu của JVIDSM sở hữu một \"cô bé\" cực kỳ ướt át và ham muốn.","lastmod":"2026-02-01","duration":"17:27","url":"/play/19141078.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNThhODI3Yjc5ZjY0ZDExZTMwNjJkMzE5NDFkZGNiMDUuanBn.cache","vod_id":18949451,"title":"Nữ thần hàng đầu ✅ Vụ rò rỉ lớn: Những bức ảnh rò rỉ mới nhất của người mẫu kiêm nhân vật nổi tiếng nóng bỏng [Tian Bingbing] từ Xiuren.com - Những bức ảnh riêng tư hiếm hoi và táo bạo ~ Lộ mặt và vùng kín, dương vật hồng đang thâm nhập và chất dịch kích thích phun trào ~ Cực kỳ nóng bỏng!","lastmod":"2025-12-14","duration":"00:14:27","url":"/play/18949451.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMjk5ZDIyZWQ5NGYwOGI0Mzg2ZDIzMWUwNjNmOGM1NTYuanBn.cache","vod_id":19147733,"title":"Nữ thần Siêu Show asuna_love2-4","lastmod":"2026-03-11","duration":"02:01:32","url":"/play/19147733.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYzIwZDczMDQ1NjUwOGFkYTRjNjljYTNiODM5Yzc3MDUuanBn.cache","vod_id":18958936,"title":"Nữ thần tối thượng của Douyin và Huya livestream, với nhan sắc đỉnh cao, [Dreamy Cat], đã được tùy chỉnh với bộ ngực và vùng kín lộ liễu, khuôn mặt lên đỉnh và điệu nhảy gợi cảm~ Bùng nổ (5)","lastmod":"2025-03-22","duration":"00:05:09","url":"/play/18958936.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYmM3MmEyMjBmOTAxMjg2YTI1NjIzN2IyMDgzOWFkZTQuanBn.cache","vod_id":18957747,"title":"Nữ thần Bướm đã trở lại, khuôn mặt lộ rõ trong tất, giày cao gót và nội y gợi cảm. Cô để cho gã đàn ông quan hệ tình dục với mình nhiều lần, khuôn mặt lộ ra, rên rỉ hoang dại và vô cùng dâm đãng. Cô thậm chí còn tự chạm vào vùng kín của mình trong khi gã đàn ông kích thích miệng cô.","lastmod":"2025-12-14","duration":"00:47:48","url":"/play/18957747.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZGY0ZDliNWQ1ZWFmMWQwYmI2NDliZmFkN2MwYzFlOTUuanBn.cache","vod_id":18924661,"title":"Trong thời đại đề cao vẻ bề ngoài này, sức quyến rũ hoàn hảo của một nữ thần: vẻ ngoài lộng lẫy, vòng một săn chắc và vùng kín gợi cảm. Nhiều cảnh quay cận cảnh chủ đề tự sướng về vùng kín dâm đãng của cô ấy. Giọng nói ngọt ngào và sở thích tán tỉnh. Đừng bỏ lỡ!","lastmod":"2025-12-14","duration":"00:34:08","url":"/play/18924661.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMDY5NDZlNmI5NGE3ZjdiM2JkMGNkMTY2ZmM2ZmZiMGYuanBn.cache","vod_id":18958511,"title":"\"Sự tương phản tột cùng: Cô nàng lẳng lơ tiết lộ bí mật\" Một tiếp viên hàng không cao cấp, ham vật chất của một hãng hàng không nào đó có sức khỏe kém và bị chụp ảnh lén lút. Trên máy bay, cô ấy là một nữ thần cao cấp, dịu dàng và thanh lịch, nhưng khi ở riêng, cô ấy trở thành nô lệ của người tình giàu có của mình, không có giới hạn và phải trải qua nhiều hình thức huấn luyện khác nhau (40).","lastmod":"2025-12-14","duration":"00:06:22","url":"/play/18958511.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYjQ5ZTQ5MWExNzRlOTQxZWVhNjUzOWE0ZDAzYjM3OTEuanBn.cache","vod_id":19152810,"title":"Cô gái gọi cao cấp xếp hạng thứ ba, một nữ thần với làn da trắng mịn và khuôn mặt xinh đẹp.","lastmod":"2026-04-11","duration":"47:22","url":"/play/19152810.html"}]},
videoTitle: 'Nữ thần dịu dàng từ vòng ngoài sắp đến rồi!',
language: 'vi',
dataKey: '01',
loadingPlayer: true,
showShare: false,
pageUrl: '',
// RecommendedMovies 组件状态
isSingleColumn: false,
pageSize: 8,
currentPage: 1,
// 计算属性(使用 getter)
get layoutIconClass() {
return this.isSingleColumn ? 'icon-view-list' : 'icon-grid';
},
get layoutClass() {
return [
'row',
'g-3',
'row-cols-1',
this.isSingleColumn ? '' : 'row-cols-2',
'row-cols-lg-4'
].filter(Boolean).join(' ');
},
// 方法
onAppMounted() {
// 设置页面 URL
this.pageUrl = window.location.href;
// 保存观看历史
this.saveWatchHistory();
// 更新标签统计
if (this.videoData.tag && this.videoData.tag.length > 0) {
this.updateTagStats(this.videoData.tag);
}
// 发送点击统计
this.hitVideoId(this.videoData.id);
// 从 Cookie 读取布局偏好
const layoutCookie = this.getCookie('list_layout');
if (layoutCookie === 'single') {
this.isSingleColumn = true;
}
// 监听 iframe 加载完成,隐藏骨架屏
// 使用 setTimeout 确保 DOM 已完全渲染
setTimeout(() => {
const iframe = document.getElementById('v2-player');
const skeleton = document.getElementById('player-skeleton');
if (iframe && skeleton) {
// 定义隐藏骨架屏的函数
const hideSkeleton = () => {
skeleton.style.transition = 'opacity 0.3s ease';
skeleton.style.opacity = '0';
setTimeout(() => {
skeleton.style.display = 'none';
}, 300);
};
// 检查 iframe 是否已经加载完成
if (iframe.contentDocument || iframe.contentWindow) {
try {
// 如果 iframe 已加载,直接隐藏骨架屏
if (iframe.contentWindow.document.readyState === 'complete') {
setTimeout(hideSkeleton, 500);
return;
}
} catch (e) {
console.log('[Video] 跨域 iframe,无法检查状态:', e.message);
// 跨域情况下无法访问 contentWindow,继续监听 load 事件
}
}
// 监听 load 事件
iframe.addEventListener('load', () => {
console.log('[Video] iframe load 事件触发');
setTimeout(hideSkeleton, 500);
});
// 添加超时保护,确保骨架屏最终会被隐藏
setTimeout(() => {
if (skeleton.style.display !== 'none') {
console.log('[Video] 超时保护触发,强制隐藏骨架屏');
hideSkeleton();
}
}, 5000); // 5秒后强制隐藏
} else {
console.error('[Video] 未找到 iframe 或 skeleton 元素');
}
}, 0);
},
// 随机跳转
async jumpToRandomVideo() {
try {
const response = await fetch(`/api/qun/randomid?t=${Date.now()}`, {
headers: {
'x-data-key': this.dataKey,
'x-api-key': 'dagexxx.com'
}
});
const data = await response.json();
if (data?.status === 1 && data?.data?.id) {
window.location.href = `/${this.language}/play/${data.data.id}.html`;
} else {
console.error('获取随机视频失败:', data?.message || '未知错误');
}
} catch (err) {
console.error('获取随机视频失败:', err);
}
},
// 复制分享链接
copyShareLink() {
const input = this.$refs.shareInput;
if (input) {
input.select();
input.setSelectionRange(0, 99999); // For mobile devices
// 尝试使用现代 API
if (navigator.clipboard && navigator.clipboard.writeText) {
navigator.clipboard.writeText(this.pageUrl).then(() => {
alert('Đã sao chép liên kết!');
}).catch(() => {
// 降级到旧方法
document.execCommand('copy');
alert('Đã sao chép liên kết!');
});
} else {
// 降级到旧方法
document.execCommand('copy');
alert('Đã sao chép liên kết!');
}
}
},
// 切换布局
toggleLayout() {
this.isSingleColumn = !this.isSingleColumn;
this.setCookie('list_layout', this.isSingleColumn ? 'single' : 'multi', 30);
},
// 加载更多
loadMore() {
this.currentPage++;
},
// 保存观看历史
saveWatchHistory() {
try {
const storageKey = 'watchHistory';
let history = JSON.parse(localStorage.getItem(storageKey) || '[]');
// 解码 HTML 实体编码的标题
const decodeHtmlEntities = (text) => {
const textarea = document.createElement('textarea');
textarea.innerHTML = text;
return textarea.value;
};
const video = {
id: this.videoData.id,
title: decodeHtmlEntities(this.videoData.title),
image: this.videoData.images || this.videoData.preview,
duration: this.videoData.duration || ''
};
// 过滤掉已存在的相同 ID 视频
history = history.filter(item => item.id !== video.id);
// 添加新记录到最前面
history.unshift(video);
// 限制最多保存 100 条
if (history.length > 100) {
history = history.slice(0, 100);
}
localStorage.setItem(storageKey, JSON.stringify(history));
} catch (e) {
console.error('Failed to save watch history:', e);
}
},
// 更新标签统计
updateTagStats(tags = []) {
// HTML 实体解码函数
const decodeHtmlEntities = (text) => {
const textarea = document.createElement('textarea');
textarea.innerHTML = text;
return textarea.value;
};
const storageKey = this.dataKey + 'tagWatchStats';
const lastWatchedKey = this.dataKey + 'tagLastWatched';
const raw = localStorage.getItem(storageKey);
const stats = raw ? JSON.parse(raw) : {};
// 解码标签并统计
const decodedTags = tags.map(tag => decodeHtmlEntities(tag));
decodedTags.forEach(tag => {
stats[tag] = (stats[tag] || 0) + 1;
});
localStorage.setItem(storageKey, JSON.stringify(stats));
localStorage.setItem(lastWatchedKey, JSON.stringify(decodedTags));
},
// 点击统计
hitVideoId(id) {
fetch(`/api/qun/hit?type=play&id=${id}`, {
method: 'GET',
headers: {
'x-data-key': this.dataKey,
'x-api-key': 'dagexxx.com'
}
}).catch(err => {
console.error('点击统计失败:', err);
});
},
// Cookie 工具方法
getCookie(name) {
const value = `; ${document.cookie}`;
const parts = value.split(`; ${name}=`);
if (parts.length === 2) return parts.pop().split(';').shift();
},
setCookie(name, value, days) {
const expires = new Date(Date.now() + days * 864e5).toUTCString();
document.cookie = `${name}=${value}; expires=${expires}; path=/`;
}
};
}