Tôi bị quyến rũ bởi thân hình trưởng thành của mẹ bạn tôi và nhận được một bài học giáo dục giới tính tinh nghịch thông qua ống kính nhũ hoa và nội y của bà ấy. SWITCH","lastmod":"2026-07-11","duration":"03:28:37","url":"/play/19165773.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMDMwNDE1NzRkZTlmMjlkYzcxMjE2NjMyZjQ4MDhiNDYuanBn.cache","vod_id":18968565,"title":"1Pondo 1Pondo 040123_001 Sự cám dỗ của việc nhìn trộm đàn ông — Người bạn mẹ hiền lành, ngây thơ của tôi hóa ra lại là một gái điếm! —Kotono Murakami","lastmod":"2025-12-14","duration":"01:00:25","url":"/play/18968565.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMTE3Y2YxYjE3ODliYWE5YTdiNDAwMDdlMmJhZDg5MzguanBn.cache","vod_id":19020526,"title":"Theo một cuộc khảo sát thực tế, những tư thế \"táo bạo\" nào mà các cô gái ghét nhất?","lastmod":"2025-03-24","duration":"13:55","url":"/play/19020526.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvODUzOWNmMmE4ZTA3M2ZiYjczODJjNTEwYWNjZTgwNzIuanBn.cache","vod_id":18930549,"title":"KSBJ-075 Tự Do Chơi Đùa: Một bà nội trợ xinh đẹp với thân hình quyến rũ bị buộc phải dùng thân xác để trả nợ cho chồng.","lastmod":"2025-12-14","duration":"02:00:05","url":"/play/18930549.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOGZhODRiZTFiYzdjNDJlY2QzMDI2Y2E1OTMwOWJmNGYuanBn.cache","vod_id":18995544,"title":"[Độ phân giải cao] 326FCT-059 Xâm hại tình dục trái phép một bé gái ngây thơ và xinh đẹp... Một người đàn ông sống cùng con gái trong gia đình Enko hoàn toàn không biết rằng mình là một người cha độc hại.","lastmod":"2025-12-14","duration":"01:16:42","url":"/play/18995544.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA4MTcvN2M1Mjk0ZmI3MzJjYzMyYzMzZDM1M2ZkMzIxZmNlMWUuanBn.cache","vod_id":19047476,"title":"SVSHA030 Thật đáng xấu hổ! Hãy đến và trải nghiệm! Chương trình truyền hình giáo dục giới tính du hành thời gian! Tìm hiểu về cơ thể của bạn một cách thư giãn và thú vị.","lastmod":"2025-08-16","duration":"04:19:22","url":"/play/19047476.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA4MTkvOTRhYjUzNzY2ZmMyYWM1YThjZjk4MjE3N2UzMmFiOGYuanBn.cache","vod_id":19047825,"title":"SDDE744 Một người có thể dừng thời gian thực sự tồn tại! ~ Một người đàn ông thoát chết từ cõi chết được thụ tinh nhân tạo tại bệnh viện, và các thiên thần áo trắng cảm ơn anh ấy.","lastmod":"2025-08-19","duration":"03:00:15","url":"/play/19047825.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMmI2YzdiOGI5MjViZTMxN2RjNDNmYWZkMWJjOGRhOWIuanBn.cache","vod_id":18958595,"title":"[Phụ đề tiếng Trung] DLDSS-150 Jun Mizukawa bị bạn trai của mẹ mình, người mà cô không ưa, tấn công và khóc suốt ba ngày trước khi cuối cùng đạt cực khoái.","lastmod":"2025-03-22","duration":"02:03:17","url":"/play/18958595.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMGViYmU1NzRkYzI0OTZmOGQ3ZDZlMzg5N2NmZjBlM2QuanBn.cache","vod_id":19001453,"title":"JUY-734 Một người phụ nữ đã kết hôn bị ông chủ của chồng ép đeo thứ đó. (Đồ trang sức đeo trên người) (Tomoda Maki)","lastmod":"2025-03-23","duration":"02:19:38","url":"/play/19001453.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYWFiYTllODY0ODY5ZDQ5ZTgyODQ1ODUzZTJmNzUzNDkuanBn.cache","vod_id":18950406,"title":"EBOD-655 Tôi là một người đàn ông thành đạt với hai người em gái xinh đẹp tuyệt trần làm tình nhân, và tôi xuất tinh vào cả hai người cùng một lúc. Người chị gái tên là Ann, và người em gái tên là Sumire.","lastmod":"2025-03-22","duration":"02:00:18","url":"/play/18950406.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNTc5OTJiMDFkZTIwODRiNWVkMDA0MzhjN2EyZGRkNWQuanBn.cache","vod_id":18949099,"title":"Một màn ân ái nồng nhiệt giữa hai chị em gái; đàn ông vẫn thích phụ nữ trẻ hơn. Họ chiều chuộng người em gái, tận hưởng khoái cảm từ người chị, rồi sau đó quan hệ tình dục với người em gái.","lastmod":"2025-12-14","duration":"00:47:16","url":"/play/18949099.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNzc2NTg0ODUzZmMzYTM5MGM2YjI4NjIwY2EyYjZlZjguanBn.cache","vod_id":18989092,"title":"326PAPA-015 [I-chan Xâm Nhập Tình Nhân Của Một Người Giàu] Cô ấy quan hệ tình dục bất hợp pháp với một nữ sinh viên đại học ít kinh nghiệm làm tình nhân của một người giàu!! Máy quay đã bị phát hiện! Ông ta giàu có, nhưng là một lão già dâm đãng. Ông ta đưa ra lời xin lỗi giá trị cao, tiến hành quay phim toàn diện, và thậm chí còn thực hiện hành vi xuất tinh vào âm đạo bất hợp pháp (002).","lastmod":"2025-03-23","duration":"54:44","url":"/play/18989092.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNjA5NjIyNGFjYTA2MmZlNDJlMDcyMjRlMTlkMWVhMWUuanBn.cache","vod_id":19155460,"title":"Vừa đặt chân đến Bắc Kinh, cả trái tim lẫn thể xác tôi đều chìm đắm trong tình yêu đơn phương dành cho cô nàng nóng bỏng với vòng một đầy đặn ở phòng bên cạnh, người ngày nào cũng quan hệ với hết người này đến người khác. (Qing Gong Ren Ai EBWH-219-C)","lastmod":"2026-04-27","duration":"02:29:09","url":"/play/19155460.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNDNkZjRkMDdhMzQ1YTRkOGM0ODFlOGUwOTNhYTQ5N2EuanBn.cache","vod_id":19012535,"title":"Màn ân ái nồng nhiệt đan xen với tình dục - bản chất thật của người đàn ông là rời đi ngay khi xong việc.","lastmod":"2025-03-24","duration":"30:58","url":"/play/19012535.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYzY2ZDAxOGNkNmEwMTgzZDc3MDNkYTZjMWY3NWU5YmMuanBn.cache","vod_id":19136176,"title":"Bị ông chủ mà tôi căm ghét nhất ra lệnh mặc bộ đồ bơi thi đấu phản cảm để làm người mẫu... Tôi đã bị quấy rối tình dục tập thể trong tư thế mặc quần lọt khe với phần lông ngực lộ ra. (Ishihara Nozomi, MIDA-286)","lastmod":"2026-01-01","duration":"02:48:31","url":"/play/19136176.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMGYxM2ZmY2ZmN2Y1MTY1ZGNjMmQ4ZDZmOTRlNjBhZTkuanBn.cache","vod_id":18984552,"title":"IPX-387 Một người phụ nữ quyến rũ thích đàn ông trung niên trêu chọc và liếm dương vật của một người đàn ông trung niên cho đến khi anh ta xuất tinh. (Aizawa Minami)","lastmod":"2025-12-14","duration":"02:30:52","url":"/play/18984552.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA3MjgvMzViYzg4NDE3YjliZDc3MWRhYTI4ZGRjYjIzNTBlZmQuanBn.cache","vod_id":19044514,"title":"MIDA086 bị ông chủ mà cô căm ghét ra lệnh làm người mẫu áo tắm khêu gợi... tham gia một bữa tiệc thác loạn tình dục bên hồ bơi vào ban đêm có liên quan đến quấy rối.","lastmod":"2025-07-27","duration":"02:28:10","url":"/play/19044514.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MDUvZTA5YTBmNzdmYjE3ZTE5YjUxMTE2ODRlOWZlNDBlZGUuanBn.cache","vod_id":19049842,"title":"Cô ấy cho vay 400.000 nhân dân tệ chỉ để phát hiện ra gã bạn trai lăng nhăng của mình đã \"có vợ\"! Đàn ông lúc nào cũng ngại bị ràng buộc... Thừa nhận mình đã kết hôn có khó đến thế sao?","lastmod":"2025-09-04","duration":"05:17","url":"/play/19049842.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNGEzMGJjN2NmNmRmZjBlYTQ2Y2Y5OTIzZTJlMTFlODEuanBn.cache","vod_id":18965892,"title":"[Không kiểm duyệt] JUFE-441 Phim tài liệu góc nhìn của người đàn ông lớn tuổi: Tình dục mãnh liệt, đầy đặn, tràn ngập chất lỏng, Lauren Karen","lastmod":"2025-03-22","duration":"02:42:33","url":"/play/18965892.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZmM4M2UzNjAwNjk1YTk1MTcxYmEyNWEyZTdlYTEwOGUuanBn.cache","vod_id":18958570,"title":"530DG-162 [Hành vi xâm phạm thân thể] Một người đàn ông giả vờ khám xét một người phụ nữ xinh đẹp đã kết hôn và kích thích điểm G của cô ấy bằng ngón tay!","lastmod":"2025-03-22","duration":"01:10:47","url":"/play/18958570.html"}]},
videoTitle: 'SSNI-522 Sức hút thể chất tuyệt vời nhất đối với người đàn ông bị ghét nhất thế giới... Kano Yura 1',
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=/`;
}
};
}