Reina Munakata, một phụ nữ đã kết hôn xinh đẹp, có học thức, thân hình mảnh mai và đôi chân tuyệt đẹp, là chủ sở hữu của một thẩm mỹ viện làm trắng da.
Người vợ ngoan ngoãn, thật thoải mái, thật tuyệt vời, mông tôi nhô lên nhưng tôi không thể xuất tinh, tôi có thân hình đầy đặn và làn da trắng hồng. Tư thế 69 siêu trắng, ăn gà, liếm âm đạo, bị anh trai \"thúc\" đủ kiểu, và cuối cùng được xuất tinh vào trong, tôi rất thỏa mãn.","lastmod":"2026-07-11","duration":"","url":"/play/19207258.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvY2M3YWRlYzBhYzA3NWMwOGJiYzUxNDlhOGVlNjVmNWMuanBn.cache","vod_id":19119122,"title":"APNS128 Người vợ xinh đẹp Rena Yashiki rơi vào bẫy.","lastmod":"2025-03-26","duration":"1:58:10","url":"/play/19119122.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvOTMyNWUwNzJkOTU4NmVmOTViMDllYjQ1YTExNTU5Y2MuanBn.cache","vod_id":19037998,"title":"Em gái cùng cha khác mẹ của tôi có vóc dáng rất đẹp.","lastmod":"2025-03-26","duration":"0:26:48","url":"/play/19037998.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvMDFjMGExMThiZGUwN2IwNjllODNiOGIyZjNjOWQzNjIuanBn.cache","vod_id":19199779,"title":"[Quấy rối tình dục bằng cách xuất tinh lên mặt] Sự quyến rũ vô thức của bộ ngực lớn khiến dương vật của một chàng trai trẻ cương cứng, và người phụ nữ sếp đã kết hôn có bộ ngực lớn liên tục bị xuất tinh lên dương vật. (Takarada Monami, Smooth Frames - Delusional Tribe)","lastmod":"2026-05-18","duration":"2:40:03","url":"/play/19199779.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA0MDkvY2E5ZTUzZTc2ZGZjZGZiMmFiZGU3ZjJlMjFjYmQwMzguanBn.cache","vod_id":19130250,"title":"Một người phụ nữ trung niên đã kết hôn, ngực rất lớn, đang quan hệ tình dục với một con gà; ngực của bà ta to đến nỗi lấp đầy hoàn toàn âm đạo của tôi.","lastmod":"2025-04-09","duration":"0:13:27","url":"/play/19130250.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvOWQ3N2E4MmRmOTQzMDQzYzlhOWM3YzFjYjFhMzAyZWYuanBn.cache","vod_id":19029494,"title":"Một người vợ giỏi diễn trò dễ thương, trao trọn tình yêu; cao trào của một cặp đôi với xà phòng; Sasahara Yuri.","lastmod":"2025-03-25","duration":"1:41:06","url":"/play/19029494.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNzVkZDYzYTM4MjU3M2I4NGFhMjAwYzUyZjA3MjI2YjkuanBn.cache","vod_id":19191410,"title":"Miffy MSD176, bà chủ xinh đẹp với đôi chân quyến rũ đầy quyền lực, đã xuất tinh không che chắn và tràn ngập tinh dịch trong âm đạo của cô ấy.","lastmod":"2026-04-07","duration":"0:30:26","url":"/play/19191410.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMTNhZjZmY2MxYzZjMmRjNjU3MmZiN2U0MmUyNzk2MWQuanBn.cache","vod_id":19179099,"title":"Video OP, được thu thập từ một cô gái giao hàng có vòng ngực cỡ K và hình xăm, đã được cấp phép công khai. (UBUG-005)","lastmod":"2026-02-08","duration":"1:52:41","url":"/play/19179099.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZmRlZTY4NjFjY2Q1NTc2ZjIwYmY4ZTYxZmIyZTVlZTcuanBn.cache","vod_id":19194736,"title":"Tại một khu dân cư cũ, một cô gái trẻ xinh đẹp làm gái mại dâm được thuê vào khoảng 10 giờ tối. Người phụ nữ là một lao động nhập cư trung niên với chiếc ví đầy ắp tiền; họ thậm chí còn có tư thế đặc biệt. Sau khi xuất tinh, người đàn ông đưa cho cô ta một tờ giấy đỏ.","lastmod":"2026-04-23","duration":"0:07:44","url":"/play/19194736.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZDJmOWM4ZWI3YjI5YmU0ZWUzNmIzMDQ2MmRlYTBmNGMuanBn.cache","vod_id":19029616,"title":"NTR ở thị trấn: Video một người phụ nữ đã kết hôn bị cưỡng hiếp nhiều lần trong lều khi ngoại tình - Honda Hitomi","lastmod":"2025-03-26","duration":"1:59:08","url":"/play/19029616.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNWJhYzMzNjgzY2QwODJiODU4YjBhMWYyMWQ0ZGM5NjQuanBn.cache","vod_id":19027167,"title":"AFS-034 Gạ gẫm phụ nữ đã kết hôn và xuất tinh vào bên trong họ × PRESTIGE PREMIUM Bốn người phụ nữ đã kết hôn bị kìm nén tình dục ở quận Shinjuku 15. Trong một ngôi nhà khi chồng họ vắng nhà, không gian thiêng liêng của cặp vợ chồng bị xúc phạm. 240 phút!!","lastmod":"2025-03-25","duration":"4:04:20","url":"/play/19027167.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNjhmY2Y2NmE3MDgwNjYzYmQ3MjBiOTkwOGVhNjNlZTAuanBn.cache","vod_id":19113356,"title":"91CM-215 Cuộc hẹn hò đêm khuya với người mẫu xe chân dài xinh đẹp - Ye Rou 1","lastmod":"2025-03-26","duration":"0:39:18","url":"/play/19113356.html"}]},
videoTitle: 'Reina Munakata, một phụ nữ đã kết hôn xinh đẹp, có học thức, thân hình mảnh mai và đôi chân tuyệt đẹp, là chủ sở hữu của một thẩm mỹ viện làm trắng da.',
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=/`;
}
};
}