[Trao đổi khuôn mặt] Lưu Diệc Phi, Tiên Nữ Bạch Hổ...","lastmod":"2026-07-11","duration":"17:43","url":"/play/19153242.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA3MjMvOTZlOTkwNjQ2YmUxNzg2ZWE4ZGExMDdhYWNhMmI1OTQuanBn.cache","vod_id":19113728,"title":"Hai chị em sinh đôi gợi cảm đã bị anh trai lớn hơn huấn luyện, chơi đùa và lạm dụng ở nhiều tư thế khác nhau, bao gồm cả việc xoa bóp ngực và véo hậu môn của họ.","lastmod":"2025-07-23","duration":"01:01:51","url":"/play/19113728.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZjIzNzliZWJjODQxNTA5MTJhZjI2OGU3ZTdkZTc5YTguanBn.cache","vod_id":18969647,"title":"Một nhóm chuyên nghiệp gồm ba cô gái trẻ trung, quyến rũ đã thay phiên nhau mang đến cho cô ấy một màn trình diễn hoang dã và đầy kích thích.","lastmod":"2025-03-19","duration":"25:38","url":"/play/18969647.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvODVlN2QxNzc4MGVmYmJiMGUwOGRiYWFkMzljYjUxYTQuanBn.cache","vod_id":19029348,"title":"EBVR-071 [VR] Một mối quan hệ vui vẻ với một cô gái ngực lớn kém tôi 7 tuổi; cô ấy thích làm cho tôi (một sinh viên đại học) cương cứng. VR-cd1","lastmod":"2025-03-19","duration":"37:46","url":"/play/19029348.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMmEzMDJhZWY0NmYxNzU4NGMwZTY4OTM4M2NlMzg0YWUuanBn.cache","vod_id":19141922,"title":"ROE-411 \"Đến bất cứ lúc nào em muốn...\" Tôi, một chàng trai còn trinh, đã nhờ một người phụ nữ đã có chồng trong cửa hàng xà phòng lấy đi trinh tiết của mình, nhưng hóa ra cô ấy lại là bạn tôi...","lastmod":"2026-03-16","duration":"02:22:02","url":"/play/19141922.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvOGVmNTExZGZhYWY0NzJiMDM3NGM3NjliMzc4YzU0NTAuanBn.cache","vod_id":18975352,"title":"Một nữ sinh năm hai đeo kính đã quyến rũ một nam nhân viên mát xa tại một tiệm mát xa, yêu cầu anh ta đeo bao cao su khi quan hệ tình dục. Giữa chừng, nhân viên mát xa cảm thấy không thoải mái với bao cao su và đã tháo nó ra, dẫn đến quan hệ tình dục không an toàn.","lastmod":"2025-03-19","duration":"51:42","url":"/play/18975352.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZDRlMTZkZDk2NDI1ZjRjODM2MmViOGIzY2Q3YTcxNTYuanBn.cache","vod_id":19137817,"title":"PRED-815 Học sinh càng thông minh, càng quyến rũ. Để thỏa mãn cả thành tích học tập và ham muốn tình dục, cô ta lén lút nhận tinh dịch 10 lần một ngày, từ sáng đến tối. Một vẻ đẹp thầm lặng.","lastmod":"2026-02-13","duration":"01:59:27","url":"/play/19137817.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYzVlNGMwZGZiZGMwMWFhYTQ2NjIzNjFlNzRhMDg5ZDQuanBn.cache","vod_id":19085071,"title":"Cô gái đeo kính liếm giỏi quá, cảm giác thật tuyệt.","lastmod":"2025-03-19","duration":"00:00:45","url":"/play/19085071.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMjI5YmI3MWRkYzAyYjk1MTBmYjhlMzBiNDQzMjc4MjguanBn.cache","vod_id":18964063,"title":"Một cô gái mới rất dễ thương, cận cảnh cảnh cô ấy đang xoa âm đạo và trở nên ướt át nhờ một quả trứng rung.","lastmod":"2025-03-19","duration":"43:30","url":"/play/18964063.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvOGY3YjRiMjc0M2FlYWI3ZGYzYWQzMDNmN2RjNjhhMTMuanBn.cache","vod_id":19132380,"title":"GVH-785 [Độc quyền của FANZA] Cô nữ sinh thần tượng kiêu ngạo, lạnh lùng và khinh miệt này bị cưỡng hiếp tập thể ngoài trời, và vùng kín của cô ấy bị \"giáo dục\" một cách triệt để.","lastmod":"2026-02-13","duration":"02:15:13","url":"/play/19132380.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvOWM5NmE2NzhmODQ0MDcyNGFjYjVkNWViM2M4Yzc4OGEuanBn.cache","vod_id":18957803,"title":"CLUB-818 là một phòng khám chỉnh hình chuyên đào tạo vận động viên bơi lội chuyên nghiệp và trực thuộc một trường đại học thể thao hàng đầu.","lastmod":"2025-03-19","duration":"03:51:01","url":"/play/18957803.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMjI3YzQ3YzZiNjUyMDgwMDU1ZDcwYTZkZTI5NjZlYzYuanBn.cache","vod_id":18921646,"title":"SSIS-644 Sếp nữ độc ác của tôi chỉ biết bắt nạt tôi, mà bà ta lại là một gái điếm hạng sang!? Hãy cưỡng hiếp bà ta, đe dọa bà ta cho đến khi bà ta bị làm nhục.","lastmod":"2025-03-19","duration":"02:29:21","url":"/play/18921646.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYTliNTYxN2I0MjE4YzEyOWQ5MWZkYWVjNDhhZmNhMGIuanBn.cache","vod_id":18959407,"title":"HEYZO 3200 Bộ ngực mềm mại của nữ sinh viên đại học - Tôi muốn xoa bóp bộ ngực đồ sộ của nữ sinh viên đại học thích quan hệ tình dục - Akari Shinoda","lastmod":"2025-03-19","duration":"59:17","url":"/play/18959407.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYjUyY2M2NGJkOTU2MjMzMjM2MWY3Y2UzNTE0YjFhNjIuanBn.cache","vod_id":18955383,"title":"\"Bộ sưu tập hoa cao cấp\" - Lối vào phía sau của những bông hoa tuyệt đẹp với giá trị cao thực sự khiến người ta say mê.","lastmod":"2025-03-19","duration":"54:46","url":"/play/18955383.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMDY4MTgyMjVjOThiZjQyOGNlMDM4NzhhM2Q5ZWI2NjIuanBn.cache","vod_id":19012110,"title":"Sự tương phản giữa cô bạn gái đeo kính và bức ảnh tự sướng của cô ấy trong lúc quan hệ tình dục với chó cái.","lastmod":"2025-03-19","duration":"00:00:43","url":"/play/19012110.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMGRhNGIwNmM1ZmZmYWM3Y2JkMDRkNDE1N2YyOTFhNzYuanBn.cache","vod_id":19052787,"title":"Tôi đã ngủ với một cô nàng lẳng lơ mặc quần tất lưới, thân hình rất quyến rũ, nhưng vùng kín của cô ấy hơi sẫm màu.","lastmod":"2025-03-19","duration":"12:37","url":"/play/19052787.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMWM2NDcwMGQyMDEwYzVmZjU1NzhmYWI0YjIwMTExODMuanBn.cache","vod_id":18995175,"title":"Sinh viên múa ❤️ Nữ thần sắc đẹp [Qingye] trình diễn điệu nhảy khỏa thân siêu gợi cảm ~ màn đấu vũ đạo lắc hông, những động tác quyến rũ ~ Sẽ khiến bạn chảy máu mũi ❤️ Ngay cả một nhà sư cũng sẽ xuất tinh sau khi xem.","lastmod":"2025-03-19","duration":"02:11:38","url":"/play/18995175.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNDdhMmUxNWVkOWM3NmFhMWNiYjkzNDJkOTg1MzI1MjcuanBn.cache","vod_id":19147600,"title":"Cô giáo của con trai tôi là một con điếm.","lastmod":"2026-05-12","duration":"02:10","url":"/play/19147600.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMmYwZmI4YzkzNTk1ZmY5OTM5YjRiY2RiMmMwM2Y1MzYuanBn.cache","vod_id":18957451,"title":"10musume-092623_01-FHD- Một cuộc gọi điện thoại gợi dục thô sơ với một nữ sinh viên đại học mũm mĩm đang tìm việc! Không có cảnh quan hệ tình dục hay phỏng vấn nữa! ~Noriko Sato","lastmod":"2025-03-19","duration":"56:05","url":"/play/18957451.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMGQwNTJlZTNmMWIwZDQ0YjYxOGY0NmZjZmI2MjYwMGUuanBn.cache","vod_id":18953079,"title":"SỮA-165-C Tôi sẽ trừng phạt con bé hỗn láo đã chế nhạo tôi vì sống khép kín! Tôi sẽ gieo hạt cho đến khi nó ngoan ngoãn.","lastmod":"2025-03-19","duration":"02:00:13","url":"/play/18953079.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZDQ0OTJmN2UxZjcwMjA0M2ZmN2Y2ZTE0OTEzNTNiYTIuanBn.cache","vod_id":19046257,"title":"Một nữ sinh viên đại học Đài Loan với thân hình hoàn hảo, biệt danh \"hotbabygirl\", tạo dáng khiêu gợi, rên rỉ và tự vuốt ve bản thân. Không thể cưỡng lại, cô ấy cầm lấy dương vật của người đàn anh và liếm, mút, nuốt sâu một cách mạnh mẽ, dẫn đến việc xuất tinh lên mặt anh ta.","lastmod":"2025-03-19","duration":"17:29","url":"/play/19046257.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMWUwYmNhZmNlMGEwYTIwODAyNzA3OTBjNTg0YmE2MmEuanBn.cache","vod_id":19138689,"title":"CAWD-793-C Một trường trung học cơ sở tư thục ở Kyushu, giới thiệu màn ra mắt AV của cô giáo dạy nhạc năng động, Kayano Hana. Các học sinh đang chăm chú lắng nghe bài giảng trong lớp học nhạc.","lastmod":"2026-02-17","duration":"01:58:37","url":"/play/19138689.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTExMDUvOTU4OGJkYWE1ZGUyMjQwMTA2MDZlNDdlYWI0YzRlODUuanBn.cache","vod_id":19127548,"title":"Nữ sinh xinh đẹp cởi hết quần áo và khoe khéo vùng kín hồng hào, mềm mại của mình - đôi chân dài miên man càng làm tăng thêm sự cám dỗ.","lastmod":"2025-11-05","duration":"00:00:41","url":"/play/19127548.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMDI1ZDM2MDkzN2YxMDRhZTE2N2ExNWU1MzhmYzVhOGMuanBn.cache","vod_id":19130018,"title":"APGH-045 Một cô gái bình thường đeo kính, nhưng tài khoản bí mật của cô thuộc về một cô gái quỷ quyệt bị ám ảnh bởi cực khoái, có lông mu tự nhiên và yêu thích nhũ hoa—Shizuku Kawakami.","lastmod":"2026-02-13","duration":"02:32:41","url":"/play/19130018.html"}]},
videoTitle: 'Ribs Bro, một sinh viên kỹ thuật năm nhất đeo kính, vẫn còn trinh và vừa ngần ngại vừa khao khát những trải nghiệm tình dục mãnh liệt hơn.',
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=/`;
}
};
}