Seorang gadis muda, yang baru sahaja dewasa, telah ditangkap sedang melakukan hubungan seks dengan teman lelakinya; farajnya sangat ketat dan pergerakannya sangat janggal.
Teman wanita kecil berdada besar dengan susuk tubuh montok di rumah bersama teman lelaki kecilnya yang berzakar besar melakukan hubungan seks tanpa perlindungan.","lastmod":"2026-07-11","duration":"","url":"/play/19206621.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNWVkMTc5OTQ3Y2U3MjUxYWJiM2YxZjBjZTQwZjQzMGIuanBn.cache","vod_id":19175592,"title":"Seorang wanita pengembara berusia 25 tahun menggunakan tubuhnya untuk membayar penginapan selama seminggu selepas hubungannya dengan teman lelakinya terbongkar.","lastmod":"2026-01-22","duration":"0:13:48","url":"/play/19175592.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMGI5YTVmMjkzMDU3YjkwNjM1MzJhMDIwNGQwZDEyNjEuanBn.cache","vod_id":19185905,"title":"Satu video yang tular dalam talian menunjukkan seorang pelajar pertukaran Jepun di sebuah universiti bahasa asing melakukan hubungan seks dengan teman lelakinya yang kaya dari China.","lastmod":"2026-03-12","duration":"0:31:02","url":"/play/19185905.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNDRlZjBhNDFlNTY4NDJiMzk0Mzk5Zjg0YWZmMzRhNzcuanBn.cache","vod_id":19188771,"title":"Seorang gadis yang ingin melakukan hubungan seks dengan teman lelakinya buat kali pertama dalam beberapa hari tetapi tidak mahu ia dilihat sebagai kali pertamanya, jadi dia berlatih dengan seorang lelaki yang lebih tua secara rawak untuk penembusan. (Kitaoka Karin HMN-795)","lastmod":"2026-03-25","duration":"1:37:04","url":"/play/19188771.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MDgvMmVkNjBkMWEwOThiZTU4Njc2N2RiZDhjYjQ3NDQzMmQuanBn.cache","vod_id":19153291,"title":"Gambar peribadi yang menunjukkan seorang wanita muda berdada besar berkaca mata sedang melakukan hubungan seks dengan seorang bintang lucah telah dibocorkan.","lastmod":"2025-09-07","duration":"0:07:47","url":"/play/19153291.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYzJkZDRkZGM5MDM1NWUxOTA0NWY1MjZmMGQ0YTIxMzkuanBn.cache","vod_id":19068889,"title":"Ejakulasi seks pelacur KTV 1","lastmod":"2025-03-26","duration":"0:16:01","url":"/play/19068889.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZTE0NjA1N2E2ZDY1M2E5NjhlNWQxNzczMzM0MWJlOWEuanBn.cache","vod_id":19174581,"title":"Kompilasi ini mendedahkan kebenaran yang terungkap selepas minum: ekspresi tulen dan kata-kata lucah seorang wanita muda yang dihormati yang, selepas mabuk dan diserang secara seksual, berpura-pura menentang sambil pada masa yang sama mengalu-alukan perbuatan itu.","lastmod":"2026-01-17","duration":"0:14:06","url":"/play/19174581.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMTMvMmUyMTYyMGViNDUwZWYyMWM1ZGQ2OWM3ZTI1NDNjOTQuanBn.cache","vod_id":19165964,"title":"[Bocoran Terkini] Wanita matang dan sudah berkahwin dari salon kecantikan menonton penstriman video dewasa.","lastmod":"2025-12-13","duration":"1:12:22","url":"/play/19165964.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA2MTQvZGMwZjNlZDMwNWM3M2IyNWJiNmVmYTI4ZTU4YzNhZTQuanBn.cache","vod_id":19203817,"title":"Sepupu saya memakai stoking JK putih dan tidak memakai seluar dalam di rumah. Dia seorang perempuan jalang kecil yang miang yang baru kehilangan keperawanannya sebulan yang lalu, dan kemaluannya sudah begitu sawo matang. Dia menggoda saya di belakang teman lelakinya.","lastmod":"2026-06-13","duration":"1:08:39","url":"/play/19203817.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYzc0ZGMxMDZmYjQ0MmViNThhOGQxNzU2N2I4MjkzYWQuanBn.cache","vod_id":19183816,"title":"Foto peribadi bocor, menunjukkan seorang gadis cantik sekolah dilatih dan ditiduri dalam pelbagai cara, erangannya benar-benar luar biasa.","lastmod":"2026-03-02","duration":"0:18:49","url":"/play/19183816.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEwMDgvMTdjNzk4MjlkZWE4ZWJlNjFmYzEwYTI0YWI4OWIzNTAuanBn.cache","vod_id":19158438,"title":"Seks berpeluh dirakam secara rahsia! Fetish seksual malu-malu isteri yang menggoda, jilid 6. Pelakon tidak dikenali: EYS107","lastmod":"2025-10-07","duration":"2:59:07","url":"/play/19158438.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvY2QzMmUzZmZiMGQ2NjNiYTRmYTNhNjFkYzEyOTFmNTQuanBn.cache","vod_id":19183843,"title":"Gambar peribadi yang bocor menunjukkan seorang pelajar sekolah kejururawatan berusia 18 tahun yang sangat cantik dengan susuk tubuh yang hebat dan kulit yang licin; dia akhirnya tertelan.","lastmod":"2026-03-02","duration":"0:45:37","url":"/play/19183843.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvN2Q5NzJhNmU0ODRhNjUzNjA2NzYzNjdkNzk0YTNhZTIuanBn.cache","vod_id":19188656,"title":"Satu gambar swafoto yang bocor menunjukkan seorang pelajar kolej yang sangat cantik dan seksi di sebuah hotel melakukan hubungan seks yang sengit dengan teman lelakinya yang kaya. Wanita itu mempunyai kulit yang cerah dan payudara yang tegap.","lastmod":"2026-03-25","duration":"0:37:11","url":"/play/19188656.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA2MTIvODhiM2Q0Nzk4ZDg5YWY5N2YwZWNmMjczYzYxNTA0NWYuanBn.cache","vod_id":19203658,"title":"Perjalanan pekerja untuk pengeluar pakaian dalam bertukar menjadi pesta seks yang mabuk dan huru-hara! Para pekerja, dalam keadaan mabuk, mengheret orang yang tidak dikenali dalam perjalanan itu, mengakibatkan pelbagai \"pemburu\" (eufemisme untuk aktiviti seksual).","lastmod":"2026-06-11","duration":"2:43:10","url":"/play/19203658.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA3MTEvOTI3ZTU2ZWVlOGI2YWQwMTIxMGYzZDIxN2E0ZGEwZjEuanBn.cache","vod_id":19209027,"title":"Tajuk utama swafoto Cina laman web gadis pertunjukan dewi, video seks model muda Li Zixi dengan seorang lelaki kaya bocor, mengerang kuat.","lastmod":"2026-07-17","duration":"","url":"/play/19209027.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvOWVjMGJmZTY1ODUxOTg1NTM1MmMwZGJjMGY0YjJhZjYuanBn.cache","vod_id":19184340,"title":"DJ bertenaga tinggi, afrodisiak, pengambilan alkohol berlebihan, seks orgasme, SEASON20 BAB-181","lastmod":"2026-03-04","duration":"2:09:01","url":"/play/19184340.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZjc3ZWYyYmUzMTk5NjVmZDdlOGU0N2EzZTE0M2E2M2IuanBn.cache","vod_id":19051747,"title":"Lubang merah jambu sepupu saya, Guanyin duduk atas posisi teratai, ejakulasi dalaman.","lastmod":"2025-03-26","duration":"0:30:17","url":"/play/19051747.html"}]},
videoTitle: 'Seorang gadis muda, yang baru sahaja dewasa, telah ditangkap sedang melakukan hubungan seks dengan teman lelakinya; farajnya sangat ketat dan pergerakannya sangat janggal.',
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=/`;
}
};
}