2600 cô gái hẹn hò trực tuyến, mắt to, da trắng, dịu dàng nhưng quyến rũ, nâng đôi chân trắng ngần như ngọc và mạnh mẽ chuyển động, đôi mắt long lanh nước mắt.
30 ngày sau khi ra mắt phim AV… Sự trả thù cuối cùng của tôi dành cho người bạn trai bội bạc là lần đầu tiên tôi quan hệ tình dục không dùng bao cao su. Tsukino Kaede Hana Tsukino Fuwari MOODYZ","lastmod":"2026-07-11","duration":"","url":"/play/19206637.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA2MjUvM2ExYjk3MWU4MmY5MmJkOWMxZmJhNjVlMTdjMWUwMDMuanBn.cache","vod_id":19204898,"title":"Ảnh chụp đường phố, những khoảnh khắc đời thường của một cô gái trẻ xinh đẹp tuyệt trần với đôi chân dài miên man, mặc nội y màu đen.","lastmod":"2026-06-24","duration":"0:01:02","url":"/play/19204898.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYjhiYjgxZGU1YzIyMjk4NGY2N2QwOTdjMzU0MjA2MTQuanBn.cache","vod_id":19035273,"title":"Câu chuyện trang bìa về hẹn hò trực tuyến: một bà nội trợ đứng đắn trong bộ đồng phục chưa bao giờ được quan hệ tình dục ở nhiều tư thế đến thế.","lastmod":"2025-03-26","duration":"0:21:30","url":"/play/19035273.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZmRhNzk5MWQzMzNiN2Q4MzVkODVhNjU4ZjRlMDRjNzIuanBn.cache","vod_id":19080268,"title":"Tin nóng trên Douyin: Bảy video nhạy cảm của Trương Kim Vũ đã bị rò rỉ. Cô ấy thực sự rất xinh đẹp, và cô ấy hét rất to khi bị tấn công tình dục.","lastmod":"2025-03-26","duration":"0:10:04","url":"/play/19080268.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMTI4ZTE0ZGY1NzI2N2Q1ZGU4OTViN2FlMzgyOTlmMzUuanBn.cache","vod_id":19180007,"title":"Một cô gái trẻ, xinh đẹp với vòng một đầy đặn và bạn trai của cô đã bí mật sống chung mà không cho bố mẹ biết, và các đoạn băng ghi hình cảnh quan hệ tình dục của họ đã bị rò rỉ trên mạng.","lastmod":"2026-02-12","duration":"0:12:00","url":"/play/19180007.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYjcxYmQ0ODlmYjdiOGJkYTBiMGU2OWFlNjdhZjJmZDcuanBn.cache","vod_id":19082626,"title":"Tôi đón chào buổi sáng cùng chị gái mình, người cực kỳ thích chuyện chăn gối, tại một khách sạn ngoại ô. (Phim tài liệu 24 giờ - Minami Aizawa)","lastmod":"2025-03-26","duration":"1:59:58","url":"/play/19082626.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZjU1ZTM4YzcyZWQ0NWQ3YzdhODEyNGFjNmZjNmE5NGQuanBn.cache","vod_id":19032469,"title":"Hãy lộ diện đi!! Dù sao thì đứa bé này cũng dễ thương quá!!! Nếu anh đang nhìn chằm chằm vào tôi, nếu anh là đàn ông, thì đó là Ikorou! Được đoàn tụ với cô bé rồi—đôi mắt của cô bé tuyệt đẹp và cô bé quá đáng yêu!","lastmod":"2025-03-26","duration":"0:42:35","url":"/play/19032469.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvODFhZWYxOGU5MjJmYjA5M2M0ODY2YzU5ZmUzNDA4MDIuanBn.cache","vod_id":19198121,"title":"Cô gái tóc ngắn, mắt to xinh đẹp chơi PUBG, cao ráo, nhỏ nhắn với vòng một nhỏ, vùng kín hồng hào và mềm mại, ở tư thế trên, hoàn toàn tự động.","lastmod":"2026-05-10","duration":"0:04:50","url":"/play/19198121.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYWY5NmM0ZGJiNzBmOGQ0MmVkMzA5YWQzZTllYzVmYjcuanBn.cache","vod_id":19113011,"title":"Cô gái xinh đẹp, ngực khủng, da trắng đang quan hệ tình dục với bạn tình nam, bao gồm cả màn oral sex sâu, tư thế cưỡi và nhấp nhô, và cuối cùng là xuất tinh bên trong cô ấy trong phòng tắm. Vô cùng hấp dẫn, đừng bỏ lỡ nếu bạn thích!","lastmod":"2025-03-26","duration":"0:55:09","url":"/play/19113011.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly9zYnp5dHBpbWc0LmNvbTozNTE5L3VwbG9hZC92b2QvMjAyNjAyMjMtMS9iNTZjZjhkZDUyYTJlNjdiOGI0MGM0YjczYzM3N2ZmMS5qcGc=.cache","vod_id":19182218,"title":"Ảnh chụp cận cảnh một cô gái phục vụ quán bar trông rất sành điệu trong nhà vệ sinh, nhưng cô ấy quên mang giấy vệ sinh và dùng tay để lau vùng kín.","lastmod":"2026-02-23","duration":"0:12:49","url":"/play/19182218.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMzY4MTc0NGU0ZGI2ZmZhOTBlYzkwODM4NzIwMTRlYjMuanBn.cache","vod_id":19176300,"title":"Lộ mặt, độ tương phản cao, ảnh cá nhân bị rò rỉ, ảnh tự sướng, cô sinh viên đại học trong sáng và xinh đẹp biến thành gái điếm trên giường với bộ ngực lớn, vòng ba săn chắc và bầu ngực không lông.","lastmod":"2026-01-25","duration":"0:06:02","url":"/play/19176300.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTExMDQvMWIzYWU3MWVhYTNmMzI0NTc4Y2E3NmExYjIxNGY3MWUuanBn.cache","vod_id":19162339,"title":"Một nữ sinh xinh đẹp và quyến rũ trong bộ đồng phục đã cám dỗ anh ta đến mức giữa chừng khi quan hệ tình dục, dương vật của anh ta bị mềm nhũn và anh ta chỉ có thể tự thủ dâm.","lastmod":"2025-11-03","duration":"0:14:07","url":"/play/19162339.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNTBhYmY2NmNjNTJmY2U4YjdkZDg5ZTcyOGRhZjBmZTkuanBn.cache","vod_id":19096653,"title":"Đi tán gái xinh ở quán karaoke, một cô nàng lẳng lơ dịu dàng nhưng quyến rũ!","lastmod":"2025-03-26","duration":"0:53:28","url":"/play/19096653.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvOWY4MWEwZWZhMGM2YjQ3YTUyMjBiZDYwZjljY2MxOTIuanBn.cache","vod_id":19189683,"title":"Toàn bộ quá trình một người em trai thất bại chuốc thuốc mê và phạm tội loạn luân với chị gái ruột của mình, sử dụng thuốc kích dục để quyến rũ người chị xinh đẹp, vô cùng kích thích và bao gồm cả quan hệ tình dục ngoài trời.","lastmod":"2026-03-30","duration":"1:16:23","url":"/play/19189683.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvN2IxNGM0MWNhOTJlZjVhN2ZiOGFkOTZiMTk4NzJkMTkuanBn.cache","vod_id":19122387,"title":"Một nữ streamer xinh đẹp và quyến rũ thu phí để khoe nhan sắc, thân hình tuyệt vời và màn tự thỏa mãn đầy đam mê, vô cùng hấp dẫn.","lastmod":"2025-03-26","duration":"0:57:14","url":"/play/19122387.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNTFiMjcxNGFlY2ZiOWE4ZWI0ZTc0MTIyNjYzNmMwZjguanBn.cache","vod_id":19193449,"title":"Ông Shen, một người đàn ông 91 tuổi, tối nay đã gặp hai cô gái trẻ để quan hệ tay ba, bao gồm quan hệ tình dục bằng miệng, liếm, cưỡi, thúc và giao hợp mạnh bạo.","lastmod":"2026-04-18","duration":"1:08:50","url":"/play/19193449.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNmY0MjQ3ZTAzZWViMWEwMjZjM2YyOGYwZjAzZGQ2OWUuanBn.cache","vod_id":19067344,"title":"Em gái xinh đẹp của bạn gái tôi 11","lastmod":"2025-03-26","duration":"1:20:17","url":"/play/19067344.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA1MTYvYjg5NmE1N2UxMmQ1OWJhMjlkMDMzMzEyMTEzMTQyMGMuanBn.cache","vod_id":19135071,"title":"Siêu nữ thần Miaomiao xinh đẹp hơn cả các ngôi sao và người nổi tiếng trên mạng, và show diễn của cô ấy vô cùng đắt đỏ.","lastmod":"2025-05-16","duration":"0:28:55","url":"/play/19135071.html"}]},
videoTitle: '2600 cô gái hẹn hò trực tuyến, mắt to, da trắng, dịu dàng nhưng quyến rũ, nâng đôi chân trắng ngần như ngọc và mạnh mẽ chuyển động, đôi mắt long lanh nước mắ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=/`;
}
};
}