30 hari selepas penampilan sulung AV saya… Dendam terakhir saya terhadap teman lelaki saya yang tidak setia adalah kali pertama saya melakukan hubungan seks tanpa kondom. Tsukino Kaede Hana Tsukino Fuwari MOODYZ","lastmod":"2026-07-11","duration":"","url":"/play/19206637.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNzA2NTk4OTZkNzc2MjRiN2I5Mzc1Nzc4ZjQyN2ZlNDcuanBn.cache","vod_id":19177151,"title":"Kehidupan penuh ghairah You Wu, seorang influencer Douyin yang popular dengan 20,000 pengikut, dan teman lelakinya yang kaya, termasuk video lucah, telah dibocorkan selepas perpisahan mereka.","lastmod":"2026-01-30","duration":"0:02:06","url":"/play/19177151.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTExMTMvMGY0OTYwMmZiNWVjNGVkZjU5ZTA0Mzg1ZGM3NmJhM2MuanBn.cache","vod_id":19163996,"title":"Kehidupan seks sebenar seorang gadis muda yang cantik dipermainkan ~ Seks di mana dia tunduk sepenuhnya kepada lelaki yang lebih tua!! Yua-chan, seorang pelajar kolej wanita, Kawaei Yua, CHC_012","lastmod":"2025-11-12","duration":"1:27:59","url":"/play/19163996.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MjEvNGM5NmU5MzJmODkzOTg4YzEwOTcyYmUyMDM3MWY0MTkuanBn.cache","vod_id":19155540,"title":"Xiao Ma mencari kerja sambilan dengan seorang gadis kolej berusia 20 tahun yang mengalami pelbagai orgasme semasa melancap.","lastmod":"2025-09-20","duration":"0:28:58","url":"/play/19155540.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMTI4ZTE0ZGY1NzI2N2Q1ZGU4OTViN2FlMzgyOTlmMzUuanBn.cache","vod_id":19180007,"title":"Seorang wanita muda yang cantik dengan payudara besar dan teman lelakinya secara rahsia tinggal bersama tanpa pengetahuan ibu bapa mereka, dan pita seks mereka telah bocor dalam talian.","lastmod":"2026-02-12","duration":"0:12:00","url":"/play/19180007.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYmY1YWMyMzA1ZGVlZjRhNGE1MjNiZWU3N2Y1Yjg2NWMuanBn.cache","vod_id":19173657,"title":"Kebocoran KTV: Adegan seks tandas KTV - gadis memberi teman lelaki seks oral dan kemudian penembusan.","lastmod":"2026-01-13","duration":"0:04:13","url":"/play/19173657.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYjJiNTVmZGMyNzdiMzdmY2JjYzBiNzNkMjUxZGRlYTcuanBn.cache","vod_id":19032670,"title":"[4P Bersemangat] Gadis Gen Z berwajah bayi, berpayu dara besar, 3 wanita dan 1 lelaki bermain 4P.","lastmod":"2025-03-26","duration":"0:56:39","url":"/play/19032670.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA3MTAvYWZjNjdlMzA3ZTU4YjQ4MmFmYTJmNzIxMWQ3NDk4MDIuanBn.cache","vod_id":19207442,"title":"Kisah Pelajar Kolej Menceburi Industri Seks: Peraturan Pengarah yang Tidak Diucapkan","lastmod":"2026-07-11","duration":"","url":"/play/19207442.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMzY4MTc0NGU0ZGI2ZmZhOTBlYzkwODM4NzIwMTRlYjMuanBn.cache","vod_id":19176300,"title":"Wajah terdedah, kontras berkualiti tinggi, gambar peribadi yang bocor, swafoto, gadis kolej yang tulen dan cantik bertukar menjadi jalang di atas katil dengan payudara besar, punggung yang ceria, dan payudara yang tidak berbulu.","lastmod":"2026-01-25","duration":"0:06:02","url":"/play/19176300.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZjhiM2U0N2YzODI4ODUxZjBlOGY4NjAyODgwZjBhNmMuanBn.cache","vod_id":19116945,"title":"Seorang jelita kolej [junior setinggi 176cm] secara rahsia mendedahkan payudaranya di dalam kelas sementara rakan sekelasnya bermain telefon mereka, dengan kawan baiknya menutupinya. Kembali ke asrama, dia menarik kelambu, menanggalkan semua pakaiannya, mendedahkan vulva, dubur dan payudaranya yang muda dan merah jambu.","lastmod":"2025-03-26","duration":"3:10:45","url":"/play/19116945.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNGE0ZmU5ZTYxMDlkMmMwODE4OGY5YjdlNDAzZDMxNTMuanBn.cache","vod_id":19061062,"title":"[Ulasan HD] 083PPP-2588 Kakak ipar saya yang jelita sedang belajar di universiti seni, dan dia meminta saya untuk menjadi model bogelnya.","lastmod":"2025-03-26","duration":"1:55:15","url":"/play/19061062.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvN2IxNGM0MWNhOTJlZjVhN2ZiOGFkOTZiMTk4NzJkMTkuanBn.cache","vod_id":19122387,"title":"Seorang penstrim langsung yang tulen dan cantik mengenakan bayaran untuk mempamerkan penampilannya yang tinggi, susuk tubuh yang hebat, dan melancap yang bersemangat, yang sangat menggoda.","lastmod":"2025-03-26","duration":"0:57:14","url":"/play/19122387.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNTYzMGFhMGZlMjBhNjlkMzAyMDI5NzIwNDhmN2VjMTMuanBn.cache","vod_id":19083778,"title":"[Wanita Matang yang Menggoda] Seorang wanita matang berambut panjang dengan getaran seksi, melakukan hubungan seks dengan penuh ghairah dengan teman lelakinya yang lebih muda.","lastmod":"2025-03-26","duration":"1:19:47","url":"/play/19083778.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYmI5NzA0MzYyY2Q2NjA5Y2JkODA3YWFmYmUyNmYzNTguanBn.cache","vod_id":19065446,"title":"Lelaki Asia dan wanita Kaukasia mencapai orgasme dengan penuh ghairah (AMWF)","lastmod":"2025-03-26","duration":"0:05:05","url":"/play/19065446.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZmZmYWE2NzFhOWNkNzJhNWE4YWJjN2VkYzg1OTY2ZGYuanBn.cache","vod_id":19195769,"title":"Seorang influencer TikTok yang popular dengan \"kaki berbintang\" yang menarik, payudara berbentuk cawan D yang besar, dan payudara yang besar, dikatakan digemari oleh pelanggan kaya. Wajahnya telah didedahkan, dan bukti seks yang ghairah telah muncul.","lastmod":"2026-04-29","duration":"0:04:09","url":"/play/19195769.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvOTU2ZTI4MzYwOTI5NjllNTZmMTk4MmMwMGQyM2NiYzQuanBn.cache","vod_id":19067906,"title":"Gambar swafoto bercinta ghairah model dewi Si'er yang liar dan tidak terkawal bersama teman lelakinya yang bertatu bocor dalam talian. Memakai stoking hitam, dia mengambil inisiatif untuk menunggang di atasnya, dengan dialog yang berani dan merangsang.","lastmod":"2025-03-26","duration":"0:13:10","url":"/play/19067906.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvN2EyN2M2ZDMwNDQ5ZTc4MmIxZmFiYWEzYTA3NjU1YjAuanBn.cache","vod_id":19098264,"title":"Ejakulasi Berahi dalam Mimpi Psikedelik - Bahagian 1!","lastmod":"2025-03-26","duration":"0:14:11","url":"/play/19098264.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA1MjYvZDkxYTgxM2EwNGIwNmI1YmE5NGVmMWRmMGViN2E5NTcuanBn.cache","vod_id":19136385,"title":"Ghairah dalam Guru Wanita Muda Berbaju Besar dan Berstoking Hitam","lastmod":"2025-05-26","duration":"0:21:49","url":"/play/19136385.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMjIwNTY2MzllZjA3YjAwZmYyNmE5ODY4NDRmMGQ0ZTEuanBn.cache","vod_id":19196018,"title":"Gadis baru yang kecil molek, kelihatan manis dan tidak berbulu itu sedang melakukan hubungan seks dengan teman lelakinya, yang sedang menghisap zakarnya sambil dia berdiri dan ditembusi. Zakarnya agak lembut dan tidak dapat memuaskannya.","lastmod":"2026-04-30","duration":"0:10:50","url":"/play/19196018.html"}]},
videoTitle: 'Qi Jia, seorang pelajar di Universiti Normal Hebei, dengan ghairahnya menonton filem lucah bersama teman lelakinya selepas parti hari jadinya.',
language: 'ms',
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('Pautan disalin!');
}).catch(() => {
// 降级到旧方法
document.execCommand('copy');
alert('Pautan disalin!');
});
} else {
// 降级到旧方法
document.execCommand('copy');
alert('Pautan disalin!');
}
}
},
// 切换布局
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=/`;
}
};
}