Thông tin rò rỉ gây chấn động: Video sex được cho là của nữ giám đốc điều hành được một người đàn ông giàu có bao nuôi bị rò rỉ","lastmod":"2026-07-11","duration":"06:55","url":"/play/19166536.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZWUzMTljNGRkMTFhNDJiOWRmOTcyZTUzYzQ4N2Q3ZWQuanBn.cache","vod_id":18952612,"title":"KTRA-226CD2 Quan hệ tình dục liên tục với 24 cô gái ngực khủng, 16 giờ, bộ 4 đĩa","lastmod":"2025-12-14","duration":"02:18:09","url":"/play/18952612.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNDBiZTg4ODIwNDFmYTQ5YmIzOWYxNTUxYzE4ODVjODMuanBn.cache","vod_id":18931696,"title":"PLA-042 Nữ diễn viên đã chủ động tiếp cận tôi ngay khi chúng tôi gặp nhau, mang đến cho tôi một trải nghiệm tình dục hoàn toàn tự nhiên và không dùng biện pháp bảo vệ. (Natsume Yuki)","lastmod":"2025-03-22","duration":"02:00:05","url":"/play/18931696.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZDY5MDdkYTY5Y2Q1NmIxNmNkZGEyZDY2YzQ4OTg3MTcuanBn.cache","vod_id":18955133,"title":"SDMUA-016 Hai nhân viên bán hàng đối thủ của cửa hàng Galva sử dụng kỹ năng tuyệt vời của mình để cạnh tranh giành lấy màn quan hệ tình dục cuồng nhiệt với một người đàn ông thích bị hành hạ.","lastmod":"2025-12-14","duration":"02:06:03","url":"/play/18955133.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYmEwYjRlZWRmYTY1MTc0NTM5YTcyZjgxYzI3ZGExZjcuanBn.cache","vod_id":18938856,"title":"[Phụ đề tiếng Trung] OBA-395 Tôi là một bà già, nhưng liệu anh có chắc là muốn tôi không...?","lastmod":"2025-12-14","duration":"02:00:07","url":"/play/18938856.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMmQ2YzBmN2MyZTEwYzY0NWMyMjVjMmJlY2Q2NWQ1ZDUuanBn.cache","vod_id":18951170,"title":"\"Kiệt tác hạng nhất ⭐ → Ưu đãi\" Độc quyền dành cho 91 ông Bai khi tham gia câu lạc bộ người hâm mộ, lộ diện khuôn mặt hoàn hảo trong cảnh sex, nhiều người đẹp mặc đồng phục gợi cảm tương phản với những cô gái lẳng lơ cực kỳ dâm đãng, tác phẩm nghệ thuật gốc không có hình mờ (7)","lastmod":"2025-03-22","duration":"00:01:05","url":"/play/18951170.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMGJmMDk1NmRlNWZiNGMxYzYxYWQ1NWRmYjgzMDU5YmQuanBn.cache","vod_id":18962794,"title":"Caribbeancom 012123-001 Quan hệ tình dục sau giờ làm khiến tôi bất khả chiến bại! Saori Miyazawa","lastmod":"2025-12-14","duration":"01:01:40","url":"/play/18962794.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNGFkMjdkYjU1ZGQ5NWM0ZjlhYTNkNDlmNzdjYTZmNDkuanBn.cache","vod_id":18985333,"title":"IPX-225 đã rất thành công, hãy tiếp tục tìm hiểu nhé!! Real Breast Bar 2 & Real Breast Bar, bạn có thể làm nội dung W ở đó với 4 cảnh Sakura Momo","lastmod":"2025-03-23","duration":"03:17:26","url":"/play/18985333.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNmFjYWExZTY4ZjM1MGI0YTcyNzJlNzM1ZWMzNjYwM2YuanBn.cache","vod_id":18981842,"title":"[Phụ đề tiếng Trung] NACR-686 Cô bạn gái dâm đãng của tôi, Hane Iori, nài nỉ tôi oral sex cho cô ấy thật kỹ, và dương vật của tôi ướt đẫm.","lastmod":"2025-12-14","duration":"02:20:55","url":"/play/18981842.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMDA2ZGMwNTFkZmQwNjJiYmFkZjYzNGZhZGI4NjE1NzAuanBn.cache","vod_id":18964396,"title":"IPX-214 Cảnh sex đồng tính nữ mãnh liệt đã được phát hành! 4 cảnh sex đồng tính nữ - Đỉnh cao khoái cảm mới - Sự quấn quýt dính chặt","lastmod":"2025-03-22","duration":"01:58:38","url":"/play/18964396.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMTZjZDk0N2NhYWEwNjVlM2RiYWQ3YTFlM2FmNzhlMDUuanBn.cache","vod_id":18983431,"title":"FC2PPV 3704389 [Quay phim cá nhân, ngoại tình, chồng có liên quan] Một người vợ nóng bỏng, thân hình quyến rũ bị cắm sừng trước mặt chồng, sau đó bị chồng tấn công tình dục.","lastmod":"2025-12-14","duration":"00:31:42","url":"/play/18983431.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNWE1OGE0Mjc4Nzc4NWIxNjI2MTdkNGU1NTMyNTk3NzIuanBn.cache","vod_id":18931222,"title":"ABP-319 Cảnh nóng bỏng trong bộ đồ tập thể dục (4 cảnh)! Vận động viên Airi Suzumura","lastmod":"2025-12-14","duration":"03:05:13","url":"/play/18931222.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MDUvZDE1NTZhZDc0MDJhZTJlMTkxZThjNWE2NmEwMTc1YjguanBn.cache","vod_id":19050030,"title":"[Tiếng Trung] SONE515 Natsuzora Rika, một nhân vật kết hợp giữa sự ngây thơ và sự biến thái, bộc lộ xu hướng tình dục của mình thông qua ba cảnh cao trào.","lastmod":"2025-09-04","duration":"02:00:28","url":"/play/19050030.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOTlkMDVkNWI0Zjc3ZTM0MTQyNGVmNzgwNzgxY2ZkMDQuanBn.cache","vod_id":18934583,"title":"DSD-789 Gia đình Tình dục Tức thì 4: Cuộc sống hàng ngày dâm đãng của gia đình Tommy Gunn","lastmod":"2025-12-14","duration":"01:56:55","url":"/play/18934583.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYTg1OTJlYzViZTYyZmFhODg4NzVkMjJmZjQyODdkNjAuanBn.cache","vod_id":19017899,"title":"stars811 Con người thật của tôi là Hamabe Shiori, một người phụ nữ biến thái thích quan hệ tình dục.","lastmod":"2025-03-24","duration":"02:17:15","url":"/play/19017899.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNjAxZDAzMjcxMTdkMzU5MjdkMmNjZTEzZmJhNDRiYjEuanBn.cache","vod_id":18967329,"title":"[Phụ đề tiếng Trung] CAWD-503 Một cô bé loli gợi cảm với bộ ngực đồ sộ, đôi mắt xếch lên. Cô bé sẽ tự tử nếu bị bắt gặp đang trêu chọc một người đàn ông trưởng thành. Cô bé van xin bằng giọng nhỏ nhẹ được lấp đầy tinh dịch.","lastmod":"2025-12-14","duration":"01:58:14","url":"/play/18967329.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOGU0YjUzN2E1YjAzNjQ2NzJhMmU4ZmRjMTlkMjFkM2MuanBn.cache","vod_id":18971917,"title":"[4K] VENX-216 Độ nhạy cảm tăng gấp 100 lần sau khi dùng thuốc kích dục - Mẹ và con trai say đắm nhau trong một cuộc ân ái nồng nàn, ngọt ngào như bánh kem - Mio Kimishima","lastmod":"2025-12-14","duration":"01:34:51","url":"/play/18971917.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEwMTIvYjhmMTlmNmI1NGZmNDc5NzYwMmViMDQ5MmMxZjlhMTcuanBn.cache","vod_id":19057418,"title":"MM ra mắt! Chỉ dành cho những người đam mê nghiệp dư! Cô gái sinh viên Gương Thần thử thách bản thân thay bikini dưới bầu trời xanh! 2. Khi hết giờ, một dương vật khổng lồ cương cứng! Diễn viên không rõ danh tính DVMM173","lastmod":"2025-10-11","duration":"03:57:20","url":"/play/19057418.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNDVmNWMwMTA4YjI0MTg2NTQ3NzNmZTgyZDYyMjFiMTAuanBn.cache","vod_id":18940637,"title":"[Phụ đề tiếng Trung] SPZ-1049 Khoảnh khắc bà lão biến thành người đàn bà đanh đá","lastmod":"2025-12-14","duration":"01:59:10","url":"/play/18940637.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNzAwYjY1Zjc3MzQ5Y2IxODQ4NzExZmE5NjkxOGU0MDEuanBn.cache","vod_id":18956327,"title":"SILKBT-046 Quan hệ tình dục giữa hai người muốn thống trị","lastmod":"2025-03-22","duration":"00:55:58","url":"/play/18956327.html"}]},
videoTitle: '[Phụ đề tiếng Trung] DTT-051 Bốn cảnh quan hệ tình dục nhằm mục đích sinh sản, với sự chấp thuận của người chồng yêu thích ngoại tình!',
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=/`;
}
};
}