Cette tigresse blanche de première qualité adore particulièrement la position de la cowgirl, les deux orifices ouverts et remplis de sperme.","lastmod":"2026-07-11","duration":"10:55","url":"/play/19166195.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNDU3M2ExZGE3OGU2MDIxYTJmZDU2NWRkZjYwYTFmMGQuanBn.cache","vod_id":19156080,"title":"Un gérant de magasin pervers harcèle sexuellement et agresse à plusieurs reprises une femme ordinaire, aux formes généreuses, qui ignore tout du monde social lié au travail à temps partiel dans une entreprise de déménagement. (Natural High)","lastmod":"2026-05-02","duration":"04:03:21","url":"/play/19156080.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMzA1NjE4YzhlOGZhYTM2ZWRiODg5M2QzZmMzM2Q1MDAuanBn.cache","vod_id":18995931,"title":"Sexe aux toilettes, boîte de nuit, belle fille en bas noirs","lastmod":"2025-03-23","duration":"05:05","url":"/play/18995931.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMWYwYzBlNmJkYWVmNjY4MWJlZjVjZGU5ZmFhZjQ5YTYuanBn.cache","vod_id":18965853,"title":"Avertissement : contenu très énergique ! Wang Enqi, une célèbre influenceuse de t-shirts avec 120 000 abonnés à Pékin, connue pour sa poitrine généreuse, ses fesses rebondies et ses tatouages imposants, dévoile son visage sur des photos privées. Elle a vraiment vu des choses excitantes, comme manger des bites et avoir des relations sexuelles (6).","lastmod":"2025-03-22","duration":"00:02:11","url":"/play/18965853.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA1MjAvNDI2YTNlZWJjYjM2YzMxNzZiNDYyZDZjNjJjYmQ5ODguanBn.cache","vod_id":19034193,"title":"DASS224 La jeune fille de la campagne aux seins énormes, une amoureuse d'enfance, est manipulée par un homme épris jusqu'à ce qu'elle devienne son talon d'Achille.","lastmod":"2025-05-20","duration":"01:58:41","url":"/play/19034193.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZjZjNzQ0MmEyNjBjYTFjY2ExMGY2NGZiZWQwZjUzMWYuanBn.cache","vod_id":19020914,"title":"Le mannequin vedette de la séance photo est une belle jeune femme au corps délicat et à la poitrine menue (bonnet A).","lastmod":"2025-03-24","duration":"02:01:40","url":"/play/19020914.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZTAyYTI4NTJlMTEyYWUxYThjYjQxZmRlYWQ0OWQzZGEuanBn.cache","vod_id":18969802,"title":"Jeune fille ronde et pulpeuse avec d'énormes seins, des bas noirs et de longues jambes blanches ; masturbation en vue subjective avec accessoires.","lastmod":"2025-12-14","duration":"00:47:20","url":"/play/18969802.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvODJhZmQ1ZjNlMThiZjBjNmYyZDlhZjk4ODJjYjgwYjguanBn.cache","vod_id":18934488,"title":"DASD-610 Écolière en uniforme, hypnotisée et soumise à un lavage de cerveau, devient prostituée malgré toutes les conséquences - Édition Scolaire","lastmod":"2025-03-22","duration":"02:12:51","url":"/play/18934488.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZTdkMzE3NzdhNTJkMmQ2OGE5Y2U5NzhkMThhOGQwMjUuanBn.cache","vod_id":18970556,"title":"BBAN-358 L'esclave lesbienne de la présidente du conseil étudiant ~L'entraînement masochiste d'une beauté au sourire maléfique~ Asai Koharu, Kudo Lala","lastmod":"2025-12-14","duration":"03:02:10","url":"/play/18970556.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvN2JhOTJkNzhmZWZhYWM2OWFjMGMxNjM4MDY1ZTk3OTEuanBn.cache","vod_id":19012395,"title":"Une adorable chatte et son propriétaire vivent une étrange rencontre sexuelle","lastmod":"2025-03-24","duration":"32:47","url":"/play/19012395.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOTY3Yjc1YzI0NDYzNzNiZmU5MDE0Y2M3MjA2ZjIwOWUuanBn.cache","vod_id":19016384,"title":"Ma copine est une femme mûre à forte poitrine et elle ne porte pas de soutien-gorge, c'est insupportable… ! (Shishido Riho)","lastmod":"2025-03-24","duration":"02:24:57","url":"/play/19016384.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA0MTAvNmVmMjAyMDAwMzVjZTZmNGJkYzc1ZGJlZmIxY2IzYmIuanBn.cache","vod_id":19028636,"title":"La belle-fille, une lycéenne aux formes généreuses, est imprégnée d'aphrodisiaques. Sept jours consécutifs d'orgasmes et d'éjaculations abondantes. Xiaohua Nuan WAAA-231-C.","lastmod":"2025-04-10","duration":"02:03:43","url":"/play/19028636.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOWFlZTQ0MzZmZjhhZTc0ZTQyOGNlMTVhNDFlMDAyYTguanBn.cache","vod_id":18941538,"title":"LZDM-022 Une histoire lesbienne mettant en scène une étudiante plantureuse en détresse - Yuzuki Rika Goto","lastmod":"2025-03-22","duration":"02:14:35","url":"/play/18941538.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZDZhZmYwNjM3ZTRjNDRhZTZmZmUyMDdjMWZhM2M3YmMuanBn.cache","vod_id":19154956,"title":"L'amie d'enfance de la star coréenne d'internet « Chicken Coach » est venue séjourner chez moi. Sous ses airs angéliques se cache une petite diablesse.","lastmod":"2026-04-24","duration":"13:32","url":"/play/19154956.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYzhjNzRhMWNhYzM5YmJlZDViMTBjMTBlN2Q2YzJhYTkuanBn.cache","vod_id":18941937,"title":"La deuxième partie met en scène une jeune femme voluptueuse, aux cheveux courts et à la poitrine généreuse, se caressant en lingerie tout en urinant et en prenant une douche. C'est incroyablement envoûtant et séduisant ; à ne pas manquer !","lastmod":"2025-12-14","duration":"00:18:09","url":"/play/18941937.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA4MTAvMjZhNjRjOTNlYjRkOTUzYjUzN2Y0NzkzM2Y5NzhkNmYuanBn.cache","vod_id":19046343,"title":"Collection vedette de 18 actrices à forte poitrine (bonnet I et plus) par UMSO591","lastmod":"2025-08-09","duration":"04:02:07","url":"/play/19046343.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA0MTEvZDU2ODM2N2I2ZDUwNDA5OGEzMjAxMzc0YTk5ODA5ZTEuanBn.cache","vod_id":19028776,"title":"La sœur aînée de ma copine a une forte poitrine (bonnet J). Pendant que ma copine était chez elle, j'ai couché avec elle toute la nuit. (Mizuhara Misono HODV-21694-C)","lastmod":"2025-04-11","duration":"01:59:48","url":"/play/19028776.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNTViODg4NjU2OTY4OTQxMGQ0MTQxN2U5OWE3ZDk5Y2QuanBn.cache","vod_id":18963558,"title":"Collection complète de fuites de haut niveau - Montrer son visage est essentiel ! Cible de toilettes à chair humaine : 100 personnes tuées. Twitter de grande valeur, qualité supérieure, gros seins, contraste, salope [Juice Summer], tournage privé, sexe varié, Ziwei (23)","lastmod":"2025-12-14","duration":"00:02:15","url":"/play/18963558.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOTY4MmUxNmQ1NTI1MjRjY2Q2Yjk1YTgwNzMwNWFlMWUuanBn.cache","vod_id":18995060,"title":"[Haute Définition] 521MGFX-071 Une femme aux formes généreuses et lourdement endettée","lastmod":"2025-12-14","duration":"51:56","url":"/play/18995060.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvYTYzOTc5ZjE4ZTgwMWI3OTY3ZTk2NmYwMTQ3Y2ExYTEuanBn.cache","vod_id":19158533,"title":"Une femme au foyer aux formes généreuses se fait prendre lors d'une fête célébrant la promotion du patron de son mari. Une femme au foyer aux formes généreuses s'enivre et devient débridée lors d'une réunion de famille. Wakamiya Wakano, Wakamiya Hono, Karuma.","lastmod":"2026-05-17","duration":"02:02:17","url":"/play/19158533.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNzE1NDZkNGIwODdjY2E4M2JmNmRjNjYyYzM5NGIwMWMuanBn.cache","vod_id":18963904,"title":"[Non censuré] FSDSS-524 L'enfant du nouveau mari de mes parents était une brute... alors j'ai joué à regret avec ses seins bonnet G à la maison.","lastmod":"2025-12-14","duration":"02:03:35","url":"/play/18963904.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNGM0ZjkwN2M4ZmYwNWIxNTg2MDExYzgyNGVlNGZkYWYuanBn.cache","vod_id":18977204,"title":"393OTIM-279 Écolière adolescente en uniforme ayant des relations sexuelles avec une tarte à la crème vulgaire - Airi","lastmod":"2025-12-14","duration":"01:18:02","url":"/play/18977204.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYjUzYTBhODBmMmE3ZTIxOTc2MzY0MTgxMzAzMzdmZWUuanBn.cache","vod_id":19139174,"title":"Une jeune fille de bowling amateur, participant à un spectacle de variétés, vise les fesses ! Elle relève le défi du bowling avec un fessier plus rebondi ! Tellement agréable que la lotion coule et que son anus frémit ! Porte-jarretelles retiré. Actrice inconnue SVVRT-069","lastmod":"2026-01-19","duration":"03:23:03","url":"/play/19139174.html"}]},
videoTitle: '[4K]BBTU-037 Club de harcèlement des filles à forte poitrine Mizuhara Misono',
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=/`;
}
};
}