Theo đuổi ước mơ tại Gian trưng bày Nhân văn Tối nay Cô gái này khá tốt 88 Pounds Chất lượng hàng đầu Chân dài Giá trị cao","lastmod":"2026-07-11","duration":"52:33","url":"/play/19161601.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNmJjNDVmOGYxYjkzYmU2ZjgyODU3ZjIzYjNhNGY3ZGIuanBn.cache","vod_id":18949955,"title":"SNIS-717 Một gia đình đông con, gồm một người cha và chín người anh em trai, tất cả đều là đàn ông! Một cô em gái nhỏ dũng cảm chăm sóc cả gia đình.","lastmod":"2025-12-14","duration":"02:25:54","url":"/play/18949955.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYjg0YzY0ODAzODcxNzI2ZjIyNjg3NDVlZTVjZTJlMzUuanBn.cache","vod_id":19140724,"title":"Vớ đen, mông căng tròn, người phụ nữ dâm đãng và người bạn nam của cô ta đang say đắm quan hệ tình dục.","lastmod":"2026-01-29","duration":"02:11:23","url":"/play/19140724.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTExMTcvY2M2YjczMzRmZjFkYmJmMzE1MTE2ODI3YmM4NWI1MWUuanBn.cache","vod_id":19063074,"title":"Tôi vẫn yêu vợ tôi! Sau một thời gian dài gián đoạn, hai vợ chồng chúng tôi đã nối lại chuyện chăn gối... và như mong đợi, sự hòa hợp về thể xác của chúng tôi rất tuyệt vời, vì vậy chúng tôi tiếp tục tìm kiếm sự hòa hợp. Luna Tsukino MIAB-041","lastmod":"2025-12-14","duration":"02:30:26","url":"/play/19063074.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvNzMwM2Q0ZjhlNWIwYjdlYzE5ZThkNDYxM2E3MGRmNDcuanBn.cache","vod_id":19158059,"title":"Ba cô gái trẻ đeo kính, ba người phụ nữ trưởng thành và ba người phụ nữ đã kết hôn thuộc hàng thượng hạng: Amy, Chen Nianxin và Lemon Sister.","lastmod":"2026-05-14","duration":"17:28","url":"/play/19158059.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEwMjUvMTc4MjYyMzdkODUyZTQ2YzMyODRiNjM5MzAyNmU1ZjkuanBn.cache","vod_id":19059494,"title":"Cảnh ngoại tình bị quay lén, bà nội trợ ngực khủng thích khổ dâm, gia sư sa đọa thành giáo viên dạy dỗ con cái dâm đãng Hamabe Kanho JYMA_068","lastmod":"2025-10-24","duration":"02:02:05","url":"/play/19059494.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYzQ4ODE4NTZkZmMyZDg2ZGI2MTg1YTAyNThjM2E3ZGYuanBn.cache","vod_id":18987030,"title":"Góa phụ trẻ (2019) Bản chưa cắt","lastmod":"2025-12-14","duration":"01:30:09","url":"/play/18987030.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOTg1OGU3ZDFiZGU5OTA1MmExZmFlNjQxMTBjMzAyYTIuanBn.cache","vod_id":18991092,"title":"Một cô gái xinh đẹp, mảnh mai trong cảnh phòng tắm ướt át đầy quyến rũ, đang kéo quần lót xuống và xoa vùng kín trong khi uốn éo – vô cùng quyến rũ và cám dỗ; đừng bỏ lỡ!","lastmod":"2025-03-23","duration":"40:00","url":"/play/18991092.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOGM4ZDFjZjFhZWMxNGNkNzVjODA5MjUyMmU3ZWZlMTQuanBn.cache","vod_id":19025795,"title":"Người phụ nữ đã kết hôn mà tôi gọi điện trong VOSS155 hóa ra lại là cô giáo chủ nhiệm xinh đẹp ngày xưa của tôi. Cô ấy không thích tôi vì hồi đi học tôi là một học sinh dở, và bảng điểm của tôi toàn điểm 5.","lastmod":"2025-03-24","duration":"01:38:05","url":"/play/19025795.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly8xNTI2MDMwOXAudG9wLzIwMjYwMzE0L2NHb3NEOHM2LzEuanBn.cache","vod_id":19148397,"title":"Cô gái ngực phẳng liếm dương vật bạn trai và trêu chọc anh ta, khiến anh ta muốn cô ấy cưỡi lên người cô ấy trong khi cô ấy ở trên.","lastmod":"2026-03-15","duration":"01:38:57","url":"/play/19148397.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNWYyM2MzNDZmZDUyMTE4MjMxYmI5MGZjNzlhZjI1NzYuanBn.cache","vod_id":18961917,"title":"Người nổi tiếng trên mạng ☀️ Ảnh chất lượng cao là chìa khóa! Nữ sinh viên Trung Quốc nhiều lông đang du học, một cô gái gợi cảm đến bất ngờ [Nữ thần Mèo] buổi chụp ảnh riêng, Phần 3 - Không học hành chăm chỉ, sẵn sàng làm gái điếm cho người nước ngoài - vùng kín rậm rạp của cô ấy đã được cạo sạch.","lastmod":"2025-03-22","duration":"00:16:28","url":"/play/18961917.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOTllODQ5ZmU0ZTU5OTFmYWFmMzFiYjk2YmQ1MGQxMTEuanBn.cache","vod_id":19023099,"title":"HND722 Akase Naoko, một bà nội trợ ngực đầy đặn với thể chất nhạy cảm, dễ bị xuất tinh sớm và đạt cực khoái toàn thân, làm việc tại một cửa hàng sữa tắm tạo bọt cho phép xuất tinh không giới hạn.","lastmod":"2025-03-24","duration":"01:58:09","url":"/play/19023099.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA3MTEvMTJlZTJmZjViMzQ3Njg3NmNmN2RlYThiOTVlNWU0ZmEuanBn.cache","vod_id":19168077,"title":"Một cô gái làm nghề massage trẻ trung, xinh xắn đã bị một khách hàng cưỡng hiếp dã man.","lastmod":"2026-07-13","duration":"35:00","url":"/play/19168077.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvN2Q4MzYwMjE2ZjY5NzY4OThiNmRkODgzZTQ1MjhjZjEuanBn.cache","vod_id":18929551,"title":"Một cô gái mới xinh đẹp tóc đỏ với hình xăm con cá đang mặc nội y gợi cảm và quần lọt khe. Cô ấy hoàn toàn khỏa thân và đang tự chạm vào vùng kín của mình. Rất quyến rũ, đừng bỏ lỡ nếu bạn thích!","lastmod":"2025-12-14","duration":"00:30:31","url":"/play/18929551.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMDJhZWU3NmYyOGFmMjk3M2I5OWRiNWYxMzEyMWU3NzguanBn.cache","vod_id":18956211,"title":"Một cô nàng lẳng lơ gợi cảm trong bộ đồ lót và tất đen biểu diễn một điệu nhảy nóng bỏng và đầy đam mê để quyến rũ những người đàn ông hâm mộ. Cô ta rên rỉ và thở hổn hển khi liên tục đâm dương vật giả vào âm đạo, tiếng rên rỉ khoái lạc không ngừng. Thật là kích thích!","lastmod":"2025-12-14","duration":"00:25:06","url":"/play/18956211.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNjRhMGVjNDYxMWM4NDdiMDg4NGQ0MThiN2YxMDU2YWUuanBn.cache","vod_id":18925891,"title":"Nữ streamer nổi tiếng trở lại đầy ngoạn mục! [囍-Girls' Day Party] Ông trùm mại dâm Trùng Khánh dẫn đầu một nhóm lớn các cô gái trong buổi phát sóng trở lại, bao gồm tiếp viên hàng không, sinh viên và các cô gái từ những năm 2000 đến 90—có đủ mọi thứ cho mọi người, từ thân hình đầy đặn đến mảnh mai.","lastmod":"2025-12-14","duration":"04:07:49","url":"/play/18925891.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZTRiNjU4MTU2MDJmMmYyZmRkNmJjODIxYTgzZjM4ZDUuanBn.cache","vod_id":19026985,"title":"Một cô gái có kỹ năng tuyệt vời và đôi chân dài.","lastmod":"2025-03-29","duration":"35:33","url":"/play/19026985.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYjVjY2Y0NTg2ZDA4NTA4YWZlMmIzY2RmZjFhNWZjNDEuanBn.cache","vod_id":18942477,"title":"[S Yaqi] Một cô gái hạng sang đội mũ lưỡi trai dùng máy rung hình quả chuối để thủ dâm, mặc quần tất đen hở đáy và đưa ngón tay vào máy rung trong khi nó đang được đưa vào bên trong cô, khiến cô rên rỉ.","lastmod":"2025-12-14","duration":"04:58:26","url":"/play/18942477.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMjJlYjExOTY5OTI3NjljZTE3N2MzNWE3YzU0YTVmMDIuanBn.cache","vod_id":19152090,"title":"Một phụ nữ đã kết hôn, JUR-619, đã bị cưỡng hiếp tập thể bởi những kẻ đột nhập rình rập trong một cuộc tuần tra an ninh ban đêm.","lastmod":"2026-04-07","duration":"02:36:21","url":"/play/19152090.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvNzlmYjA2ODg2MGM4YzA2NTYyYzI1NGJkMTRmMzQwZWIuanBn.cache","vod_id":19164319,"title":"Contrating Bitch, Bitchy, Housewife, COS Bunny Girl Temptation, So Slutty!","lastmod":"2026-07-11","duration":"24:34","url":"/play/19164319.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNDY1MjVlYmEzNjM0YTkwYTFmYzdjNjFmYjliOGVjOTMuanBn.cache","vod_id":19020483,"title":"Một người phụ nữ bị ám ảnh bởi người vợ trẻ của mình, người có quá nhiều thời gian rảnh và ham muốn tình dục cao.","lastmod":"2025-03-24","duration":"01:59:38","url":"/play/19020483.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYzJhYTZmMzliMDAwYjRiZmEwY2VmNWFjOWZhMzI4ZDYuanBn.cache","vod_id":19001480,"title":"JUY-580 Người phụ nữ càng trông bình thường thì sự tương phản khi cô ta trở nên dâm đãng càng lớn. Một người phụ nữ 31 tuổi đã kết hôn, ngực lớn và mắt sáng (ước tính cỡ I) mà tôi gặp trên một ứng dụng hẹn hò.","lastmod":"2025-03-23","duration":"03:12:20","url":"/play/19001480.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZWM5ODQ3YjAwYTM0ZGRmOGMyMDMyNTUzNDczZjQxMWIuanBn.cache","vod_id":19000044,"title":"Cô gái xinh đẹp đã bị tên này tấn công và cưỡng hiếp.","lastmod":"2025-03-23","duration":"19:55","url":"/play/19000044.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYzcwZTU5ZjczNzZhYzJlN2E3OTc1NDhjZjczNzVkMjQuanBn.cache","vod_id":19024095,"title":"MD0112_Trang web chính thức của Ai Qiu, chuyên về chơi mạt chược, đánh Top-Pong, Bottom-Kong, tự rút bài, chơi một bộ bài duy nhất.","lastmod":"2025-03-24","duration":"27:05","url":"/play/19024095.html"}]},
videoTitle: 'Cô vợ trẻ và em gái có sức chịu đựng tuyệt vời và đời sống tình dục nồng nhiệt.',
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=/`;
}
};
}