Uniquement mon mannequin de maillots de bain de compétition. Une rencontre sexuelle privée avec la plantureuse et magnifique JULIA, qui a du mal à dire non. JULIA PREMIUM","lastmod":"2026-07-11","duration":"02:23:39","url":"/play/19166296.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA4MjgvMzRlNDc2YzUzMDgyY2MzMGVkZjQ3ZjFiMjM0MjJhZjQuanBn.cache","vod_id":19048891,"title":"JUR214 Mon amour d'enfance, qui m'aimait bien, est maintenant devenue une femme mariée sexy et voluptueuse, alors je vais la baiser fort jusqu'à ce que mon désir sexuel soit épuisé.","lastmod":"2025-08-27","duration":"01:55:17","url":"/play/19048891.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZjc0ODNlY2JhN2QwNDQyZTU2ZTNjYmNmZjQzYmJjYTMuanBn.cache","vod_id":18963075,"title":"FC2PPV 3177552 Hui, je veux un enfant !","lastmod":"2025-03-22","duration":"01:15:37","url":"/play/18963075.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYTBiMmVkMjQxNjIxMTFjODE0MjU2OGQxNDM5NDg3YjYuanBn.cache","vod_id":18967682,"title":"La jeune et innocente Xiaotian danse seule avec sensualité. Son air pur et innocent cache une poitrine généreuse. Lorsqu'on l'écarte, on aperçoit son sexe d'un rose éclatant.","lastmod":"2025-12-14","duration":"01:04:00","url":"/play/18967682.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZGM1MzA3N2NkYzQzNGMzNDBkMDc5ZTJmZGFkNzI4NmIuanBn.cache","vod_id":19146712,"title":"Le traitement de la gorge profonde est le meilleur ! Gorge profonde ! 30 pénétrations consécutives pour donner une leçon à ce petit effronté ! MIZD-490","lastmod":"2026-03-06","duration":"04:01:06","url":"/play/19146712.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTExMTgvMDM4NmM0ODg3YTVmYzY0YTAzY2ZhNGFjNjA0OTA3NTcuanBn.cache","vod_id":19063157,"title":"Un chasseur de sperme dégoulinait de sa bouche ! (Hazuki Mai 092423_01)","lastmod":"2025-12-13","duration":"16:10","url":"/play/19063157.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA3MDkvNDdjODBmMjEyMGY0ZTRmYTRhNzk3MzRhYjU5MTFhMDEuanBn.cache","vod_id":19042075,"title":"YST334 Je suis une perverse parce que mon beau-père me traitait comme un chat avec une bouche, et que mon liquide vaginal coulait.","lastmod":"2025-07-08","duration":"01:39:06","url":"/play/19042075.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNmQ1MGJkMzNmNjhlNWZlYTQ0NTg5ZjkwNTcxZjQ4MTkuanBn.cache","vod_id":19156271,"title":"« J'ai une personnalité qui cherche à combler le vide. Les meubles de la maison, les boîtes à lunch de mon mari, ma solitude… » — Kaoru Anai, une femme mariée qui a rencontré quelqu'un dans un club.","lastmod":"2026-05-03","duration":"02:13:18","url":"/play/19156271.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvODYyY2I0OWQzODFkYzE1MmY4ZTg1NmY5NmU0NjAzYWIuanBn.cache","vod_id":18981197,"title":"FC2PPV 3637644 [2 œuvres - facial et cumshot] Une grande et incroyablement belle jeune femme mince. Deux vidéos : l’une traite de relations sexuelles amicales, l’autre de viol.","lastmod":"2025-03-23","duration":"02:06:11","url":"/play/18981197.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvNjQ3MjVjNDBlYjc4Y2EyNmZhMDUxMjVmZGQ2ZjUwOGYuanBn.cache","vod_id":19158309,"title":"L'histoire d'une grande sœur discrète qui se cachait dans le placard et me laissait utiliser son vagin. —Aina Aoyama","lastmod":"2026-05-15","duration":"02:04:36","url":"/play/19158309.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTExMDQvODhlMzUwNzEzOTU4YTk3Y2ExNTU5NGE2MDIyOWMxNTEuanBn.cache","vod_id":19061128,"title":"Même en travaillant dans un entrepôt, cette femme au foyer discrète et plantureuse ne refusait rien, exigeant à plusieurs reprises une pénétration en position de cowgirl avec des mouvements de hanches incroyablement obscènes. (Actrice inconnue NHDTB_967)","lastmod":"2025-11-03","duration":"03:46:14","url":"/play/19061128.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNmQyYzdhNzc0ODBhNjdlZWY3NTFkZDM0MjkzNjhhOTAuanBn.cache","vod_id":18991521,"title":"300MAAN-388 Une belle femme mariée, frustrée, est obsédée par le sexe avec d'autres hommes ! Elle utilise les pénis d'autres hommes pour caresser ses seins généreux (bonnet G) et ses fesses rebondies. Insatiable, elle ne peut s'arrêter, peu importe le nombre d'orgasmes qu'elle éprouve, et finit par recevoir trois éjaculations vaginales consécutives !","lastmod":"2025-12-14","duration":"01:16:36","url":"/play/18991521.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNmRiOTgxYjhkYmM1ZTc5YWNkOWU2OTRhYTFlOTI5ODMuanBn.cache","vod_id":19015302,"title":"IPX330 Je suis désolée, maman et papa ! J'ai filmé des vidéos pour adultes en secret sans rien dire à ma famille !!","lastmod":"2025-03-24","duration":"03:08:00","url":"/play/19015302.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZmU0MmJlMWI3NTE1YTQzMTcyMDFiNTUzY2M0OTg2MjcuanBn.cache","vod_id":18941545,"title":"[Sous-titres chinois] IPX-386 Après un mois d'abstinence, elle se lâche avec sa meilleure amie pendant ses jours d'absence.","lastmod":"2025-03-22","duration":"02:50:21","url":"/play/18941545.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZTFkY2YzZWUzODM3NmZhMGMzNzZkY2E5NzkwMmQ5MDAuanBn.cache","vod_id":18962603,"title":"KTRA-462 Bondage Family 04 : Même ligotée, elle adore son père ! Une beauté perverse s’excite en urinant ligotée… ! Makino Minana","lastmod":"2025-12-14","duration":"02:02:13","url":"/play/18962603.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA2MTQvMGJjYzUxN2MwNTUxYWYwYTY4NDAyMmFiZjgyYzZiNmYuanBn.cache","vod_id":19038080,"title":"MIDV413 Hé, à partir de maintenant... je vais te baiser les tétons comme une folle. Un petit diable doux et sadique est soudainement apparu devant moi.","lastmod":"2025-06-14","duration":"02:32:50","url":"/play/19038080.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMWRjMzNjM2YyYmZhMzg5MzY3OGRiNTJlOWI3ZmJmOTQuanBn.cache","vod_id":18972143,"title":"FC2PPV 3288174 Mai commence avec la Journée de la Virginité ! Un jeune visage devrait [avoir des rapports sexuels deux fois]. Une fille qui arrête à mi-chemin est complètement remplie de sperme, le gros pénis d'un homme d'âge moyen.","lastmod":"2025-12-14","duration":"01:19:15","url":"/play/18972143.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNDU4MGFlMGMxNTRkOTc0YjI0NzVmZTdlMjI0MWY2NTYuanBn.cache","vod_id":18923452,"title":"FC2PPV-1186173 [Film personnel] Haruka, 25 ans, remake d'une masturbation filmée par elle-même [Offre à durée limitée]","lastmod":"2025-12-14","duration":"00:08:40","url":"/play/18923452.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA2MzAvNzkyZmUyNmY1OGM4MDk4NzA4YmIxMjNiMzcxNTVmNzkuanBn.cache","vod_id":19040742,"title":"MKON113 Je n'ai jamais eu de relations sexuelles avec quelqu'un d'autre que mon petit ami, mais j'ai été forcée d'avoir des relations sexuelles avec un inconnu.","lastmod":"2025-06-29","duration":"02:14:27","url":"/play/19040742.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZDU4ZjRhMmNjNGQyYWRhOTUzYzczNmJiZDllMDRhNWQuanBn.cache","vod_id":18987692,"title":"[Sous-titres chinois] CAWD-580 Une romance secrète après les cours que je ne peux pas raconter à mes amis. Dans une pièce sombre, je me livre à des actes sexuels dangereux et obscènes avec un homme lubrique et pervers. Momo Shiraishi","lastmod":"2025-03-23","duration":"01:56:32","url":"/play/18987692.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvMTNjMDAyNmE1NzQ3NzdkMmZhMmNmN2QwODAxM2IzODYuanBn.cache","vod_id":19158655,"title":"HEYZO 3177 Le secret obscène que la femme adultère ne peut révéler à son mari, tome 15 – Suzumiya Nozomi","lastmod":"2026-05-17","duration":"01:01:20","url":"/play/19158655.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEwMDUvYTgxNzZhMWI2OTA3OTg2N2U4MmQ3NjdlOTNmMzY3N2MuanBn.cache","vod_id":19056141,"title":"Une femme mariée, convoquée dans un hôtel de luxe, incapable de résister au pouvoir, vend sa femme bien-aimée. (Hirose Yuri, JUQ917)","lastmod":"2025-10-04","duration":"02:43:19","url":"/play/19056141.html"}]},
videoTitle: 'Douceur incroyable, première prise. 1479 Quand on m'a invitée, je n'ai pas pu refuser… Une Shiki Akane prudente 200GANA-2286-C',
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=/`;
}
};
}