Première séance photo de Misaki Hoshino pour son 60e anniversaire Misaki Hoshino Ruby","lastmod":"2026-07-11","duration":"01:56:12","url":"/play/19162285.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MTMvZGZkMzVkM2YyNjhkMzc3M2EyNzU3ZDQ3YmE1OTgzNzQuanBn.cache","vod_id":19052341,"title":"Cette fille aux seins généreux (bonnet H) est intarissable ! Le pantalon de Miyamoto Satomi était déjà trempé avant même qu'on la touche. Miyamoto Satomi SQTE586","lastmod":"2025-09-12","duration":"02:24:19","url":"/play/19052341.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvODI4OGY3MGEyYzEzNWQyMGM0YWY0ODEzNGI3ZmRlMjMuanBn.cache","vod_id":19006150,"title":"ABP-818 vous offre une immersion totale dans la poitrine généreuse d'une déesse (bonnet G) à travers 3 scènes principales. Une beauté masochiste aux formes voluptueuses, à l'érotisme exacerbé, atteint l'orgasme grâce à Nagase Mimo.","lastmod":"2025-03-24","duration":"03:42:41","url":"/play/19006150.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNmExOTRlZDIwNjkwZWNmZDE2ZGYwZDc5ODllMTExODQuanBn.cache","vod_id":18956164,"title":"MEYD-260 L'interdiction du cream pie est levée ! Une femme de 27 ans, à la poitrine menue (bonnet I), frustrée par une vie sexuelle insatisfaisante, découvre le cream pie pour la première fois. (Matsuura Rio)","lastmod":"2025-12-14","duration":"01:58:32","url":"/play/18956164.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvM2IzZWY1MmMzNDI0ZWVkZDRhOTZlNzdkNWI0ZTliMzAuanBn.cache","vod_id":18967717,"title":"Une charmante jeune mannequin se masturbe le visage découvert, dévoilant ses aréoles roses et sa poitrine en forme de V. Assise sur une chaise, elle se livre à un spectacle de masturbation avec accessoires, et caresse son sexe d'un geste provocateur.","lastmod":"2025-03-22","duration":"01:38:28","url":"/play/18967717.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMmM3NjA5MDEwNDQzNDMxYWQ2ZjZjMWU3OGMxMWRiMTAuanBn.cache","vod_id":18965939,"title":"1Pondo 031623_001 La sorcière lubrique devient complètement folle ! Miki Hoshino","lastmod":"2025-03-22","duration":"00:52:36","url":"/play/18965939.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA3MTEvYmY3N2M1Y2I5NTNhOTg2MmYyMDVlNjZiYjQyYTI0YjAuanBn.cache","vod_id":19168664,"title":"Une femme aux formes généreuses, sans soutien-gorge, exhibe inconsciemment sa poitrine opulente, vous envoûtant jusqu'à l'extase. Ses seins, bonnet G, sont malaxés et frottés jusqu'à ce qu'elle soit complètement enivrée. Nagahama Mitsuri, amatrice de haut niveau.","lastmod":"2026-07-17","duration":"02:03:35","url":"/play/19168664.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MDUvYWI5N2ZkN2Q3NmRhMWJmZTg2OWZmZjQwYWM2NDI0YzkuanBn.cache","vod_id":19049273,"title":"[Non censuré] Éjaculation sur une nouvelle call-girl naïve - Nishino Sae 10musume_022123_01","lastmod":"2025-09-04","duration":"01:07:01","url":"/play/19049273.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvODA0ZDBjMjJhNzRkZWNhMDVjYjlmNmMxYzRmMmI2NmUuanBn.cache","vod_id":19027183,"title":"Diagnostic obscène d'un médecin pervers : une nouvelle employée tente désespérément de garder le silence. Miyajima Mei STARS-756-C.","lastmod":"2025-03-31","duration":"02:09:35","url":"/play/19027183.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYTZmNTZmMzM4YmI0ODM2MzdiMDliN2E1OWI0N2U0MTIuanBn.cache","vod_id":19025524,"title":"STARS079 L'histoire d'amour passionnée entre Koizumi Hinata et la nouvelle venue timide et tardive, leurs corps et leurs esprits entrelacés.","lastmod":"2025-03-24","duration":"02:10:01","url":"/play/19025524.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMzQ4NTdmOGJmNTU0OWI1ZjdiZDI4NmMwMGQ3NDJmMWYuanBn.cache","vod_id":18982708,"title":"Deux nouvelles filles au visage frais ! Elles savent vraiment comment jouer avec le bondage SM ! Menottes, bâillons, jambes liées et écartées, clitoris stimulés par un œuf vibrant, elles ont fermé les yeux et ont pris un plaisir immense.","lastmod":"2025-12-14","duration":"00:46:24","url":"/play/18982708.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvODJhNWY1ZTMzYWYwOGE0ZjljNTY5YWQzNmIwYjUyZmIuanBn.cache","vod_id":19016168,"title":"NTK143 « Devenir sensible… » Les tétons bonnet E sont une faiblesse ! ? ◆Mika (21 ans) est une beauté élancée aux seins bonnet E encore en développement. Pour son premier rapport sexuel depuis un an, elle utilise sa taille fine pour vous procurer un orgasme intense dans une position de cowgirl tordue, tandis que le piston monte et descend ! : Combien coûte un love hôtel ? ? N° 023.","lastmod":"2025-03-24","duration":"01:04:55","url":"/play/19016168.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNmNmYzA2NmM5NjU1ZWYzZjMyNjdiNmJiYjEyZjlkYjQuanBn.cache","vod_id":18940717,"title":"FC2PPV-1267488 (Mosaïque) Joli visage, beauté super masochiste, vidéo de sexe à 3 ♪ Grosse éjaculation de sperme diabolique","lastmod":"2025-12-14","duration":"00:43:28","url":"/play/18940717.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMzBhYWMyZjYxYzBjMWQ0YWUzZWI4ZTczZGMwYTdjMTcuanBn.cache","vod_id":19005063,"title":"IPZZ-139-C Éveil de l'orgasme : Je ne peux pas vivre sans sexe... 203 orgasmes, 1978 spasmes vaginaux, mouvements diaboliques semblables à des pistons.","lastmod":"2025-03-23","duration":"02:03:44","url":"/play/19005063.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNGVkNmY5YWNmNDRhYzMxZTYwNmFhN2Q3Mzg2NDJhYzcuanBn.cache","vod_id":18974793,"title":"HMN-326 Nouvelle venue Matsumoto Ichika - Une jeune amatrice légèrement érotique qui prend beaucoup de plaisir à son application. Sa première apparition dans un film X avec le consentement de son petit ami ! Ninomiya Momo","lastmod":"2025-03-23","duration":"02:34:02","url":"/play/18974793.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvMWYyMTRmNjEyNmY4NGUwMzg3ZmI1YzYxMzQ4NDUzOTUuanBn.cache","vod_id":19160323,"title":"Nouvelle venue dotée d'une taille extrêmement fine et d'une poitrine généreuse, elle souhaite changer son image démodée et trouve le courage de faire ses débuts dans le X. MIFD-247-C","lastmod":"2026-05-27","duration":"02:37:24","url":"/play/19160323.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZjgzZWIwYWVmZWIwMDhmMDZiMzAzMjY2YWMwYjFmYjUuanBn.cache","vod_id":19003718,"title":"SSNI-462 Nouveau venu NO.1 STYLE : les débuts audiovisuels de Rika Aimi","lastmod":"2025-03-23","duration":"01:59:34","url":"/play/19003718.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYTk3YjgwMDQ5OGEzMTM3NmM2YWFmODY1YWUxY2FiY2YuanBn.cache","vod_id":18935067,"title":"[Sous-titres chinois] EYAN-151 « Chéri… Je suis une femme au foyer perverse qui aime les hommes et les femmes… » Les coups de reins vigoureux de l’homme et la fellation de la femme la rendent folle ! Kaori (27 ans), femme au foyer à plein temps aux magnifiques seins (bonnet G), dévoile ses fantasmes sexuels insoupçonnés dans ce film pour adultes.","lastmod":"2025-12-14","duration":"02:29:43","url":"/play/18935067.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEwMjYvMDAxYWQ1MDVmNWY4YTcxNmNjMDc1MDJhZDU5ZjUyYTEuanBn.cache","vod_id":19059669,"title":"Le Carnaval des Pistons Démoniaques, le rasage de la vulve et l'affaire de traduction échappée x Un vieil homme à grosse bite insérant son gros pénis dans une petite fissure Un acteur inconnu errant dans la ville DAVK_099","lastmod":"2025-10-25","duration":"02:25:33","url":"/play/19059669.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNzc5OWUzMWFhOWI3ZThlZThmYzAwZTQ2MDYxYjkzOTkuanBn.cache","vod_id":18989804,"title":"[Fruit Pie] La révélation de 2021 ! Un sourire divin !","lastmod":"2025-12-14","duration":"15:15","url":"/play/18989804.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvODIwM2FkYmQ5OGQxMTA4ZTYxZDc4N2JkYzJkODM1ZWQuanBn.cache","vod_id":19005085,"title":"JUFE-448-C : Vivez l’expérience ultime de seins naturels de taille I filmés en 4K ! Gros plans extrêmes sous des angles extrêmes de masturbation en vêtements érotiques.","lastmod":"2025-03-23","duration":"01:57:30","url":"/play/19005085.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvN2E1MWNiYjJlODJiOTkwYWIyMzNjNTBhMTNjYzdiMjMuanBn.cache","vod_id":19020384,"title":"MAD014_Autant en emporte le vent_Un espion tombe dans le réseau amoureux d'un seigneur de guerre_Excellent premier film Site officiel de Han Yiren.","lastmod":"2025-03-24","duration":"27:40","url":"/play/19020384.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA0MjYvNmMxM2EwMzg2NWFhZTBmNGEyZTlmYzRlNmFiOTg3MmQuanBn.cache","vod_id":19030890,"title":"Une cosplayeuse se déshabille, dévoilant sa poitrine généreuse (bonnet G) et son corps de rêve !? Sato Riko EKDV-631-C","lastmod":"2025-04-26","duration":"02:22:32","url":"/play/19030890.html"}]},
videoTitle: 'XV-1015 Nouvelle venue ~ La petite diablesse trop voyante aux seins bonnet G, Hoshino Yui',
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=/`;
}
};
}