Mặc dù rạp chiếu phim vắng tanh, nhưng một người phụ nữ xinh đẹp đã ngồi xuống ghế bên cạnh tôi! Hơn nữa, cô ta là một con điếm! 星仲ここみ FALENO TUBE","lastmod":"2026-07-11","duration":"2:42:07","url":"/play/19267106.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZDcwNGNmMDNhODg2YTVlMzg5N2JhYzMxY2U1YmRlYmYuanBn.cache","vod_id":19099239,"title":"Trào lưu khắp cả nước, việc tìm kiếm những phụ nữ trưởng thành, có giá trị cao, quan hệ tình dục bằng miệng nồng nhiệt và các hành vi tình dục khác vô cùng hấp dẫn.","lastmod":"2025-03-29","duration":"0:52:29","url":"/play/19099239.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYWYyOTY4ODU5YzZjMGI4NDdmNmY2ZTRlMTAyNzRhYWEuanBn.cache","vod_id":19257733,"title":"Cô sinh viên đại học 21 tuổi kiên trì, đứng đầu bảng xếp hạng là một ví dụ hoàn hảo về người phụ nữ có tính cách trái ngược; vẻ ngoài học thức không thể che giấu bản chất dâm đãng của cô, và tiếng rên rỉ của cô thì chói tai.","lastmod":"2026-05-08","duration":"0:37:31","url":"/play/19257733.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZjMxMTg5ZWMwNWE3NWQ1OWM3ZmVjYjlhNWYyMDhiM2MuanBn.cache","vod_id":19066196,"title":"91CM-093 Tán tỉnh người phụ nữ xinh đẹp - Dương Tống Minh","lastmod":"2025-03-29","duration":"0:43:57","url":"/play/19066196.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvODNiMTFiMWNiZjY3MWE4NGY1ZTZkY2M5NDk3NmQ3ZWEuanBn.cache","vod_id":19179740,"title":"BBAN258 Một cuộc đảo chính thất bại. Một người phụ nữ muốn thay đổi cuộc đời mình đã rơi vào bẫy, ngày càng lún sâu...","lastmod":"2025-03-30","duration":"2:00:20","url":"/play/19179740.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMDVjOWZhNmVlN2ViNDQ4ODFiNWZlOWNkMDM3MGU3NjguanBn.cache","vod_id":19239172,"title":"Một nữ sinh cuồng yêu sẵn sàng làm mọi thứ vì người mình yêu và gã bạn trai biến thái của mình. (NMSL-021)","lastmod":"2026-01-11","duration":"2:02:31","url":"/play/19239172.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYWEyYmViN2Q0YTdkNzg1NTMzNzJkOWEyNDU2NmZiMmQuanBn.cache","vod_id":19101637,"title":"HODV-21331 Một nữ sinh gợi cảm, đang tuổi dậy thì, ngây thơ trải nghiệm cực khoái âm đạo đầu tiên kèm theo xuất tinh. (Dòng cuối cùng dường như là một đoạn văn không hoàn chỉnh và không thể dịch trực tiếp.)","lastmod":"2025-03-29","duration":"2:19:38","url":"/play/19101637.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvN2ZjMmQyZTIyNjk1NGE2NzIwMDVjNDdiMTM2ZTRkMjMuanBn.cache","vod_id":19131867,"title":"Một nữ sinh viên đại học 20 tuổi với vòng một tự nhiên đẹp và làn da trắng hồng đã có lần đầu tiên quan hệ tay ba với hai người đàn ông vạm vỡ!","lastmod":"2025-03-29","duration":"0:43:06","url":"/play/19131867.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNjIzNzE0MDVhNjljN2JkOTdmNDBjMDNhMGRmMTY0ZDUuanBn.cache","vod_id":19236611,"title":"Fox Fairy, một nữ streamer xinh đẹp, đã có một buổi hẹn hò ngoài đời thực và không mặc áo ngực.","lastmod":"2025-12-26","duration":"0:29:34","url":"/play/19236611.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA3MTUvZDVlZDFlNTFlNzc1NTc3ODI5NjI0NWMwNzIxNTIzNjguanBn.cache","vod_id":19213165,"title":"Gao Lianghong Jiu'er là một người phụ nữ vô cùng xinh đẹp với vóc dáng hoàn hảo.","lastmod":"2025-07-14","duration":"1:33:39","url":"/play/19213165.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNDU3ODk2MmQxYzgxYzZmMTAxZmU0MTg2MDgzMjA0NjQuanBn.cache","vod_id":19151817,"title":"Một nữ sinh viên đại học chuyên ngành múa, mặc bộ đồ bó sát và tất lưới, đang nhảy múa đầy năng lượng theo điệu nhạc.","lastmod":"2025-03-30","duration":"0:10:55","url":"/play/19151817.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYzk4MGQzMTA3MTA0ZmYzOTE3N2FhNWJiMDExOGU5ZjguanBn.cache","vod_id":19150008,"title":"HEYZO-1518: Quan hệ tình dục thô bạo với một nữ sinh viên hành nghề mại dâm năng động!","lastmod":"2025-03-30","duration":"1:02:13","url":"/play/19150008.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMmI2NTRhODZhMjA1M2Y5OWMzNTU3OWQ1NzI4YTRkN2MuanBn.cache","vod_id":19250388,"title":"\"Mày tưởng là vì tao... chỉ vì mày coi trọng lòng tự trọng... Tao sẽ xé toạc cái... của mày ra!\" Mỗi thứ Tư, 15:00~ Học sinh vắng mặt SNOS-087","lastmod":"2026-03-22","duration":"2:05:32","url":"/play/19250388.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNGJiY2UzZjFmZjA0NmJiZTZhYzU4NjA3MDExMzlmMDYuanBn.cache","vod_id":19054424,"title":"[Đồng tính nữ] Những nữ thần Nga, hai người phụ nữ đồng tính cao ráo và xinh đẹp trong tất đang quan hệ tình dục.","lastmod":"2025-03-29","duration":"0:18:32","url":"/play/19054424.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly9mYS5zbDI2MDIwNC50b3AvdXBsb2FkL3ZvZC8yMDI2MDIyMi0xLzY3ODg5YTRkNTBjMTVhMTVjMWNmNzM0ZTZiZDE2NWIwLmpwZw==.cache","vod_id":19246038,"title":"Nỗi tuyệt vọng và khoái lạc mà một người phụ nữ xinh đẹp làm việc tại cửa hàng tiện lợi trải qua... Một công việc bán thời gian gợi cảm với những khoái cảm liên tục và những lần sa ngã. Rie Miyagi NMSL-027","lastmod":"2026-02-22","duration":"2:06:26","url":"/play/19246038.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYjU4MjI3ZTAwODVjYjExMzc1YWJmMGQzNzNiZTYyNDUuanBn.cache","vod_id":19177486,"title":"Một người mẫu trẻ đẹp tuyệt trần với thân hình hoàn hảo đã mất kiểm soát trong một buổi chụp ảnh khêu gợi, tham gia vào các hoạt động tình dục mãnh liệt trên sàn nhà, ghế và giường ở nhiều tư thế khác nhau!","lastmod":"2025-03-30","duration":"0:35:23","url":"/play/19177486.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvMzk3ZWQ0ZDBjZTNmMjY5YWY0NzUzODcwOGVhMWRjMDAuanBn.cache","vod_id":19260808,"title":"Một vận động viên bơi lội mảnh khảnh, nhút nhát bị bao vây bởi những vận động viên bơi lội mạnh mẽ, hầu như không có thời gian để lấy hơi trước khi bị đẩy về phía trước không ngừng nghỉ. (Asano Kokoro, S1 NO.1 STYLE)","lastmod":"2026-05-27","duration":"1:59:33","url":"/play/19260808.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNGU0N2Y2OTc3NTRmOWNjYjY3MWIzY2M2NWMyNjc3MTAuanBn.cache","vod_id":19042458,"title":"AV #SugarHeartVlog Chuyến phiêu lưu cắm trại: Sự giải tỏa thể xác của nữ thần đầy dục vọng #Multi-B","lastmod":"2025-03-28","duration":"0:28:07","url":"/play/19042458.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA3MTUvMjYzOTI4Y2FhNTdjOGQ1ZDFhY2QxODA4ZDhjZGI4ZTkuanBn.cache","vod_id":19268585,"title":"Những bức ảnh riêng tư bị rò rỉ trên mạng cho thấy một cô gái 22 tuổi, xinh đẹp, dịu dàng đến từ trường nghệ thuật đang tham gia vào hoạt động tình dục.","lastmod":"2026-07-14","duration":"","url":"/play/19268585.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZjNmZjhmMTgxNGZiMzM5N2RmMjdjNzRhOGU2ZTgzMmMuanBn.cache","vod_id":19124309,"title":"[Người nổi tiếng trên mạng Đài Loan] Tuyển tập các hành vi khiêu dâm liên quan đến 3 nữ sinh viên đại học và 2 nam sinh viên.","lastmod":"2025-03-29","duration":"0:11:29","url":"/play/19124309.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMmQ3NWJjNWVjN2M2ODAyY2VkNDE2MjU5M2RmZmM2NDkuanBn.cache","vod_id":19145845,"title":"#Phát trực tiếp Người phụ nữ xinh đẹp với khuôn mặt hồng đào và vòng một đầy đặn [Chen Yue] 0","lastmod":"2025-03-29","duration":"2:23:29","url":"/play/19145845.html"}]},
videoTitle: 'Ruisa Mizuki, một nữ vận động viên xinh đẹp, sử dụng thân hình săn chắc và vóc dáng quyến rũ của mình để giáo dục học sinh thông qua tình dục.',
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=/`;
}
};
}