Tôi chuyển đến vùng nông thôn để làm việc, và vợ tôi, người sống ở tầng dưới, quyến rũ tôi mỗi ngày, và tôi đã nhiều lần không cưỡng lại được sự cám dỗ của cô ấy… Nishino Emi BF_723
Gia sư quyến rũ sinh viên đại học","lastmod":"2026-07-11","duration":"16:59","url":"/play/19166165.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvN2ZlYmY5ZDExY2E5Njc4Y2FhYzBhN2Y3NDY0NjE4MDkuanBn.cache","vod_id":19143285,"title":"Phát triển núm vú hàng ngày cho một nhân viên mới có vòng ngực lớn và thiếu kinh nghiệm; huấn luyện cực khoái núm vú, trong đó một ông chủ đáng ghê tởm chơi đùa với núm vú của cô ấy nhiều lần cho đến khi cô ấy đạt cực khoái. MKMP-679","lastmod":"2026-02-14","duration":"02:00:20","url":"/play/19143285.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOWNjYTNhM2NlODc0ZWJhZmVjNWRhN2FmYmJmMzQ4YTMuanBn.cache","vod_id":19007499,"title":"HUNTA646 có thể quan hệ tình dục với mẹ ruột mỗi ngày nhờ vào mẹ kế của mình - một người mẹ kế hoàn toàn tuân theo mọi mệnh lệnh của con trai.","lastmod":"2025-03-24","duration":"03:53:57","url":"/play/19007499.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYTNmYzBhOTNmMjI0ZDU2ZGZmYmI3NDExMTMxNWE2YjEuanBn.cache","vod_id":18927084,"title":"AP-714_B kén chọn một nhân viên bán thời gian mới vì cô ta không biết gì về công việc ở quán bar, và ép buộc cô ta phải quan hệ tình dục với hắn.","lastmod":"2025-12-14","duration":"00:20:00","url":"/play/18927084.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMjhkNTU0NTIxMDk0OGE2ODBiOTNjOWEyNzNiZDE4MzUuanBn.cache","vod_id":19024261,"title":"JURA087C Đây là lần đầu tiên tôi chụp ảnh vợ mình, người đã 50 tuổi.","lastmod":"2025-03-24","duration":"02:04:50","url":"/play/19024261.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMjhmZDNlYmM5YTdjMjZlYjY4MTEyZTY1OTExZjdlNmMuanBn.cache","vod_id":19135623,"title":"Madou - Gái mại dâm Tập 4: Bí mật của mẹ một gái mại dâm - Su Yutang, Li Rongrong","lastmod":"2025-12-28","duration":"40:54","url":"/play/19135623.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOWJkNjEyZGE1M2YxZmJkMmUwNzQ3NGNmZDM4YzE5YjUuanBn.cache","vod_id":19017706,"title":"juq104 là một nữ nhân viên văn phòng quyến rũ, làm việc trong một bộ phận chuyên xử lý các khiếu nại cực kỳ ác ý. Tên cô ấy là Rio Kuriyama.","lastmod":"2025-03-24","duration":"02:04:06","url":"/play/19017706.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMTAxODA1OTM5MDBhMzFmNWIwNGVmZWE1OTNiMGJmMGYuanBn.cache","vod_id":18997406,"title":"Bạn thân của vợ tôi vô cùng giỏi giang.","lastmod":"2025-03-23","duration":"19:11","url":"/play/18997406.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMTQvOGNmZmJlMmI1NjFlMjA1MTk5NWRjNmUxODVmZTE2ZmUuanBn.cache","vod_id":19067402,"title":"Hàng xóm của tôi, một người dì, có con, nhưng vì thân hình quyến rũ của bà ấy, tôi đã năn nỉ bà ấy: \"Cho tôi ngủ với bà một lần được không!\" Tuy nhiên, kết quả lại ngoài dự kiến. (Diễn viên không rõ danh tính, DBNK-075)","lastmod":"2025-12-14","duration":"03:59:29","url":"/play/19067402.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvY2EyZjFkZTBmM2IyMDU1MTY2ZDc3ZTA5NmRhOWNmNzIuanBn.cache","vod_id":18959764,"title":"[Phụ đề tiếng Trung] MIAA-744 Cô cấp dưới xinh đẹp của tôi có vòng ba gợi cảm và luôn vô thức quyến rũ tôi ở nơi làm việc, nhưng sau một bữa tiệc, cô ấy hoàn toàn thả lỏng với vòng ba trần trụi của mình!","lastmod":"2025-12-14","duration":"01:58:09","url":"/play/18959764.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA2MjMvN2I3MmY3MzYyMmRhYmY3NzQ5YWVmYmMzYzY4NTdiYmEuanBn.cache","vod_id":19165430,"title":"Bán đồ chơi tình dục, ren, doanh số thực tế được gọi là trò chơi đồ chơi, nhiều cực khoái, chìm đắm trong ren, bà nội trợ buổi chiều Tamashiro Natsumi, Misumi Rei Vivian","lastmod":"2026-07-11","duration":"02:41:23","url":"/play/19165430.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYmUyZTQzZjdiNTU3NGQ4ZWQyYjY2YWI3ZDg4YzcxYjguanBn.cache","vod_id":18968775,"title":"FC2PPV 3246355 ※Phiên bản giới hạn đợt đầu 1930pt → 1093pt 【Gonzo・Creampie】Một bà nội trợ 36 tuổi làm việc tại Ma○Kiyo. Cô ấy có khuôn mặt trẻ trung và trông trẻ hơn tuổi thật.","lastmod":"2025-12-14","duration":"01:12:36","url":"/play/18968775.html"}]},
videoTitle: 'Tôi chuyển đến vùng nông thôn để làm việc, và vợ tôi, người sống ở tầng dưới, quyến rũ tôi mỗi ngày, và tôi đã nhiều lần không cưỡng lại được sự cám dỗ của cô ấy… Nishino Emi BF_723',
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=/`;
}
};
}