≪Quan hệ tình dục tiết kiệm thời gian trước khi trả phòng≫Tôi đã quyến rũ một nữ nhân viên khách sạn xinh đẹp đã kết hôn đến dọn giường… Cả khách hàng và nhân viên đều là nam giới. (Furukawa Honoka, Nghiệp dư hạng S)","lastmod":"2026-07-11","duration":"","url":"/play/19267797.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZTZmMDMwMWQ0OTBkODg3NDVkNjBiNDkxZGRmYTMzZTYuanBn.cache","vod_id":19193527,"title":"Tài liệu Bản năng Giải phóng Cực khoái Tình dục Bà mẹ nóng bỏng da nâu Ranka Saki Kanna BIJN-236-C","lastmod":"2025-03-30","duration":"2:06:07","url":"/play/19193527.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZjQ3ZTQ1NzI1Y2RjOTNkYjBkZmM0MDJiNDlmYjBmMjguanBn.cache","vod_id":19048925,"title":"Một cô thư ký xinh đẹp đã bị ông chủ già dâm đãng quấy rối tình dục.","lastmod":"2025-03-29","duration":"2:11:02","url":"/play/19048925.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNWQ0Y2ZjMGYwY2I3ZWViMGFmODRmNjE0ZTVjMjhjODIuanBn.cache","vod_id":19193821,"title":"Nhật ký hành trình của một cosplayer và một họa sĩ truyện tranh: Hơn cả bạn bè, nhưng chưa phải người yêu. (Trong điều kiện không bị quấy rầy) Kururugi Aoi MUKC-030-C.","lastmod":"2025-03-30","duration":"2:24:09","url":"/play/19193821.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEwMDkvMzVlMzM4NTQxMDJiN2RhMDBlOWYyOTM0YmM4YzIyYjEuanBn.cache","vod_id":19225606,"title":"Vợ của người hàng xóm xinh đẹp, say xỉn, mở nhầm cửa: \"Tôi về rồi!\" (Naomi Takarada, NACR882)","lastmod":"2025-10-08","duration":"1:55:44","url":"/play/19225606.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMzFlZGU1MmU3NTYwMjRmZmNiMTg2NjQ4Y2Y3ZjRhNGMuanBn.cache","vod_id":19163532,"title":"【泄露视频已婚临时工舒适旅行性爱7-醉酒狂欢、深夜性爱、职场外遇NTR等NTR成功率100%,尽-未知演员。","lastmod":"2025-03-30","duration":"3:01:22","url":"/play/19163532.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNTUyMGM5Y2RkNGFiYzMzODZmYTU2ODc4YmRhODUyZWEuanBn.cache","vod_id":19178029,"title":"NKKD149: Vợ tôi (32 tuổi) bị một nhân viên bán thời gian (20 tuổi) quyến rũ trong lúc đang làm việc… → Tôi ghen tị quá, làm ơn đăng video này lên làm phim người lớn đi.","lastmod":"2025-03-30","duration":"3:00:59","url":"/play/19178029.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly9mYS5zbDI2MDIwNC50b3AvdXBsb2FkL3ZvZC8yMDI2MDMxMy0xL2RhODBkYzI0YjJlNjdmOTRiNjdiYjNmZDNlNWI2NzlhLmpwZw==.cache","vod_id":19248877,"title":"Một cô y tá ngực khủng với vòng một cỡ I lớn hơn vợ tôi rất nhiều, một người phụ nữ cuồng dâm có thể khiến tôi lên đỉnh 24/7 chỉ bằng cách gọi điện, quan hệ tình dục không an toàn và lắc lư. DVAJ-728","lastmod":"2026-03-13","duration":"2:23:29","url":"/play/19248877.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZWRjN2IyYjJmYjMyYTBiNTZmODBhNTNiMzE0ZjcyYWQuanBn.cache","vod_id":19139733,"title":"XXX-AV 24234 Bà mẹ đơn thân dễ thương nghiệp dư và tình dục nguyên thủy với xuất tinh và nuốt tinh dịch Tập 02!","lastmod":"2025-03-29","duration":"0:18:01","url":"/play/19139733.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvOWZmMWQwZWI2YzY0OTlmYjMyMTAyYTE2NTNhZmQ0OTYuanBn.cache","vod_id":19104040,"title":"\"Quan hệ tình dục qua đường hậu môn với người vợ lẳng lơ\"","lastmod":"2025-03-29","duration":"0:59:55","url":"/play/19104040.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNmRkM2UzN2Q2OTkxNTMyZGE5NGRkMzhhNGVkZmUyYzguanBn.cache","vod_id":19034723,"title":"VEC-498 đưa một người phụ nữ đã kết hôn xinh đẹp, làm thêm, về nhà và quan hệ tình dục với cô ấy. (Asakura Kokona)","lastmod":"2025-03-28","duration":"1:49:47","url":"/play/19034723.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYzMzYjM2M2FmMjk1M2FiNzEwOWUwOGQxNDI3YjQ4ZmEuanBn.cache","vod_id":19058477,"title":"[Mã] SPRD-1254 Mẹ ơi, mẹ tốt hơn vợ con nhiều... Akemi Washio","lastmod":"2025-03-29","duration":"1:46:58","url":"/play/19058477.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA4MDIvNmVjOWU2ODVmNjI2MzQ4ZjFkNmNhMTJmODRlYWIxMWIuanBn.cache","vod_id":19216433,"title":"NGOD255 Vụ bê bối đi chung xe: Vợ tôi bị người lạ ngoại tình trong xe đóng kín...","lastmod":"2025-08-01","duration":"2:00:08","url":"/play/19216433.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvOGQzYmE5MmVkZjYxNmUwMmU3NzE1MjFiNTFiYjFiNjguanBn.cache","vod_id":19156600,"title":"Chiếc quần đen xinh đẹp nhưng cũng đầy vẻ đáng ghê tởm của người dì tôi và bản thân tôi - Akimoto Miori - vô cùng dâm đãng.","lastmod":"2025-03-30","duration":"2:00:31","url":"/play/19156600.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZWY1ZmZmZDdjNzgxYzhkYWUwNWZlZmFjYzViNmY4MzkuanBn.cache","vod_id":19099693,"title":"Nữ diễn viên đến thử vai hóa ra lại là mẹ của bạn cùng lớp cô ấy.","lastmod":"2025-03-29","duration":"0:26:49","url":"/play/19099693.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZGUwZDdhYzU5YzUxYjMwNWFmNDY1ZjMxM2IyMjIyN2EuanBn.cache","vod_id":19169977,"title":"NSFS-099-C Lời thú tội 13: Người vợ phát điên vì người đàn ông đã cưỡng hiếp mình ~Sự ham muốn điên cuồng của ông chủ độc thân~","lastmod":"2025-03-30","duration":"1:48:13","url":"/play/19169977.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvOGNiNDcyNTU5OTBiYmFmNzc0N2Q5YzBhMGU0MjBmNmUuanBn.cache","vod_id":19146979,"title":"Một nữ nhân viên văn phòng xinh đẹp, thân hình đầy đặn bị một đồng nghiệp cũ nhắm đến, hắn lên kế hoạch cưỡng hiếp cô một cách dã man bằng cách xuất tinh vào bên trong cô.","lastmod":"2025-03-30","duration":"2:28:25","url":"/play/19146979.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvODVjYmRmNjVlNmY4YTk4NGVjNjNlYjM5MmNhZmZjMzcuanBn.cache","vod_id":19085617,"title":"Một người vợ bức bối bị một người đàn ông quấy rối tình dục và cảm thấy nóng bừng khi mặc một bộ đồ bơi thể thao phản cảm.","lastmod":"2025-03-29","duration":"1:57:36","url":"/play/19085617.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYTJjNjk5OTY1NWRkZmUwZGVkN2RiNGIyODAxZjI2ZWYuanBn.cache","vod_id":19158661,"title":"Hướng dẫn dành cho sinh viên về ham muốn cháy bỏng và cực khoái: Cực khoái mãnh liệt đầu tiên và tiểu tiện; một cô gái xinh đẹp và mong manh bị xâm nhập trong lúc đạt cực khoái, Misano Manatsu.","lastmod":"2025-03-30","duration":"2:05:31","url":"/play/19158661.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvY2UwN2Q4OTI0MTZlNTM0MGU0MDQzYjBlZTU5YTlmZmUuanBn.cache","vod_id":19129581,"title":"PAKO-061 có sự góp mặt của một người phụ nữ trưởng thành cao ráo, xinh đẹp tuyệt trần trong một bộ phim AV. Cô ấy là một giáo viên.","lastmod":"2025-03-29","duration":"2:15:33","url":"/play/19129581.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvNzc5MmJhZDlhNTFjYjljMTRhZmNiNjQ3NWVkYmYxZTMuanBn.cache","vod_id":19259320,"title":"HEYZO 3185 Một người phụ nữ xinh đẹp trong bộ yukata, đã ướt sũng vì mưa, lại bị ướt thêm lần nữa tại khách sạn dành cho các cặp tình nhân! —Aoyama Hana","lastmod":"2026-05-18","duration":"1:01:06","url":"/play/19259320.html"}]},
videoTitle: 'Người bạn là mẹ đang bực bội #tiệc #ngườivợxinhđẹp #nhóm 2, 4 người',
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=/`;
}
};
}