Istri muda berdiri di jalan di area apartemen! Mengambil 1,5? Berhubungan seks di rumah gratis! Bernegosiasi dan kemudian ejakulasi di dalam tanpa kondom OK! Seorang pria muda yang berhenti berhubungan seks untuk menghabiskan waktu Hunter","lastmod":"2026-07-11","duration":"04:00:31","url":"/play/19163820.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZWYyMjBiZjQ2NGRmODhhOWJmYmJmZGIzN2FlZWQ5MjYuanBn.cache","vod_id":18986224,"title":"10musume Natural Girl 093023_01 Amatir tanpa riasan - Bahkan di hari berhubungan seks semalaman, dia tidak menghapus riasannya - Yabuki Uran","lastmod":"2025-03-23","duration":"00:56:32","url":"/play/18986224.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMzdmNzFjNDIyNmE2NjY3ZWIzZGNjMTEzZjE1YmYyZGEuanBn.cache","vod_id":18992101,"title":"CAWD-005 Seorang gadis Jepang-Amerika yang cantik mengalami orgasme pertamanya, dan terus mengalami orgasme bahkan setelah klimaks awal. Melalui serangkaian adegan seks yang berirama seperti piston, ia mengalami sisi lain dari orgasme untuk pertama kalinya. Ayami Shionoki 1","lastmod":"2025-12-14","duration":"02:28:33","url":"/play/18992101.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZmJlNzg4MjU3NTU1OWNjNWEwMTUwZjEwZThhNWEyNTQuanBn.cache","vod_id":19140341,"title":"Memperkenalkan monster seks gila yang hasratnya akan pengakuan dan keinginan seksualnya melampaui semua batasan, haha. Saku, 28 tahun, aktris yang tidak dikenal, BEAF-182.","lastmod":"2026-01-26","duration":"01:19:31","url":"/play/19140341.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly9pYy4xNTUyNTAyMTQudG9wLzIwMjYwMjIyL2p3bk5FSnZNLzEuanBn.cache","vod_id":19144883,"title":"Aku ingin berhubungan seks, jadi aku memikirkannya... Wanita yang paling mudah diajak berhubungan seks adalah ibuku! Gairah membara di rumah, 4 jam, 12 wanita MBMA-113","lastmod":"2026-02-23","duration":"04:00:13","url":"/play/19144883.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvODQ1MmNkMDEwN2IzYTIzZTlhMjA2NzRlODU5ZjYyMjUuanBn.cache","vod_id":18949560,"title":"Sepasang kekasih muda yang sedang dimabuk cinta berbagi foto-foto kehidupan seks sehari-hari mereka di sebuah hotel, termasuk seks oral yang lembut, godaan verbal, dan posisi wanita di atas.","lastmod":"2025-12-14","duration":"00:41:43","url":"/play/18949560.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MDUvM2I4MjU1YjEzNTM2ZmYyMTgxZmMwZjMwZjJmMTIxM2QuanBn.cache","vod_id":19050403,"title":"EYS110 diam-diam merekam adegan seks yang berkeringat! Kebiasaan seks memalukan seorang wanita sensitif: puting dan klitoris menegang karena lotion yang licin.","lastmod":"2025-09-04","duration":"02:58:57","url":"/play/19050403.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvY2E4MmQyNDVjYzUyMTUwODhhOWY5YjAyYzgzNzJiNWYuanBn.cache","vod_id":19025889,"title":"Sebuah video pasangan selebriti Taiwan terkenal yang sedang berhubungan seks di kamar hotel diretas dan bocor. Video tersebut menunjukkan pria itu melakukan penetrasi dengan cepat ke arah wanita itu sementara wanita itu berada di atasnya.","lastmod":"2025-03-24","duration":"03:47","url":"/play/19025889.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMTdkZjc1MWNlOGI3NTU1YTQ5YWE4NTQxYjM0YjJmMDAuanBn.cache","vod_id":18966928,"title":"Pacar seksi Anda yang berjumlah 04, memperlihatkan wajahnya saat berhubungan seks dengan pacarnya secara langsung, cantik dan sangat seksi, membiarkan pria itu berhubungan seks dengannya dalam berbagai posisi tanpa kondom, mengeluarkan semua spermanya ke dalam mulutnya dan menelannya, menggunakan alat bantu untuk merangsang vaginanya.","lastmod":"2025-12-14","duration":"00:41:22","url":"/play/18966928.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEwMTIvZjUzMTEyYjllYjhjODJmMThkYjdjMTgxMzk4OTE4YmUuanBn.cache","vod_id":19057311,"title":"[Bahasa Mandarin] VEC692 tidak tahan dengan ibu rumah tangga seksi di sebelah yang masturbasi setiap hari. Akal sehat lenyap, dan hasrat tak terbendung dalam seks yang intens dan penuh ekstasi ini.","lastmod":"2025-10-11","duration":"01:36:54","url":"/play/19057311.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA2MTgvNzhkY2ExMjI1NmY1N2ZiNjI4YWQ0N2YxNzhhZmRhNmYuanBn.cache","vod_id":19038862,"title":"Dengan kulit sehalus porselen dan tingkat daya tarik yang luar biasa tinggi, dia melakukan berbagai posisi seksual, termasuk posisi menunggangi dan posisi dari samping.","lastmod":"2025-06-18","duration":"27:09","url":"/play/19038862.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNGYwMGQyNzY2NjkwZmNmNDU1ZWNmYTFjMjg5MmNmMzAuanBn.cache","vod_id":19015418,"title":"JUFE074 Sebuah film dokumenter dari sudut pandang seorang pria tua. Sesi seks yang lengket, intens, rakus, dan berkeringat bersama Mika Mika.","lastmod":"2025-03-24","duration":"02:36:41","url":"/play/19015418.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYTdiMGZjMDk4MmNmYTJhZWE3NmZhOGNmZDBiNmRiOGYuanBn.cache","vod_id":18931104,"title":"MUCH-084_D Wanita menikah bertubuh montok, 10 orang, seks terus menerus, 8 jam, set 2 cakram (sebagian).","lastmod":"2025-12-14","duration":"02:18:41","url":"/play/18931104.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZWM4NmJkNWZlMmViOGQ1MzVkNjA0NjM0OGRmMTRkM2MuanBn.cache","vod_id":18974461,"title":"PTS-477 Salon Kecantikan Lace-Side: Terbangun dari Perlakuan Abnormal! 12 Ibu Rumah Tangga Mengalami Orgasme Abnormal! 102 Orgasme! 43 Ejakulasi! 8 Jam","lastmod":"2025-03-23","duration":"04:00:08","url":"/play/18974461.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvNzQ1YzdiYTJhMDQwZDczMjI0ZWUyZDdlNmU4NmQxMDQuanBn.cache","vod_id":19158299,"title":"Seorang istri amatir mendapatkan kondom di rumah seorang mahasiswa biasa dan menghabiskan malam di sana, tetapi merasa tidak puas hanya dengan satu kali berhubungan seks menggunakan kondom. (Cosmos Echoes)","lastmod":"2026-05-15","duration":"02:22:45","url":"/play/19158299.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYTU5ZjIyZGU1M2VmYTA3ZTA3MGY4N2FiN2RhODNkYmIuanBn.cache","vod_id":19014519,"title":"ARA396 [Polos] 21 tahun [Payudara Indah] Hino-chan hadir! Alasannya mendaftar adalah \"Aku ingin berpetualang...♪\" — Seorang gadis muda yang polos! Menampilkan ciuman erotis yang benar-benar berlawanan dengan citranya yang menyegarkan! [Semburan Super Banyak] Semburan terus menerus adalah puncaknya! Petualangan sekali seumur hidup [Orgasme yang sangat merangsang dan intens] Jangan lewatkan seks ini!","lastmod":"2025-03-24","duration":"01:09:46","url":"/play/19014519.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNTczYWYyYzg3MWU2YzdjNzQzNWYzMjY3ZmI0Yzg3ZmUuanBn.cache","vod_id":18942578,"title":"Seorang wanita muda dengan sedikit pengalaman seksual, penampilan yang murni dan polos, payudara besar, dan sosok ramping yang imut difoto secara pribadi di sebuah hotel. Ia ditipu dan dibujuk langkah demi langkah oleh fotografer untuk melakukan masturbasi. Dialognya bernuansa humor.","lastmod":"2025-12-14","duration":"00:14:57","url":"/play/18942578.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMzkwMzVmMTA4NjJiNDk5NjVkOTJkZGE0YzM2OTJjOGYuanBn.cache","vod_id":18957453,"title":"TIKB-039 Wajah imut dan payudara besar! Gadis mesum yang menggoda!","lastmod":"2025-03-22","duration":"01:58:30","url":"/play/18957453.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNDkyZTRiMWJiYWIxMTVjN2M1ZDkwYmU5MmIzNTRlZjguanBn.cache","vod_id":18978954,"title":"Caribbeancom 070923-001 Kisah Mandi Busa Terbaik Volume 115 Ibuki Kanon","lastmod":"2025-03-23","duration":"00:54:05","url":"/play/18978954.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvY2ExYWE4OWMzNWQxYzc0Mjk2NjgwOGM0MGI5MTA3OWIuanBn.cache","vod_id":18982337,"title":"JJDD-005 Seorang pembantu rumah tangga paruh baya tidak dapat menolak permintaan seorang anak laki-laki dan menerima tindakan seks berupa pemberian krim kue. 05 Memanfaatkan kebaikannya.","lastmod":"2025-12-14","duration":"02:11:56","url":"/play/18982337.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNzVkYmI3M2QwZjQzOTFhNjI1YmRkMmRhNThiYjFkZTAuanBn.cache","vod_id":18970921,"title":"FC2PPV 3259946 [Penawaran Terbatas! 20.000pt ➡ 1.980pt] [Perjalanan Liburan Musim Semi ke Pemandian Air Panas] Tinggalkan kota dan pergilah ke kota pemandian air panas!","lastmod":"2025-12-14","duration":"01:10:35","url":"/play/18970921.html"}]},
videoTitle: 'MDTM-804 Kawakita Meisa - Imut, Mahakarya Seksual, Koleksi, Edisi Peringatan, Manis, 4 Jam Terbaik',
language: 'id',
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('Tautan berhasil disalin!');
}).catch(() => {
// 降级到旧方法
document.execCommand('copy');
alert('Tautan berhasil disalin!');
});
} else {
// 降级到旧方法
document.execCommand('copy');
alert('Tautan berhasil 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=/`;
}
};
}