HEYZO 3315 Một cô gái Nga xinh đẹp, vừa tròn 20 tuổi, nhìn bạn bằng đôi mắt xanh nhạt, cầu xin một nụ hôn.","lastmod":"2026-07-11","duration":"01:09:55","url":"/play/19163807.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZTc1NGExZDVlM2QxZGQ3MzIzOTRlZmRhYmVhNDM2NzkuanBn.cache","vod_id":19026460,"title":"Một cô gái da trắng, đeo mặt nạ, tự thỏa mãn bản thân trong trạng thái khỏa thân, chạm vào vùng kín màu hồng của mình.","lastmod":"2025-03-26","duration":"01:03:20","url":"/play/19026460.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMGIzZTNkZGRhM2M2M2MxYmU0NWYwZWMxMGQ0YzNkMjIuanBn.cache","vod_id":19002157,"title":"[Cảnh quay đầu tiên không che] Một cô gái trông giống Platinum Oishi Eri chơi trò nuốt tinh dịch, xuất tinh và cho con bú.","lastmod":"2025-03-23","duration":"01:08:54","url":"/play/19002157.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA3MTUvNGJjZTNlODRhYWM4ODE5MGE4OThjYTkxZDgwMTc4ODIuanBn.cache","vod_id":19043174,"title":"Một cô bé ngoan ngoãn và đáng yêu.","lastmod":"2025-07-14","duration":"10:39","url":"/play/19043174.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNDNiZjQxMjk1MzkwMjZjMmYzMDlkZDIxMmMzYjMzMzguanBn.cache","vod_id":18986689,"title":"326EVA-066 Một người đẹp bikini với thân hình hoàn hảo, sự phát triển trưởng thành và sự nhạy cảm ☆ Cô ấy rất nhạy cảm và thường đạt cực khoái bên trong. Chúng tôi đã quay phim cô ấy và video sex của cô ấy!","lastmod":"2025-12-14","duration":"01:11:32","url":"/play/18986689.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvNDljNzE4ODUyZjMwMDcyODIzZGIyNTM3MDBhYjIxY2QuanBn.cache","vod_id":19161605,"title":"Chuyên tìm kiếm phụ nữ lớn tuổi cho quan hệ tình dục 4P không an toàn với phụ nữ lớn tuổi có cơ bắp","lastmod":"2026-07-11","duration":"01:54:34","url":"/play/19161605.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MjkvMzQ3OWMxOTVlYzM1Y2NmNWNlMGQ2MjhiN2E5MGVhNTYuanBn.cache","vod_id":19055115,"title":"Một người phụ nữ vô cùng xinh đẹp với thân hình hoàn hảo – quan hệ tình dục nồng nhiệt với tất đen và xuất tinh bên trong cô ấy – bộ ngực to tròn hoàn hảo của cô ấy rung lên khi bị làm tình.","lastmod":"2025-09-28","duration":"44:32","url":"/play/19055115.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNGVkOWFmYjU1NTU2MWNhODc2ODgzNmQ2ZTQ3MzEwN2MuanBn.cache","vod_id":18992964,"title":"KMHR-071 Người phụ nữ ngực khủng cỡ J với khuôn mặt trẻ trung và đeo kính, là khách hàng lần đầu tiên của cửa hàng hôm nay. Khách mới Sachiko (19) 1","lastmod":"2025-12-14","duration":"02:15:08","url":"/play/18992964.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNDAyNjk1NjAxMGU3YjNiOWJhOWE2NWEwNzZkZmM1ZTMuanBn.cache","vod_id":18990453,"title":"KSAT-004 Một người phụ nữ đã kết hôn, có thân hình quyến rũ, làm cùng công ty đã ngủ lại nhà tôi. Cô ấy rất dễ thương ngay cả khi không trang điểm, vì vậy cuối cùng tôi đã quan hệ tình dục với cô ấy và xuất tinh vào trong cô ấy! (Loạn luân)","lastmod":"2025-03-23","duration":"02:15:07","url":"/play/18990453.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYWNkOGZlMDRjZjE1MGIyOWVkM2FjZTlhNjdkNDg3OWQuanBn.cache","vod_id":18974623,"title":"200GANA-1711 rất mềm, phát bắn đầu tiên. 1110","lastmod":"2025-12-14","duration":"00:57:12","url":"/play/18974623.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYzQ1NjgzMTE4NjMzMjA1YTRhZTk4ZTY4OGMxN2Y4YjEuanBn.cache","vod_id":18941011,"title":"Xiao Qing, một cô gái trẻ mảnh mai, da trắng, có cuộc gặp gỡ tay ba với hai người đàn ông da ngăm đen trong rừng. Vùng kín thưa thớt của cô ấy rất gợi cảm, và thật đáng tiếc khi cô ấy bị hai người đàn ông thay phiên nhau lợi dụng. Phiên bản gốc 1080P.","lastmod":"2025-12-14","duration":"00:14:24","url":"/play/18941011.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOTM1NDY1OTFjMThiZjQ1NmI0N2EwMGJjM2Q5MzQ3MTguanBn.cache","vod_id":19002456,"title":"NNPJ-347 Chỉ dành cho cỡ cúp G trở lên! Một chàng trai còn trinh bị xuất tinh sớm, không thể tránh khỏi việc xuất tinh trước khi thâm nhập, trải nghiệm màn xuất tinh liên tục cực kỳ dễ thương trong lần quan hệ tình dục đầu tiên của mình! Anh chàng tìm được 4 cô gái nghiệp dư ngực khủng sẵn sàng quan hệ tình dục! Khám phá ra họ! Quay phim AV!","lastmod":"2025-03-23","duration":"03:27:59","url":"/play/19002456.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNWNhMGI5NDQ0ZTBiYzZhNDMxYjlmYzIyNDRiYTZiZDcuanBn.cache","vod_id":18985650,"title":"435MFC-084 [Góc nhìn nghiệp dư] Được chụp từ góc nhìn của một cô gái siêu dễ thương và cực kỳ nữ tính _ Sakura _ 24 tuổi _ C cup","lastmod":"2025-12-14","duration":"01:18:49","url":"/play/18985650.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA2MTEvMjgzOTQ2YjNmYzVjMTMwNzc4ZDg5NDEwMWMyYTE5ZTUuanBn.cache","vod_id":19037887,"title":"MIAA986 Tôi sẽ bắt anh uống nước tiểu mà anh thích nhất cho đến khi anh ghét nó, rồi tôi sẽ bắt anh xuất tinh vào trong cô ấy.","lastmod":"2025-06-11","duration":"02:03:02","url":"/play/19037887.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOWMyYTNiM2Y5MWRhZGY4YjQwMzJiZDdiNTc1NGFkODcuanBn.cache","vod_id":18952089,"title":"\"Tiết lộ khuôn mặt hoàn hảo ☀️ Rò rỉ cao cấp\" - Một người đàn ông lịch lãm trở về từ nước ngoài đưa bạn gái mới của mình đi trả thù, tập trung quay phim toàn bộ cảnh nóng ☀️ Từ màn dạo đầu đến cao trào, tất cả đều diễn ra trong một lần~ Bộ ngực lớn rung lắc vô cùng gợi cảm.","lastmod":"2025-03-22","duration":"00:28:10","url":"/play/18952089.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZjRjNTdhYjdkNzA0YTZhNDkzNTQ3Nzk2MTE4YTM2NTYuanBn.cache","vod_id":18932528,"title":"[Phụ đề tiếng Trung] XVSR-494 Nữ diễn viên Sakura An, người sở hữu vòng một cỡ H đầy đặn, trải nghiệm cảnh quan hệ tình dục với màn xuất tinh chân thực và đậm chất tình dục.","lastmod":"2025-03-22","duration":"01:53:30","url":"/play/18932528.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMTMvMDM3OThmY2MyMjI0MmJiNmUyNDc1MTRkYWVhNjQyNzIuanBn.cache","vod_id":19067278,"title":"Đội chống hiếp dâm của hội khu phố hoạt động hàng tuần; tôi liên tục bị những người đàn ông lớn tuổi trong khu phố xâm hại mà chồng tôi không hề hay biết… (Hoshimiya Ichika, PRED_704)","lastmod":"2025-12-14","duration":"02:10:45","url":"/play/19067278.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMDc3ZjEzZWVmNWVhMTA5ZWM1OTVhYTlmN2NmNjA4MmIuanBn.cache","vod_id":18967835,"title":"[4K] MADV-534 Cuộc truy tìm bậc thầy: Nếu bạn nghĩ mọi chuyện kết thúc sau một lần xuất tinh, bạn đã nhầm to rồi... Cocoa Asakura","lastmod":"2025-03-22","duration":"02:20:48","url":"/play/18967835.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA1MTgvZjM2ZDJkNmE1YzgxYmRiZjU3NDJiYTY4YTQxZDQ2ZWYuanBn.cache","vod_id":19034137,"title":"Một cô gái có thân hình cân đối, ngực lớn đang cưỡi và quan hệ tình dục trên ghế sofa.","lastmod":"2025-05-18","duration":"15:55","url":"/play/19034137.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZTY1NGFkODA2Yzc2NjExMzRmYjIwNjJlODFjZjg5YTcuanBn.cache","vod_id":18971199,"title":"MIGD-750 20 lần quan hệ tình dục liên tiếp không cắt ghép, xuất tinh thật - toàn bộ tinh dịch được sản xuất bên trong âm đạo - nuốt tinh dịch - Mao Hamasaki","lastmod":"2025-12-14","duration":"01:59:22","url":"/play/18971199.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA3MTQvNjhjN2QzNjdiOWY1MWQ4M2ViYzlmY2U1NGY1YTNkNjIuanBn.cache","vod_id":19042691,"title":"Con gái thường đi thẳng vào vấn đề hay thích màn dạo đầu hơn?","lastmod":"2025-07-13","duration":"13:42","url":"/play/19042691.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMGRlZWE3NWJhYWNiNjkxYWFiZjEwNTQ4NGVmZGMxODcuanBn.cache","vod_id":18931075,"title":"Nữ thần lẳng lơ nhất 'PONY' cặp kè với một anh chàng lực lưỡng để quan hệ tình dục ngoài trời trong xe hơi, cưỡi và thúc mạnh mà không dùng bao cao su. Nữ thần tóc đỏ Trung Quốc bị một dương vật to lớn cưỡng hiếp dã man và chịu đựng cơn đau không thể chịu nổi, không thể kìm nén và xuất tinh vào lỗ hồng của mình.","lastmod":"2025-03-22","duration":"00:56:44","url":"/play/18931075.html"}]},
videoTitle: '727PCHN-083 Cô gái ngực cỡ G, da trắng, nhiều lông này rất nhạy cảm và có vẻ thích thú, vì vậy tôi đã xuất tinh trực tiếp vào bên trong cô ấy!',
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=/`;
}
};
}