Nụ hôn sâu bất ngờ và vuốt ve bộ phận sinh dục, sự đối xử thô bạo, và trải nghiệm giống như cực khoái dành cho một cô gái siêu M, người xuất tinh không được phép trên xe buýt đêm. Natural High","lastmod":"2026-07-11","duration":"02:52:50","url":"/play/19165606.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTExMjAvZjc5YTgzM2MyMmIwZDNjYzQwNGVjZjgzNmZmMzY4ZGUuanBn.cache","vod_id":19063598,"title":"Pan Jinlian, một cô nàng ngực khủng 36D, có một cuộc gặp gỡ nồng cháy với một anh chàng gầy gò.","lastmod":"2025-12-14","duration":"58:43","url":"/play/19063598.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNmU5MTlkZWZlZTMyMjkxMWNkMTEzODZmNTNjNDk5MDYuanBn.cache","vod_id":19156863,"title":"Xiao Chen Tou Xing tuyển chọn và sắp xếp lịch hẹn với những người mẫu hạng nhất, sở hữu gương mặt người nổi tiếng đình đám.","lastmod":"2026-05-06","duration":"48:40","url":"/play/19156863.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA1MjAvMTc5NWQ0NjZiMTA4ZWJiNDBhNzI5MTRjNTMzZDJlOGMuanBn.cache","vod_id":19034458,"title":"Nhỏ nhắn, dễ thương, tính cách tuyệt vời, luôn tươi cười, và anh ấy thúc mạnh mẽ, khiến cô gái cảm thấy vô cùng sung sướng, tiếng rên rỉ của cô ấy thật tuyệt vời.","lastmod":"2025-05-20","duration":"31:05","url":"/play/19034458.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYTI2NWEyNzg4NTE0OTg1NmQwZTNhZTgzN2M0NTU1MWIuanBn.cache","vod_id":19141585,"title":"Vớ đen, ngực thon thả, gái điếm lẳng lơ, giọng nói dâm đãng, tương tác tán tỉnh, điệu nhảy gợi cảm, cận cảnh cảnh cô ta chơi đùa với ngực và dạng chân, dùng đạo cụ để kích thích vùng kín.","lastmod":"2026-02-04","duration":"22:38","url":"/play/19141585.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYTBjNGE3ZDQxYWE2NzRjOGMyZGFhZWZhMWZmMjk4Y2UuanBn.cache","vod_id":18943183,"title":"Những cô gái ở trường nghệ thuật thật gợi cảm, quyến rũ, và có lông mu dày, đen nhánh; họ vô cùng hấp dẫn và khiến bạn phải chảy nước dãi. Họ rất đam mê, liếm và mút dương vật, rên rỉ và hưng phấn. (1080P HD)","lastmod":"2025-03-22","duration":"00:56:56","url":"/play/18943183.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZGUyYWMxMzM2ODM5MDQ4ZTAyYjlkZDZhNDI2ZGVkNTEuanBn.cache","vod_id":19005546,"title":"Những cách nhục nhã để huấn luyện âm đạo của một gái điếm","lastmod":"2025-03-23","duration":"16:36","url":"/play/19005546.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYWRmZTE2NzBhMzNmYjk3MjQ4MmIxYzRjZTIxMTBmZGUuanBn.cache","vod_id":18928411,"title":"Một người phụ nữ trung niên lẳng lơ đến một tiệm massage danh tiếng và trêu chọc một anh chàng nhân viên massage trẻ tuổi, đẹp trai. Anh ta cầm lấy dương vật to lớn, không được bảo vệ của cô ta và thô bạo xâm nhập vào cô.","lastmod":"2025-12-14","duration":"00:36:43","url":"/play/18928411.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYTc2MTNjYmJmMmUyNzJiODE2NjE0OGZlNWM5YmNmMDAuanBn.cache","vod_id":18955221,"title":"[Mới nhất❤️Rò rỉ cảnh nóng] Cảnh nóng riêng tư hiếm hoi của \"chuyên gia tán tỉnh\" 'Nanjuzi' - Quan hệ tình dục với một nữ sinh trung học ngực khủng, tinh nghịch với âm đạo khít, xuất tinh trực tiếp ở độ phân giải cao 720P phiên bản gốc","lastmod":"2025-03-22","duration":"00:43:21","url":"/play/18955221.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZDZkZjc1NDA4NDU3YTgwM2I1NzY3MzdiNjc5NjY4MmQuanBn.cache","vod_id":18965973,"title":"Cảnh báo năng lượng cao phía trước! Một người nổi tiếng hàng đầu với hàng triệu người theo dõi, được biết đến với những động tác xoạc chân và vẻ ngoài tuyệt đẹp, là một gái gọi cao cấp, CDTS [Xiao Qiao], người đã để lộ khuôn mặt của mình trong những bức ảnh riêng tư. Cô ấy được mô tả là thú cưng tình dục của một người giàu có (3).","lastmod":"2025-03-22","duration":"00:02:20","url":"/play/18965973.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvODdiMzI2ODhiYmY5NGJhZGRjZTc2MjkyNjc0ZDRjY2MuanBn.cache","vod_id":18930685,"title":"Một cô gái trẻ gợi cảm, lẳng lơ và người tình của cô ấy đang có những giây phút tuyệt vời tại nhà, với màn quan hệ bằng miệng, tư thế doggy style, và cô ấy nằm trên giường để bị một dương vật to lớn đâm mạnh, rồi anh ta xuất tinh vào bên trong cô ấy.","lastmod":"2025-12-14","duration":"00:25:57","url":"/play/18930685.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/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYzM3MTY3Y2M2NmYwMmRhMTJlYzhkNDZmMDA5N2Q0YzcuanBn.cache","vod_id":18935379,"title":"Một người mẫu trẻ quyến rũ đến từ Quảng Châu, từng đoạt danh hiệu Á quân cuộc thi Hoa hậu Du lịch Hải Nam năm 1995, làm nghề gái gọi và bị một người đàn ông giàu có dụ dỗ đến khách sạn với giá cao để bị cưỡng hiếp dã man. Cô ấy sở hữu thân hình tuyệt đẹp và nhan sắc cuốn hút!","lastmod":"2025-12-14","duration":"00:31:01","url":"/play/18935379.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYzA5NDk4Nzk1ZTY0NDNjZTU4ZWRjZWJjY2FjNTU5OTguanBn.cache","vod_id":19151027,"title":"Một người hâm mộ cuồng nhiệt thường tặng những phần thưởng hậu hĩnh cho người hâm mộ của mình, đặc biệt nhắm vào các nữ thần.","lastmod":"2026-03-31","duration":"01:11:13","url":"/play/19151027.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMDdkNTM2NjhmYzQwNmZhNDZkYjMyZDVkZjA4MTY3MGUuanBn.cache","vod_id":18990344,"title":"Cô gái tóc bạc, ngực khủng, giá trị cao tham gia màn quan hệ tình dục tập thể; ngồi trên ghế với tất đen và giày cao gót, sau đó bị quan hệ mãnh liệt trước khi chơi đùa trên giường; rất quyến rũ, đừng bỏ lỡ nếu bạn thích!","lastmod":"2025-12-14","duration":"01:50:09","url":"/play/18990344.html"}]},
videoTitle: 'Thuê gái điếm và ép chúng liếm âm đạo.',
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=/`;
}
};
}