SIRO-5193 [Zona Erogenous Seluruh Tubuh] Seorang mahasiswi yang pemalu dan sensitif muncul! Seluruh tubuhnya adalah zona erogenous, bukan lelucon! Di mana pun Anda menyentuhnya...","lastmod":"2026-07-11","duration":"01:04:08","url":"/play/19152706.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMmI2ZTZiMzQ5NWU5MGJhMTY1YTdiMTE3MzIyODVjODUuanBn.cache","vod_id":18937642,"title":"DVDMS-948 Negosiasi mengejutkan dengan seorang siswi berbaju ketat hitam sepulang sekolah! Apakah Anda bersedia mencoba Permainan Raja pertama Anda dengan seorang perawan seusia Anda?","lastmod":"2025-03-19","duration":"03:40:11","url":"/play/18937642.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvODc0ZGQxMWE0YzY0ZmY2YjhmMmFiZmU0ODg4MjRkOTYuanBn.cache","vod_id":19018561,"title":"FC2-3917218 Marina-chan, seorang siswi cantik berkulit putih, langsing, dan bertubuh seksi. \"Apakah benar-benar tidak mungkin menemukan video ini di mana pun...?\"","lastmod":"2025-03-19","duration":"01:41:37","url":"/play/19018561.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZjY5NTVlYzczZGZiNTY0YjJmNjBiMDVkMjllYWYyYzEuanBn.cache","vod_id":18982078,"title":"[Mimpi Erotis Selebriti AI] Yang Mi Memberikan Pendidikan Seks kepada Dua Siswa","lastmod":"2025-03-19","duration":"17:08","url":"/play/18982078.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA2MTUvY2RlYWU0M2E1NjdhZTM1ZTYyODIxZmNmYWNmYjgyODguanBn.cache","vod_id":19150823,"title":"Pilihan Terbaik - Siswi SMA dan Mahasiswi Paruh Waktu Menawarkan Kencan Larut Malam dengan Harga 1000 Yuan","lastmod":"2026-06-15","duration":"24:27","url":"/play/19150823.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvODlkNzIxN2EzMWUxYTg0MzA4NjdmM2EyZDIyN2Q3ZWMuanBn.cache","vod_id":18943788,"title":"MDTM-792-C Seorang siswa berseragam adalah pasangan seksual yang mudah. (Yume-ne)","lastmod":"2025-03-19","duration":"02:01:58","url":"/play/18943788.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvOGRkZjU3MWNiZDhjNDkyNTEwNjY4ZTc2OGZkZDA3YmQuanBn.cache","vod_id":19060502,"title":"FC2-3189182 Mahasiswi elit berusia 20 tahun yang legendaris dengan payudara besar dan ukuran H! Bagian 5 adalah percobaan pertamanya dalam sedikit penampilan terbuka! Menyelesaikan evolusi dewinya!","lastmod":"2025-03-19","duration":"01:34:24","url":"/play/19060502.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA2MjYvNTFkYjEwODEwZjI2YzZmNzhmMmU1MTg5ZmM3NTBjYmMuanBn.cache","vod_id":19109987,"title":"FC2-4464108 First Shot - Penampilan Asli Terungkap!! Edisi Terbatas 6#12!! Seorang mahasiswi pekerja berambut panjang dan rapi, mampu melakukan tindakan cabul.","lastmod":"2025-06-26","duration":"01:23:04","url":"/play/19109987.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA4MTUvNWRjY2MxMjA3MTQ0YjM2ODQwYzE0NzU0OTQ0YTQyOWEuanBn.cache","vod_id":19116790,"title":"[Siswi diekspos secara online oleh mantan pacar setelah putus] Gadis itu terus berteriak bahwa dia tidak ingin diperkosa.","lastmod":"2025-08-15","duration":"08:46","url":"/play/19116790.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYzMwMDc2YjVhOGE5N2NjNzFhODU4OGJkOTI5ZmJmOTEuanBn.cache","vod_id":19144668,"title":"Mahasiswi berkacamata yang sangat menggoda, seorang ahli rayuan, menyulut pengalaman yang penuh gairah dan intens.","lastmod":"2026-04-09","duration":"30:01","url":"/play/19144668.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvOGMyNzk5ZGRmYWViNmVkMDNiYTBkNjM2MWEwOTQ5YjguanBn.cache","vod_id":19061330,"title":"393OTIM-225 [Survei tentang Dorongan Seksual Berlebihan pada Gadis Pesta!] Kumpulan Film Pendek Seksi dan Rayuan!","lastmod":"2025-03-19","duration":"40:11","url":"/play/19061330.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvOTFmMGZiZDU2OTkzNjQ3NzhkMmRjYzY2MWNjNmJjNGQuanBn.cache","vod_id":18962002,"title":"Seorang mahasiswi cantik juga menikmati seks berkelompok.","lastmod":"2025-03-19","duration":"59:53","url":"/play/18962002.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNzMwNzUzMDVhZWE5OWNjNjdkMjZhNDlkZTYzMzYxNDEuanBn.cache","vod_id":19141043,"title":"3K Tanhua adalah seorang mahasiswi baru yang tampak polos tetapi diam-diam sangat seksi.","lastmod":"2026-03-07","duration":"33:28","url":"/play/19141043.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTExMDEvYjk2NmEyMDU0YWYzNzIyNDVhZWZmYzIxNDY1YThkYjMuanBn.cache","vod_id":19127246,"title":"Xia Xiaoxi, seorang gadis yang sangat cantik dan tampak polos namun memiliki sifat yang sangat mesum, adalah seorang mahasiswi yang melarikan diri dari rumah.","lastmod":"2025-11-01","duration":"08:16","url":"/play/19127246.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA3MjMvNjI1YTI5NzEyZDZkM2YwYjkzNmNhNmFlOTQ1ZTIzZDcuanBn.cache","vod_id":19113615,"title":"FC2-4486461, seorang mahasiswi terkenal berusia 19 tahun, atlet nasional saat ini dan mantan atlet nasional, tinggi 168cm, model foto, payudara ukuran E - cd1","lastmod":"2025-07-23","duration":"01:09:41","url":"/play/19113615.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZjZhYjdjMGMzMTUyZDZhZjZhMDU4ZGJkMWFiNzNkN2UuanBn.cache","vod_id":18923427,"title":"IPX-360 Mahasiswi Hamil Setelah Buang Air Kecil di Kereta yang Penuh Perilaku Cabul - Ia Dipaksa Menahan Buang Air Kecil Hingga Batasnya Tercapai dan Penis Mentah Dimasukkan ke Dalam Dirinya! Tak Mampu Menahan Kenikmatan, Ia Kehilangan Kendali dan Mempermalukan Kandung Kemihnya di Depan Umum! (Tsumugi Julie)","lastmod":"2025-03-19","duration":"01:58:47","url":"/play/18923427.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvODgyMmZlYzE3YzI4YjMwMjNiMTA4MDQ4YzIxZGE5NzMuanBn.cache","vod_id":18982108,"title":"Film Dewasa Tiongkok Tianmei Media TMW029: Mahasiswi Perawan Berubah Menjadi Dewasa Ye Yuxi","lastmod":"2025-03-19","duration":"19:57","url":"/play/18982108.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA0MjAvM2MxMzk0MDZlYjFmYjY4YzYxZDRiNTU1N2FjMzMyYzcuanBn.cache","vod_id":19101075,"title":"ROE-319: Berselingkuh dengan mahasiswi, menawarkan layanan \"cumshot\" seharga 1249 yen per jam.","lastmod":"2025-04-20","duration":"02:01:18","url":"/play/19101075.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA2MjMvODc1NGMxMDhmOThjMDI2NjliOGQxZjZiMWIzYWY5YjcuanBn.cache","vod_id":19151957,"title":"Seorang mahasiswi yang naif dan polos dirayu oleh seorang bajingan yang memperkosanya tanpa kondom, menyebabkannya mengerang dan menjerit.","lastmod":"2026-06-26","duration":"32:50","url":"/play/19151957.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA3MDEvZWE2NzZkM2I0YzQzNzdiYTUxN2M3NzRjMTA5ZTk2OTEuanBn.cache","vod_id":19110623,"title":"FC2-4466996 [Squirt] Pengalaman squirting pertama Hina-chan, mahasiswi setingkat idola! Lubang kecilnya yang sensitif dilanggar dan dibiarkan kotor.","lastmod":"2025-07-01","duration":"02:19:50","url":"/play/19110623.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYmE4MWMyNDZjN2NmM2EyNTBkNDU1MjE0Yjc3MzNkMjcuanBn.cache","vod_id":19134830,"title":"Gadis siswi polos, tanpa bulu, lembut, dan lugu yang memasuki industri film dewasa: sebuah kisah nyata.","lastmod":"2026-02-17","duration":"29:03","url":"/play/19134830.html"}]},
videoTitle: '[H-Enc] Kencan buta saya adalah siswa yang bermasalah - 5',
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=/`;
}
};
}