Chuyên gia hướng dẫn bạn cách sử dụng nền tảng hẹn hò Việt Nam. Bạn chỉ cần bỏ ra vài trăm đô la để hẹn hò với hai cô gái xinh đẹp. Chất lượng gái gọi rất cao.","lastmod":"2026-07-11","duration":"01:59:03","url":"/play/19153999.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNWZlMjI4NDdkNjE1OWViMmE2ZTJmZDg4ODNiZGVkMjEuanBn.cache","vod_id":18960769,"title":"Đoạn video quay lén ghi lại cảnh một người phụ nữ xinh đẹp bị bạn trai tấn công tình dục trên giường ở nhiều tư thế khác nhau.","lastmod":"2025-03-28","duration":"30:01","url":"/play/18960769.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvN2UzNWVjOTIyNjg5MzgzNDNjNzMyNGIxYzE4ODBmZTMuanBn.cache","vod_id":18976307,"title":"FNEO-047 Gặp gỡ một người nghiệp dư ở Sendai, Thành phố Cây xanh! Tán tỉnh một nữ sinh viên đại học xinh đẹp đến từ Tohoku một cách nghiêm túc!","lastmod":"2025-03-28","duration":"03:49:28","url":"/play/18976307.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEwMTQvNmE1YjNhMjA4ZGU0MGYzOTg3OGIxNDFiMGZmMGQyMjAuanBn.cache","vod_id":19100657,"title":"Một cô gái tuổi teen đang trong thời kỳ động dục bị làm nhục nhiều lần và bị xuất tinh lên người trước mặt người khác thông qua một nụ hôn kiểu Pháp; lưỡi của họ quấn vào nhau. (Diễn viên không rõ danh tính NHDTB989)","lastmod":"2025-10-13","duration":"03:55:11","url":"/play/19100657.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNDQ2NmEwNDc1OGZmNTNmOTQwNDBjNzVhYTVlMGQ5NDEuanBn.cache","vod_id":19034617,"title":"[Chị gái] 1-25 (Hoàn chỉnh) Tôi bị bắt quả tang đang thủ dâm trong đồ lót của em gái! Sau một kế hoạch dài hơi, cuối cùng tôi cũng đã có được cô em gái xinh đẹp ấy sau khi uống rượu~ Và thế là cuộc sống BDSM của tôi bắt đầu~","lastmod":"2025-03-29","duration":"34:38","url":"/play/19034617.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MDUvZDIzNjhhNmFjZjhmNWJhZjUyYWM3NTI4MTIxYjdhYzguanBn.cache","vod_id":19093661,"title":"Một cô gái trẻ bị hai thanh niên điển trai đưa đến khách sạn và bị xâm hại tình dục một cách dã man.","lastmod":"2025-09-04","duration":"10:30","url":"/play/19093661.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMjYyOTY5M2RlNjc1YmRiZmYyNzE1MTE3OTMxYmIyZGMuanBn.cache","vod_id":18961912,"title":"Một cô gái mại dâm với vòng một cỡ I-cup thần thánh lang thang khắp thành phố, gặp nguy hiểm và liên tục phơi bày thân thể, buộc phải hành nghề mại dâm! Cô nuốt 11 lần tinh dịch và cuối cùng đạt cực khoái trên giường. (Hana-chan Himezaki Hana)","lastmod":"2025-03-28","duration":"02:56:04","url":"/play/18961912.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvYTlhZDg5ODM4NDcwOWQwZWUzYWFkMzVmZGNkNjJjNzYuanBn.cache","vod_id":19143009,"title":"Một nữ ngôi sao mạng tóc vàng bị khống chế, hai tay bị giữ chặt, mặt bị ấn vào miệng, và cô quỳ trên ghế sofa, nơi vòng mông tuyệt đẹp và âm đạo mềm mại của cô bị xâm hại một cách dã man.","lastmod":"2026-05-13","duration":"18:16","url":"/play/19143009.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNzQzNGY2ZTIwNTRkODdjMzY4OGQ4NzAyYjNiNzVmNmQuanBn.cache","vod_id":19031480,"title":"Sỉ nhục, hành hung, đeo máy rung – một buổi hẹn hò ở trung tâm thành phố! 9.","lastmod":"2025-03-29","duration":"02:17:34","url":"/play/19031480.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA1MDkvN2ZiOThmNzk4YTE1OTZhNzAwZjlkZTY1ODZjNjhkMmQuanBn.cache","vod_id":19072627,"title":"BF700 Tôi bị con của chị kế đưa đến một khách sạn tình yêu. Lúc đó tôi vẫn đang mặc đồng phục học sinh, và chúng tôi đã quan hệ tình dục với nhau.","lastmod":"2025-05-09","duration":"02:11:13","url":"/play/19072627.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMmVkZGVhOWQxYTQwYjM0YjU4MTY1NGYwYzRhMTJlZTAuanBn.cache","vod_id":19021198,"title":"Một bà nội trợ xinh đẹp, tóc ngắn, đứng đắn đã bị quay phim lén lút khi đang ngoại tình với ông chủ của mình!","lastmod":"2025-03-29","duration":"01:07:18","url":"/play/19021198.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA2MjMvY2FkMzI1MDVhNWUwOWU5ZDk5OTZiOTE3OWUzYmM4NTcuanBn.cache","vod_id":19151178,"title":"Trẻ trung, xinh đẹp, làn da trắng mịn, bộ ngực chảy xệ và vùng kín mềm mại, nhạy cảm dường như thách thức mọi sự chăm sóc đúng cách ○ Để thỏa mãn cơn thèm khát cơ thể tự nhiên này, Yue MOODYZ vô song","lastmod":"2026-06-22","duration":"01:59:28","url":"/play/19151178.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA3MTEvYjExMjkxN2RhMWZhZDZjMzFjMTUxOTdiMDdlNTNmYWQuanBn.cache","vod_id":19154703,"title":"Sinh viên đại học Li Qiaoqiao đến nhà giáo viên để học thêm; giáo viên đưa cô lên giường để dạy thêm.","lastmod":"2026-07-11","duration":"12:54","url":"/play/19154703.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZDlkNzUxMzhlOGFjNWU1MjlmNGExMThiZGEyODVkOGMuanBn.cache","vod_id":18984467,"title":"Vợ của bạn tôi mặc chiếc áo ngủ đẹp quá, sao anh ấy không còn xuất tinh nữa?","lastmod":"2025-03-28","duration":"58:33","url":"/play/18984467.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvM2E0ZDgwOWU3NDcwODhhMDVhN2Q3NDk1ZTMyNzFiZGMuanBn.cache","vod_id":19029812,"title":"Sếp nữ của tôi là một kẻ quấy rối tình dục; bà ta lợi dụng tôi để thỏa mãn nhu cầu tình dục của mình, nhưng tôi đã lật ngược tình thế bằng một nụ hôn kiểu Pháp đầy khao khát và màn kích thích nhũ hoa! (Trò chơi làm nhục kiểu M-fall)","lastmod":"2025-03-29","duration":"02:38:10","url":"/play/19029812.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMDQ3NzE2MjMwNTY2OWJkMTgzNDAyOWI0NjlhYzI5NzguanBn.cache","vod_id":19053189,"title":"1Pondo 111423_001 Một chiều 111423_001 3P với một cô gái cosplay xinh đẹp có thân hình tuyệt vời!","lastmod":"2025-03-29","duration":"57:49","url":"/play/19053189.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNTk5YjcwY2JhYWMzYWJlMDVhMmM0NjJiZjBhYmNhMzUuanBn.cache","vod_id":18977965,"title":"300NTK-320 Cơn sóng thần cá voi phun trào!! Mục tiêu của người chăm sóc nữ là chăm sóc người đàn ông lớn tuổi cho đến khi ông ấy qua đời! Một người bạn trai lớn tuổi nghiêm túc xuất hiện!! Gần như là chăm sóc! Sau khi họ làm nhục nhau bằng cách mặc tã, họ tham gia vào tư thế 69 xé toạc tã đôi, do đó gây ra một loạt các sự cố phun trào cá voi!! Một người chăm sóc cũng là một người phụ nữ phun trào nghiêm túc xuất hiện!! (0002)","lastmod":"2025-03-28","duration":"01:08:19","url":"/play/18977965.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZTcwM2RjNGQ5NmRjMzNjNTgzZTY0NDc0MDQ0MzdmMDkuanBn.cache","vod_id":19120011,"title":"Sự sỉ nhục về mặt y tế 1","lastmod":"2026-01-21","duration":"24:52","url":"/play/19120011.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNWYxMDNmMjI3MzRiYWM1ZTMxMjMzMjg0YjY3OWM0MDQuanBn.cache","vod_id":19063777,"title":"JUFE515C Hừm? Ở một nơi như thế này? Một con điếm chuyên dụ dỗ đàn ông bằng cách phô bày thân hình quyến rũ của mình và đuổi theo một người đàn ông ngoan ngoãn, ép buộc anh ta xuất tinh.","lastmod":"2025-03-29","duration":"02:25:02","url":"/play/19063777.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYjZlOTk1Y2RmMWZkZGE1NTE1ODY0Y2I0Y2Q4ZTc4YTguanBn.cache","vod_id":19134075,"title":"Một nữ sinh trẻ bị đưa đến một căn phòng thuê và bị nhiều thanh niên cưỡng hiếp bằng những lời lẽ ngon ngọt - cô ấy rất ngây thơ -","lastmod":"2026-03-31","duration":"15:55","url":"/play/19134075.html"}]},
videoTitle: 'Được ăn mặc lộng lẫy và đưa đến thành phố, cô ấy đã bị làm nhục và phơi bày thân phận.',
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=/`;
}
};
}