Nếu chỉ là quan hệ tình dục bằng miệng thì không được coi là ngoại tình! ? NTR nội tâm, cấp dưới ngực cỡ H nói năng thiếu tôn trọng với quản lý đã kết hôn, không cưỡng lại được cám dỗ. Miyamoto Satomi ABC-Delusional Tribe","lastmod":"2026-07-11","duration":"2:03:41","url":"/play/19267123.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZTNkNmFmN2Q0OGVlMWU3ZjcxMzFjMzhlNThkMThmZDUuanBn.cache","vod_id":19042291,"title":"Một cô gái Đài Loan nóng bỏng với bộ ngực khủng tự sướng một cách dâm đãng, khiến một chàng trai đâm mạnh vào âm đạo trắng nõn mềm mại của cô và rên rỉ không kiểm soát.","lastmod":"2025-03-28","duration":"0:16:48","url":"/play/19042291.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZTBmNDlkOGM1MzVlYmVmZTVmMzgwYzUwMjA4NDE5ZjEuanBn.cache","vod_id":19055446,"title":"Cô gái trẻ cô đơn Rui Rui để lộ khuôn mặt trong bộ đồng phục, quyến rũ cởi bỏ quần áo và được anh trai cho bú và chơi đùa. Cô ấy chủ động cầu xin quan hệ tình dục, rên rỉ không ngừng khi anh ta quan hệ với cô cho đến khi xuất tinh vào bên trong cô.","lastmod":"2025-03-29","duration":"0:24:38","url":"/play/19055446.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNGVjOTk0Mzc3MmYwOTM0MDk3NGU5YjkxYzZhODVlNjMuanBn.cache","vod_id":19250754,"title":"Đồ chơi tình dục ngực lớn MMD15JK HK416","lastmod":"2026-03-24","duration":"0:03:41","url":"/play/19250754.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMGNhOGMxZjk2ZTcwMzZhNDUxNjAwMjYxNDY1NzcxNDYuanBn.cache","vod_id":19039549,"title":"Một nữ thần xinh đẹp tuyệt trần với vòng mông quyến rũ, bị người yêu cưỡng hiếp dã man không dùng bao cao su và xuất tinh vào bên trong_x264_aac","lastmod":"2025-03-28","duration":"","url":"/play/19039549.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMTZlZjk1YTU0NzY5NjMyMDFlYjE4ZWUzMjUyNjA0OWYuanBn.cache","vod_id":19157236,"title":"Nao, 31 tuổi, một phụ nữ đã kết hôn với vòng một đầy đặn, đang hẹn hò ở suối nước nóng. Cô nàng quyến rũ và năng động với vòng một cỡ H gặp gỡ Iori, cùng với người đẹp này.","lastmod":"2025-03-30","duration":"2:10:48","url":"/play/19157236.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNDNmOTY4NzhiMzE2OGFlNDQ1NGEzMmJjOTk5MzMxYWUuanBn.cache","vod_id":19056235,"title":"[Online China] Chàng Trai Yêu Đầu Đời VS Người Đẹp Ngực Cỡ E đến từ Khoa Mỹ Thuật, Đại học Sư phạm Hồ Bắc 720P Không Hình Mờ","lastmod":"2025-03-29","duration":"0:14:36","url":"/play/19056235.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNzc3OGViYzM3NGE0MjM4NGU5MzRlZTBmMTQ1MzAzMTIuanBn.cache","vod_id":19112551,"title":"(Khuôn mặt trẻ thơ, ngực khủng) Một người phụ nữ xinh đẹp trên giường, đầy vẻ dâm đãng.","lastmod":"2025-03-29","duration":"0:09:28","url":"/play/19112551.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNWVjNDA1NmI5YTMxZWFmOTQyNTZkZTdlMTFhYTdkZTkuanBn.cache","vod_id":19052856,"title":"Nhiệm vụ đặc biệt BBI-168: Quấy rối và dụ dỗ tình dục ngược - Nữ trưởng phòng biến thái","lastmod":"2025-03-29","duration":"1:56:10","url":"/play/19052856.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZWJmZGU3ZTJlNzhlMDlmNjQxMmE2YTU3YzBiOGI3ZjYuanBn.cache","vod_id":19173279,"title":"Một cô gái xinh đẹp, trong sáng và đáng yêu với đôi mắt to tròn, quyến rũ; một nữ sinh trẻ lần đầu tiên tham gia hẹn hò có trả phí, toàn thân hồng hào và trắng nõn; tư thế 69 thâm nhập lẫn nhau; không dùng bao cao su, xuất tinh bên trong.","lastmod":"2025-03-30","duration":"0:19:06","url":"/play/19173279.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvOTYxZmM4MjM2MmIzMWM2YzczNWM4ZWFiMDIzNjQzZDMuanBn.cache","vod_id":19255320,"title":"Bánh sandwich ngược 3P, phụ nữ đầy đặn, ngực khủng, áo tắm, gái điếm Hoshina #Hậu cung của Shida Mizuki, Hoshi Asuna, Shida Mizuki Groove Est","lastmod":"2026-04-23","duration":"2:36:53","url":"/play/19255320.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvNjMzMjc0ODJmZDY0ZWM2NzUyZDMyM2ZkODhhOTdjMWIuanBn.cache","vod_id":19260262,"title":"Lần đầu đóng phim ở tuổi 50, cảnh xuất tinh và thủ dâm mãnh liệt, màn ra mắt phim người lớn cực kỳ dâm đãng của một người vợ 50 tuổi thuộc kiểu M! Minako Morihara, Minako Morihara, Ruby.","lastmod":"2026-05-23","duration":"1:47:41","url":"/play/19260262.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA2MDMvZGZmZjJmOThlOTcwMTM3NzQ5MTYzYjZlNDg0NGFiMDQuanBn.cache","vod_id":19205775,"title":"Một cô gái trẻ, mảnh mai, đeo mặt nạ tham gia vào một màn ân ái đôi gợi cảm với tất trắng, bao gồm quan hệ từ phía sau, thúc đẩy, cưỡi và xuất tinh bên trong cô ấy - vô cùng quyến rũ, đừng bỏ lỡ!","lastmod":"2025-06-03","duration":"0:25:25","url":"/play/19205775.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZWUxMmEzZjE0OTAzNWU0NDVhNzk4Y2E1NWQ1ZTNmYjIuanBn.cache","vod_id":19143830,"title":"Cô gái có vòng ngực cỡ 38H!","lastmod":"2025-03-29","duration":"1:22:14","url":"/play/19143830.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMDNiMDlhMDllMDgwYWRhMDQ1ZjFiMWM2OWMyZTAyYTIuanBn.cache","vod_id":19115829,"title":"Đêm trước ngày cưới, không thể cưỡng lại sức hút của bộ ngực đồ sộ của bạn gái cũ... ngay cả khi lễ cưới sắp bắt đầu, anh ta vẫn không thể ngăn cản cuộc tình vụng trộm và hẹn hò tại một khách sạn tình yêu!","lastmod":"2025-03-29","duration":"2:27:59","url":"/play/19115829.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYjUyMzRmYTRmZmE4MDAzNmRiYWMzMWRkZDNlOGNkZTkuanBn.cache","vod_id":19134033,"title":"BF-684-C Tôi chuyển đến vùng nông thôn làm việc, và vợ của người hàng xóm quyến rũ tôi mỗi ngày; tôi đã xuất tinh vào trong cô ấy nhiều lần...","lastmod":"2025-03-29","duration":"2:33:12","url":"/play/19134033.html"}]},
videoTitle: 'Một nữ nhân viên văn phòng dâm đãng, ngực khủng, cỡ I, thân hình mềm mại, nổi cơn cuồng loạn và bị xuất tinh vào bên trong!',
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=/`;
}
};
}