Adakah anda rasa apa-apa apabila anda sangat hebat?","lastmod":"2026-07-11","duration":"","url":"/play/19207498.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTExMDMvODAwOTY2MjllYWNkZDcxN2UyYzc1NjgwYjk2NjY4OTguanBn.cache","vod_id":19162194,"title":"Keseronokan fizikal lucah daripada susuk tubuh langsing dan payudara besar! Pengalaman seksual pertama dan orgasme pertama. Edisi khas perkembangan seksi G-cup. Hiyori Nosaka. SONE_331","lastmod":"2025-11-02","duration":"2:41:16","url":"/play/19162194.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvOTJkMzQ3NjM4YTJmNzhiM2QzOGYzYWYzZGVjNTVlZWUuanBn.cache","vod_id":19050342,"title":"BBAN-274 Saya menyedari identiti lesbian saya di sebuah [kem perempuan] khusus wanita bersama wanita yang saya temui di media sosial. Mika Kurosaki, Riko Sato","lastmod":"2025-03-26","duration":"1:41:13","url":"/play/19050342.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMzczNTA4ZWY0NzMzY2NhNjZlNzQ0OTc3MGUwZDE4M2EuanBn.cache","vod_id":19122415,"title":"03. Adegan seks oral yang mengujakan dengan rakan selingkuh, memuaskan semua keperluan anda sekaligus.","lastmod":"2025-03-26","duration":"0:04:45","url":"/play/19122415.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMzY3Y2QwYTE3YzM3YWM4NzQ1YmJiMGY5YjVhYTIzNTMuanBn.cache","vod_id":19089251,"title":"VENX-269 \"Adakah seluar dalam saya mengujakan awak?\" Mak cik itu memerah titisan terakhir air mani anak saudaranya melalui seluar dalamnya yang baru ditanggalkan.","lastmod":"2025-03-26","duration":"1:52:35","url":"/play/19089251.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZWIzMTk3NTliY2IxZWE3ZjFkOWIzOTg4Njk2Yjg4ZjkuanBn.cache","vod_id":19198545,"title":"\"Awak dah tengok DVD lucah macam tu, dan awak masih nak kacau anak saudara saya yang masih dara?\" Makcik saudara saya memarahi saya selama empat jam. Mellow Moon","lastmod":"2026-05-12","duration":"4:02:45","url":"/play/19198545.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYjdlMThiZjRjNTkwNmUwYzNiYWNhZjRjMTMyMGQyZjMuanBn.cache","vod_id":19083052,"title":"Lagipun… saya sangkakan saya akan dapat zakar yang besar… semasa saya mandi bersama rakan zaman kanak-kanak saya, kakak saya – lakonan Natsuki Kisaragi, Ena Satsuki, Aima Ichikawa dan lain-lain.","lastmod":"2025-03-26","duration":"3:30:42","url":"/play/19083052.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZjMxNmI4NmRkMDVmYzlhNjRjNzkyMjM2MTVmYmU3NWUuanBn.cache","vod_id":19070276,"title":"juq096 NGR - Nagasare - Pengantin perempuan yang dirogol oleh bapa saudaranya dan mengalami orgasme pertamanya, Ichino Aoi.","lastmod":"2025-03-26","duration":"2:02:46","url":"/play/19070276.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMTU1MGIzZTc1OTI4NDQzYjgzZGNjNGYzN2Q5MzgzZjkuanBn.cache","vod_id":19091836,"title":"ALDN-176 Ibu dan Anak Pancutan Mani: Ibu Pertama Kali Pancutan Mani oleh Anak","lastmod":"2025-03-26","duration":"1:51:37","url":"/play/19091836.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MjkvOTlhMDNmYmM3NTE3ODA3NDAwYTRlMGZmOTg2ZjQzY2YuanBn.cache","vod_id":19156914,"title":"[Benarkan punggung anda bersama saya] Daya tarikan punggung yang bergoyang dan berisi; punggung besar yang dipenuhi peluh; Mizuki Yayoi MIAA-865","lastmod":"2025-09-28","duration":"2:28:43","url":"/play/19156914.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNTRlODJiOTliZmViZGUwZTgzMDAwNDkxNzAwMTA0ODkuanBn.cache","vod_id":19055230,"title":"Dua wanita cantik menjerit bersama: Sial!","lastmod":"2025-03-26","duration":"0:11:21","url":"/play/19055230.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvODExMmUwZGQ0MmE2MDY3NTU3MTdmNzkxMmRkMjA4YTEuanBn.cache","vod_id":19126375,"title":"SSNI552 Kali Pertama Saya dengan Punggung yang Saleh Buku Foto Idola Orgasme Latihan Perkembangan Rahim Orgasme Dalaman Kamiki Umahisa.","lastmod":"2025-03-26","duration":"1:58:02","url":"/play/19126375.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYTllODhhNGQ1YTVjZjlmMzZlNGNlZWU0Zjc5Nzk1YWQuanBn.cache","vod_id":19047734,"title":"Bermain 4P dengan anak perempuan saya yang berkulit cerah","lastmod":"2025-03-26","duration":"1:02:56","url":"/play/19047734.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA3MDYvNmE2NzZmYWU5NTNkZjJjMGU4Yzk3NjQzMWNkMmQ3ZTIuanBn.cache","vod_id":19206613,"title":"Saya mempunyai dua orang isteri di rumah. Menikmati harem bersama RIO dan KOZUE, kedua-duanya dengan susuk tubuh yang montok dan seksi. AVSA-373-C","lastmod":"2026-07-11","duration":"","url":"/play/19206613.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNTQzOTczMzhkY2IzOTJjZmIxMzNlNWY3MWFjYzRhNGMuanBn.cache","vod_id":19093054,"title":"Seorang pembantu susu melawan 12 lelaki! Dilumuri jus bersama Ayaka Mochizuki!! Di sebuah pusat maklumat seks, matlamatnya adalah untuk mencapai impiannya untuk menakluki zakar di semua 47 wilayah di negara ini.","lastmod":"2025-03-26","duration":"2:38:57","url":"/play/19093054.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly9zYnp5dHBpbWc0LmNvbTozNTE5L3VwbG9hZC92b2QvMjAyNjAyMjEtMS9mZDhkNDE3MDNiMmRmNmQxZDAwYjc1OTE0NmQzZmViZS5qcGc=.cache","vod_id":19181928,"title":"Ya Tuhan! Adakah ini halusinasi? Atau realiti? Gadis seperti pari-pari itu sangat comel, saya tidak bertanya namanya sebelum saya pertama kali melihatnya di LOL-246.","lastmod":"2026-02-21","duration":"2:20:27","url":"/play/19181928.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNDY0MjFmOTAzY2FlYWJhZmVkOGU3ZGE0ZjI5NWMyMGMuanBn.cache","vod_id":19121232,"title":"HND868 Rena Kaneshiro kali pertama ditembusi.","lastmod":"2025-03-26","duration":"1:58:24","url":"/play/19121232.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZDJjZmQ0YzQwMzI3MDc3MzcyMTZiYmE4ZTA0MjA4NDUuanBn.cache","vod_id":19083380,"title":"Satu temu janji dengan seorang lelaki yang lebih tua yang memakai yukata dan pakaian seragam—seorang playboy atau sekadar lelaki tua biasa? Kami telah mengadakan temu janji yang menyeronokkan di Asakusa dan telah mengaturnya dengan seorang lelaki yang lebih tua—Sakura Moeko.","lastmod":"2025-03-26","duration":"1:58:08","url":"/play/19083380.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMGZkYTRmMjU4OTJlNTA3N2ZmODU4MDIxYTc2NmE5ZWIuanBn.cache","vod_id":19194484,"title":"Karya asal Haowen: Seorang lelaki kaya, kacak, dan bertatu di Beijing menjalinkan hubungan dengan seorang wanita di sebuah hotel dan melatih seorang pelajar kolej wanita berpakaian seragam ungu. Dia datang bersama sahabat baiknya untuk melayannya, dan lelaki itu menyentuh payudaranya semasa wanita itu berada di atasnya. Perspektif orang pertama sangat hebat.","lastmod":"2026-04-22","duration":"0:11:00","url":"/play/19194484.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA0MTIvOTlmYzBiYWI0NDcwZWUxMzlmMjVkZjIxOTA0M2Y3YjcuanBn.cache","vod_id":19130642,"title":"Isteri seorang suri rumah kebangsaan yang tidak berpuas hati mempunyai hubungan sulit yang sengit dengan seorang lelaki yang lebih tua. Kurokawa Sarina MEYD-438-C.","lastmod":"2025-04-12","duration":"1:47:15","url":"/play/19130642.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMWNlMWI2ODFlZWY4ZjY4NjhmOWM2MGQ4MzhjZGYyM2MuanBn.cache","vod_id":19073063,"title":"VEC397 Hubungan sulit sekali... Hubungan sumbang mahram Reiko Sawamura dengan orang bawahan suaminya.","lastmod":"2025-03-26","duration":"1:48:48","url":"/play/19073063.html"}]},
videoTitle: 'Anak saudaranya, Sumire Kurokawa, gembira dan malu kerana dapat mandi bersama mak ciknya lagi...',
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=/`;
}
};
}