Ladyboy AVDEBUT mới thâm nhập, cực khoái đầu tiên trong đời Momona Mikami 三神ももなグローリークエスト","lastmod":"2026-07-11","duration":"02:54:28","url":"/play/19165948.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA1MDYvNzI5MzU4NGM5NmNiNmQ3MGYyY2RhYmRmMzc4Njg2MDAuanBn.cache","vod_id":19032290,"title":"200GANA-2812 Cảnh nóng nhẹ nhàng, lần đầu tiên quay phim. Năm 2020, sau khi tan làm, tôi đã tiếp cận một người đẹp mảnh mai, có phong cách độc đáo ở Ikebukuro!","lastmod":"2025-05-06","duration":"01:09:43","url":"/play/19032290.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMDgxNjMxZjg1ZTg5ZGFiMzM0NGY0MDQzYjRmNGJhM2QuanBn.cache","vod_id":18974896,"title":"LLAN-002 Nữ sinh viên đại học. Còn trinh. Một cảm giác mới lạ... Tâm trí tôi đang bị khuấy động bởi một cảm xúc mới lần đầu tiên... Tôi nghĩ mình thích phụ nữ...","lastmod":"2025-03-23","duration":"01:45:32","url":"/play/18974896.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNGYyYTMzYTE0N2MwZDc1Y2Q5OWFlMGFlODk3YWYxMjQuanBn.cache","vod_id":18976030,"title":"LZDQ-019 Một cuộc quan hệ tình dục đồng tính nữ với người bạn thân nhất của tôi! Buổi hẹn hò đầu tiên tại nhà của một cô gái nhút nhát, được nuông chiều và một cô gái ngây thơ - Chiyo Chigusa, Kurumi Shiki","lastmod":"2025-12-14","duration":"02:11:52","url":"/play/18976030.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvODE5YzI0NmQ2NjdkZmEzYzVkODI0MmJjNzViMDNlZTIuanBn.cache","vod_id":19157479,"title":"Cú đánh đầu tiên: Kỷ lục về những người phụ nữ đã lập gia đình - Horiguchi Sayuri (センタービレッジ)","lastmod":"2026-05-10","duration":"01:57:19","url":"/play/19157479.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA1MjcvYmY5MDgzOWEyYWE5OTkzYjU1NjljODhhNmEzZDdiNzIuanBn.cache","vod_id":19035331,"title":"HMN371IQ140! Thông minh, trẻ trung, quyến rũ, trí tuệ, dáng người mảnh mai, sinh viên quay lại trường, lần đầu tiên trải nghiệm xuất tinh nguyên thủy.","lastmod":"2025-05-27","duration":"02:30:48","url":"/play/19035331.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZDZjMWFmMzFmZjJmZDhkNzdlYzI0ZWM5MDI5YjRkMmMuanBn.cache","vod_id":18994049,"title":"SIRO-3886 [Lần Quay Đầu Tiên] Ứng Dụng AV Trực Tuyến → Trải Nghiệm Quay Phim AV 1016 Một cô gái chưa từng chụp ảnh tự sướng với bạn trai trước đây đang rất hồi hộp về lần quay phim đầu tiên! Một cô gái xinh đẹp cao 170cm với đôi chân thon dài, những cử động hơi vụng về của cô ấy tạo nên một sự tương phản quyến rũ! 1","lastmod":"2025-12-14","duration":"57:38","url":"/play/18994049.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA0MTgvMTIzMWRjMGZmM2ZhMzI5ODljYmU0MWI1NGQ1YjU2ZjEuanBn.cache","vod_id":19029811,"title":"Nữ thủ lĩnh độc ác thức tỉnh sức mạnh của mình trong tập đầu tiên.","lastmod":"2025-04-18","duration":"29:49","url":"/play/19029811.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNGJjM2Q4YTQ4MDAxNThhYzVjYzI1NGY5ZDAyNjMxMTYuanBn.cache","vod_id":18972149,"title":"FC2PPV 3290221 Cô gái được chọn, mảnh mai, chân dài quyến rũ JD. Cô gái nghiêm túc này xuất thân từ một gia đình nha sĩ và đã trải qua lần xuất tinh đầu tiên trong đời hai lần liên tiếp!","lastmod":"2025-03-23","duration":"02:14:46","url":"/play/18972149.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA0MDIvMDU0Zjg5MDc4NGE3MDllMjljNmJjNTAwYTMxOTZiMTIuanBn.cache","vod_id":19027487,"title":"Bạn gái đầu tiên và bạn thời thơ ấu của tôi đã từng quan hệ tình dục. Arai Rima (MIAA-774-C).","lastmod":"2025-04-02","duration":"01:58:27","url":"/play/19027487.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvODU2NDgwZDhlYzNlMGFjNjkwNDBjZjc1MzcxZTllYjAuanBn.cache","vod_id":18930853,"title":"ATOM-393_A Trơn trượt! Rầm! ? Và một màn thâm nhập mạnh mẽ! ? Quan hệ tình dục không mặc quần lót, cuộc thi cao bồi người, Phần 1, Tập 6","lastmod":"2025-12-14","duration":"00:20:00","url":"/play/18930853.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOWU3MDI4Y2MxMDJhYjg1ZDk5YTNlY2E1MzBmMzViMGQuanBn.cache","vod_id":18963886,"title":"200GANA-2800 Cực kỳ dịu nhẹ, lần đầu tiên. 1883 Mua trên JD.com ở Shibuya trên đường về nhà sau giờ làm! Một nữ diễn viên có vẻ ngoài trầm lặng nhưng lại ngoại tình sau lưng tôi.","lastmod":"2025-12-14","duration":"01:10:30","url":"/play/18963886.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOGUxOGJjYWYyZDNiZGQ5YzAyOGE1NGI1N2FmOWE4ZmQuanBn.cache","vod_id":18989207,"title":"200GANA-2236 Phim khiêu dâm nhẹ nhàng, lần đầu quay. 1440 Một nữ sinh viên đại học ngực cỡ G ở Shinjuku, không hài lòng với việc bạn trai xuất tinh sớm, đã trở nên kích thích đến mức chỉ cần vuốt ve bộ ngực đồ sộ của mình là quần lót đã ướt sũng trên ghế sofa! Khi nó được đưa vào âm đạo cực kỳ hẹp và dễ ướt của cô ấy, bộ ngực lớn của cô ấy rung lắc dữ dội và cô ấy rên rỉ! !! (0002).","lastmod":"2025-03-23","duration":"01:18:19","url":"/play/18989207.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA4MjgvYmM2YzQzM2NjNDkwYjYzOWVjMzdhMzg1Mjg5OWIyNmEuanBn.cache","vod_id":19048861,"title":"JUBE026 Cô hầu gái tóc hai bím nổi tiếng nhất tại một quán cà phê hầu gái nổi tiếng! Lần đầu tiên đi cùng bố.","lastmod":"2025-08-27","duration":"02:22:52","url":"/play/19048861.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNzMzM2UyMzkyNGM1MzhjM2I3NDI1NmNlN2E3MWFhNWIuanBn.cache","vod_id":19002857,"title":"\"Cảnh quay đầu tiên\" - Một cô gái hiện đại 18 tuổi trong sáng và đáng yêu tên là Pien ☆ Dễ thương đến nỗi phải đi vệ sinh.","lastmod":"2025-03-23","duration":"01:00:16","url":"/play/19002857.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOTU5YzQ3MjllOGJkNWI0NDNiMjlkYTkxNDE5MTJkZWIuanBn.cache","vod_id":18968216,"title":"FC2PPV 3232097 [Trước thềm ra mắt tác phẩm mới nhất của Erica] Lần đầu tiên Erica nuốt tinh dịch! Khuôn mặt xinh đẹp của cô ấy phủ đầy tinh dịch!","lastmod":"2025-12-14","duration":"00:39:16","url":"/play/18968216.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvZTcwYzA2ZDdjMmZmZTljMTgzYzg1MzgzYzgzYzBhZjUuanBn.cache","vod_id":19160188,"title":"Tôi muốn biết liệu em có cảm nhận được điều đó ngay cả khi đó không phải là người chồng yêu dấu của em... Trải nghiệm tình dục không chung thủy đầu tiên của một người vợ mảnh mai, tò mò.","lastmod":"2026-05-26","duration":"38:59","url":"/play/19160188.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZWZhZTNhZDgyNmJkZGI3MWUwMDdjMDNlZDljZWE2MWEuanBn.cache","vod_id":19015764,"title":"LUXU1082 Luxury TV1065 Một người phụ nữ xinh đẹp với vòng một khủng, thích đàn ông kiểu M! Đừng bỏ lỡ kỹ năng tuyệt vời và những lời chửi rủa tục tĩu của cô ấy, hoàn toàn khác với ấn tượng ban đầu của bạn!!","lastmod":"2025-03-24","duration":"01:01:37","url":"/play/19015764.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZDNmNThiMWY3ZjNhM2YwMjM5N2JiYmFjZjFhMWYyNWYuanBn.cache","vod_id":19012480,"title":"YMSR018P1 [Tập 1] Huấn luyện tình dục hậu môn của người phụ nữ đã kết hôn: Cực khoái ma quỷ hai lỗ - Bà nội trợ quê mùa hóa thân thành người khổ dâm trong 5 giờ (Loạn luân)","lastmod":"2025-03-24","duration":"01:50:17","url":"/play/19012480.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZmNmYjgzZjg4MDQ1N2U0YjQyMTI5ZjM5ZDVjOTNlZGYuanBn.cache","vod_id":18965304,"title":"FC2PPV 3200359 Như các bạn thấy, K-san vẫn còn trinh, một nữ sinh viên đại học 19 tuổi, lần đầu quan hệ tình dục của cô ấy là thâm nhập không dùng chất bôi trơn, xuất tinh, khóc lóc và la hét!","lastmod":"2025-12-14","duration":"01:33:19","url":"/play/18965304.html"}]},
videoTitle: '[milky] Tháp Etruscan, Tập 1: "Phù thủ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=/`;
}
};
}