Akademi Latihan Pembantu Rumah Cabul, Kelab Menunggang Khidmat, Jabatan Permanian Posisi Menunggang Ciuman Basah, Futaba Ema, Himekawa Kanon, Shiraishi Momo dan pelakon lain MOODYZ","lastmod":"2026-07-11","duration":"01:56:06","url":"/play/19166132.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNzNhODkwMmQxZDNlOGZhMjNmMTc5YjUwNGJkM2E4NzQuanBn.cache","vod_id":19140407,"title":"Adegan lucah seks 3P abang sukan berkulit hitam itu membuatkan saya tersipu-sipu. Selepas selesai, dia pulang ke rumah dengan air maninya di dalam dirinya dan bermalam di sana.","lastmod":"2026-01-26","duration":"22:59","url":"/play/19140407.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA4MTEvNWUxMTZiZTA2MzhiZjg2MTdiYzgwZWI2OGJkNTFhMjYuanBn.cache","vod_id":19046530,"title":"YMLW039 Saya pernah melakukan sumbang mahram dengan ibu saya, yang berusia dalam lingkungan lima puluhan atau enam puluhan dan menjadi gila dan lucah apabila dia minum... selama 4 jam.","lastmod":"2025-08-10","duration":"04:04:26","url":"/play/19046530.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvY2QxZjg0ZjcyYjUwYzJkOGZkMzE0NzNjNWNkYjEwNGYuanBn.cache","vod_id":18935052,"title":"[Sarikata Cina] FERA-112 Puting Lucah Dua Anak Saudara Saya","lastmod":"2025-12-14","duration":"01:26:00","url":"/play/18935052.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MTEvYTMyYTgzOWM3MTM5NjRhMjQ2OWVkOTg5NGQxYzMwYzMuanBn.cache","vod_id":19051895,"title":"Isteri muda yang berpindah rumah sebelah menggunakan rayuan lucahnya tanpa coli untuk membuatkan seorang wanita hamil tidak dapat menahan diri daripada melakukan hubungan seks. Pelakon tidak dikenali PPPE302","lastmod":"2025-09-10","duration":"02:04:11","url":"/play/19051895.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA3MTEvNjUwNDllMmQ1YzVjMTBlZWRiYjYwNDQxOGY1NmI5YzguanBn.cache","vod_id":19168041,"title":"超过性朋友,低于情人。 性100%在我的脑海里。与淫荡的女孩享受性爱!水木弥生 弥生みづき S-Cute","lastmod":"2026-07-13","duration":"02:43:13","url":"/play/19168041.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMWI4OGZmMzJiMWNkNTcwNTQ4ZTE5OWEyNmExYjZlOGMuanBn.cache","vod_id":18958057,"title":"Pink Classics: Koleksi karya menggoda dan memikat yang menggambarkan kehidupan malam sensual wanita yang sudah berkahwin, termasuk \"Beautiful Cats (Versi Sari Kata HD)\" yang mendapat penilaian tinggi. Sebuah karya agung yang penuh semangat dengan nuansa yang biasa, sesuai untuk penghargaan dan koleksi.","lastmod":"2025-12-14","duration":"01:25:02","url":"/play/18958057.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNzFjODk2OTRjY2FhMmQyZjNlMGUzMGQzYWU0Y2MxZDkuanBn.cache","vod_id":18957907,"title":"\"Kebocoran Rahsia Foto Peribadi Seorang Gadis Seksi - Bahagian 2\" - Pelajar Perempuan yang Tidak Bersalah [Yoona] Menggambar Banyak Video Lucah untuk Dijual Demi Wang - Berbogel di Komuniti dan Tempat Letak Kereta, Seks dan Operasi Lucah Lain (25)","lastmod":"2025-03-22","duration":"00:03:11","url":"/play/18957907.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMTQvNGJmNDhlYWM5NmY1MmRiYjI4NmQ0NTdjYWZlYzkyOTcuanBn.cache","vod_id":19067572,"title":"Apabila saya melakukan hubungan seks dengan seorang gadis berdada besar yang kelihatan biasa yang bekerja di kilang, dia menjadi sangat lucah, merayu saya untuk pancut. (Zenba Mami, DLDSS-422)","lastmod":"2025-12-14","duration":"02:04:02","url":"/play/19067572.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZTg1Zjk1NDAyNzcyYzg0YTkwMGQ1ZGIyNDYzNjlhNTYuanBn.cache","vod_id":18955906,"title":"\"Bom Nuklear Berat✅Sumber Jarang\" Faedah eksklusif untuk VIP dalam kumpulan berbayar Curious Tribe~ Lapan ahli CDTS berkualiti tinggi dengan penampilan menarik mendedahkan pelbagai swafoto lucah, setiap satunya merupakan karya agung yang paling memahami lelaki - Xiaoyou4","lastmod":"2025-12-14","duration":"00:01:51","url":"/play/18955906.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MjYvNmFlMjM0YjM1NzNjMDJkYjcwOTBlN2VjYzI5MDFkZDcuanBn.cache","vod_id":19054197,"title":"[Bahasa Cina] SORA599 menculik secara paksa seorang pelajar JK yang matang dan berdada besar yang ketagih dadah! Penggunaan dadah OD telah membuatnya obses dengan zakar lucah, melengkungkan punggungnya...","lastmod":"2025-09-25","duration":"02:16:21","url":"/play/19054197.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNWFhNmMxZGM2ZjgyM2RiYjgwZTkzYzVjM2Y5ZDgxNGUuanBn.cache","vod_id":18939810,"title":"91 Plot AV Cina Asal: Lelaki Muda Terhidu Bau Seluar Dalam Seksi Jiran Wanita Cabulnya dan Memohon Maaf dengan Bercinta (Versi HD 1180P)","lastmod":"2025-12-14","duration":"00:22:43","url":"/play/18939810.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA1MTgvZjRlMTliNDNkZGQ1NGYyYTMzMzJiNzVlZDQ4YzFmNmEuanBn.cache","vod_id":19034029,"title":"COM369 Kakak perempuan yang nakal dan lucah","lastmod":"2025-05-18","duration":"34:35","url":"/play/19034029.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMjhiZWQzNmU1OGU3OTVmODRkNWVjZTI4N2JmNDg3ODAuanBn.cache","vod_id":18974678,"title":"MIDV-324 Seorang jururawat lucah menjilat dan membersihkan seluruh badan saya dengan bibirnya, menyebabkan zakar saya berkedut dan terpancut dengan cepat. - Rena Miyashita","lastmod":"2025-12-14","duration":"02:02:25","url":"/play/18974678.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MjMvN2NmMWY1OTkzMjI2NDAzM2Q0NmQ4YzE1NDNhYWY5NzguanBn.cache","vod_id":19053919,"title":"Bos wanita saya yang menjengkelkan secara rahsia mengambil gambar erotik... Saya menggunakan payudara besarnya untuk melatihnya, membuatnya menunjukkan ekspresi lucah dan membuat tanda kemenangan dengan kedua-dua belah tangan, dan saya rasa sangat seronok! (Yone Yuri Ai FPRE128)","lastmod":"2025-09-22","duration":"02:28:31","url":"/play/19053919.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA3MTcvMjEwYWI0YjQwZjYyOWYxMGY5ZDdkOTlkZDdmY2RlMTguanBn.cache","vod_id":19168656,"title":"Selamat datang, penghuni baharu! Permainan isteri pangsapuri yang berbahaya dan lucah! Hunter","lastmod":"2026-07-16","duration":"02:33:47","url":"/play/19168656.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvN2ZkOGQ3ZTE1NTZlMWE0ZmQ3NDRhZTdkZDdlZTBmNmUuanBn.cache","vod_id":18938830,"title":"\"Sayang, saya tak tahan lagi, rasa sedap sangat!\" Linlin, gadis cantik dari Sichuan, ketua pengiring hotel, pasti telah mengambil sejenis perangsang sebelum ini; dia sangat bertenaga, malah dia juga telah meletihkan katil. Dialognya lucah. Episod Asal 1080P 01","lastmod":"2025-12-14","duration":"00:17:22","url":"/play/18938830.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMGRiZTk2MjJkN2U1YzcxNmJiYjkyYjY3ZWFkYjZlZTMuanBn.cache","vod_id":18986893,"title":"KAGH-018 Lapan wanita yang sudah berkahwin dengan dubur mereka terdedah sepenuhnya, melancap; isteri-isteri yang sangat lucah.","lastmod":"2025-12-14","duration":"02:07:11","url":"/play/18986893.html"}]},
videoTitle: '261ARA-324 [Punggung Tuhan] 26 tahun [di puncak usia] Yuki-chan muncul! Suasana lucah menyelubungi...',
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=/`;
}
};
}