LUXU1122 TV Mewah 1108 "Ingin melupakan orang itu..." Untuk membalas dendam terhadap lelaki yang memutuskan pertunangannya, dia membintangi AV! ? Memaparkan susuk tubuh yang sangat cantik, berbeza sama sekali dengan imejnya yang polos! Ketika dia menjadi gila dengan gelombang keseronokan yang tidak berkesudahan, payudara besar dan punggungnya yang besar bergoyang!
Seorang pelajar perempuan yang suci dan lembut yang saya temui di Momo memberi saya seks oral di hadapan cermin, kemudian menelan air mani saya semasa kami melakukan hubungan seks dan dia sedang memerhatikannya.","lastmod":"2026-07-11","duration":"04:37","url":"/play/19154029.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZjYyMTI2YTMyMmU3NTVlODdjOWY2Mjc5MDEzMWY2MDIuanBn.cache","vod_id":19044718,"title":"Jika anda peminat Gundam, maka terbenamlah dalam punggung montok kami!! Saya seorang lelaki yang menyedihkan, Aoi Nagisa Mitsuki, tergoda dengan seluar dalam ketat kakak tiri saya.","lastmod":"2025-03-29","duration":"02:39:07","url":"/play/19044718.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA4MDEvMmQyNmRmNjhmOTcwMTUxZThmYjI3YzQ2ZWJjZDgxZjIuanBn.cache","vod_id":19087117,"title":"Seorang pelajar sekolah menengah yang suci dan jelita tidak diancam dan dirogol oleh bapanya sendiri.","lastmod":"2025-07-31","duration":"16:53","url":"/play/19087117.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvN2IwMmFkZGM0OGVhYjNkNjRkOWUxNWZjYjEyOWYyMWQuanBn.cache","vod_id":19136300,"title":"Rakan sekelas saya, seorang gadis gempal, sedang melakukan sesi seks 3P di mana dia melakukan seks oral, seks tekak dalam-dalam, dan disetubuhi dengan kuat dari kedua-dua hujungnya. (Pandangan dekat adegan)","lastmod":"2026-04-11","duration":"34:24","url":"/play/19136300.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYzZlNTEyZjU4NGQzMmRmY2Y2NjQ0ZjUyMDVmNWMyZTAuanBn.cache","vod_id":19055526,"title":"SIRO3988 [Tembakan Pertama] [Payudara Lembut, Kulit Lembut] [Punggung Besar yang Lazat] Payudara lembut itu diramas begitu kuat sehingga nafasnya keluar, dan pendandan rambut pelatih mengeluarkan bunyi comel ketika dia mencapai klimaks berulang kali... [Tembakan Pertama] Permohonan AV Dalam Talian → Penggambaran Pengalaman AV 1125 (Sumbang mahram)","lastmod":"2025-03-29","duration":"01:06:41","url":"/play/19055526.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly9zYnp5dHBpbWc0LmNvbTozNTE5L3VwbG9hZC92b2QvMjAyNjAyMTgtMS83ZDA3ZjkzODkwNTVhMmYwODM2YjZiNTMxMmU2NDc1MS5qcGc=.cache","vod_id":19125355,"title":"Gadis dara sekolah menengah menjalinkan hubungan dengan gadis cantik sekolah yang tidak bersalah dan teman wanitanya yang botak – satu kontras yang ketara – seks hotel tanpa kondom.","lastmod":"2026-02-18","duration":"14:36","url":"/play/19125355.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMzlmNDI4MjRlNDVhYjIzYzBhODc1MWRjZjhmYjBkNTYuanBn.cache","vod_id":19140389,"title":"Rakaman 4 jam 6SEX dengan seorang wanita amatur yang memiliki payudara roket yang ajaib dan badan primitif yang aneh. MERCURY","lastmod":"2026-05-01","duration":"04:01:02","url":"/play/19140389.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYmY5NjczNzI1ZTNmYTljOTk2MTE3Y2RlOTdkNjQxYTYuanBn.cache","vod_id":19055190,"title":"420HHL041CM.F(22) Peminat Hoihoi Amatur·Amatur·Kisah Pelik·Dokumentari·Fotografi Peribadi·Kecantikan.","lastmod":"2025-03-29","duration":"01:35:07","url":"/play/19055190.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYThlYzJlYWQ3OGE4YWRmZWY4N2IzODkxZWZjY2YxMmYuanBn.cache","vod_id":19045886,"title":"Seorang wanita matang dan menawan dengan payudara yang membuatkan anda ingin menggigitnya—seorang pelakon wanita yang tidak dikenali.","lastmod":"2025-03-29","duration":"03:00:36","url":"/play/19045886.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMWYxYTM0Y2UzNzg2YzJlMmNiYjk0NWQ2MzhkMTcxNDYuanBn.cache","vod_id":19051724,"title":"NTK187 Punggung cantik yang bertukar merah selepas dipukul! Payudara G-cup yang cantik dan bergoyang! Alat kelamin yang basah dan tidak berbulu! Seorang wanita masokis yang rosak moralnya merayu untuk seks primitif sejurus selepas dipukul!! Video yang bocor menunjukkan seorang wanita masokis dipukul semasa hubungan seks, putingnya basah, dan pangkal pahanya basah akibat belaian kasar! ? : Fail video POV terbina dalam kamera sewa hotel Love 047 yang terlupa dipadamkan.","lastmod":"2025-03-29","duration":"01:01:29","url":"/play/19051724.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMDM0N2UxN2FjNjZkZDllMzAzN2I1MjY1YTMxMjg5ZTEuanBn.cache","vod_id":19029357,"title":"Seorang pelajar perempuan yang kelihatan seperti perempuan dengan santai mencuba P-love... Dia menjadi ketagih dan mencari seorang lelaki yang lebih tua dengan zakar yang besar.","lastmod":"2025-03-29","duration":"01:59:15","url":"/play/19029357.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvY2JiYzEyMjAyYTYyZjAwMjIyNjVlNjFiZmI2NzJjODYuanBn.cache","vod_id":19041837,"title":"Hoihoi Lover 05 ~Konokono Hamedori~ Amatur Hoihoi Lover·Fotografi Peribadi·Gadis Cantik·Pakaian - Mitsumi An, Mori Hinako, Arai Rima","lastmod":"2025-03-29","duration":"04:19:01","url":"/play/19041837.html"}]},
videoTitle: 'LUXU1122 TV Mewah 1108 "Ingin melupakan orang itu..." Untuk membalas dendam terhadap lelaki yang memutuskan pertunangannya, dia membintangi AV! ? Memaparkan susuk tubuh yang sangat cantik, berbeza sama sekali dengan imejnya yang polos! Ketika dia menjadi gila dengan gelombang keseronokan yang tidak berkesudahan, payudara besar dan punggungnya yang besar bergoyang!',
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=/`;
}
};
}