Một cô nàng ngực khủng, mông bự, không lông khoe thân hình gợi cảm trên livestream, liên tục rên rỉ và thở hổn hển khi dùng đồ chơi tình dục cọ xát ngực và thọc sâu vào âm đạo. Cô ta thậm chí còn tiểu tiện trong lúc lên đỉnh. Những hình xăm gợi cảm của cô ta là điều tôi chưa từng thấy trước đây.
Gương ma thuật Hardcore: Da thịt ướt át và dính nhớp! Massage toàn thân bằng quần tất! Da không thể thở cho đến khi nghẹt thở và mê man! Tràn ngập chất bôi trơn, trải nghiệm sự kích thích tình dục. (Bão hòa Vire)","lastmod":"2026-07-11","duration":"04:20:06","url":"/play/19166101.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMGI4YTlkMzY2MTZkNTcyYjExYzg3Y2E5NTZiMGI3ZWMuanBn.cache","vod_id":18991899,"title":"Một nữ sinh đại học xinh đẹp tuyệt trần [cao 176cm, học sinh tiểu học] đã cởi áo ngực và để lộ ngực trần trong lớp học trong khi các bạn khác đang mải mê nghịch điện thoại. Trở về ký túc xá, cô kéo màn chống muỗi lên, cởi hết quần áo và để lộ vùng kín màu hồng. Cảnh tượng thực tế còn hấp dẫn hơn nữa!","lastmod":"2025-12-14","duration":"03:17:37","url":"/play/18991899.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYmU2ZTgwN2UyZDU1Y2Q3OWM4M2UyY2VkZDI5ODIwOWMuanBn.cache","vod_id":19002476,"title":"[Không kiểm duyệt][2 lần xuất tinh] Xuất tinh 〇 Học viện Nữ sinh, Khoa Văn học, năm thứ 2. Một nữ sinh trẻ tuổi giống Hashimoto 〇 Nai trải qua cơn co giật cương cứng phi thường giống như ngựa điện lần đầu tiên! [Phần sau đây có vẻ không liên quan và có thể là văn bản được dịch máy:] Mông bẩn - CD2","lastmod":"2025-03-23","duration":"08:03","url":"/play/19002476.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA4MDQvNDlhOGFmOWE0OWFiODViMmYyODQzNmQxNjUxOWM4YWMuanBn.cache","vod_id":19045275,"title":"MKMP620: Tiểu không tự chủ và xuất tinh sớm; Sự sỉ nhục đối với một nữ sếp có năng lực sau khi chuyển công tác; Cực khoái sau khi dùng thuốc lợi tiểu.","lastmod":"2025-08-03","duration":"01:55:50","url":"/play/19045275.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZjRkY2YyMjI4YmEwYjc4NmQ2ZTY3OTRhNzkzYjFhYTEuanBn.cache","vod_id":19140210,"title":"Cô nàng mảnh mai, ngực khủng, đi giày cao gót, giọng nói dâm đãng, tương tác tán tỉnh, cận cảnh cảnh cô ta dang rộng chân và trêu chọc vùng kín đầy lông.","lastmod":"2026-01-25","duration":"31:22","url":"/play/19140210.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZmI4ZWQzYzM2MTVmYTRmMzBiM2NlYmE4OWZkYWVkNDguanBn.cache","vod_id":18977722,"title":"200GANA-1510 Một buổi quay phim softcore nghiêm túc, lần đầu tiên tôi đóng phim. 978 (Shiina Kanon)","lastmod":"2025-03-23","duration":"00:58:54","url":"/play/18977722.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYjIyMmYyYTgyOTQ4NjAxOTAyODE1NjZiODI4NDFjYjIuanBn.cache","vod_id":18923959,"title":"Một cô gái xinh đẹp, ngọt ngào và dễ thương khoe thân hình đã cạo sạch lông và tự vuốt ve cơ thể mình cận cảnh. Vùng kín không lông của cô ấy vô cùng quyến rũ, và hành động tự vuốt ve cơ thể càng làm tăng thêm sự gợi cảm. Đừng bỏ lỡ nếu bạn thích!","lastmod":"2025-12-14","duration":"00:21:14","url":"/play/18923959.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZGU0OWY3MDA4ZTBlNmEwODhkZjhiYWQyNzg0MjA3ZjIuanBn.cache","vod_id":19143383,"title":"Cực kỳ hiếm gặp, gây sốc và thú vị, đó là quan hệ tình dục ở nơi công cộng và bị quay phim lén lút.","lastmod":"2026-02-14","duration":"02:05:09","url":"/play/19143383.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMmVkZjg1Yzc5NTliZGIyM2I0NjY4YTlkMmYxNGVjYTMuanBn.cache","vod_id":19148769,"title":"Khóa học hẹn hò cao cấp kéo dài bảy ngày với các nữ thần gái gọi.","lastmod":"2026-03-17","duration":"59:16","url":"/play/19148769.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYmNjOWE2MTA0ZDUyZmNhYjljOGMwNDYyYjYyOGEwNmIuanBn.cache","vod_id":18958514,"title":"\"Sự tương phản tột cùng: Cô nàng lẳng lơ tiết lộ bí mật\" Một tiếp viên hàng không cao cấp, ham vật chất của một hãng hàng không nào đó có sức khỏe kém và bị chụp ảnh lén lút. Trên máy bay, cô ấy là một nữ thần cao cấp, dịu dàng và thanh lịch, nhưng khi ở riêng, cô ấy trở thành nô lệ của người tình giàu có và tham gia vào đủ loại hoạt động tình dục không đáy (43).","lastmod":"2025-12-14","duration":"00:01:28","url":"/play/18958514.html"}]},
videoTitle: 'Một cô nàng ngực khủng, mông bự, không lông khoe thân hình gợi cảm trên livestream, liên tục rên rỉ và thở hổn hển khi dùng đồ chơi tình dục cọ xát ngực và thọc sâu vào âm đạo. Cô ta thậm chí còn tiểu tiện trong lúc lên đỉnh. Những hình xăm gợi cảm của cô ta là điều tôi chưa từng thấy trước đây.',
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=/`;
}
};
}