Legal Lolita Super Tender Schoolgirl Beautiful Legs and Curvy Buttocks are Really Tender","lastmod":"2026-07-11","duration":"01:47:43","url":"/play/19165484.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNTlkMDg2YTVmMWNkYzhiNTQyYTJiMmFmYjE5YTM3NTkuanBn.cache","vod_id":18955981,"title":"Nổi tiếng ✅ Người nổi tiếng trên mạng ✅ Quay phim riêng】Cô phù thủy nhỏ ngây thơ và trong sáng luôn thay đổi 【nụ cười】Xem thêm cảnh quay riêng ~ Quấy rối tình dục và dạy dỗ Ziwei ~ Tương phản cực độ (1)","lastmod":"2025-12-14","duration":"00:00:52","url":"/play/18955981.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNTQ4OTE2NGEzMmZmMzUzYTcyOTE0MDY5MDIyY2QyN2IuanBn.cache","vod_id":19013241,"title":"ARM822: Sự khiêu khích quỷ quyệt của một cô gái nghệ sĩ.","lastmod":"2025-03-24","duration":"02:07:08","url":"/play/19013241.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMzFjNTQ0NGNhMWRjZjBmYTg5MDg3NTFhODRlNWFhMTMuanBn.cache","vod_id":18961216,"title":"FC2PPV 3181393 [Cumshot & Oral Double Shot] Bị địt mạnh với lỗ âm đạo đang mút dương vật!","lastmod":"2025-03-22","duration":"00:52:53","url":"/play/18961216.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMTYzN2EzZWI0ZTNlZjI1MTA0YTBiNzc2NTM4YTRlZGMuanBn.cache","vod_id":18993141,"title":"MIDE-679 Lần Cực Khoái Đầu Tiên! Phim tài liệu về một cô gái 19 tuổi với vòng một đồ sộ, cỡ J, trải nghiệm lần cực khoái đầu tiên: Ena Koume 1","lastmod":"2025-12-14","duration":"02:29:13","url":"/play/18993141.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYjYzZjM1YjM1NzFiZmVkOTcxNmRjOTAyMDZiN2VkMWYuanBn.cache","vod_id":18935076,"title":"DRC-005 Khoảnh khắc cô ấy thay bộ đồng phục. Điểm nổi bật 01","lastmod":"2025-12-14","duration":"02:05:00","url":"/play/18935076.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYzhkMTc2YjA3MzgzNTQ1MjNlNmZkYzEyOTUzMDg5ZTcuanBn.cache","vod_id":18973560,"title":"KAMEF-026 Sách ảnh Cosplay đặc biệt chụp ảnh cá nhân Rico (21) Tệp KAMEKO ĐEN của Machida Lens.26 Một thần tượng ảnh người đẹp cỡ nhỏ với thân hình hoàn hảo","lastmod":"2025-12-14","duration":"01:42:39","url":"/play/18973560.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MTcvMjMwNDFkZGQ2NjgzNTZiYmE2Yjg3MDU4NmY4N2U2YWMuanBn.cache","vod_id":19052895,"title":"KTRA692 Sách tranh cô gái xinh đẹp ngực lớn 4 giờ","lastmod":"2025-09-16","duration":"04:04:10","url":"/play/19052895.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYTAxNDFjNjQ1YjI3ZWM4OWFiNGVkZTFkYmVhMTUxZTEuanBn.cache","vod_id":19014677,"title":"CAWD005 Một cô gái lai xinh đẹp chưa từng trải nghiệm cực khoái bị ép phải đạt cực khoái hết lần này đến lần khác. Trong một loạt các cảnh quan hệ tình dục dồn dập, cô ấy lần đầu tiên trải nghiệm một khía cạnh khác của cực khoái. Ayami Shiono.","lastmod":"2025-03-24","duration":"02:28:33","url":"/play/19014677.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEwMjUvNDZiZjdmZDRkNDkyNDNiMzcxMGU2NzQ5MTNkY2E1NTAuanBn.cache","vod_id":19059474,"title":"Chèn OK! ? Mirai Nakamaru, một phụ nữ trẻ đẹp đang tìm kiếm sự trẻ hóa, là một hình mẫu thẩm mỹ nam. AMBI_199","lastmod":"2025-10-24","duration":"01:58:00","url":"/play/19059474.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMGE3Yzg3MzdiNmU3YjM3MmI1YTJmMWY4ZmFlOTBjNjcuanBn.cache","vod_id":18964174,"title":"BBAN-407 Một cô gái trong sáng và xinh đẹp đến từ vùng quê, chán nản đến tột cùng, đã giải phóng những ham muốn tình dục bị kìm nén bấy lâu và đắm chìm trong một cuộc ái ân đồng tính nữ đầy mồ hôi - Hanakotone, Tachibana Hinano","lastmod":"2025-12-14","duration":"02:00:38","url":"/play/18964174.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNWE2MzU2MDZiY2EyMmM2MzQ5YjMxMmUyODM1ZDA4N2IuanBn.cache","vod_id":18947232,"title":"Người nổi tiếng mới nhất trên Weibo và Twitter, một cô gái trẻ trung và ngây thơ với thân hình giống hổ trắng, [Tiên Nữ Hương Hoa Anh Đào M], phong cách Lolita dễ thương và thuần khiết, chân trần, dương vật trong suốt, tưởng tượng về việc bị cha mình cưỡng hiếp, ảnh khiêu dâm, 74P, video 2V2.","lastmod":"2025-03-22","duration":"00:09:00","url":"/play/18947232.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZjllMzFkNDg5YTNjMjdjNzZkOTNmYjA3MmZlZjBhYjAuanBn.cache","vod_id":18978166,"title":"BAZX-366 Quan hệ tình dục tức thì mọi lúc, mọi nơi! Tuyển chọn các dịch vụ SP của những cô hầu gái xinh đẹp (4 giờ)","lastmod":"2025-03-23","duration":"03:59:52","url":"/play/18978166.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA4MjYvOThkZTg1MjMzMmJhODEzNzBmZDAwMmYwYWNjNTI3YjQuanBn.cache","vod_id":19048573,"title":"Các học sinh trong bộ đồng phục đã được khen ngợi vì những tư thế tạo dáng đa dạng trong suốt bài tập thể dục.","lastmod":"2025-08-26","duration":"52:05","url":"/play/19048573.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNmQxYTdkYTRiNjIxNDRmNjAzYjkyNDk4MjIxY2RkNjcuanBn.cache","vod_id":19138997,"title":"Giờ tôi chỉ là một gái gọi cao cấp, huyền thoại, chân dài miên man, ngực khủng.","lastmod":"2026-01-18","duration":"28:16","url":"/play/19138997.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MTEvNGM3ZjJkZjc0YjUxNTViMzMxYWI3OTlkNWE1YmI1MzYuanBn.cache","vod_id":19051960,"title":"Ảnh ghép khuôn mặt của Triệu Kim Mai, cô gái dễ thương và xinh đẹp 2, được tạo bằng AI.","lastmod":"2025-09-10","duration":"08:55","url":"/play/19051960.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZTFiMWI4NDNhMzdiOWIzZWMyOGMyZWIzZWQ2NGU2MmEuanBn.cache","vod_id":18991935,"title":"326SPOR-014 [Cô gái thể thao] Một video từ góc nhìn của một cô gái thể thao, kể về câu chuyện một cô gái bắt đầu chơi golf sau khi được một khách hàng lớn mua lại ☆ Ru-chan, người làm việc tại một hộp đêm ở Akasaka, có vùng kín cực kỳ nhạy cảm!! 1","lastmod":"2025-12-14","duration":"01:12:34","url":"/play/18991935.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMGJiMDRmODJlMTY1MmNiOGZkNmNmNzFlMDE5NzRmOTMuanBn.cache","vod_id":18993822,"title":"STARS-074 Phát triển quá mức (Cô gái khoa học) Tư thế ngồi đè mặt, bóp mông to Ichikawa Masami 1","lastmod":"2025-03-23","duration":"01:59:35","url":"/play/18993822.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMzg4YTUwNWE2NzNiOTc5OTk0NzAzNjg4MDQ2ODUwZTAuanBn.cache","vod_id":19022972,"title":"HMN416C Kẻ quấy rối tôi trên tàu hồi còn là sinh viên đã tái hôn với mẹ tôi—từ ngày đó trở đi, ngày nào tôi cũng phải nghe bà ta quấy rối, mặc đồng phục và bị bà ta xâm hại.","lastmod":"2025-03-24","duration":"01:56:48","url":"/play/19022972.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZjlhMzYyYjQ4YjE5YTdjYmZhODUxZjU3OTY0MzEyZjkuanBn.cache","vod_id":18965923,"title":"Aoi Sora, với vẻ ngoài xinh đẹp, đôi tất đen quyến rũ và bộ đồng phục gợi cảm, phục vụ dương vật to lớn của chàng trai trẻ, nuốt trọn và bị người anh trai làm tình cho đến khi cô ta mất hết ý thức, ở nhiều tư thế và địa điểm khác nhau, cô ta thật dâm đãng.","lastmod":"2025-03-22","duration":"02:04:52","url":"/play/18965923.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA2MjgvMTc0MTY1NTkyYjEwYWY5YTMyN2RmNGNmMjc2YTZjYzIuanBn.cache","vod_id":19040366,"title":"KTRA717 mang lại khả năng xuất tinh suốt 24 giờ cho những cô gái ngoan ngoãn và thích chịu đau.","lastmod":"2025-06-27","duration":"04:04:40","url":"/play/19040366.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA4MjAvYjU5MWU4MGM4MjE2ZmJiNjZhYmY1ZDQ1NzJjZTMyNDYuanBn.cache","vod_id":19048042,"title":"[Cấp độ 3] Quyến rũ một cô gái xinh đẹp bỏ nhà đi.","lastmod":"2025-08-19","duration":"31:38","url":"/play/19048042.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZjI5NzI5YThiMWU2YmNkZGQ3NDE2OGQ5YTk1OGRhODMuanBn.cache","vod_id":18949696,"title":"APNS-077 Cô gái Miyama bị ép thụ tinh: Mayu Sato, Yuka Shirai","lastmod":"2025-03-22","duration":"01:58:37","url":"/play/18949696.html"}]},
videoTitle: 'OKP-052 Quần tất thượng hạng, Kanon, đồng phục Nakajo, đôi chân xinh đẹp của cô bé loli được bao bọc trong quần tấ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=/`;
}
};
}