Con điếm đó suýt nữa hút hết tinh dịch của tao, tao sẽ địt nó đến chết 2","lastmod":"2026-07-11","duration":"00:00:31","url":"/play/19152627.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMzRhZDk2OTI0Mzg3YjFjNmI5NzliZjdjNzJlMmY5M2MuanBn.cache","vod_id":18959772,"title":"FC2-3362270 [Không che] Lần đầu quay phim! Xuất tinh trực tiếp vào âm đạo còn khá mới với chỉ một bạn tình!","lastmod":"2025-03-19","duration":"01:16:04","url":"/play/18959772.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYjE1MDIyMTE0ZDIwNDEwZTliMDJiODk3ZjJmZmZlZWEuanBn.cache","vod_id":19020804,"title":"Ai Sayama - WAAA-281 Trải nghiệm thủ dâm tuyệt đối tuân phục ~ Tiếp xúc gần gũi và kiểm soát xuất tinh bằng những mệnh lệnh tục tĩu! Video JOI phiên bản đầy đủ kích thích năm giác quan.","lastmod":"2025-03-19","duration":"02:25:54","url":"/play/19020804.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYTdmYmY1ZTRhY2NmODJkZjljYjI4NWNiOWQ0ODJkNzMuanBn.cache","vod_id":19052183,"title":"MKMP-573 Chỉ cần nghe thấy giọng nói giận dữ của cô ta thôi cũng đã khiến vùng kín của tôi ướt đẫm!! Một nữ nhân viên tổng đài dâm đãng, phục tùng một người đàn ông liên tục xuất tinh với dương vật hung bạo.","lastmod":"2025-03-19","duration":"01:56:16","url":"/play/19052183.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNTM4N2VlOGJiMTUyZmVjYTdmODRkMmMwZmY5OGMwZjMuanBn.cache","vod_id":19079596,"title":"Protein HMN-390-C (Tinh dịch): Ham muốn không bao giờ chấm dứt, huấn luyện viên vòng ba khủng vắt kiệt nhiều tinh dịch trong tư thế cưỡi ngựa kiểu \"piledriver\".","lastmod":"2025-03-19","duration":"02:08:58","url":"/play/19079596.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvN2QyNTRjZGEzZWU5NmU1MmU0ZmE4YTk2OTI3NWJjYjguanBn.cache","vod_id":18944935,"title":"071MXDLP-0142 Một người phụ nữ đang quan hệ tình dục và xuất tinh dữ dội SP","lastmod":"2025-03-19","duration":"04:22:46","url":"/play/18944935.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvOGVmNDI0NjJjMDA2ZjkwMzA2MDJmZmI1Mjk5ZDkxZDEuanBn.cache","vod_id":19147146,"title":"DVAJ-733 Bị nhốt trong kho lưu trữ, bà chủ nữ của tôi vặn vẹo hông, cố gắng nhịn tiểu, nhưng tôi không thể ngừng bị kích thích, nên tôi đã cưỡng hiếp bà ta hết lần này đến lần khác.","lastmod":"2026-05-08","duration":"02:14:21","url":"/play/19147146.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA0MTMvMTM3MmQ2ZTNkNTZjZWJmODBjODExOTkwYzRjMWZiNGMuanBn.cache","vod_id":19099929,"title":"NACR-918 Vợ tôi là bạn tình của người hàng xóm","lastmod":"2025-04-13","duration":"01:44:20","url":"/play/19099929.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYjZjMWUyMmZmMDk3ZWZkZjRmZWFmYjA3MWQ3YTVlN2QuanBn.cache","vod_id":19139160,"title":"MIDA-422 \"Nếu tôi thủ dâm bằng tay, liệu đó có bị coi là ngoại tình không?\" Sau ba đêm ở khách sạn, tôi bị cuốn hút bởi thói quen thủ dâm ám ảnh của em gái bạn gái và cuối cùng xuất tinh 20 lần.","lastmod":"2026-02-17","duration":"02:22:28","url":"/play/19139160.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYTExODcwMDliODJmOTAzYTdiODgwM2JiODQ4MjFhMjkuanBn.cache","vod_id":18959263,"title":"1Pondo 100723_001 Trung tâm huấn luyện vệ sinh cơ thể ~Ba lần xuất tinh liên tiếp~ Mirei Imada","lastmod":"2025-03-19","duration":"58:53","url":"/play/18959263.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvODEwNTk2OGI5ZGM5MWJlMzJiNjRlMTc4OWViNWMyZDkuanBn.cache","vod_id":18961603,"title":"PRED-505: Aika, người đang được cầu hôn, đã quá hạnh phúc đến nỗi cô ấy trở nên rối loạn tâm thần, vì vậy trước đám cưới, hắn ta đã cưỡng hiếp tập thể cô ấy và khiến cô ấy xuất tinh nhiều lần.","lastmod":"2025-03-19","duration":"02:34:42","url":"/play/18961603.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYWNiYzg3Y2M0N2IxN2NhZjM2MGUxMTNlZmYwMWEzNjIuanBn.cache","vod_id":18937314,"title":"CJOD-329 Sau giờ học, tại một khách sạn tình yêu, tôi bị ba học sinh vây quanh. Chúng sàm sỡ tôi, giữ chặt tôi và ép tôi xuất tinh vào trong chúng. (Tên: Kusaki Aoi, Fukada Yuri, Himekawa Yuna)","lastmod":"2025-03-19","duration":"02:56:00","url":"/play/18937314.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNjZkZmMwMDNjOTEyZjM2NTkzODkwMWEzOTJiNmVlMzguanBn.cache","vod_id":18933315,"title":"n0236 Ngực to và bàn chân đẹp RQ creampie với nhiều tinh dịch","lastmod":"2025-03-19","duration":"01:12:48","url":"/play/18933315.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTExMTcvNjBiZTdhYjhhMDgyMmE1ZjAyMzZlZTFkOTllM2I2NWEuanBn.cache","vod_id":19129000,"title":"SSIS-953-C Thần tượng yêu thích của tôi là một cô nàng lẳng lơ muốn tìm bạn tình ngoài đời thực (vừa khóc vừa vui).","lastmod":"2026-02-13","duration":"01:57:53","url":"/play/19129000.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNzU4Nzg0ODFhMTU3YWEzYzhlNDQ1ZDBmZWEzYmQ4YzIuanBn.cache","vod_id":19053395,"title":"Haruna Kawakita - OYC-290 \"Tôi có rất nhiều tinh dịch trong miệng... Nếu cô nhổ ra, tôi sẽ xuất tinh vào trong cô.\" Một người vợ trẻ bị nhiều người đàn ông cưỡng hiếp.","lastmod":"2025-03-19","duration":"03:11:52","url":"/play/19053395.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNDA1NzJkOWU2MDhkZmFlNTE0OWJjMDI2NzMzN2RlNmUuanBn.cache","vod_id":19073127,"title":"MBYD-397 Khoảnh khắc người vợ nội trợ tuyệt vọng cùng cực! Cưỡng hiếp dữ dội trước khi xuất tinh tập 2, 78 cảnh quay liên tiếp, June Lovejoy","lastmod":"2025-03-19","duration":"03:54:22","url":"/play/19073127.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYWEwZDRmNmE3OTEzMGIwZDllYjlkZTE1YjU0M2JjMDMuanBn.cache","vod_id":19097585,"title":"HUNTC-284 Tuyệt vời...Tôi muốn mút nó...Chị dâu tôi bị kích thích bởi sự cương cứng buổi sáng của tôi và ngay lập tức bắt đầu oral sex cho tôi! Dù tôi xuất tinh bao nhiêu lần, cô ấy vẫn tiếp tục thúc mạnh.","lastmod":"2025-03-28","duration":"03:07:53","url":"/play/19097585.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZmM0ZWI1NWViM2QxOTFiYWQ2MmU0MDIyMzM0ZjVmZGMuanBn.cache","vod_id":18926517,"title":"H4610-ki230330-HD - Tinh dịch đặc - Meri Amagai, 38 tuổi","lastmod":"2025-03-19","duration":"49:52","url":"/play/18926517.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZTIyNGFjOThjYjQ1YTkwMzg4NTM1ZGZmOWViYTkwMWIuanBn.cache","vod_id":19131772,"title":"FJIN-113 Tôi cứ nghĩ đó chỉ là chuyến đi suối nước nóng một ngày với cô đồng nghiệp nữ đã kết hôn làm thêm… nhưng nó lại biến thành chuyến đi hai ngày một đêm, trong suốt thời gian đó tôi ngập tràn tinh dịch. —Yuki Yoshizawa","lastmod":"2026-02-13","duration":"02:10:20","url":"/play/19131772.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZmU3OTBiMDBhMGVhODcxYTBlMTllOWMyNDY4ODc5YWQuanBn.cache","vod_id":18986528,"title":"NPJS-007 Nhật ký riêng tư của Rùa Bất Khốn. Sau khi để người bạn đời của mình ngoại tình, tôi đã tiêm cho cô ấy sáu mũi thuốc tiếp theo. Quan hệ tình dục tức thì.","lastmod":"2025-03-19","duration":"01:55:01","url":"/play/18986528.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvOWQ4MmM2YjlhOGQ5YzhkYWU0YWIwNjFkMzExYjA0YWEuanBn.cache","vod_id":19094525,"title":"CAWD-804 Reina Makino, 20 tuổi, thợ làm tóc và trang điểm với 2 năm kinh nghiệm. Chương 2: Những yêu cầu vô lý của các nữ diễn viên năng động khiến họ đạt cực khoái và xuất tinh!! Phát triển toàn thân.","lastmod":"2025-03-19","duration":"02:33:50","url":"/play/19094525.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvM2Y0MjQxZDc4MmU0ODhjY2JkNTBjYjliOGFjYzA1Y2YuanBn.cache","vod_id":19073636,"title":"MIAB-390 Một nữ sinh viên đại học vừa chuyển đến Tokyo và sống một mình bị ông chủ nhà biến thái theo dõi. Hắn đột nhập vào căn hộ của cô mỗi ngày, dội tinh dịch lên người cô 20 lần và cưỡng hiếp cô.","lastmod":"2025-03-19","duration":"02:38:51","url":"/play/19073636.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMDE3NmYxZGRmYjZmY2ZmNWU3MTY5ZDYzN2Q1OWViMjAuanBn.cache","vod_id":19077147,"title":"SIR-021 Hồ sơ phỏng vấn bà nội trợ nghiệp dư số 021","lastmod":"2025-03-19","duration":"01:00:32","url":"/play/19077147.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYjU3MjI1MTczZTdiYmVmYjA1MTIxMjMxOTgwOWIwNTguanBn.cache","vod_id":19087150,"title":"VRKM-719 [VR] Có thể tạo ra hiệu ứng cho phép xuất tinh chỉ từ núm vú không? -cd4","lastmod":"2025-03-19","duration":"10:47","url":"/play/19087150.html"}]},
videoTitle: 'JMTY-067 Hồ sơ người làm việc tự do số 19, Flower, 24 tuổi. Ghi nhận việc uống tinh dịch và xuất tinh vào bên trong bạn tình.',
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=/`;
}
};
}