Cô vợ trẻ đứng trên đường phố khu chung cư! Vặt 1.5? Quan hệ tình dục tại nhà miễn phí! Thương lượng rồi xuất tinh bên trong không dùng bao cao su được! Một chàng trai trẻ từ bỏ tình dục để giết thời gian Hunter","lastmod":"2026-07-11","duration":"04:00:31","url":"/play/19163820.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTExMDkvNjcyOWFkZjgwN2NkZGFmZmU4YzU5NDc3OGVmNDNhNTIuanBn.cache","vod_id":19061829,"title":"Mariko Sada, một người mẹ ra mắt phim doujin AV thay cho con gái mình. (JUQ_872)","lastmod":"2025-12-14","duration":"01:58:51","url":"/play/19061829.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly9pYy4xNTUyNTAyMTQudG9wLzIwMjYwMjIyL2p3bk5FSnZNLzEuanBn.cache","vod_id":19144883,"title":"Tôi muốn quan hệ tình dục, nên tôi đã nghĩ về điều đó... Người phụ nữ dễ quan hệ nhất chính là mẹ tôi! Ham muốn mãnh liệt tại nhà, 4 giờ, 12 phụ nữ MBMA-113","lastmod":"2026-02-23","duration":"04:00:13","url":"/play/19144883.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA0MDYvMmM4ODIxNjkwYTExOTAzZDU5YmEyYTdkOTU0MmIwZTYuanBn.cache","vod_id":19028137,"title":"Nếu Makoto Toda là em gái của bạn, thì đó sẽ là một cuộc sống loạn luân đầy yêu thương. Makoto Toda STAR-774-C.","lastmod":"2025-04-06","duration":"04:01:16","url":"/play/19028137.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMzI3YmY2NTY2OTM2ZTEyOTVlNTNlZTIxNmVjY2M0ZmEuanBn.cache","vod_id":18982147,"title":"[Không kiểm duyệt] VENX-243 Một người mẹ mặc váy dài, bị kích thích bởi việc được liếm láp, đòi hỏi sự thâm nhập loạn luân mãnh liệt ngay lập tức. Mai Arisu","lastmod":"2025-03-23","duration":"01:38:32","url":"/play/18982147.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMTMvNDM3ZTA5MzY4NGYwOWE2NDk0M2I2MWZhMjZlNjJkZTQuanBn.cache","vod_id":19067262,"title":"Tôi và mẹ đã quan hệ tình dục trong thời gian tôi mang thai — dù biết chúng tôi không có quan hệ huyết thống, chúng tôi vẫn thực hiện hành vi sinh sản — Tada Yuka ROE_262","lastmod":"2025-12-14","duration":"02:25:24","url":"/play/19067262.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYzFjMTgyNDAyNmYyMTdlMDAwM2RjZmY2MTExMmY4MjIuanBn.cache","vod_id":18979131,"title":"Mẹ của tiền bối JUX-005, Takatsuki Waka","lastmod":"2025-03-23","duration":"02:00:07","url":"/play/18979131.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNzcxMTBmMjgyOGQ4NmRjZTQ4YzllMDY2ZWM2YzMxNGIuanBn.cache","vod_id":18980696,"title":"Người tình của mẹ 3 (2019) Bản chưa cắt","lastmod":"2025-12-14","duration":"01:30:36","url":"/play/18980696.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvM2E4ZDY0MGZjYTk5ZWZjYTQwNzU3MjUzOGYyMTMzYWEuanBn.cache","vod_id":19014467,"title":"APNS125 Một bà chủ nhà đồi trụy và con gái của bà ta. Mẹ và con gái bị ép mang thai cùng lúc. Họ bị cưỡng hiếp tập thể cho đến khi mang thai và liên tục bị xuất tinh vào người. Hai nô lệ xinh đẹp, Morishita Mirei và Kawakami Yu.","lastmod":"2025-03-24","duration":"02:24:03","url":"/play/19014467.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMmM5MDUyYjBmZGEzNmMyYTM3MjdkMzBkZTc0NmViMWMuanBn.cache","vod_id":19024075,"title":"JUQ343C Mẹ vợ tôi phát hiện ra chuyện ngoại tình của tôi và đã có một cuộc gặp gỡ tình dục rất khiêu khích với tôi. \"Tôi hy vọng anh sẽ không nói dối tôi nữa.\"","lastmod":"2025-03-24","duration":"02:17:47","url":"/play/19024075.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZmQyZDYzODViMzAwMjdmZDY0MTFlOWJiNGQyNzhhNTAuanBn.cache","vod_id":19146390,"title":"Bạn Thân Của Mẹ, Rukawa Haruka, VEC-747","lastmod":"2026-03-04","duration":"02:04:01","url":"/play/19146390.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA4MjYvODZkNjkwYjA2NDE4OGU3NzY5MGU1ZmZlYjI4N2I1ZjguanBn.cache","vod_id":19048482,"title":"ROE316 Một người mẹ bị con trai mình xâm hại tình dục nhiều lần trước bức chân dung của chồng bà.","lastmod":"2025-08-26","duration":"02:01:35","url":"/play/19048482.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZWY4NjdkMzY1N2Q5OTY3NDZlMThiYTBjMzhmNDdjZmUuanBn.cache","vod_id":18980217,"title":"[Không kiểm duyệt] ALDN-093 Mẹ và con trai xuất tinh: Lần đầu tiên mẹ xuất tinh bởi con trai Misa Kyono","lastmod":"2025-03-23","duration":"01:49:07","url":"/play/18980217.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNTBhNWVkOTlmNDg2ZjliYmRmNzc4ZTVmYTFiMWE3YjIuanBn.cache","vod_id":18966746,"title":"[Phiên bản chưa cắt] ATID-535 Tôi là một otaku 21 tuổi thất nghiệp. Mỗi ngày, mẹ yêu quý của tôi đáp ứng nhu cầu tình dục của tôi. Ayaka Muto","lastmod":"2025-12-14","duration":"01:57:43","url":"/play/18966746.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYTg5NmJkNWNiNjM3NGMwNzAzNWExNThhYmI4YjBjZWEuanBn.cache","vod_id":19149445,"title":"[4K] \"Đừng nói ra...\" Trong lúc vợ tôi vắng nhà, cô em gái làm việc văn phòng xinh đẹp như người mẫu của tôi xuất hiện... và không báo trước, cô ấy để lộ thân hình quyến rũ và tiến lại gần... Tôi không thể kiềm chế được bản thân. MADV-619","lastmod":"2026-03-21","duration":"01:57:46","url":"/play/19149445.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNTRjNmZjZjZmZTQxZjNhMTQ4NzY1NWYwY2U2ZmViZGQuanBn.cache","vod_id":18974191,"title":"HUNTA-394 Cảm ơn mẹ, con ngày nào cũng làm những chuyện nghịch ngợm với bạn của mẹ. Một người mẹ tuân theo mệnh lệnh của đứa con trai sống khép kín của mình mà không hề thắc mắc.","lastmod":"2025-03-23","duration":"04:01:08","url":"/play/18974191.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNDM3MmU3YTEyN2QyZjg0OThmYzEyZWY4MzZiY2YzYjUuanBn.cache","vod_id":18990611,"title":"MIAA-195 Vợ nhà bên × Ngoại tình ngược: Trong khi bạn gái vắng nhà, anh ta bị người vợ hàng xóm dâm đãng, ngực khủng cưỡng hiếp và quấy rối nhiều lần... Maria Nagai (Loạn luân)","lastmod":"2025-03-23","duration":"01:55:13","url":"/play/18990611.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOWNkMGFiM2ZiNjUzZjUwNWEzMTc4MGUyMDZkODY1ZTYuanBn.cache","vod_id":19001996,"title":"Các cặp đôi người châu Âu và Mỹ chơi trò SM tại nhà.","lastmod":"2025-03-23","duration":"13:20","url":"/play/19001996.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA0MjIvMGNlNTVmZWE2OTg5M2NiOTgwODIzNDFiMWQ5OGJkNDAuanBn.cache","vod_id":19030285,"title":"Cô bạn thời thơ ấu của tôi, Seta Ichika, luôn cọ xát vòng ba đồ sộ của cô ấy vào tôi mà không mặc áo ngực khi bạn gái cô ấy ở nhà, với ý định xuất tinh. (JUFE-410-C)","lastmod":"2025-04-22","duration":"02:07:53","url":"/play/19030285.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMTM5N2M1NTA1NDk2NjM4OGEzZDA3NTE3MTk3ZTU4MzEuanBn.cache","vod_id":19011195,"title":"Cô gái hư hỏng phạm tội loạn luân với người thân_Cô gái quyến rũ chàng người mẫu ngây thơ","lastmod":"2025-03-24","duration":"30:57","url":"/play/19011195.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZDFlMDIwOWJkYjVkN2YxNzYyYjIwYjQ3ZTZmYzZiN2MuanBn.cache","vod_id":19155358,"title":"Aki Sasaki, *Một người mẹ bị ám ảnh bởi kỹ thuật tình dục của con trai trong khi chồng ngủ, Phần hai* (Universal Media Entertainment)","lastmod":"2026-04-27","duration":"53:16","url":"/play/19155358.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZGFmZjg3YTFiMmQ5ZGNhZjI5ZjBkMWMwOTllMmM1MmIuanBn.cache","vod_id":18972668,"title":"MIAA-297 Chứng kiến cảnh em gái mình bị chồng mới của mẹ cưỡng hiếp, tôi thực sự đã cương dương. —Kane Uraraka","lastmod":"2025-12-14","duration":"01:55:27","url":"/play/18972668.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYTZhM2JlMzJlZGE5ODNiNzhkZmFhZjcyMGQ4NDQxYmQuanBn.cache","vod_id":19149900,"title":"Một người mẹ lăng loàn không muốn con trai rời khỏi nhà đã dùng đến thủ đoạn quyến rũ. (KSBJ-417)","lastmod":"2026-03-24","duration":"02:02:49","url":"/play/19149900.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNDQ5YTQ1NjBjMjA0NTRlODM1OTg5NTBlNzg3YmNjNmEuanBn.cache","vod_id":18982126,"title":"Một phụ nữ trẻ đã kết hôn với vòng một tự nhiên rất lớn quyến rũ những người đàn ông ngưỡng mộ tại nhà. Ngực cô ấy to đến nỗi cần phải dùng nắm tay đỡ. Cô ấy tương tác với họ, tán tỉnh và thể hiện nhiều động tác tự thỏa mãn và rên rỉ. Đừng bỏ lỡ!","lastmod":"2025-12-14","duration":"01:04:00","url":"/play/18982126.html"}]},
videoTitle: 'Tại quê nhà, nơi cả gia đình cô đều đi làm ở nơi khác, cô dành thời gian quan hệ loạn luân với mẹ mình. (Okae Rin, Ogawa Rin, ROE_277)',
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=/`;
}
};
}