“…Cuối cùng tôi cũng tìm thấy nó.” Tôi đã gặp người mà tôi không muốn gặp. Tám năm trước, tôi bị người đàn ông này cưỡng hiếp. Ootori Miyu, Ootori Miyu, Kẻ tấn công","lastmod":"2026-07-11","duration":"01:59:26","url":"/play/19164543.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNDRmYjFiZjk5YjBhMDM2ZTRmZDMwMTk2NzBmNDlhNDguanBn.cache","vod_id":18924026,"title":"FC2PPV-1203105 [Quay phim riêng] Một phụ nữ mang thai dễ thương đeo kính đã có bốn lần quan hệ tình dục với đàn ông!","lastmod":"2025-12-14","duration":"00:49:20","url":"/play/18924026.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYTFkYWIzZDkzNTYyMDEwNWRkMWM0ZTVmMWUzNDQ4YmIuanBn.cache","vod_id":19006028,"title":"[HD tiếng Trung] Quan hệ tình dục thâm nhập và xuyên thấu, chồng ngoại tình, vợ bị cưỡng hiếp tập thể.","lastmod":"2025-03-24","duration":"02:05:16","url":"/play/19006028.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA2MjkvNjkxNjkwY2RmYTJlNTgxMWU2YTNlOTlhYmI4MTE0ZjYuanBn.cache","vod_id":19040596,"title":"MIAB482 Ngôi làng đang trên bờ vực bị bỏ hoang vì tỷ lệ sinh thấp...!? Thực tế, khi cô ấy cởi bỏ quần áo, bộ ngực cỡ G tuyệt vời của cô ấy quyến rũ tất cả đàn ông trong làng! Vào ngày rụng trứng, cô ấy chỉ là một cô gái làng quê bình thường.","lastmod":"2025-06-28","duration":"02:01:41","url":"/play/19040596.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvODVhMzcyY2E4ZTE0MmMwNWYzYTIyNTM4OGM3ZjJiMzIuanBn.cache","vod_id":19013090,"title":"300NTK288 Riisa, người vợ xinh đẹp của một quan chức chính phủ cấp cao bận rộn!! Bộ ngực cỡ F tuyệt đẹp, đầy đặn!! Cực khoái mãnh liệt và xuất tinh! ...","lastmod":"2025-03-24","duration":"01:06:38","url":"/play/19013090.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNGExMDYyZWFhNGNkODM5Nzk2NmY4NGNiMmExNGRiNGQuanBn.cache","vod_id":18984547,"title":"BLK-372: Trên đường về nhà từ trường, tôi đón một nữ sinh thích đi chơi với những người đàn ông lớn tuổi hơn, đưa cô ấy về nhà và quan hệ tình dục với cô ấy. Hóa ra cô ấy là một thiên tài xuất chúng với làn da ngăm đen! Tôi không thể cưỡng lại việc ghi âm lại cảnh đó.","lastmod":"2025-03-23","duration":"01:58:57","url":"/play/18984547.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvY2RhYzA4ODc0NWI2ZTRjNTdjYTM1YjI3N2VmMGE5MzYuanBn.cache","vod_id":19143849,"title":"Chuyến đi cắm trại ba ngày hai đêm; cuộc họp làng; vợ bị nhiều người đàn ông lớn tuổi xâm hại tình dục; NSFS-426","lastmod":"2026-02-17","duration":"02:19:43","url":"/play/19143849.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYTE2OGRhYjAyOTg4NjFkMTk2ZDY4ZjE3ZGM0YjhiOTAuanBn.cache","vod_id":19153939,"title":"Dương vật của người đàn ông, khao khát được sống trong một thế giới khác... Liên tục thúc đẩy và thụ tinh cho những người lao động ngày nay đầy tinh trùng, đang cầu xin tình dục. (Kitano Mina)","lastmod":"2026-04-18","duration":"02:21:11","url":"/play/19153939.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvOTAzYWEyYjBlOWQ4ZWM5ZDJmNjNlZTY1MzAwZTM4NTkuanBn.cache","vod_id":19162514,"title":">VIXEN Cô ấy không thể cưỡng lại sự cám dỗ của người lạ【Vixen】","lastmod":"2026-07-11","duration":"12:06","url":"/play/19162514.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNzdjODVkMWUwNTgxYjdiNzA5ZmE3ZmFlNzg2MzI0YjQuanBn.cache","vod_id":18944789,"title":"XXX-AV 24182 là một câu chuyện hơi lừa dối về người vợ xinh đẹp của một ngôi sao nổi tiếng!","lastmod":"2025-03-22","duration":"00:20:56","url":"/play/18944789.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMTUvNmIxMmQ3NmRjOTQyZWVkODZlZDU1ZTBhYzEwNGQzYjcuanBn.cache","vod_id":19133644,"title":"Hãy tận hưởng vẻ đẹp quyến rũ chết người của đôi chân nàng. Một bộ ảnh khêu gợi, ngọt ngào và tinh tế đến nao lòng. Đôi chân thiêng liêng của nàng, được bọc trong chiếc vớ hấp, kẹp chặt lấy dương vật. Mei Itsukaichi, DASS-764","lastmod":"2025-12-15","duration":"02:00:07","url":"/play/19133644.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYTY3ZmZhNzg0NTUyNDUyYjNjM2Q0NDc4Nzg1ZGY5MjMuanBn.cache","vod_id":18968844,"title":"FC2PPV 3245878 Một người vợ Nga xinh đẹp đang mang thai và cần tiền để nuôi con, vì vậy tôi đã đến nhà cô ấy và để cô ấy bế tôi trước mặt chồng cô ấy. [Giảm giá xuống còn 4_7]","lastmod":"2025-03-23","duration":"01:21:03","url":"/play/18968844.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNzUzZTZiMTIzMTRlODZmM2ZlYmRjZDA4OTBjZTlhYjcuanBn.cache","vod_id":19004805,"title":"HOKS-152-C Thần tình yêu của người hàng xóm, ẩn mình trong cuộc sống thường nhật, muốn được người đàn ông trung niên nhà bên cạnh \"làm tình\" #bị người đàn ông già nhà bên cạnh \"làm tình\" #nhà bên cạnh","lastmod":"2025-03-23","duration":"01:35:48","url":"/play/19004805.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTExMTUvZjYxZThlOGM0YTVmNTg3ODY2YmI4M2FiOTFhMmUzOTMuanBn.cache","vod_id":19062664,"title":"Trong thời gian vợ tôi mang thai, tôi thậm chí còn bị cấm thủ dâm, vì vậy tôi đã quan hệ tình dục với mẹ vợ, Ayano, người đã chuyển đến Tokyo nhiều lần... Ayano Kato (加藤あやの) JUQ_888","lastmod":"2025-12-14","duration":"01:59:09","url":"/play/19062664.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNWU0NzJkNzcxMDA4NzMyMDA1MWU1MDYzMGVmMTYyZmMuanBn.cache","vod_id":19012489,"title":"YSN497 Vợ tôi là một con điếm dâm đãng, đời sống tình dục không bao giờ kết thúc và không bao giờ có thời gian để cho dịch tuyến tiền liệt của cô ấy khô ráo. Kanna Shinozaki (loạn luân).","lastmod":"2025-03-24","duration":"01:38:42","url":"/play/19012489.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA3MTEvNDYxOTZmNDE4M2Y2YjRmMjRlNDViMjI0NWI4ZTA0NjYuanBn.cache","vod_id":19167878,"title":"Cô y tá trường học Hibiki khao khát được quan hệ tình dục với đàn ông một cách mãnh liệt. (Ootsuki Hibiki, Massuu-Moromaku)","lastmod":"2026-07-12","duration":"02:02:57","url":"/play/19167878.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYjYwMjhiYThiNDc4MjcwZTY5ZTBlNTBkY2YzYTU2MDAuanBn.cache","vod_id":18938818,"title":"BBAN-039 Huấn luyện đồng tính nữ cho người vợ trở về nhà ~ Một mình ở quê hương của chồng... Con dâu đồng tính nữ ~","lastmod":"2025-12-14","duration":"02:25:28","url":"/play/18938818.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNGI0OTkxZDBmYWYxOTUxMzA1M2JjNWY0MDMwMzM2ODguanBn.cache","vod_id":19025587,"title":"SUPA466 là một phụ nữ cực kỳ mảnh mai với vòng ngực khủng trên một ứng dụng hẹn hò (dành cho gái gọi).","lastmod":"2025-03-24","duration":"02:06:15","url":"/play/19025587.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA2MDEvYTIxYjQ3MGEwNmYxOTgzOGM1ZjA2YmY3NWRjZmMzMDIuanBn.cache","vod_id":19035937,"title":"Trong lúc đang được IPZZ149 mát-xa, một người đàn ông trung niên mà tôi không ưa đã ấn dương vật cương cứng của ông ta vào người tôi, xuyên qua lớp vải khoảng 2cm. Tôi đã yêu ông ta.","lastmod":"2025-06-01","duration":"01:59:40","url":"/play/19035937.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYjViZDM3ODIxNTgxZDQ4MGNkMzkyNTVjMzQ5NTQ3MTIuanBn.cache","vod_id":18972558,"title":"Pacopacomama Pacopacomama 050623_845 Một người vợ trẻ từng là người mẫu đã bị cưỡng hiếp dã man. Michiko Shirota","lastmod":"2025-12-14","duration":"01:01:57","url":"/play/18972558.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZjRhNWY2MDhkZDA5ZmJlZGY4ZGNlNzNjYWZiYWExNzkuanBn.cache","vod_id":19009823,"title":"MDTM587 Bố ơi... Con bị mấy ông già này cưỡng hiếp... Ohara Yuri.","lastmod":"2025-03-24","duration":"02:00:58","url":"/play/19009823.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMzlkMmI5MTQ2MGRiOTE5OTQwYmMwNmI3MmU3YzQzMjkuanBn.cache","vod_id":18958363,"title":"NATR-546 Có lời đồn rằng một người vợ xinh đẹp trong một nhà trọ suối nước nóng đã hét lên với một vị khách nam: \"Tôi muốn dương vật của anh!!\"","lastmod":"2025-12-14","duration":"01:39:02","url":"/play/18958363.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYWQ3NWVmZjIwZjgyMzBmMWQ4OTM0OWFjNGQ3N2M0NGQuanBn.cache","vod_id":18993985,"title":"SOAV-055 Người vợ ngoại tình Rinne Fuyuka 1","lastmod":"2025-03-23","duration":"01:48:41","url":"/play/18993985.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMjIxNWIxODM3MWVjMGQ4NjFmOTUxODNiOTc2OWNiYWIuanBn.cache","vod_id":18965396,"title":"IPX-001 Buổi hẹn hò trong nhà vệ sinh của nữ sinh: Một cô gái xinh đẹp dâm đãng, thích đàn ông lớn tuổi và chỉ có thể \"ướt át\" trong nhà vệ sinh mới có thể tận hưởng trọn vẹn khoái cảm tình dục! Rui Hizuki","lastmod":"2025-12-14","duration":"02:39:46","url":"/play/18965396.html"}]},
videoTitle: 'NSFS364 Một cặp vợ chồng nợ nần chồng chất ép người vợ phải ngủ với người lạ. 14 Nỗi nhục nhã khi phải sống chung với một người đàn ông luộm thuộm.',
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=/`;
}
};
}