Kebocoran dalam talian mendakwa bahawa gambar-gambar dari asrama Universiti Xiamen telah muncul menunjukkan semua pelajar menjadi sasaran manipulasi psikologi (PUA). Lelaki itu sangat jahat, kerana telah tidur dengan begitu ramai gadis.
[Tukar Muka] Pancutan Zakar Besar Ju Jingyi Bocor....","lastmod":"2026-07-11","duration":"09:44","url":"/play/19163016.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA0MTEvZDU2ODM2N2I2ZDUwNDA5OGEzMjAxMzc0YTk5ODA5ZTEuanBn.cache","vod_id":19028776,"title":"Kakak perempuan teman wanita saya mempunyai payudara J-cup. Semasa teman wanita saya berada di kampung halamannya, saya melakukan hubungan seks dengannya sepanjang malam. (Mizuhara Misono HODV-21694-C)","lastmod":"2025-04-11","duration":"01:59:48","url":"/play/19028776.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNGJkY2U4YWI0ZGE5YzA4ZDNlNjAxNTNkZGUwNjNkOTEuanBn.cache","vod_id":18988502,"title":"Seorang pemuda kaya asyik mengganggu seorang wanita muda, kerana ingin membayarnya untuk melakukan hubungan seks dengannya.","lastmod":"2025-12-14","duration":"03:12","url":"/play/18988502.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNjZjY2ZiYWNhODM0MGYxZjU1MjJkNmNhYzBmZjExYzcuanBn.cache","vod_id":19146770,"title":"Dakwaan penglibatan seorang influencer dalam talian yang popular dalam hiburan dewasa telah dibocorkan.","lastmod":"2026-03-06","duration":"33:48","url":"/play/19146770.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEwMTkvYjUwOGJlYTdkZmFhNzYzMzgyNDQ5OGIzYTkyNWNhM2IuanBn.cache","vod_id":19058414,"title":"MILK225 Kakak saya membesar dalam keluarga yang tidak mempunyai konsep kesucian, jadi apabila dia pulang ke rumah, dia akan bogel sepenuhnya dan menghisap zakar sesiapa sahaja dengan polos.","lastmod":"2025-10-18","duration":"01:49:07","url":"/play/19058414.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMTlkY2NhODBkZWE2YmUwYTU5ZDNjNjAyMDJiZDVhY2MuanBn.cache","vod_id":18959627,"title":"\"Crazy Douyin\" pernah menjadi hit di internet. Bulatan peribadi orang kaya menempah barang tersuai berharga tinggi ~ Kecantikan pelajar tahun kedua kolej bernilai tinggi [Cik Wu] asrama sekolah dan alat mandi Gila Ziwei mengusik lucah (9)","lastmod":"2025-03-22","duration":"00:04:42","url":"/play/18959627.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA1MDUvOWJmNGVkYmE0ZDE2YjRiNTk1OTFkZjhmYzNkN2RjYjcuanBn.cache","vod_id":19032174,"title":"Malah seorang kerani kedai serbaneka yang mempunyai sedikit pengalaman seksual tidak dapat menahan nafsunya dan membiarkan zakar yang besar menembusi farajnya. (Arihara Rio 259LUXU-1247-C)","lastmod":"2025-05-05","duration":"01:12:03","url":"/play/19032174.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMGM0ZTUyMTI3NmNlNjE5NWE1OTIxZTMxOTIxNmEzOTAuanBn.cache","vod_id":19138832,"title":"Rahsia terbongkar dari bilik persalinan","lastmod":"2026-01-17","duration":"12:24","url":"/play/19138832.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEwMjEvNjdjNTk2ODE5YWJkODFmZTE4MDRiMzA5ODYxZGVmYzkuanBn.cache","vod_id":19058844,"title":"Model - Jatuh Cinta dengan Seorang Tuan Rumah dalam Mandian Buih Mewah dengan Keinginan Seksual yang Tinggi - Hitomi Hoshitani","lastmod":"2025-10-20","duration":"48:17","url":"/play/19058844.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMDVjNDJjY2Q0ZGE3MDAwZTdmMWE4NTdkOGYyNWUwZTUuanBn.cache","vod_id":18982213,"title":"Seorang bayi perempuan berwajah muda dan payudara besar muncul dan berseronok, mengikuti arahan peminat lelakinya untuk menggosok payudaranya dan bermain dengan farajnya. Dia memegang payudaranya yang besar dan menjilatnya sendiri, sementara seorang lelaki kulit hitam yang besar merangsang puting dan farajnya, menyebabkannya mengerang dan mengerang tanpa henti dengan cecair faraj yang banyak.","lastmod":"2025-03-23","duration":"01:38:59","url":"/play/18982213.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMDRjM2NiYmY4ZDBiNDY0ZDVhZDA2MWZhYjU3OGYxZDkuanBn.cache","vod_id":18970134,"title":"Dua orang gadis, terlibat dengan penuh ghairah dalam satu sesi yang liar; kedua-duanya cantik dan memikat. Lelaki bertopeng itu meniduri adik perempuannya, satu pertemuan yang benar-benar mendebarkan. Mereka menyusu, bermain dengan faraj masing-masing, dan bertukar-tukar erangan lucah serta bermain-main dengan peminat lelaki itu.","lastmod":"2025-03-23","duration":"00:52:56","url":"/play/18970134.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOTA5NzE3ZGU2YTM2ODg4NjZiNDUxZTM5MDU5MWEzZTUuanBn.cache","vod_id":18939235,"title":"PRED-211 Semasa isteri saya keluar, saya dan dua adik ipar saya melakukan seks bertiga terbalik, dan mereka meniduri saya dengan kuat.","lastmod":"2025-12-14","duration":"01:57:47","url":"/play/18939235.html"}]},
videoTitle: 'Kebocoran dalam talian mendakwa bahawa gambar-gambar dari asrama Universiti Xiamen telah muncul menunjukkan semua pelajar menjadi sasaran manipulasi psikologi (PUA). Lelaki itu sangat jahat, kerana telah tidur dengan begitu ramai gadis.',
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=/`;
}
};
}