Kelab riadah dan hiburan menawarkan perkhidmatan kecergasan dan kesejahteraan dengan tuan rumah yang berbual dan membina hubungan baik sambil menyediakan perkhidmatan ini.
Perkhidmatan Katering Kakak - Badan Kecil, Payudara Besar! Bermain dengan Adik Manja yang Jatuh Cinta dengan Abangnya! Arisu Kanau, Momotaro Eizou Publishing","lastmod":"2026-07-11","duration":"02:17:56","url":"/play/19162906.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA1MDEvOWVjNWJlMTdhZWMyYzM0MTcwMWYyODRkZTY5MTM5YzkuanBn.cache","vod_id":19031629,"title":"Rasanya begitu nikmat sehingga saya tidak dapat menahan diri... Saya secara rahsia melakukan hubungan seks dengan seorang pekerja lucah di sebuah kedai yang melarang perkhidmatan seks. (Momojiri Kaname FSDSS-460-C)","lastmod":"2025-05-01","duration":"02:04:51","url":"/play/19031629.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNDcwYTMzZTA4ZWJiOWZkODFlNjY1NmMzMGRlMDM1NTIuanBn.cache","vod_id":18986495,"title":"FC2PPV 3886843 [Pajama Monash] Si Comel Pajama ♥ JD Ayano-san 19 tahun ♥ Dia comel dan polos, tetapi dia menjerit apabila dia rasa disayangi.","lastmod":"2025-12-14","duration":"00:59:32","url":"/play/18986495.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvY2M5NjgzNGRlN2U2MTI3OTQ3NGQ3MDVkZGI4OWE5MWYuanBn.cache","vod_id":19138993,"title":"Wang tua di sebelah ingin berhubung dengan seorang gadis montok berpakaian hitam.","lastmod":"2026-01-18","duration":"23:45","url":"/play/19138993.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNTBmYmFlOTA5YThmNGM1ZmIxYThmYjI1ZDYwZGViZTQuanBn.cache","vod_id":18972076,"title":"\"Perempuan jalang ☀️ Insiden Kebocoran\" Syarikat Bekalan Kuasa Xuancheng, pengeluaran jalang [Wang Rong] menyediakan perkhidmatan seks dari pintu ke pintu~ Pintu masuk belakang Ziwei BB mempunyai sedutan yang kuat dan erangan yang sangat baik tanpa air versi asal 4K - Ziwei","lastmod":"2025-12-14","duration":"00:03:06","url":"/play/18972076.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMzVkMDMwM2Q3ZGIyOWFhYzE5NTMxNDA1MDExNmNlOWIuanBn.cache","vod_id":19146786,"title":"Wanita cantik mewah di Shanghai menawarkan perkhidmatan berharga tinggi kepada wanita cantik peringkat dewi.","lastmod":"2026-03-06","duration":"53:13","url":"/play/19146786.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMjAxN2M1NjI3ZjA3MTBmMjA4NzdiMmI0MDBjODQ1YTEuanBn.cache","vod_id":18965428,"title":"\"Penggodaman pengawasan ✅ Kebocoran sebenar\" Beberapa wanita cantik di sebuah perkampungan bandar menyewa sebuah banglo dan mengubahnya menjadi rumah pelacuran untuk menyediakan perkhidmatan makanan segera. Mereka mempunyai pelanggan dari semua peringkat umur, dan perniagaan mereka berkembang pesat kerana ketampanan mereka. (4)","lastmod":"2025-03-22","duration":"00:05:41","url":"/play/18965428.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYmUwNjk0NjdkMTFkMjViY2MyNjNkNTk3NThjYTRlOTkuanBn.cache","vod_id":19014394,"title":"APKH107 Ketika jus cinta menitis ke bawah, dia menjadi teruja, menjilat segala-galanya dari zakar hingga punggung! Temu janji rahsia di sebuah hotel dengan seorang gadis cabul yang obses dengan khidmat hamba dan mengalami pelbagai orgasme! Miku Chibana, seorang bekas idola dan pelajar kolej.","lastmod":"2025-03-24","duration":"02:24:38","url":"/play/19014394.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYTZmODVmYjc3Mjg2ZGRhNWM3ZmIwOTFiYTQ0YmRlZDcuanBn.cache","vod_id":19008208,"title":"MEYD551 Sarikata Cina: Wanita yang keluar dari gimnasium tanpa tikar seks itu merupakan jiran yang bangga dan cantik. Sekarang saya mempunyai kelemahannya; saya menuntut seks sebenar dan penembusan! Malah di luar kedai, Nakano Nanao menjadi hamba seks yang tunduk.","lastmod":"2025-03-24","duration":"01:57:41","url":"/play/19008208.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvZWU5ZTZiZmQ5NDZkYzNkOTlkOWFkYzE5ODQzN2E4NjMuanBn.cache","vod_id":19159134,"title":"Kamera Tersembunyi pada Bunga - Seorang lelaki berbadan besar membayar harga yang tinggi untuk melakukan hubungan seks dengan seorang wanita muda yang langsing dalam pelbagai posisi, membuatkannya berasa putus asa.","lastmod":"2026-05-20","duration":"17:50","url":"/play/19159134.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMzk4NGU0ZjA5NjA2MDNmZTZiMTM2ZWQyZWFmOTQyZGQuanBn.cache","vod_id":19013057,"title":"300NTK269 Seks oral dengan seorang gadis yang sangat cantik, satu dalam seribu, dalam limosin mewah!! Terus ke hotel cinta!! \"Pakcik, awak sangat bertuah…!\" katanya sambil menawarkan seks oral yang mendalam dan pelbagai perkhidmatan, semuanya percuma!! Saya menaiki kereta api tanpa topi keledar, bertekad untuk memancutkan air mani di dalam dirinya dengan omboh besar. .","lastmod":"2025-03-24","duration":"01:12:07","url":"/play/19013057.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMTdiYzYzMmU0ODVjN2JkN2IwZDgxNTVhYzBmMzZjN2YuanBn.cache","vod_id":19005374,"title":"Gadis-gadis pasar raya didekati dan video lucah dirakam.","lastmod":"2025-03-23","duration":"14:39","url":"/play/19005374.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MDUvZTZjNzUyYjM5OGE5ZWVjNDVhZWQxNWZjMTEyNTA3OTUuanBn.cache","vod_id":19049669,"title":"Gadis pengiring yang sangat suci dan polos dengan payudara yang cantik dan vulva merah jambu.","lastmod":"2025-09-04","duration":"28:54","url":"/play/19049669.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvN2Q0MDY4MjVjN2M0N2FmNDU5Mzc4ZDMwOWM1MmM3YWEuanBn.cache","vod_id":18931122,"title":"MRSS-082 Isteri saya berusia tiga puluhan, bekerja sambil menuntut ilmu di universiti—dia mengambil serius pelajarannya dan tidak terlibat dalam aktiviti riadah.","lastmod":"2025-12-14","duration":"01:58:05","url":"/play/18931122.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZjBlMDI5MzZiMTFlZWM1M2UzMzNhMGMyOTkyMmY5YmQuanBn.cache","vod_id":19138478,"title":"Saya tidur dengan seorang tuan rumah di sebuah kelab, dan dia dengan rela hati meletakkan hirisan abalonnya di atas kerusi malas.","lastmod":"2026-01-15","duration":"01:02:06","url":"/play/19138478.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZTk5MzBhNmI5MjMwMzJkYmEyMzk4OTAyNDgzZmRmMTAuanBn.cache","vod_id":19150417,"title":"Seorang wanita muda yang seksi dan menawan dengan punggung yang besar dan berisi serta payudara yang besar, tidak memakai seluar dalam dan membuka kakinya lebar-lebar.","lastmod":"2026-03-27","duration":"01:34:11","url":"/play/19150417.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvM2QwNzM4Y2Q3YzQ1NzFiZWEzM2U2ODQyZWZiZjBmNDYuanBn.cache","vod_id":19008369,"title":"Perkhidmatan penyembuhan MIDE495 untuk payudara yang tegang dan besar! Permainan payudara sambil tersenyum, gosokan payudara yang lembut, pembersihan zakar secara rahsia, tuan rumah mandian JULIA.","lastmod":"2025-03-24","duration":"01:57:26","url":"/play/19008369.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvM2Q2YTI0MThlOWVmMTRjMzMxMzFkY2UzZDIyMGI3ZWMuanBn.cache","vod_id":18952828,"title":"⭐Awet muda dan tidak terkalahkan⭐ Influencer Twitter berkaki panjang berkualiti tinggi ala TikTok, Cik Dong, gambar peribadi tarian bogel, manis dan masin, pelbagai pakaian seragam dan pakaian dalam, hilang semasa menari (16)","lastmod":"2025-12-14","duration":"00:01:08","url":"/play/18952828.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvODU2NzZhNDg0NmNkMmYyODUxMTgzMjM0MDFiN2Q4ZDYuanBn.cache","vod_id":18975379,"title":"IMO-021: Selepas memesan seorang gadis penjagaan kesihatan untuk bersalin, dia tiba! Akibatnya, mereka terlibat dalam hubungan seks sebenar dengan penembusan tanpa pengetahuan kedai. Kompilasi selama 4 jam.","lastmod":"2025-03-23","duration":"04:01:13","url":"/play/18975379.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvN2VmODc3YmYwMDczNzMwNWM3NTg5YzBkODViMGMwNWEuanBn.cache","vod_id":18940958,"title":"FC2PPV-1288547 [Penggambaran Peribadi] Rina-chan, seorang gadis cantik dari sekolah swasta yang berprestij ♥ Kecantikan tahap selebriti","lastmod":"2025-03-22","duration":"00:42:42","url":"/play/18940958.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvZjEyYzcxYjQ4ODliYWJlMmM2MTBiMmMzMTc0NmU2NzguanBn.cache","vod_id":19159367,"title":"Mahu melakukan hubungan seks dengan wanita paling lucah di kelab malam kelas atasan, dikhabarkan memiliki \"bantal hantu\"! Pengacara kelas atasan: Cui NPJ","lastmod":"2026-05-22","duration":"02:38:13","url":"/play/19159367.html"}]},
videoTitle: 'Kelab riadah dan hiburan menawarkan perkhidmatan kecergasan dan kesejahteraan dengan tuan rumah yang berbual dan membina hubungan baik sambil menyediakan perkhidmatan ini.',
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=/`;
}
};
}