INC-CD2 Domoto Miri, une femme au foyer aux gros seins, est brutalement baisée et éjaculée à l'intérieur ! Son vagin de salope est complètement conquis.","lastmod":"2026-07-11","duration":"","url":"/play/19244755.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYTY1NzgwYWQ4MWMwYjM5ODI4NmQ3Y2NkYzE4YjNjZTQuanBn.cache","vod_id":19226662,"title":"La plus chaude des salopes du spa, un massage professionnel qui se transforme en baise sauvage, des gémissements sans fin jusqu'à l'éjaculation interne.","lastmod":"2026-04-04","duration":"0:31:13","url":"/play/19226662.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvY2ZkNDczYzIyM2VkNzc3OGEwOTNmZWMxYjMwNGM2YzkuanBn.cache","vod_id":19240566,"title":"Une salope chinoise se fait cocufier dans un salon de massage, partouze à quatre, gros seins brutalement baisés et éjaculations répétées à l'intérieur.","lastmod":"2026-06-14","duration":"0:29:40","url":"/play/19240566.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMDI5MzI0NGQwODZlZDYxYjJjNjNkNTFhMjc2YjhhYjkuanBn.cache","vod_id":19113467,"title":"PPPD-774 Massage érotique stimulant à l'huile, sensations intenses et orgasme Hitomi1","lastmod":"2025-03-29","duration":"02:00:18","url":"/play/19113467.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNDA0N2ZjYTg0YzU0OWE5ODlhN2MxMjM1ZjNiZDUyNDIuanBn.cache","vod_id":19217037,"title":"REBD-980 Julia17, une femme au foyer aux gros seins, se fait brutalement baiser et sombre dans la dépravation ; un trio obscène au crépuscule avec éjaculation interne et éjaculation faciale.","lastmod":"2026-02-10","duration":"1:29:15","url":"/play/19217037.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZjg5ODk0OWExYTdkMGIyZjEzZDdmNDAyMjA3NGQwN2IuanBn.cache","vod_id":19232445,"title":"Jeu lesbien de lavement sauvage : une femme mûre aux seins énormes se frotte le vagin sensible, Lahaina Donghai jouit et s’immerge","lastmod":"2026-05-02","duration":"2:36:38","url":"/play/19232445.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvN2M2M2NkZDdhMmM5YzRjYjZhZGE3Y2JiMjhjNTZkY2IuanBn.cache","vod_id":19072428,"title":"DVDES-877 Surveillance AV Unisexe : Une femme âgée au grand cœur et aux formes généreuses et son enfant vierge après l'âge adulte.","lastmod":"2025-03-28","duration":"04:01:26","url":"/play/19072428.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMTMyMTVmOGViNTBiNzMzMTU5MGZiMTlhOTU2N2UxN2UuanBn.cache","vod_id":19149949,"title":"ROE-063 La veille du mariage de son fils, la mère se transforma en femme. —Rieko Hiraoka","lastmod":"2025-03-29","duration":"02:28:10","url":"/play/19149949.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOWIyZjU5MjQwN2VkYmVkMDM4MTQ0NDQ3OWM3ZTA2YjAuanBn.cache","vod_id":19081261,"title":"[Non censuré] SSIS-356 Un service divin et des talents érotiques exceptionnels : une vierge devient accro au sexe en un mois seulement ! Premier témoignage de cohabitation de Washio Mei","lastmod":"2025-03-29","duration":"03:04:03","url":"/play/19081261.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvOTQzZGRmMjk1ZTQ4Njg3YTRiMjVjZjU0NDNhMzhmOTIuanBn.cache","vod_id":19230125,"title":"Le seul chef-d'œuvre de Wenxuan Tanhua ! Une beauté de première qualité avec des photos HD non censurées montrant son visage, son vagin énorme et charnu, humide et tentant, se faisant brutalement baiser jusqu'à ce qu'elle crie d'extase !","lastmod":"2026-04-20","duration":"1:23:31","url":"/play/19230125.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvODBhOWNmMDQ5YmYwMzk2MTFjYjVmODc4OGYzMjNmZTYuanBn.cache","vod_id":19229893,"title":"La plus chaude salope de MMD, avec ses énormes seins qui tremblent sauvagement, sa chatte humide et glissante vous donne envie de la baiser fort !","lastmod":"2026-04-19","duration":"0:01:42","url":"/play/19229893.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZTQ5OTg4MmFkNGRhNmM5YjY3MjdjYTdiYzhiYzc5YTEuanBn.cache","vod_id":19231361,"title":"Lisa, une femme mariée de Hong Kong aux formes généreuses (bonnet 34E) : sa chatte rose et tendre était violemment baisée, et elle s'abstenait d'éjaculer à l'intérieur d'elle tout en maintenant l'abstinence !","lastmod":"2026-04-28","duration":"0:06:41","url":"/play/19231361.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvOTlhMDBkNGY5YzBmNDUzZjE3Y2NmZDBiYTIwOGE4ODUuanBn.cache","vod_id":19059738,"title":"Massage japonais d'Anita : Jouer avec le corps mouillé d'un homme petit, vol. 1, Anita B","lastmod":"2025-03-28","duration":"","url":"/play/19059738.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNjYwYjFhMWQ3NGNjY2Q0ZDliZDEzYzk2YTlmZTM0MmMuanBn.cache","vod_id":19093093,"title":"HUNT-657 Je voulais surprendre tout le monde à la fête d'anniversaire de mon amie, alors j'ai malicieusement acheté un vibromasseur rose en cadeau, mais le résultat a été décevant.","lastmod":"2025-03-29","duration":"00:27:09","url":"/play/19093093.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvNTY3MzcxNGYyMzM5NzM4MTBmYTJjYWY3ZjIyZjVmODUuanBn.cache","vod_id":19236507,"title":"HEYZO 3196 Les énormes seins de Kisaragi Yui sont brutalement baisés ! Le sexe avec les seins et l'éjaculation faciale sont la tentation ultime.","lastmod":"2026-05-21","duration":"0:20:29","url":"/play/19236507.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMTMvODJlNjgyYjEwZTU4Nzc5MDM5YTRmNWI0MjMxYzgwZTIuanBn.cache","vod_id":19206696,"title":"Rencontre passionnée dans une source thermale d'une femme au foyer de 34 ans aux formes généreuses ; poitrine opulente (bonnet I), ferme et séduisante ; BANK-211","lastmod":"2025-12-13","duration":"2:00:53","url":"/play/19206696.html"}]},
videoTitle: 'Une femme aux formes généreuses a engagé deux masseuses, mais la séance a dégénéré en partouze !',
language: 'fr',
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('Lien copié !');
}).catch(() => {
// 降级到旧方法
document.execCommand('copy');
alert('Lien copié !');
});
} else {
// 降级到旧方法
document.execCommand('copy');
alert('Lien copié !');
}
}
},
// 切换布局
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=/`;
}
};
}