Expérience du Nouvel An avec le Coach Poulet : M'a-t-il invité chez lui uniquement pour coucher avec moi ?Expérience du Nouvel An avec le Coach Poulet : M'a-t-il invité chez lui uniquement pour coucher avec moi ?","lastmod":"2026-07-11","duration":"50:08","url":"/play/19166196.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYWM2Y2Y2YzMxNDFkNGU4OTRkNGY3ZDQxMmJlMjQxZGQuanBn.cache","vod_id":19139279,"title":"Ma tante est venue passer deux jours chez moi, et je l'aime beaucoup. Nous avons passé deux jours emplis d'érotisme, du matin au soir. (Mizusaki Yaoka, Mizusaki Ruka, VENX-333)","lastmod":"2026-01-19","duration":"01:41:09","url":"/play/19139279.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMTYwOWIxZDcwZjVmNzkzZmNhODM2ODM2MTNkZGMwM2MuanBn.cache","vod_id":19024458,"title":"MIAA949C Mon amie a trouvé une vidéo porno de cocuage et a cru, à tort, qu'il s'agissait d'une vidéo de cocuage. Finalement, elle s'est fait baiser par un homme rencontré sur l'appli.","lastmod":"2025-03-24","duration":"02:00:28","url":"/play/19024458.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMWQ2Y2IzYjIxNjg2NGFkMjFkNDg4YTRkNjlhMDA0ZTEuanBn.cache","vod_id":18984026,"title":"IPX-210. Cette infirmière aux seins généreux (bonnet J, 100 cm) vous fera bander sans soutien-gorge. « J'ai une poitrine trop grosse, je ne peux pas porter de soutien-gorge sous mon uniforme d'infirmière. »","lastmod":"2025-03-23","duration":"01:58:40","url":"/play/18984026.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA1MTYvYzBhYzdiMDMzMTQ5MjRlZmIwYjQ5Y2FjY2U2NWU2YzIuanBn.cache","vod_id":19033761,"title":"BDSR506 [Quand j'ai commandé la livraison, il s'est avéré que c'était mon ancien collègue !!] Inversion des rôles ! L'histoire d'une femme mariée aux seins énormes qui se fait pénétrer !!","lastmod":"2025-05-16","duration":"02:01:39","url":"/play/19033761.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMTIyYTQ4OTM4ZmJkYTVhYzJlODAyNTJlODg0ZDEyYWQuanBn.cache","vod_id":18969372,"title":"[Sous-titres chinois] FSDSS-550 Ma servante personnelle, avec son sourire adorable, me fait une fellation n'importe où, n'importe quand, tout en me regardant fixement - Yoshitaka Nene","lastmod":"2025-03-23","duration":"02:00:40","url":"/play/18969372.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA3MDYvZWZlODYwMWRlOWQ3MDBjZGU4NTU2YzExMTcyNGJmZmMuanBn.cache","vod_id":19167008,"title":"Fête sur un yacht avec un magnifique tigre blanc sans poils et aventure sexuelle du petit ami de la meilleure amie","lastmod":"2026-07-11","duration":"26:19","url":"/play/19167008.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvMGNjZDNhNThhYWM1NmUwNTE5Y2NhYjBkZThiZjY2ZDguanBn.cache","vod_id":19158545,"title":"Une médecin sans scrupules, aux seins généreux (bonnet J), subit un orgasme devant son petit ami lors d'un examen brutal impliquant harcèlement sexuel et viol. 2. Humiliation et accusations lubriques. Mizuhara Misono MOODYZ","lastmod":"2026-05-17","duration":"01:58:52","url":"/play/19158545.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZDc5Njk4OWI3NzNhMzg3YmY5ZGRjNzAzMmE2MzM4ZWEuanBn.cache","vod_id":18924731,"title":"10mu 011020_01 Sélection secrète des parties intimes de Sasaki Tsugumi - Envie de voir mes parties intimes ?","lastmod":"2025-12-14","duration":"00:17:26","url":"/play/18924731.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMTQ1NDk0YjE2NGM3OTA1MDcyZmFiYTI4Y2I2NWNjM2UuanBn.cache","vod_id":19154596,"title":"Le petit canon de mon copain AV me pénètre sans arrêt, il fait toutes sortes de baise sophistiquées et c'est tellement bon !","lastmod":"2026-04-22","duration":"03:26:14","url":"/play/19154596.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvOTIzYTA2NzAwMjZlZWY3N2ZlMDI1ZGIzMGIzOGViNzYuanBn.cache","vod_id":19163130,"title":"Une lycéenne de JK High School, sous son uniforme, rencontre un sugar daddy et se fait baiser en appelant son copain pour le séduire","lastmod":"2026-07-11","duration":"20:39","url":"/play/19163130.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA3MTIvZGQxMWZmM2E1ZTc0NmQyMDlhYmU4MjFkMmM4MTlmZjcuanBn.cache","vod_id":19042304,"title":"ALDN441 Maman, tu es tellement mieux que ma femme...","lastmod":"2025-07-11","duration":"01:38:04","url":"/play/19042304.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNDg5ZTZlMTYyZDNlMDBkYzVjNjc0MjJlYWIyYWJhNTkuanBn.cache","vod_id":18942537,"title":"Je veux vider le lait de ma sœur 1-ImoutoBitchniShiboraretai1","lastmod":"2025-12-14","duration":"00:16:16","url":"/play/18942537.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTExMTYvNTdjZmFhNDMzNTRiYjVjZTY0ZWZkZWE4OTA0NTA5NjIuanBn.cache","vod_id":19062859,"title":"[4K] Contrôle de l'éjaculation soudaine… Mon éjaculation est contrôlée par la magnifique voisine aux gros seins et aux fesses rebondies, ce qui me plonge dans une masturbation intense et passionnée. Azuki Azuki EKDV_752","lastmod":"2025-12-13","duration":"02:47:25","url":"/play/19062859.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNDVhMjg2YmNmMjFmYTFlYWUzMTUwYzMyYmU3N2I0OGUuanBn.cache","vod_id":19153809,"title":"La seconde épouse de mon père était ma camarade de classe et aussi mon premier amour. (Yuzuki Ria)","lastmod":"2026-04-17","duration":"01:45:38","url":"/play/19153809.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOWExNjZjZWYwZDdlMjY0ZTAzMTAzYWVjZTkzNzU2MGUuanBn.cache","vod_id":19012863,"title":"Déclaration de contre-attaque du petit ami","lastmod":"2025-03-24","duration":"26:32","url":"/play/19012863.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYTBiNDJlN2JmMWU0YTVjMWYxZTMxNTY1OTczZDBhZjQuanBn.cache","vod_id":19151009,"title":"MIDV-775-C Ma jeune maîtresse Erica a partagé une chambre avec moi lors d'un voyage d'affaires, me rendant fou et me vidant de toute énergie.","lastmod":"2026-03-31","duration":"02:00:32","url":"/play/19151009.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYTc5YWMyY2NjMmQxY2Q3ZWZjMDJiNmI1MDA2ZTYwY2MuanBn.cache","vod_id":18967498,"title":"Une mannequin aux allures de déesse, dotée d'une silhouette sexy en uniforme, s'adonne à des rapports sexuels non protégés avec son jeune petit ami, savourant l'extase d'être au-dessus et utilisant des accessoires de masturbation.","lastmod":"2025-12-14","duration":"01:19:11","url":"/play/18967498.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMThmYmI3ZjZmMTRjM2FlMTQ3MDA2NDdjZDU5MDhmYmIuanBn.cache","vod_id":18975929,"title":"Match des Kings HUNTA-170 : il y a 6 filles des Yankees et moi ! Ma nièce est devenue joueuse des Yankees, elle est à Chiba.","lastmod":"2025-12-14","duration":"04:03:13","url":"/play/18975929.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA1MjAvYThlYTExNzUxNWQwNWMwOTA3ODRjY2JmZDI1MzljOTcuanBn.cache","vod_id":19034376,"title":"DASS388 Mon cul ne m'obéit pas. Le charme d'une femme voluptueuse, dominée par son gros cul, rend impossible de résister à ses instincts.","lastmod":"2025-05-20","duration":"02:16:48","url":"/play/19034376.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvOGRjNTQ0MGUzMmYyMGY2YmU4NmIzODE1MzRmYWY4NTAuanBn.cache","vod_id":19145767,"title":"De jeunes et belles mannequins adorent prendre des selfies avec leurs petits amis pendant leurs ébats sexuels ; le lit et la salle de bain sont leurs terrains de jeu sexuels.","lastmod":"2026-02-28","duration":"08:01","url":"/play/19145767.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MDUvZjJlZDFiZTQ2OGZkNGZjOGFmMjg4ZWEzYjQwMmRhM2UuanBn.cache","vod_id":19050429,"title":"Jelly, l'amant de ma belle-mère, Nie Xiaoqian.","lastmod":"2025-09-04","duration":"29:29","url":"/play/19050429.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYWI1YTQ4Y2E3MzM1NjM4NGEwODE5YzI2MGRlNzAxMzAuanBn.cache","vod_id":18935065,"title":"Mon compte de stockage cloud personnel a été piraté. La vie privée d'une femme élégante et raffinée, issue d'un milieu aisé, et de son compagnon a été divulguée, avec notamment 15 photos et une vidéo de leurs moments intimes.","lastmod":"2025-12-14","duration":"00:06:55","url":"/play/18935065.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZGQxZTkwNGU2MDUxNjM5Y2M0YTY4NjliZGYyODZlYWEuanBn.cache","vod_id":18951516,"title":"✿Jeu mutuel lesbien✿ Deux sœurs de la génération Z, au sommet de leur art, jouent avec un pénis jusqu'à l'orgasme, éjaculant et s'ouvrant l'anus en deux, gémissant et soupirant tandis qu'elles se pénètrent mutuellement, atteignant l'orgasme et perdant le contrôle de leur vessie – c'est incroyablement jouissif ! Elles profitent d'une fête charnelle et lubrique.","lastmod":"2025-12-14","duration":"01:23:04","url":"/play/18951516.html"}]},
videoTitle: 'Le petit canon de mon copain AV me pénètre sans arrêt, il fait toutes sortes de baise sophistiquées et c'est tellement bon !',
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=/`;
}
};
}