“Tetamu, adakah anda suka bermain-main?” Perkhidmatan bawah tanah ditawarkan oleh gadis urut lelaki. Yuri Mai Na S-Cute","lastmod":"2026-07-11","duration":"","url":"/play/19267657.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMDY2ZDE0NTg3ZDQ4ZDg0MjBkZjkzODI2NzA1Yjg2ZGMuanBn.cache","vod_id":19242260,"title":"\"Kerana ini kali pertama saya, saya gementar...\" Satu teknik hebat yang hampir terlepas daripada zakar saya! Urutan pangkal paha yang menggoda yang membawa seorang lelaki ke klimaks yang menyakitkan. DVMM-312","lastmod":"2026-01-30","duration":"2:16:58","url":"/play/19242260.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvODcxYzBjNjA0NzMyNjNhMmNjM2IzNzZjN2VhM2YyODYuanBn.cache","vod_id":19115321,"title":"Sifatnya yang polos dan periang membuatnya kelihatan seperti orang sebenar; senyuman manis dan sikapnya yang seperti gadis memikat hati semua lelaki yang mengaguminya.","lastmod":"2025-03-29","duration":"0:59:39","url":"/play/19115321.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNjNjNzU2OWU2YmNkY2Q1ZGNlNzNkZjYxNmNkODNlNWQuanBn.cache","vod_id":19164390,"title":"Apabila teman wanita saya tiada di rumah, saya memaksa kakak saya yang polos dan berdada besar untuk jatuh cinta dengan zakar saya melalui seks dewasa yang sengit. Kenangan tiga hari yang saya habiskan bersamanya—Momozono Rena.","lastmod":"2025-03-30","duration":"2:27:26","url":"/play/19164390.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZWZiNGIwOGVhMGYxZjI4NjcwOTdjM2E5YTFkMzVlMWEuanBn.cache","vod_id":19084416,"title":"Pasangan remaja mengambil swafoto dan bercinta selama setengah jam","lastmod":"2025-03-29","duration":"0:38:17","url":"/play/19084416.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNDk3MGQzOTNiYTAxOTllZjBhMzgwYzI0YzU5NDJmYWYuanBn.cache","vod_id":19170034,"title":"Selamat datang ke syurga terunggul! Sebuah rumah mandian super mewah dengan perkhidmatan sempurna selama 4 jam - dibintangi oleh Akiho Yoshizawa, Miyuki Yokoyama, Mako Konno dan lain-lain - CD1.","lastmod":"2025-03-30","duration":"2:00:34","url":"/play/19170034.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNjI2NTdhNzczZmZhNzVmNDM5NDI4NzQ2YmM1YTExY2QuanBn.cache","vod_id":19154071,"title":"Melancap adalah dilarang. Sebuah rumah urut lelaki sensitif yang baharu, rumah urut untuk ibu-ibu seksi berpayu dara besar dengan teknik yang menakjubkan. Menu rahsia ejakulasi berterusan NTR.","lastmod":"2025-03-30","duration":"4:06:48","url":"/play/19154071.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNTMyMTQwODJlOTI0NDI1ODA1ZWU0NTMwYmU0M2NlMjQuanBn.cache","vod_id":19158684,"title":"MIAA-915-C Saya telah dibawa pergi oleh dua orang makcik berpunggung besar, yang memicit punggung saya di dalam harem dan membentuknya menjadi bentuk neutral!!","lastmod":"2025-03-30","duration":"2:00:56","url":"/play/19158684.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNWJmZGJmMDM5YmZmMjYxYjRhMjUxNzU5NzBlYzcyY2YuanBn.cache","vod_id":19169223,"title":"NKKD-126-C: Semasa perjalanan perniagaan tiga hari dua malam abang saya yang serius, saya mengorbankan tidur saya untuk merakam hubungan seks saya dengan isteri abang saya yang baik hati.","lastmod":"2025-03-30","duration":"2:37:22","url":"/play/19169223.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTExMDkvN2JiN2VhODY2NWFiNzQxYWZjYzdkMmU3OWRiM2JkMzAuanBn.cache","vod_id":19229825,"title":"Selepas dimalukan, dia menjerit dan mengalami kesakitan yang menyakitkan selama lima jam apabila duburnya ditegakkan. (Pelakon tidak dikenali KSAT_086)","lastmod":"2025-11-08","duration":"4:59:59","url":"/play/19229825.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNmVkYzNkZDIxYTcxNzhmZmQ0NmE1NTQzZjFkN2RlOWYuanBn.cache","vod_id":19116322,"title":"Mengekstrak air mani sebelum mengosongkan testis! Urutan aromaterapi di rumah!","lastmod":"2025-03-29","duration":"2:02:33","url":"/play/19116322.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYzBhODBjMTc3YWNiMWFhMDNkZjdjNjI1YjA2N2MxZmYuanBn.cache","vod_id":19134854,"title":"Alat urut zakar palsu dan pelbagai alat lain telah digunakan secara bergilir untuk tayangan video faraj tanpa bulu!","lastmod":"2025-03-29","duration":"0:30:36","url":"/play/19134854.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA2MjUvMzkyNzk1N2JhNGZkNDhjYjBhYmM1M2IyMjU4OGE4YWYuanBn.cache","vod_id":19209286,"title":"HUNTC332 \"Betul-betul belum bersunat?\" \"Biar saya bersunat.\" Seorang jururawat ingin tahu tentang zakarnya selepas bersunat pertamanya lalu pergi ke hospital untuk melegakan tekanan.","lastmod":"2025-06-24","duration":"2:54:30","url":"/play/19209286.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYjJmMDhkZjY1YTM2MmUyZTMyZDdhZjdkOWYwNzM0ZGYuanBn.cache","vod_id":19177672,"title":"200GANA2230 Sangat lembut, penggambaran pertama kali. 1439 Umur 40-an yang ajaib! Kami menemui seorang wanita cantik berusia 38 tahun di Ebisu; dia kelihatan sangat muda, kami mengesyaki dia berbohong tentang usianya! Dia kelihatan lemah lembut dan bertimbang rasa… tetapi apabila melibatkan seks, dia berubah sepenuhnya! Dia akan selamanya mengerang dengan suaranya yang merdu!","lastmod":"2025-03-30","duration":"1:11:55","url":"/play/19177672.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMDZmOWE2ZTVjYTdjMGFlMmE5ZGI2MzlhOWI1YzQ3MmMuanBn.cache","vod_id":19251961,"title":"[Definisi Tinggi Tanpa Penapisan] Wanita Matang dan Isteri Urut, Foreplay, dan Pancutan Mani","lastmod":"2026-04-01","duration":"0:44:00","url":"/play/19251961.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNTBjZTg5NGZlOWMzMjIwYzRjZmMwNTdkYWFmMjI1ZDguanBn.cache","vod_id":19174714,"title":"Walaupun dia tidak begitu cantik, dia memang seksi. Ini adalah penampilan paling seksi yang pernah saya lihat daripada seorang gadis berkaca mata dalam beberapa bulan kebelakangan ini, jadi nikmatilah selagi boleh!","lastmod":"2025-03-30","duration":"0:01:37","url":"/play/19174714.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvODQxMDdjZTFlZDRhMjg1N2UwM2ViNjc4ZjQ1ZTBlMjIuanBn.cache","vod_id":19047067,"title":"Gadis cantik dan ceria, Kotomi-chan, membuat lelaki tergila-gila dengan kecantikannya yang sihat dan suaranya yang merdu. Seorang gadis bercukur memasukkan zakar orang dewasa ke dalam faraj daranya dan melakukan urutan rahim dan seks bertiga.","lastmod":"2025-03-29","duration":"1:59:43","url":"/play/19047067.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvOGU0YTYxOTQ2ZmJkMjg3MmQzYmYxNjE5NmEwMTgwOGYuanBn.cache","vod_id":19144111,"title":"EBOD-667-C: Pelacur urut tradisional paling popular dan berkemahiran tinggi di Timur, seorang warga asing I-cup membuat penampilan sulung dalam industri AV Tokyo.","lastmod":"2025-03-29","duration":"1:47:21","url":"/play/19144111.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNzA3NDc1NWMxODA4ZTZjN2E4ODBjMjFmY2Y0MzljYjQuanBn.cache","vod_id":19101575,"title":"TMRD-1185 Seorang wanita matang mendedahkan bukaan badannya yang basah. Seorang suri rumah mengayunkan pinggulnya dengan penuh nafsu. 12 wanita terpilih, 4 jam. \"Ini benar-benar seperti berjalan ke dalam jurang!\"","lastmod":"2025-03-29","duration":"4:00:23","url":"/play/19101575.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYjQxZTczNzkyM2ZiOGJhYzBkOWU5Mzg0NzJjY2I5MjMuanBn.cache","vod_id":19190465,"title":"IENF269C Untuk Pakar Estetik Cantik Sahaja: Tingkatkan Kemahiran Anda dengan Mengambil Kursus Urutan Testis.","lastmod":"2025-03-30","duration":"2:06:41","url":"/play/19190465.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZjk4ODhjYmNlNzZmYzYwNTI4NzEzMDE5YjkwNzZhMjguanBn.cache","vod_id":19153780,"title":"[Berita Sedih] Mulai sekarang, gadis-gadis montok ini akan sangat dinikmati oleh ahli terapi urut!! 6.","lastmod":"2025-03-30","duration":"3:11:05","url":"/play/19153780.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA0MjIvZjliMTdhYjViMjk5NDUzNmY3MGExYzg0ZTdkYmFiM2YuanBn.cache","vod_id":19198864,"title":"Kakak perempuan yang langsing dan montok yang menganggap serius pembohongan adik lelakinya; posisi menunggang yang mengamuk dan berdaya tahan; Natsu Nishida DASS-071-C","lastmod":"2025-04-22","duration":"","url":"/play/19198864.html"}]},
videoTitle: 'Adakah rumah urut yang hanya menggaji wanita pertengahan umur dan tidak tutup benar-benar boleh dirundingkan? (4 jam) Mud Stick Cat - Emaniel',
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=/`;
}
};
}