\"Mon genre est-il étrange ?\" L'histoire complète des coulisses de Mami (nom provisoire), la jeune femme de 31 ans qui demande K.M.P. en mariage.","lastmod":"2026-07-11","duration":"02:11:46","url":"/play/19162014.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOGE0ZWQyYmEzZjFkM2RjMWVmYmE4MDA3ZmNkMzdjNzAuanBn.cache","vod_id":18957324,"title":"[Sous-titres chinois] SDMUA-025 Une sœur aînée, après avoir surpris ses parents remariés en plein ébat, est consumée par le désir et séduit son beau-frère, doté d'un pénis hors norme ! Nous avons traversé ensemble la pandémie de COVID-19.","lastmod":"2025-12-14","duration":"02:03:21","url":"/play/18957324.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZTk1MDMyOTc2MGVkM2NkNDBjZjI3YTc3Mzk1Y2RkZGYuanBn.cache","vod_id":18967594,"title":"Une nouvelle venue charmante, ayant des rapports sexuels quotidiens avec son petit ami, jouant avec son pénis, le séduisant jusqu'à ce qu'il soit en érection, elle a une silhouette magnifique, se change en lingerie sexy, suce ses seins, joue avec son vagin et possède une vulve rose en forme de papillon.","lastmod":"2025-12-14","duration":"00:59:26","url":"/play/18967594.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvODk1MzRiOGQwZGM3MzljNDU2NzczNTZkZjcyMjI3NmQuanBn.cache","vod_id":18969978,"title":"[Sous-titres chinois] MIMK-113 Ma belle-sœur pense que c'est son travail de satisfaire les désirs sexuels de son frère.","lastmod":"2025-03-23","duration":"01:58:05","url":"/play/18969978.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTExMjQvODRkOTdlYjQ5NTdiNmI2NTVhZWNhZWNkNGRhNGM4NTAuanBn.cache","vod_id":19064109,"title":"Mère mûre 29 ~Mes parties intimes lascives, je ne peux pas le dire à mon fils~ Tomomi Okanishi NSFS_312","lastmod":"2025-12-13","duration":"02:00:06","url":"/play/19064109.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZjkzNTFlMDg3MzQ1OTJkMDcyMGU2MzZlNGVjYzE5MzcuanBn.cache","vod_id":18994307,"title":"JUL-065 Poursuite effrénée et intense : J’étais à une fête avec toute ma famille, et mon beau-frère, ivre, m’a fait jouir à répétition. — Yuko Shiraki","lastmod":"2025-03-23","duration":"02:30:37","url":"/play/18994307.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYjViNDhjMzczYzA0OWZjYTJmYTViYjU0NDhlMWVkOGIuanBn.cache","vod_id":18978329,"title":"Une salope en robe de combat jaune se faisait baiser par un grand frère dans un hôtel. Elle lui léchait la bite tout en flirtant avec d'autres mecs chauds. Sa chatte était tellement mouillée et luisante de jus que le grand frère l'a baisée à la fois à la chatte et à l'anus.","lastmod":"2025-12-14","duration":"00:27:09","url":"/play/18978329.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNzMyOTRiZTY3N2RlODc4MjkxMmMwMjBkNTRlMTUyZjIuanBn.cache","vod_id":19005276,"title":"MIAA-870-C Premier Amour Premier Amour Depuis le jour où j'ai rencontré mon premier amour, mon ex-petite amie, à Tokyo, j'ai perdu la notion du temps.","lastmod":"2025-03-23","duration":"02:00:07","url":"/play/19005276.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYzdjYTY0YTA3NjM3MjhjZDMwMWNjNzMyZjRhZjM2OTguanBn.cache","vod_id":18981392,"title":"Une équipe complète de techniciennes a offert au grand frère un spectacle sexuel en direct et passionné. Leurs visages étaient visibles tout au long de la performance, et elles portaient des bas noirs. Expertes en arts érotiques, discrètes, elles l'ont léché de la tête aux pieds, y compris des mouvements de poitrine, des pénétrations vaginales, du cunnilingus et de la fellation. Elles étaient vraiment des salopes.","lastmod":"2025-03-23","duration":"03:03:00","url":"/play/18981392.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZDY5YTA5OTU2MWEyMmNlMzdkMWMxNjY0MTIyMjBjZGMuanBn.cache","vod_id":19011772,"title":"345SIMM327 J'ai demandé à une institutrice de maternelle très populaire de me déflorer.","lastmod":"2025-03-24","duration":"57:54","url":"/play/19011772.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNTI1YzYwMDA5OTU3M2U2OWRmYzZhMzM4Mzg5NTUyOTQuanBn.cache","vod_id":18923268,"title":"FC2PPV-1182372 [Personnel] Viol d'une femme qui vient d'accoucher","lastmod":"2025-12-14","duration":"00:35:41","url":"/play/18923268.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMmRiOTNkZWI5OTQ5M2RiNDMwODcxOTNkMDQ5OTRkZDAuanBn.cache","vod_id":18961641,"title":"DOCP-060 Soudain, on la massait par derrière, ses seins mouillés. Bien qu'elle n'appréciât pas cela, elle ressentit peu à peu de l'excitation et du plaisir ! On lui massait les seins et tout son corps…","lastmod":"2025-12-14","duration":"03:44:45","url":"/play/18961641.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNDdkN2UwMWY2YzM0YzIyMjEzNmU0ODAwYzc2ZjA0Y2QuanBn.cache","vod_id":19153638,"title":"J'ai été trahie par mon acteur préféré (un beau gosse), et je me suis retrouvée à partager une chambre avec un ancien producteur… Je suis une jolie idole gravure, Hina Miki.","lastmod":"2026-04-16","duration":"01:58:26","url":"/play/19153638.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvODE0ZjZlNmQ4NzM5YjE4NDA1ZDFmNjY5Njk1YTg0NjMuanBn.cache","vod_id":18975676,"title":"MIST-214 Une fille qui avait fugué est venue vivre chez moi et m'a sucé le sperme en position de la cowgirl. Akemi Miu","lastmod":"2025-03-23","duration":"02:02:21","url":"/play/18975676.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNTAyNjQxOTUxZTYxMTZiZTg2MmQyNjU0YzQ1NTU4ZjYuanBn.cache","vod_id":19016010,"title":"MEYD502 J'ai été violée par le patron de mon mari... Imai Kaho.","lastmod":"2025-03-24","duration":"01:56:56","url":"/play/19016010.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMWJlNDQ1NTk3NmY0NjU2N2I0N2MwMjlmZjMwZGY4YTMuanBn.cache","vod_id":19001031,"title":"SDDE-583-CN [Anthropomorphic AV] Mon téléphone portable devient une femme sensible - Momoka Kato","lastmod":"2025-03-23","duration":"01:41:19","url":"/play/19001031.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA1MzAvZjYxZDI5MTQ4YTg4NTkyMDdkMzVmZTU3M2RmNTJiNTIuanBn.cache","vod_id":19035778,"title":"HUNTC062 « Frère, ça fait tellement longtemps que je n'ai pas pris de bain ! » Un plan à trois inattendu et sacré avec les deux sœurs ! Prendre un bain avec moi.","lastmod":"2025-05-30","duration":"02:05:33","url":"/play/19035778.html"}]},
videoTitle: 'GVG-448 Ma mère était excitée par le gros pénis de l'homme noir qui est venu vivre avec moi - Kondo Kiriko',
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=/`;
}
};
}