Mesin jilat amatur yang tidak dijangka, 50 ejakulasi ejakulasi berturut-turut yang sengit! Pilihan seks oral terunggul untuk jelita kelas-S amatur kelas-S","lastmod":"2026-07-11","duration":"04:00:34","url":"/play/19154164.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvY2ViOWQyZjVkNjg3MjQzZmYwM2Y1NGU4YTg1ZWQ4MDMuanBn.cache","vod_id":19122217,"title":"Gadis pelajar berkualiti tinggi tahunan tanpa seluar dalam, sesi pemotretan cawan B, cecair putih bocor keluar.","lastmod":"2026-02-03","duration":"11:52","url":"/play/19122217.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEwMjIvNzQzOTFjODQ3NWNlMzVjZWM5MzUzODIwMTJiNmMwNWIuanBn.cache","vod_id":19102130,"title":"Kontras antara penampilan anjing betina yang lucah memakan zakar dan suri rumah yang sopan dan berkaca mata yang bermain dalam seks 3P, basah ketika farajnya sendiri ditembusi oleh dubur tuannya.","lastmod":"2025-10-21","duration":"12:49","url":"/play/19102130.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA3MDQvNzBkMDcxNjQ2MGRkZjYzZDRjNmJlYmVlZDI2MDBkNTQuanBn.cache","vod_id":19081908,"title":"YPCN003 Pemilihan Barisan Hadapan Kereta Api Kanto yang Sesat","lastmod":"2025-07-03","duration":"02:18:05","url":"/play/19081908.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MDQvNGYwMzU5NGM5ODhmNzBkYzZhNWVlMTQ3ZjdiYmMxOTcuanBn.cache","vod_id":19093433,"title":"[Bahasa Cina] SONE592 Saya tidak tahu apa-apa tentang zaman persekolahan isteri saya, tetapi apabila saya melihatnya mencuri pakaian seragam anak saudara perempuan saya, saya rasa satu keterujaan yang aneh... Saya sudah lima tahun tidak melihatnya.","lastmod":"2025-09-03","duration":"02:02:07","url":"/play/19093433.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvMGI4NmZiZWQ0MjRhYjY1MjQ1ZGVkY2EzMTQwYzE5ODguanBn.cache","vod_id":19144417,"title":"Satu tumbukan yang sangat kasar ke dalam tekak seorang pelajar yang tidak matang. Penembusan tekak dalam yang paling liar dalam hidupnya. Chiharu, seorang pelajar kolej biasa. MISM-316-C","lastmod":"2026-05-20","duration":"02:07:58","url":"/play/19144417.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYmU2Mjg1MWE2OWVlMmVmMDg4MjIxNTQwYmI4YmE5MWMuanBn.cache","vod_id":19007623,"title":"Mendisiplinkan anjing betina berusia 95 tahun, serangan 3P dari kedua-dua hujung, penembusan berganda.","lastmod":"2025-03-28","duration":"36:33","url":"/play/19007623.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA2MDcvZDI3MzRlMmZkYTQ3ZjVmNjIxMDcxOGE3ZjNjY2M0MjMuanBn.cache","vod_id":19147891,"title":"Seorang gadis Gen Z yang berdada besar terbangun dalam keadaan bosan semasa tidur petangnya dan memanggil seorang pelacur dari sebuah perkampungan bandar ke rumahnya. Pelacur itu ialah seorang gadis kampung muda yang langsing dan berpakaian seragam sekolah.","lastmod":"2026-06-06","duration":"09:43","url":"/play/19147891.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MTcvY2IzY2ExZWQ0ODczZmQyODU5OGEyYzdlNmZmZDk1NzcuanBn.cache","vod_id":19095959,"title":"Gadis yang pada dasarnya sentiasa kekurangan wang itu kadangkala seorang pelajar kolej, kadangkala seorang tutor. Sifat sebenarnya adalah hamba seks. (Hasegawa Reimi, JUBE024)","lastmod":"2025-09-16","duration":"02:17:49","url":"/play/19095959.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA0MTcvZTk4OWVkOWFiNmU0Yzg2YTAxMGQwNDI4MDUwODQxNzUuanBn.cache","vod_id":19069965,"title":"Gadis bernilai tinggi berskirt pendek, ciuman Perancis, seks oral, mengurat, penembusan belakang, seks rancak, mengerang dan tercungap-cungap.","lastmod":"2025-04-17","duration":"38:05","url":"/play/19069965.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA2MDkvNWQ2YjU3ZDhkMmVkYWU5ODJlOGRiOGZjNTljMWU5ZDAuanBn.cache","vod_id":19148377,"title":"Siri Video Panjang Kelab Ayam: Seragam Pelajar Sekolah Lanjutan Seks Oral Darlings VS Pembebasan Anal","lastmod":"2026-06-08","duration":"53:24","url":"/play/19148377.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNGVhODY5NWIyYTkyNjVkYTBhZjI2NTFjOTljOGExMWEuanBn.cache","vod_id":18989362,"title":"Seorang wanita muda berambut pendek dan menarik sedang melakukan hubungan seks dengan pasangan seks kasualnya.","lastmod":"2025-03-28","duration":"01:21:21","url":"/play/18989362.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZDY3N2Q1YWRjYzMzMmZmYTg3NDg2YjFjYWI1MDQ1YmIuanBn.cache","vod_id":19066042,"title":"Koleksi lengkap siri gadis sambilan EboArt MS333 tanpa penapis YD.","lastmod":"2025-03-29","duration":"10:35","url":"/play/19066042.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvOTQ2ZmZhMTViNzdjYzJlNjc5ZmIyODgwYmY3NTcwZWUuanBn.cache","vod_id":19122553,"title":"Saya menggunakan setiap kemahiran yang pernah saya pelajari dalam hidup saya untuk menidurinya tanpa henti selama sejam. Jalang kecil saya yang menggoda dan montok—inilah mesin seks yang sempurna dalam fikiran saya!","lastmod":"2026-02-04","duration":"59:49","url":"/play/19122553.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZWVkYzRlZWY1ZmUxM2JiNTJhOWY2OTU2ZTQzNjc2YjguanBn.cache","vod_id":19142718,"title":"Baju tidur seksi dan stoking hitam Nuomibaby, adakah ia akan membuatkan anda pancut?_Hari ini anda betina kecil tuan anda, sila nikmati.","lastmod":"2026-05-12","duration":"10:06","url":"/play/19142718.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MTQvNWY0YTgwMDc1OGI0YzQwMWJkNmY3YjNmZTI4ZWQ1YjAuanBn.cache","vod_id":19095384,"title":"Dewi pengiring yang cantik dan menawan, dengan susuk tubuh yang menakjubkan dan perangai yang indah, sangat menikmati diresapi.","lastmod":"2025-09-13","duration":"30:27","url":"/play/19095384.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMWYwMmVkNDg2YzVlZDczODQ4MTI3NGU3MjQ4OWM5Y2UuanBn.cache","vod_id":19128500,"title":"Seorang pengguna Douyin dengan 670,000 pengikut dan penampilan yang memukau, yang terkenal dengan video lucah dan masa lalunya yang memalukan, baru-baru ini mendapat banyak perhatian, terutamanya dalam kalangan netizen baharu yang belum pernah mendengar tentangnya.","lastmod":"2026-03-04","duration":"04:25","url":"/play/19128500.html"}]},
videoTitle: 'Koleksi anjing pelajar betina yang berkualiti tinggi dan menarik yang dipilih susun.',
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=/`;
}
};
}