Người vợ đức hạnh trở thành vật tế thần và nô lệ tình dục. Oishi Saki bị cưỡng hiếp dã man và bị xuất tinh vào bên trong.","lastmod":"2026-07-11","duration":"","url":"/play/19245902.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZTQ0YzY1NmQ5MzJiNzM5OGJiYzJkNDRmNWE5YmVjY2QuanBn.cache","vod_id":19099616,"title":"MAZO-007 Một nữ nghệ sĩ thư pháp mới vào nghề. Một người phụ nữ có vẻ ngoài dịu dàng và phục tùng tự nhiên. Núm vú của cô ấy đã được huấn luyện để trở nên cực kỳ nhạy cảm, và cô ấy uốn éo bộ ngực cỡ G của mình trong tư thế cưỡi ngựa, xoa bóp chúng để đạt cực khoái.","lastmod":"2025-03-29","duration":"01:19:28","url":"/play/19099616.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMjJjOTRhM2E4ODkyODRkN2Y5ZTZmM2JlNjcyYjRmNDUuanBn.cache","vod_id":19225274,"title":"MIDA-495 Cô hầu gái ngực khủng Shiraishi Nami bị chủ nhân cưỡng hiếp đến cực khoái và không kiểm soát được bàng quang, âm đạo cô co giật và cầu xin sự thương xót khi hắn xuất tinh vào bên trong cô.","lastmod":"2026-03-30","duration":"2:04:09","url":"/play/19225274.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA3MDUvNTMyODVlZGQ3MjNjY2MwNDY5ZjI3MGVlMWVhYjM0YzQuanBn.cache","vod_id":19243980,"title":"Ham muốn riêng tư 1: Một người phụ nữ đã kết hôn đầy dục vọng có một cuộc tình vụng trộm vào đêm khuya, với bộ ngực đồ sộ bị cưỡng hiếp dã man cho đến khi cô không thể kiểm soát được bàng quang.","lastmod":"2026-07-05","duration":"0:29:45","url":"/play/19243980.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvY2NiZjdhNTUzZTgwZWZiMDM1NWU1MGY5OWRmZWU0Y2QuanBn.cache","vod_id":19084718,"title":"[Phụ đề tiếng Trung] JUQ-163 Bị quyến rũ bởi những lời nói ngọt ngào, anh ta cặp kè với một người phụ nữ đã có chồng cho đến khi phải học lại đại học… Tsumugi Kanara","lastmod":"2025-03-29","duration":"02:03:45","url":"/play/19084718.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMzgxMzdkZDViOWY4N2I4M2M0MzlkNTgxZDhiOTU2YzAuanBn.cache","vod_id":19088853,"title":"Huấn luyện phát triển hậu môn kiểu J TSM-42, đau bất thường, cực khoái hậu môn","lastmod":"2025-03-29","duration":"02:14:02","url":"/play/19088853.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMjEzYjE3NDM4ODdkYjRkZDcwODYzYTUzZjY2NDAzNDUuanBn.cache","vod_id":19231446,"title":"Người đẹp Dilraba Dilmurat bị hoán đổi khuôn mặt và bị cưỡng hiếp dã man! Âm đạo dâm đãng của cô bị lấp đầy tinh dịch một cách tàn bạo, và cô xuất tinh không kiểm soát trong lúc lên đỉnh!","lastmod":"2026-04-29","duration":"0:04:50","url":"/play/19231446.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA1MjIvNWJiNzA3YjljMjFiNDI1MTg2ZjliNzkyNGY1OGYyNWYuanBn.cache","vod_id":19177585,"title":"Kỷ luật cưỡng bức đối với phụ nữ đã kết hôn—Một vòng luẩn quẩn của sự sỉ nhục và tra tấn","lastmod":"2025-05-22","duration":"29:01","url":"/play/19177585.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNzVjYjk3YWI1NjAxZThjOGYyMzkxZDMwMTM5ZTc0YmMuanBn.cache","vod_id":19109153,"title":"- [Lần đầu tiên quay phim] [Một người phụ nữ đã kết hôn không có đời sống tình dục và vô đạo đức...] [Cô giáo xinh đẹp] Một người phụ nữ đã kết hôn dịu dàng và xinh đẹp có quan hệ tình dục mãnh liệt với người đàn ông cô vừa mới gặp... Đăng ký trực tuyến → Trải nghiệm quay phim với ông Okukawa, một giáo viên tiểu học 20 tuổi (loạn luân).","lastmod":"2025-03-29","duration":"","url":"/play/19109153.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEwMzEvZWYzOTZjNzVkMzU4M2UyOWY3YmYxM2VkMTU0OGZkODguanBn.cache","vod_id":19202195,"title":"Một chuyến đi hẹn hò đôi và một vụ ngoại tình bị phát hiện! Quá trình huấn luyện khắc nghiệt của bạn trai tàn bạo của người bạn cô đã dẫn đến việc Hinano Yuna đạt cực khoái trong một cuộc ái ân tàn bạo. FSDSS_915","lastmod":"2025-10-30","duration":"02:33:54","url":"/play/19202195.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNWRkMDUxNmYxZDAxM2MxYzM3MWM5ZWUyODhkMmJmYWYuanBn.cache","vod_id":19035141,"title":"[Phụ đề tiếng Trung] MCSR-376 Người vợ đảm đang bị làm nhục trước mặt chồng... Shiiba Miku","lastmod":"2025-03-28","duration":"02:09:42","url":"/play/19035141.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYzY2ZjhhYTlkMjdhMjVhNTI0YTczMjY3YTdmYTc1M2MuanBn.cache","vod_id":19092891,"title":"FANH-145 giới thiệu cô gái xinh đẹp Kanna-chan, 18 tuổi, người vừa mới học được cách làm chuyện đó. Cô ấy là thành viên ngực phẳng của câu lạc bộ bơi lội, và cơ thể khỏe mạnh của cô ấy bị một dương vật trần trụi xâm nhập, dẫn đến những cơn cực khoái liên tục và lượng tinh dịch dồi dào.","lastmod":"2025-03-29","duration":"02:10:56","url":"/play/19092891.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvN2QzMTg3NjMzM2UxNzZhODMyNDU2Y2Y0MWVjZDgwYTUuanBn.cache","vod_id":19155850,"title":"Tôi chứng kiến hậu môn của mình bị một dương vật khổng lồ xâm nhập.","lastmod":"2025-03-29","duration":"11:08","url":"/play/19155850.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA4MTAvNTI5YzhhZDc0MGFkNWQyNWRkZGFkNTMyYjliNWZkNTkuanBn.cache","vod_id":19188822,"title":"TMRD1288 Một tuyển chọn gồm 12 phụ nữ trung niên đã kết hôn, một bữa tiệc cưỡi ngựa kéo dài 4 giờ. Họ rên rỉ và van xin: \"Mạnh hơn nữa ở dưới đó!\"","lastmod":"2025-08-09","duration":"04:00:21","url":"/play/19188822.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMWVkNjhmMDE2MzY2OGI3MmJhM2JlN2NiMjIyMmJmZWMuanBn.cache","vod_id":19059506,"title":"[Chỉ phát trực tuyến] Những động tác lưỡi siêu gợi cảm, những nụ hôn sâu lắng và màn thủ dâm sẽ đưa bạn lên đỉnh ngay lập tức! 5","lastmod":"2025-03-28","duration":"","url":"/play/19059506.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvN2VlZGUyYmRmYmYwNTQ3OWU1NTllZDAyOThmYjQ4NTYuanBn.cache","vod_id":19143604,"title":"DVAJ429 Cuộc sống loạn luân với em gái tôi, người cho phép đưa dương vật vào sâu 3cm (có hiệu ứng âm thanh).","lastmod":"2025-03-29","duration":"02:17:29","url":"/play/19143604.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMTMvNTRmZTliNmMxOWI0M2Q2MzBjMWFjMjUyZmMyOTI4YTEuanBn.cache","vod_id":19207906,"title":"Tình yêu tuyệt vời GTJ_147 Ngực khủng Xâm nhập và thống trị × Lông mu rậm rạp Thiên thần run rẩy rên rỉ khi lên đỉnh","lastmod":"2025-12-13","duration":"","url":"/play/19207906.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly9mYW4ubGVmaGFvMjAyNTA5MjMudG9wLzIwMjYwMjE2L1hhMlBybzl2LzEuanBn.cache","vod_id":19218508,"title":"Không che đậy, một cô gái nghiệp dư chất lượng cao [NoFaceGirl] trở nên cuồng nhiệt trong một buổi tối xem phim, trải nghiệm những cú thúc mạnh mẽ và nhiều lần cực khoái.","lastmod":"2026-02-19","duration":"0:09:15","url":"/play/19218508.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvZTdjODY5YWNjNThhY2RmYTMxODNmNjQ4OWMzMDBlNDUuanBn.cache","vod_id":19236835,"title":"Julia, một bà nội trợ ngực khủng, trong một thế giới trụy lạc vĩnh cửu, không ngừng quan hệ tình dục và xuất tinh bên trong.","lastmod":"2026-05-23","duration":"1:18:33","url":"/play/19236835.html"}]},
videoTitle: '[Giải thích] Quan hệ tình dục với phụ nữ đã kết hôn không cần màn dạo đầu, chỉ cần đạt cực khoá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=/`;
}
};
}