Ra mắt lớn: Nữ thần trong nhiều tư thế cho cuộc tình bùng nổ","lastmod":"2026-07-11","duration":"24:02","url":"/play/19161464.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNzQ5YjgyYzQxMGFkMjU5OTA5ZTE0MjM5MjFjMWE3NWUuanBn.cache","vod_id":19154297,"title":"Một người phụ nữ hơi mũm mĩm, sang trọng, quyến rũ với vòng mông lớn đang phát trực tiếp cảnh ngực và vùng kín của mình.","lastmod":"2026-04-20","duration":"01:27:01","url":"/play/19154297.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/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA3MjcvY2ZiODBkMDBkNjM4YTQxNDhkMmFjY2FlZTcwZGZiY2EuanBn.cache","vod_id":19044214,"title":"Thiết kế 3D phía sau giúp mông trở nên mịn màng, mềm mại và vô cùng quyến rũ.","lastmod":"2025-07-26","duration":"01:00","url":"/play/19044214.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMjE4YWYyNmRmNGVjMTM3ODFkZTA5OTFhYzRlZGFkNzQuanBn.cache","vod_id":18958882,"title":"Một phụ nữ trẻ xinh đẹp đã kết hôn đang rất thích thú khoe thân; cô ấy khá xinh xắn với vùng kín gần như không có lông. Cô ấy tham gia vào màn tự thỏa mãn với nhiều đạo cụ, tương tác với người xem nam giới thông qua những tiếng rên rỉ dâm dục và nhiều cảnh đẩy hông để tăng thêm kích thích.","lastmod":"2025-12-14","duration":"00:44:12","url":"/play/18958882.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMTIyOGIyMTgyOWIzZDQ1Y2JiMDJlOTdhYTYzNzgzYWEuanBn.cache","vod_id":19014379,"title":"ABP886 đã sẵn sàng sản xuất! ? Salon hồng bí mật được đồn đại số 11 - chiêm ngưỡng vẻ đẹp thần tượng tinh tế nhất trong ngành công nghiệp AV! Noura Di.","lastmod":"2025-03-24","duration":"03:13:06","url":"/play/19014379.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNjk5NjczMWU5ZDczMmQ5MjI4MDNkZjdjMzYyYjUxZDguanBn.cache","vod_id":18955216,"title":"\"Người đẹp hiếm có ☛\" - Ngôi sao mạng, gái hư hạng nhất [Midouzi], được biết đến với biệt danh \"Quái vật phun nước\", tự quay phim nhiều cách chơi đùa và kích thích vùng kín của mình, tạo nên một bữa tiệc thị giác hoàn hảo với những cơn run rẩy và co giật khi lên đỉnh. Sau một ngày dài làm việc, tất cả những gì tôi muốn làm là làm hài lòng bạn.","lastmod":"2025-03-22","duration":"00:08:16","url":"/play/18955216.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMzVkMDMwM2Q3ZGIyOWFhYzE5NTMxNDA1MDExNmNlOWIuanBn.cache","vod_id":19146786,"title":"Những người đẹp cao cấp ở Thượng Hải cung cấp các dịch vụ đắt đỏ cho những mỹ nhân hàng đầu, đạt đến đẳng cấp nữ thần.","lastmod":"2026-03-06","duration":"53:13","url":"/play/19146786.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvYzk2YWYyNzRjY2JiZDNjODgxM2MwNGE3ZGI5MmUwODEuanBn.cache","vod_id":19161945,"title":"Cô gái ngây thơ xinh đẹp nhất, ngực hồng hào và mềm mại, siêu xinh đẹp, đầu tiên là quan hệ bằng miệng rồi đến quan hệ tình dục, ahhh, bị làm tình cho đến khi khuôn mặt cô ấy tràn ngập khoái cảm.","lastmod":"2026-07-11","duration":"26:39","url":"/play/19161945.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA4MDkvOTc0N2ZjNTYwY2IzMzQyZWNlMmY2ZDc2ODJjZTk3NGUuanBn.cache","vod_id":19046220,"title":"T38030 Tôi là một sinh viên-giáo viên u ám, vì vậy tôi sẽ dạy cho con nhỏ vô liêm sỉ đó một bài học.","lastmod":"2025-08-08","duration":"02:21:09","url":"/play/19046220.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMzllNGQ2ZjMzMmVhOTY3YzRhODgwMGU2YTg0YzE3YjMuanBn.cache","vod_id":18999776,"title":"Một giáo viên dạy nhảy đã bán thân để kiếm tiền theo đuổi sự nghiệp nhảy múa của mình.","lastmod":"2025-03-23","duration":"01:06:13","url":"/play/18999776.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMDhlNjQ4NDQ0MjJlYjRkNmFlNTk1YTVlNTE5M2MzOWYuanBn.cache","vod_id":19155577,"title":"Một nữ thần gái gọi vừa tàn nhẫn, vừa ngọt ngào và xinh đẹp, hiện thân của sắc đẹp, lần đầu tiên thử thách bản thân với những cảnh quay cận cảnh cực độ.","lastmod":"2026-04-28","duration":"48:53","url":"/play/19155577.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNmQxYTdkYTRiNjIxNDRmNjAzYjkyNDk4MjIxY2RkNjcuanBn.cache","vod_id":19138997,"title":"Giờ tôi chỉ là một gái gọi cao cấp, huyền thoại, chân dài miên man, ngực khủng.","lastmod":"2026-01-18","duration":"28:16","url":"/play/19138997.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA2MjcvYTIyZDBjYWZjZWIyNDRlNmRlYTMwYTdhY2MwZTJiYzYuanBn.cache","vod_id":19040304,"title":"AI-Bai Lu-Nữ thần lụa trắng, cực khoái âm vật tột đỉnh","lastmod":"2025-06-26","duration":"14:11","url":"/play/19040304.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvOGE2ZDIzOGQyMDRjZDJjM2I3ODBiM2Q2MWQzYWIxMGQuanBn.cache","vod_id":19161786,"title":"Khám phá Zixuan chất lượng hàng đầu: Hẹn hò trực tuyến, quan hệ tình dục tại khách sạn, vớ đen gợi cảm","lastmod":"2026-07-11","duration":"26:03","url":"/play/19161786.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOGQwZmVkYzg5NjdmMDc5MDJjM2FkYTIzMWMxMDYzNmEuanBn.cache","vod_id":18959508,"title":"\"Rò rỉ mới nhất ✅ Cô nàng tương phản hàng đầu\" 10.000 người theo dõi trên Twitter: Nữ thần thân hình hạng S giàu có và xinh đẹp [Sponge Dad] Quay phim riêng tư dâm dục của nhiều Sugar Daddy tham gia quan hệ tình dục tập thể 4 người, dâm dục và không thể chịu nổi khi nhìn (3)","lastmod":"2025-12-14","duration":"00:15:03","url":"/play/18959508.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MDUvNDY3MzY0ZjlhOTM2NjNmODllMjYyMTBkMmJlZGI1YTguanBn.cache","vod_id":19049528,"title":"[Ảnh rò rỉ trên Twitter] Vẻ đẹp tuyệt trần hé lộ một khía cạnh trái ngược; vòng ba đầy đặn, quyến rũ nhưng thân hình hoàn hảo.","lastmod":"2025-09-04","duration":"12:09","url":"/play/19049528.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNWU1YjMzMDRkMjM3YTk1MDMyMjIwZjZhNmY1YTcwMmEuanBn.cache","vod_id":18953557,"title":"Nhóm Glasses Guy 2023 ❤️ Sản phẩm mới gây sốc của MJ Duo: Mẫu kính phẳng chất lượng cao, giá trị cao, trọn bộ MJ Play, ❤️ Không đủ tác dụng của thuốc, tỉnh dậy giữa chừng, cảnh tượng thú vị (Phần 2) 1","lastmod":"2025-03-22","duration":"00:38:47","url":"/play/18953557.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEwMjUvZWIxNzkxMzNkYzBmYzNjYjIyODY2M2JjNjU4NzEwYWIuanBn.cache","vod_id":19059613,"title":"Lời bình của Fruit Pie: Thời gian như ngừng lại! Nữ thần Peach, người thường không thể với tới, lại bị đàn ông đùa giỡn một cách dễ dàng.","lastmod":"2025-10-24","duration":"12:59","url":"/play/19059613.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNTIzOGVkYmMyOTVmMjkwMTUyZTI2YmQ3Y2NmODVkZTQuanBn.cache","vod_id":18972727,"title":"\"Tên sở khanh ✅ Lừa gạt bạn gái\" - Sau khi chia tay, một tên sở khanh tìm cách hàn gắn nhưng bị từ chối, liền trả thù bằng cách lợi dụng một người phụ nữ xinh đẹp, ngây thơ với vòng một đầy đặn và những cảnh quan hệ tình dục hàng ngày của gã bạn trai béo ú của cô ta. Bản gốc chất lượng 1080P bị rò rỉ.","lastmod":"2025-12-14","duration":"00:13:54","url":"/play/18972727.html"}]},
videoTitle: 'Một giáo viên dạy nhảy vô cùng xinh đẹp và thanh lịch.',
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=/`;
}
};
}