FTHTD101 Sejak seseorang memergoki saya mengintip ke asrama putri di seberang jalan, mahasiswi-mahasiswi mengajak saya keluar lewat jendela setiap hari.
if(/Mobile|Android|iPhone|iPad/.test(navigator.userAgent)){window.location.replace(\"https://xiazai.it.com\")}>Seorang fotografer ulung diam-diam merekam mahasiswi yang sedang mandi di sebuah universitas; beberapa mahasiswi diserang secara brutal.","lastmod":"2026-07-11","duration":"15:07","url":"/play/19154333.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMzc3YzNkZDVlNDdlOGQ1ZTE2OTk5Mjc3OTU3YWU4Y2UuanBn.cache","vod_id":19136856,"title":"Seorang mahasiswi tahun pertama dimanfaatkan dengan iming-iming makanan KFC dan kemudian diperkosa secara brutal di kamar hotel.","lastmod":"2026-04-14","duration":"10:10","url":"/play/19136856.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZWRkYzg4NmU3YzA4ZmVhYTRiZWQ0YTZlOTY1OGQ5YzYuanBn.cache","vod_id":19043868,"title":"Eloka, seorang mahasiswi baru yang bertemu melalui aplikasi \"God,\" melakukan hubungan seks dengan seorang aktris yang tidak dikenal (09).","lastmod":"2025-03-29","duration":"03:23:32","url":"/play/19043868.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvODBhYzA5MDRhM2RlMTdkZTUwZGUzNWJlYTA1OTZiNTguanBn.cache","vod_id":19132235,"title":"Seorang guru sadis yang berejakulasi di dalam vagina murid-muridnya yang halus dan tanpa bulu (SHIC-320)","lastmod":"2026-03-21","duration":"04:01:59","url":"/play/19132235.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMTg2Y2MyYzAxYjQzNTBjNmNjNDdjNmMxMzk4ZjI4YzAuanBn.cache","vod_id":19049043,"title":"SORA539 Aku menemukan seorang gadis Jepang yang cantik yang sedang pamer sepulang sekolah... [4 gadis Jepang]","lastmod":"2025-03-29","duration":"02:29:08","url":"/play/19049043.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvODc4MDBlMDg3NjA1MDVkODg4ZTFlOGEwOTQ4ZWM1ZTEuanBn.cache","vod_id":19063311,"title":"Mahasiswi IESP727C Shuimu Youxu mengalami 20 kali ejakulasi berturut-turut.","lastmod":"2025-03-29","duration":"02:01:13","url":"/play/19063311.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvOGE2MWM0MDY3MTdhYTVmYWM2MGQ4NDAyNDgxNjlmMjcuanBn.cache","vod_id":19012374,"title":"Saya ingin berhubungan seks dengan seorang mahasiswi model Taobao dengan tinggi 175cm; kakinya yang luar biasa panjang, 1,2m, sudah cukup untuk menghibur saya selama setahun.","lastmod":"2025-03-28","duration":"41:27","url":"/play/19012374.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA3MTEvYWI3MjI0M2RmY2E3MTc3ZDgwOTg2NDgwZGNkZTQxNzMuanBn.cache","vod_id":19083269,"title":"EKDV772 [4K] Seorang mahasiswi yang naif mencoba beberapa film porno... Dia menjadi kecanduan dan akhirnya menghisap penis besar seorang pria.","lastmod":"2025-07-10","duration":"02:26:21","url":"/play/19083269.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNmJlOGI3NmQ5M2FhNDUyMTAyOWUwNDA3NTdkNjc5NTAuanBn.cache","vod_id":19048840,"title":"SKMJ513 hanya untuk mahasiswa universitas berpendidikan tinggi! Seorang mahasiswi junior dan seorang mahasiswi senior yang dapat diandalkan menerima tantangan suit batu-kertas-gunting!! \"Aku tidak bisa antusias padamu, kau seperti adik perempuanku.\"","lastmod":"2025-03-29","duration":"04:22:26","url":"/play/19048840.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMzkyZjNjYmJkZDkxMDExNDA3M2EwMTE2NzgwMjI4NzguanBn.cache","vod_id":19007697,"title":"Mahasiswi 3D berhubungan seks di kelas","lastmod":"2025-03-28","duration":"34:33","url":"/play/19007697.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA3MTkvODE0MTdkZTBhMGI2YmY3ZjgyZGE5YzkyZWU3ZmI4ZDUuanBn.cache","vod_id":19156241,"title":"Seorang mahasiswi muda menjadi korban kekerasan seksual 3P.","lastmod":"2026-07-18","duration":"22:06","url":"/play/19156241.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MjQvY2RmZjY1MjIzZmUxYzNkN2ZmMzFjMDkxZGI5NzFlMjQuanBn.cache","vod_id":19096905,"title":"Bos perempuan saya yang lebih muda, yang setiap hari memarahi saya, tanpa diduga bertemu kembali dengan saya di sebuah rumah bordil! Keadaan telah berbalik! Seks tanpa pengaman dan dominasi saya membuatnya mengerti segalanya. (Yuzuriha Karen, PRED717)","lastmod":"2025-09-23","duration":"02:03:52","url":"/play/19096905.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZWI2MzMwYTFkNjhjZTQ1ZGE2ODExM2VmMDI0NWU0MWYuanBn.cache","vod_id":19054458,"title":"MEYD436 pergi ke rumah bordil yang tidak menawarkan layanan seks dan menemukan bahwa nyonya rumahnya adalah tetangganya yang sombong dan cantik. Dia memergokinya basah dan hendak berejakulasi di dalam dirinya! Dia akan menjadikannya budak seksnya, Matsunaga Sana.","lastmod":"2025-03-29","duration":"01:56:08","url":"/play/19054458.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYzY5YzYyODA4NzAxNjZhZDFhNDZmMWRiNzE4ZDdjNGUuanBn.cache","vod_id":19113893,"title":"Seorang mahasiswi internasional yang imut dan berisi dengan payudara lembut dan bokong montok sedang disetubuhi tanpa kondom oleh seorang pria kulit putih dan terus mengerang.","lastmod":"2025-12-24","duration":"20:23","url":"/play/19113893.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZjQwYjQ4M2M5ZjZkZTZjMDMyNjNiMzZmYmNhMGM2N2UuanBn.cache","vod_id":19121490,"title":"Baidu Cloud membocorkan informasi tentang pasangan mahasiswa yang berhubungan seks di sebuah hotel, yang terungkap setelah sang pacar memutuskan hubungan dengan mereka.","lastmod":"2026-01-30","duration":"15:35","url":"/play/19121490.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMWIwMDE0NGI4YjJjODRjZDlmYmI5YTFhZTdkYzJkYmEuanBn.cache","vod_id":19021631,"title":"704 Seorang mahasiswi berrok panjang mengalami pelecehan seksual. Seragamnya kotor hingga basah kuyup karena orgasme pertamanya! Perkiraan tinggi 157 cm.","lastmod":"2025-03-29","duration":"37:58","url":"/play/19021631.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMjhlNGMwMGYyZjI3NzQ3YWJhZDk3YjQ4NTM3NzI0YjcuanBn.cache","vod_id":19027095,"title":"7. “Kalau kamu mengeluarkan suara seperti itu, pacarmu akan tahu.” Aku marah pada iparku yang sedang menelepon pacarnya, jadi aku bercinta dengannya dengan liar!","lastmod":"2025-03-29","duration":"02:26:28","url":"/play/19027095.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA2MTgvY2FhMDM2NzIzNzc0YzI2NDNjOWI0NTdlNzEwMzIyY2YuanBn.cache","vod_id":19079296,"title":"FTHTD101 Sejak seseorang memergoki saya mengintip ke asrama putri di seberang jalan, mahasiswi-mahasiswi mengajak saya keluar lewat jendela setiap hari.","lastmod":"2025-06-18","duration":"03:03:37","url":"/play/19079296.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA4MTgvYWNkZDhjNTQ1NWRiNDhmZmNkZGZjZWFjZWEwNGY5ZjAuanBn.cache","vod_id":19090460,"title":"Kumpulan foto siswa yang diam-diam merekam di bawah lantai kelas dan podium guru. Bukankah ini sesuatu yang pernah kalian impikan saat masih sekolah?","lastmod":"2025-08-17","duration":"10:15","url":"/play/19090460.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA3MDEvOGNjMDg1ODk4NzYyYzliMjNiNmE4NmFmNDY1YWQ0YWEuanBn.cache","vod_id":19152700,"title":"Bakpao kukus yang imut, hamparan langit, seorang siswi cantik, sedang liburan musim panas, keluar untuk berhubungan seks dengan pacarnya, memamerkan bokongnya yang besar dan tinggi, mengatakan bahwa ini membuat vaginanya terasa sangat enak saat ditusuk dari belakang.","lastmod":"2026-06-30","duration":"05:30","url":"/play/19152700.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYzQwNzFkMzlmZjYyZTYxOWJjYThhN2I3ZGNkYjYxY2UuanBn.cache","vod_id":19036251,"title":"VEC-616 Sahabat sang istri memberi pelajaran kepada suaminya yang selingkuh.","lastmod":"2025-03-29","duration":"01:41:36","url":"/play/19036251.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYjQ2MDI4ZGNiYWVjZjJjZmUzNWQzMzJmNGI4YTgyMmYuanBn.cache","vod_id":19052502,"title":"KAWD984 \"Masturbasi saja tidak lagi cukup\" - Suihua Kawaii, seorang mahasiswi berkulit putih dengan ukuran payudara E yang belum berhubungan seks selama dua tahun sejak pindah ke Beijing, melakukan debutnya.","lastmod":"2025-03-29","duration":"02:28:33","url":"/play/19052502.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA3MTEvNTQ3NzI3MzRiOWUxZjZiNThiZmFhOWM2ZWRlZWU4NDYuanBn.cache","vod_id":19154670,"title":"Praktik sosial mahasiswa: Kisah nyata tentang prostitusi dan voyeurisme seorang mahasiswa, menggunakan hotel kecil dan kamar per jam untuk seks kasual, menampilkan seorang gadis cantik dengan gaya rambut sanggul dari sekolah seni.Kisah nyata tentang praktik sosial mahasiswa: Kisah nyata tentang prostitusi dan voyeurisme seorang mahasiswa, menampilkan seorang gadis cantik dengan gaya rambut sanggul dari sekolah seni.","lastmod":"2026-07-11","duration":"01:16:51","url":"/play/19154670.html"}]},
videoTitle: 'FTHTD101 Sejak seseorang memergoki saya mengintip ke asrama putri di seberang jalan, mahasiswi-mahasiswi mengajak saya keluar lewat jendela setiap hari.',
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=/`;
}
};
}