Neuf voisines d'âges et de professions différents font preuve d'une luxure étonnamment constante dans leur vie sexuelle.","lastmod":"2026-07-11","duration":"19:29","url":"/play/19162816.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MDUvMDI3NmUyYWNlZWE1NGU1ODZkOGI2Njg2Zjc0YWI4NDMuanBn.cache","vod_id":19049503,"title":"MMUS095 Le petit diable taquine la belle fille","lastmod":"2025-09-04","duration":"02:18:09","url":"/play/19049503.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMTI2NTJkYjRlMzM4ODMwN2ZiNTJlMTdiYzJmMTkyN2MuanBn.cache","vod_id":18929303,"title":"Une jolie jeune fille aux cheveux courts se livre à un spectacle de nudité en uniforme scolaire sexy, se caressant les seins et se stimulant le clitoris. Très envoûtant, à ne pas manquer !","lastmod":"2025-12-14","duration":"00:26:47","url":"/play/18929303.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNGQ1Mzg0MDlhZGQ2MmM0ZDkwNGU2YzNhYmRmYTg0ZGEuanBn.cache","vod_id":18971686,"title":"FC2PPV 3284206 [First Strike] Non censuré !! La mignonne et obéissante Sera-chan a répondu à votre demande par un doux sourire, vous permettant de tomber enceinte de son sperme.","lastmod":"2025-12-14","duration":"01:49:01","url":"/play/18971686.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvM2MzMDk4NTE3NjljYjE5Y2YzOTViYzA5ZTRjZTVkN2EuanBn.cache","vod_id":19026412,"title":"Le meilleur cumshot de la belle fille d'Iori Yagami SO AP.","lastmod":"2025-03-26","duration":"02:02:32","url":"/play/19026412.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvYjgzNGNmN2E2M2VjOWYyMjM5NTJlYjg0MTJmZTYzZDEuanBn.cache","vod_id":19163557,"title":"Une étudiante de deuxième année a trompé son petit ami en travaillant comme escort-girl et s'est retrouvée avec le vagin gonflé après avoir été baisée.","lastmod":"2026-07-11","duration":"45:01","url":"/play/19163557.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvY2UxNGYzNmQ1NTcwOGZiMWIwNGIwYTRiMmY5ZWY1ZjguanBn.cache","vod_id":18957299,"title":"\"Top Internet Celebrity Exposed\" - Une étudiante internationale de 23 ans d'une beauté époustouflante, portant des lunettes et ressemblant à une certaine célébrité, se livre à la masturbation, au sexe oral et avale du sperme (4)","lastmod":"2025-12-14","duration":"00:02:01","url":"/play/18957299.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZWNkYmVjNjlmNmRlMGYzNTFhNDk2NDlhMWQ5NjYxOGEuanBn.cache","vod_id":19137456,"title":"16 doses de sperme spécialement pour la conception ! Poitrine divine, bonnet G ! Cosplayeuse minimaliste et magnifique [yeux au ciel, bave, hébétée, actrice inconnue NCYF-046]","lastmod":"2026-01-09","duration":"02:26:59","url":"/play/19137456.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMTQvNGJmNDhlYWM5NmY1MmRiYjI4NmQ0NTdjYWZlYzkyOTcuanBn.cache","vod_id":19067572,"title":"Lors d'une relation sexuelle avec une fille d'apparence ordinaire mais à forte poitrine qui travaillait dans une usine, elle est devenue incroyablement lubrique, me suppliant frénétiquement d'éjaculer. (Zenba Mami, DLDSS-422)","lastmod":"2025-12-14","duration":"02:04:02","url":"/play/19067572.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvODlhNWYxNTE2ZjQ5YTg5ZDMwZTc5MjQ2ZTQwYTk5ODMuanBn.cache","vod_id":18927315,"title":"La plateforme « Little Cute » (anciennement Kawaii) met en scène une femme mûre et voluptueuse, très recherchée, qui propose des services de masturbation payants, exhibant sa silhouette diabolique et se masturbant avec passion de manière très séduisante.","lastmod":"2025-12-14","duration":"01:12:47","url":"/play/18927315.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA1MDgvM2VhNjUzYTY5NmQ5NmRmZmI0YjljMzI1NWMzYWMzMmUuanBn.cache","vod_id":19032652,"title":"Une jolie petite amie avec une simple queue de cheval et son petit ami diffusent en direct leur vie sexuelle quotidienne, présentant une variété de positions, y compris la gorge profonde et le sexe oral.","lastmod":"2025-05-08","duration":"01:19:46","url":"/play/19032652.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOTQyMjBiNWY5MzNiOTMwNzlmMWM2ZDc5OTczMGM5YmYuanBn.cache","vod_id":18965885,"title":"IPX-004 Une fille d'une beauté miraculeuse et une séance de baisers et de sexe passionnée, baveuse et dégoulinante de salive - Akari Tsumugi","lastmod":"2025-03-22","duration":"02:38:40","url":"/play/18965885.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA3MzEvNWM1MTEyOWU0NzY5MTFiYmIyYzBiZDBlZDQ0OWVkZmIuanBn.cache","vod_id":19044994,"title":"Li Ranran, professeur d'anglais dans une certaine université, a une très belle fille nommée Da Bao'er.","lastmod":"2025-07-30","duration":"10:24","url":"/play/19044994.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZTE1NWJkMDAwZjI0MDUyZTZlN2NkY2RjOTc1MDkzYzIuanBn.cache","vod_id":18936181,"title":"HEZ-019_B Ces filles en uniforme sont vraiment espiègles ! Elles ont l'air si innocentes, mais en réalité…","lastmod":"2025-12-14","duration":"01:35:11","url":"/play/18936181.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvODMyYzNiZWRlNTY3MmUyMWRiZWI5OTY2NzFiMzcxM2YuanBn.cache","vod_id":18928057,"title":"La plateforme « Little Cute » (anciennement Kawaii) met en scène des femmes séduisantes se livrant à des actes sexuels à deux obscènes, notamment une éjaculation intense à l'intérieur du vagin.","lastmod":"2025-12-14","duration":"00:51:42","url":"/play/18928057.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYjQ2N2NjNzY1NDdmYzdiMGM0YjllZjQzMjMxMjVkNzMuanBn.cache","vod_id":19137120,"title":"Le texte semble être une liste de termes de recherche ou de mots-clés liés à la pornographie et à la masturbation. On y trouve des expressions telles que « léchage de tétons et masturbation de haut niveau : 99 sélections », « 46 beautés irrésistibles qui vous regardent lécher leurs tétons en même temps », et il fait référence à des actrices comme Ayaka Kawakita, Kanna Seto et Yua Mikami. Le texte est fragmenté et incohérent. Une traduction littérale serait dénuée de sens sans contexte ni explications supplémentaires.","lastmod":"2026-01-07","duration":"03:58:42","url":"/play/19137120.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMTUvM2VmYTE4YTkwOWIzZDcxOWZiMzBkZTVkM2U1NTgyMmIuanBn.cache","vod_id":19134199,"title":"Hoi Hoi Heroes 04 - Une explosion soudaine, inévitable ! Une cosplayeuse sage et ravissante, l'actrice inconnue HOIZ-171","lastmod":"2025-12-19","duration":"05:11:29","url":"/play/19134199.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMWExMDU0YjU5OGEzYmNkOTNlYThlMzEzMzMyNWFhY2IuanBn.cache","vod_id":18944985,"title":"Une femme magnifique en blanc, au physique époustouflant et à l'allure élégante, [le Chat de Schrödinger] apparaît en lingerie et utilise des accessoires pour se masturber. Des gros plans la montrent en train d'atteindre l'orgasme avec un gode vibrant. Très séduisant, à ne pas manquer !","lastmod":"2025-03-22","duration":"01:39:49","url":"/play/18944985.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOGEyZDI1MWM3NGNlMDk3Mjg3MmIxYjM2MzQ1MWUzOWIuanBn.cache","vod_id":19022953,"title":"HMN433C Mon harceleur dans le train de mes années étudiantes s'est remarié avec ma mère — à partir de ce jour, je l'ai entendue tous les jours et j'ai été pénétré par elle alors que je portais mon uniforme.","lastmod":"2025-03-24","duration":"02:30:10","url":"/play/19022953.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTExMDUvZTlmNjk3NjIwZjBmNzQ4ZGM2MTVmZjI3ODM1NTk2ZjYuanBn.cache","vod_id":19061293,"title":"Une maquerelle voluptueuse et irrésistible, les cuisses dévoilées par une jupe moulante et décolletée, un pénis incroyablement épais et oppressant au service des clients. Fujisawa Rei (JUNY-116)","lastmod":"2025-11-04","duration":"02:27:57","url":"/play/19061293.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOTQ5MDU0ZmI5NzFjYTIxYmRhYjg0NDIwOGNhN2QwMWQuanBn.cache","vod_id":18987520,"title":"HUNTA-775 J'étais rongé par la curiosité concernant le corps encore immature de ma sœur, alors je l'ai forcée à éjaculer en moi, et elle est devenue ma prisonnière ! Ma sœur est encore en développement et c'est une enfant incapable de se défendre.","lastmod":"2025-12-14","duration":"03:27:49","url":"/play/18987520.html"}]},
videoTitle: 'Une très jolie petite fille japonaise en uniforme scolaire est victime d'agression sexuelle.',
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=/`;
}
};
}