Kế hoạch ngầm được quay phim hoàn toàn bí mật. Cực kỳ hiếm và khó đặt chỗ. Nữ massage nam thần thánh xuất tinh không giới hạn, quan hệ tình dục không an toàn vào âm đạo () Kawagoe Yui, Satsuki Ena, Sakino Mizuki Ienage","lastmod":"2026-07-11","duration":"02:12:17","url":"/play/19154709.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNzBkMGE5MTI4OWNhZjFkY2FiOWU3ZGMwY2FlNDJlZDMuanBn.cache","vod_id":19138366,"title":"Kỹ thuật massage khiêu dâm với bộ ngực khổng lồ của yooheejade_quan hệ tình dục bằng ngực với dương vật to của khách hàng, quan hệ tình dục bằng miệng, mút và xuất tinh","lastmod":"2026-04-21","duration":"18:39","url":"/play/19138366.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA3MDkvYjY3OWYwNTJiMmJjYWFhNmY3MjU4ZGI5ZDk1YWFhZGQuanBn.cache","vod_id":19082836,"title":"Bạn cùng phòng của tôi, Chari, ngày nào cũng dẫn những người tình một đêm về nhà. Cô nàng Yajie ngây thơ không thể cưỡng lại được ham muốn trải nghiệm cực khoái.","lastmod":"2025-07-08","duration":"27:00","url":"/play/19082836.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA4MTcvMzdkYmE5ZDc3M2UyZTUwZGZlNjY5MWU1MGQwYTE4OTIuanBn.cache","vod_id":19090357,"title":"Người mẫu - Mát-xa gợi cảm bất ngờ, kỹ thuật dùng chân quyến rũ - Liang Yunfei","lastmod":"2025-08-16","duration":"32:34","url":"/play/19090357.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMzQ3ODA1NjdkN2Y5NmMyOGIzMTk1YjViYTZmZDg1ZmIuanBn.cache","vod_id":18982753,"title":"SCOP-640: Em gái tôi, kiệt sức vì thủ dâm đến cực khoái, ngủ thiếp đi với một chiếc máy rung được đặt bên trong, điều này quyến rũ đến mức khơi mào các mối quan hệ loạn luân.","lastmod":"2025-03-28","duration":"02:24:53","url":"/play/18982753.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvY2NiYzQzZjRjMDdkMjk2YTc3YzQ2YzQyNTMwMzhkYmYuanBn.cache","vod_id":19124003,"title":"Hãy trải nghiệm bồn tắm bong bóng cùng cô bạn gái ngực khủng; cô ấy sẽ phục vụ bạn với nụ cười tươi tắn, và màn nhập vai kéo dài trong bồn tắm bong bóng theo chủ đề đồng phục là điều không thể tránh khỏi. (MUDR-345)","lastmod":"2026-02-11","duration":"02:27:31","url":"/play/19124003.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYzE0ZWI3OWY2YWQyNDA0Mzk5ZDYyODE4NDQ1OTcyZjguanBn.cache","vod_id":19064365,"title":"Một cô gái anime ngực khủng trải nghiệm quan hệ tình dục bằng miệng ngoài đời thực, với sự góp mặt của một Otaku Trái Đất.","lastmod":"2025-03-29","duration":"06:58","url":"/play/19064365.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZDhkNDY2NzMwZDUzOWVkMGZjZThmM2UyOWY5MzY5YTAuanBn.cache","vod_id":19026859,"title":"5. Trong một chuyến đi công tác, tôi, là người đàn ông duy nhất, đã vui chơi hết mình với các đồng nghiệp nữ xinh đẹp và chơi trò King's Game vô cùng thú vị! Thoát khỏi sự nhàm chán và trải nghiệm những điều bất ngờ tại một nhà nghỉ suối nước nóng!","lastmod":"2025-03-29","duration":"02:19:22","url":"/play/19026859.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMTMvZThmM2NmZTRlNGM3NGYzODY1OWEyYzE3NmZjN2M4ZjIuanBn.cache","vod_id":19107781,"title":"Những cô gái nóng bỏng quyến rũ cung cấp dịch vụ mát-xa đặc biệt cho những người đàn ông điển trai.","lastmod":"2025-12-13","duration":"33:36","url":"/play/19107781.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMDIzNzZhYTFhMzg4MmVmY2EzNmY4OTYwMDcwMDc0ODkuanBn.cache","vod_id":18989104,"title":"Một phụ nữ trẻ xinh đẹp đang ngoại tình với một chuyên viên mát-xa.","lastmod":"2025-03-28","duration":"01:09:53","url":"/play/18989104.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNWM0NjU2ZTkxMDUzOTc4MzlhNTZhZjMyNTI2NmRjNWMuanBn.cache","vod_id":19009744,"title":"Một nữ sinh năm hai đeo kính đã quyến rũ một nam nhân viên mát xa tại một tiệm mát xa, yêu cầu anh ta đeo bao cao su khi quan hệ tình dục. Giữa chừng, nhân viên mát xa cảm thấy không thoải mái với bao cao su và đã tháo nó ra, dẫn đến quan hệ tình dục không an toàn.","lastmod":"2025-03-28","duration":"51:42","url":"/play/19009744.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNWUwYzRjNWQ2ZTEwNzI2NTUwODAyMzJmMTE4Njg1MDkuanBn.cache","vod_id":19050804,"title":"[Tiếng Trung] Ngực khủng, gợi cảm, xuất tinh~ Bạn trai ngay bên cạnh, bị cô nhân viên mát xa phản bội.","lastmod":"2025-03-29","duration":"02:38:50","url":"/play/19050804.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYWI1OTIzMDg1MzkyZTMyYWNjYjA1NGM4ZTVlNmE3NWIuanBn.cache","vod_id":19139162,"title":"Một nữ vũ công trung học hàng đầu thời hậu thập niên 2000 quyến rũ và cưỡng hiếp các cô gái bằng cách massage dầu.","lastmod":"2026-04-24","duration":"29:16","url":"/play/19139162.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA0MDYvMGEzOWFmZDRmZTljMzgwNDkyY2FkN2YwMjYzZmQ2ZWYuanBn.cache","vod_id":19068801,"title":"Chỉ dành cho nữ sinh viên nghiệp dư. Trải nghiệm tắm chung giữa nam và nữ trong một phòng tắm hẹp. Nữ diễn viên không rõ danh tính IENF-231-C.","lastmod":"2025-04-06","duration":"02:07:30","url":"/play/19068801.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNmNmMjgyNmUyNzI2MDc4ZTY0NmM5NDU0ZDJhM2IzYmMuanBn.cache","vod_id":19044225,"title":"IAE247 Cô hầu gái Shinoda Yu với vòng ba tròn trịa, căng mọng xoa bóp cơ thể mệt mỏi của chủ nhân sau một ngày dài.","lastmod":"2025-03-29","duration":"02:27:06","url":"/play/19044225.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvOTMzZmIzMGFiYTJkMmMxNTUzYTMzOWNhZTQwZjU2NmEuanBn.cache","vod_id":19145424,"title":"Cô nhân viên mát xa cứ cố tình chạm vào vùng kín của tôi - tôi không chịu nổi! Tôi muốn được quan hệ mạnh mẽ hơn.","lastmod":"2026-05-25","duration":"12:16","url":"/play/19145424.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTExMTMvOTI2M2Y4NTVlODQ3OGUyNDdmNGIzZTM1MDdlNmI2ZGMuanBn.cache","vod_id":19106007,"title":"[Ảnh tự sướng kiểu Trung Quốc] Trong một chuyến công tác, anh ta tìm một người mát-xa nam để mát-xa và tán tỉnh người vợ nghiện tình dục của mình.","lastmod":"2025-11-12","duration":"01:13:58","url":"/play/19106007.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYjk5MDU4ZjcwMzVmZjAzNzQyM2U3ZGQwZjkzOGNkZTAuanBn.cache","vod_id":19136134,"title":"Một tiệm massage lâu đời ở vùng Kanto đã làm rò rỉ một video dài 4 tiếng quay cảnh một bà nội trợ xinh đẹp hóa trang, chỉ được phát vào các ngày trong tuần.","lastmod":"2026-04-10","duration":"04:00:19","url":"/play/19136134.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMTMvNGZiMDA2NTdjNDBmOTI2ODlhMTZhNjhkNDBkZWJiY2QuanBn.cache","vod_id":19108024,"title":"Massage NTR với Gương Thần: Chứng kiến trạng thái say đắm của người vợ yêu dấu trong gương. Kimura Rei JUQ-620","lastmod":"2025-12-13","duration":"02:15:25","url":"/play/19108024.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNzdhZTUwZDliODg4YWMxMDcyZTRhMzI0ZDBmMGM4MzkuanBn.cache","vod_id":19055510,"title":"SIRO3978 [Lần quay đầu tiên] [Cô bán hàng xinh đẹp ở cửa hàng đó] [Ngực mềm mại, mông đầy đặn] Một cô bán hàng với bộ ngực mềm mại và đôi mắt to tròn, khuôn mặt thuần khiết sau một thời gian dài quan hệ tình dục... Đăng ký đóng phim AV trực tuyến → Quay phim AV trải nghiệm 1137 (Loạn luân).","lastmod":"2025-03-29","duration":"01:07:19","url":"/play/19055510.html"}]},
videoTitle: 'TMW035, một tiệm massage chuyên về các trải nghiệm massage truyền thống, EP2!',
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=/`;
}
};
}