Ma sœur aînée, une NEET et une ermite aux seins énormes, se livre à des activités illicites à domicile. Yoshida Ayane Yoshida Ayane Hibino","lastmod":"2026-07-11","duration":"02:05:19","url":"/play/19164142.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZGM2MTJjODNkZDQzYWVhZGUyZWYyYTY3NGE2NGQwYzMuanBn.cache","vod_id":18986319,"title":"Beauté coréenne ultra mince et pure","lastmod":"2025-12-14","duration":"00:28:51","url":"/play/18986319.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNGY2MWI4MGMyNDhhODQ0Mzc5MWExN2Q0YjFjMjg4ODYuanBn.cache","vod_id":18956202,"title":"« Coffret cadeau d'un couple qui a fuité » - Photos privées d'une déesse exquise dévoilées ❤️ Révélation d'un visage parfait (7)","lastmod":"2025-12-14","duration":"00:02:19","url":"/play/18956202.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMTA5ZmQ4ZjNkZDE0ZTYxYzg3ZjY4OWFiMGVhMmE3NWYuanBn.cache","vod_id":19016768,"title":"★Offre spéciale Pack vol.3★ Œuvres populaires à prix imbattables♪ Ce troisième volume comprend deux œuvres : l’une mettant en scène une femme au foyer aux formes généreuses et l’autre une sœur aînée perverse ! Inclut des versions haute qualité et un bonus de commentaires♪","lastmod":"2025-03-24","duration":"01:32:50","url":"/play/19016768.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA2MjkvNmQxYTBjNzMyMWZlYmE1YzI2MWIyMjBjMDJiNDhhNWUuanBn.cache","vod_id":19166332,"title":"Jeune mannequin de haute qualité, aux jambes interminables et au contraste exceptionnel, déesse au sommet de sa gloire, jouet d'un homme riche","lastmod":"2026-07-11","duration":"18:48","url":"/play/19166332.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMzM5MWI3MDY1NmIxZTc3NDhjMmUyN2QyMTczYzhlMDguanBn.cache","vod_id":19154180,"title":"L'hôtel Tan Hua propose 3000 RMB pour une rencontre avec une jeune femme de premier ordre, pure et innocente, qui vient d'entrer dans l'industrie du divertissement pour adultes.","lastmod":"2026-04-19","duration":"43:07","url":"/play/19154180.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNWNiMjQzM2E3NGExZDY4OGIxNjBlMWI0NzQzM2VkMzMuanBn.cache","vod_id":18953045,"title":"« Édition rare ✅ Collection classique » – Ce film, qui a connu un grand succès dans le milieu du divertissement pour adultes, « 91 God Sauna Club Massage », met en scène des masseuses de grande qualité aux formes généreuses, proposant des massages oraux chauds et froids. Les dialogues sont également un point fort.","lastmod":"2025-12-14","duration":"00:10:43","url":"/play/18953045.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNDI3ZjBlMmM5NmEyMGYxOTgwZGZjZDAzZjRlZmEzMjguanBn.cache","vod_id":18926717,"title":"Un salon de beauté de Shenzhen forme et discipline ses nouvelles recrues. La plus belle et la plus exquise, Shishi, finit par se faire baiser (3)","lastmod":"2025-12-14","duration":"00:38:50","url":"/play/18926717.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA3MTkvZWE4OGRjYjA2YjBjODUyNzFjMGY3NmJjYjZmYTM2NmEuanBn.cache","vod_id":19043694,"title":"Ma fille fraîchement diplômée du lycée, ta déesse, ma chienne, dépense de l'argent pour jouir dans sa chatte.","lastmod":"2025-07-18","duration":"09:30","url":"/play/19043694.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNzUzMTIwMDJkNjc3OTg2ODg1OGFmMTBhMDllMTcwMzMuanBn.cache","vod_id":18964641,"title":"« Collection complète divulguée de haut niveau » - Montrer son visage est la clé ! Cible de toilettes à chair humaine : 100 personnes tuées Twitter de grande valeur, de qualité supérieure, gros seins, contraste salope [Juice Summer] tournage privé, sexe varié Ziwei (79)","lastmod":"2025-03-22","duration":"00:01:31","url":"/play/18964641.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYTFiMzUzN2EzNjkxNmJjM2U3NzdlMjE1MGRmMDQ1NzUuanBn.cache","vod_id":18923888,"title":"Une influenceuse très en vue, vêtue de lingerie et de bas révélateurs, exhibe sa poitrine au gré de ses mouvements, offrant un spectacle incroyablement séduisant. À ne pas manquer !","lastmod":"2025-12-14","duration":"00:11:58","url":"/play/18923888.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOGIzYmM1NTk4NzUxZmUwMDYzZmYzYTU5ZjUxOTVjMTUuanBn.cache","vod_id":18944324,"title":"J'ai retrouvé ma voisine timide et sensuelle pour une partie de jambes en l'air, des léchages mutuels et une position très suggestive. Elle était comblée, me serrant fort contre elle et prenant son pied ; elle était couverte de sperme et son visage était parfaitement exposé.","lastmod":"2025-12-14","duration":"00:40:02","url":"/play/18944324.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMTVmNTgzYzNlZjJlMjExMWRmMGZjNWQ1M2EyNzA1YmYuanBn.cache","vod_id":18950407,"title":"[Sous-titres chinois] YST-194 Jusqu'à ce que ma sœur, dévouée à son mari, tombe éperdument amoureuse de moi... Rina Otomi","lastmod":"2025-12-14","duration":"01:39:26","url":"/play/18950407.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYzk5NzNiNGMzZTkxYWVmMmI0N2QxYWQzZmRlYjdjOTEuanBn.cache","vod_id":18965836,"title":"【Sex Toy de luxe ❤️Beauté】Reine de l'Airline ✨ Plaisir extrême et masturbation lascive. Vagin juteux et tendre, gorgé de fluides lubriques. Mon pénis y glisse facilement d'un seul geste. Sperme blanc débordant. Les talents de masturbation de cette déesse sont supérieurs à ceux des hommes.","lastmod":"2025-03-22","duration":"00:52:38","url":"/play/18965836.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNjM5ZjU5OTUxYTAxMjhkNGFkODZlZDM4OWMxNzNiYTYuanBn.cache","vod_id":18981724,"title":"[Sous-titres chinois] MOGI-092 [Première fois filmée] [Accord gourmand] Une étudiante d'une prestigieuse université privée, élevée avec une certaine éducation, ne porte pas de préservatif, même lors de rapports sexuels, contrairement à son apparence sérieuse.","lastmod":"2025-12-14","duration":"02:34:34","url":"/play/18981724.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMWJmMjU5ZDgyYWUxNjRiOTAyZTQ5N2JkZTMyMDU5OTYuanBn.cache","vod_id":18968510,"title":"Une belle jeune fille, comme à côté de chez elle, montre son visage tout au long de la diffusion en direct, interagissant et flirtant avec les spectateurs masculins, obéissant à leurs ordres, exhibant sa silhouette sexy, se frottant les seins et jouant avec son vagin, et révélant des gros plans de sa vulve rose avec beaucoup de liquide vaginal.","lastmod":"2025-03-23","duration":"00:52:19","url":"/play/18968510.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZDhhYTVhODY2ODM1NzNkODRjYmJiYjM3MTNlMDQ1MDMuanBn.cache","vod_id":18924591,"title":"Un chauffeur expérimenté a emmené une jeune femme en voiture pour une virée en plein air, et ils ont fait l'amour passionnément devant le capot. La femme était incroyablement douée pour le sexe oral, et le chauffeur l'a déshabillée et l'a violemment pénétrée par derrière ; ses gémissements étaient vraiment obscènes.","lastmod":"2025-12-14","duration":"00:56:42","url":"/play/18924591.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNWQxM2Q0NmZmM2JlMTU5YzI2NzUxZWQ3YzdkYTY3ZDAuanBn.cache","vod_id":18930522,"title":"Une présentatrice aux formes généreuses et à la beauté renversante, vêtue de bas parfumés au miel, se livre à un spectacle de masturbation. Sa silhouette voluptueuse et son charme rendent sa masturbation passionnée particulièrement envoûtante.","lastmod":"2025-12-14","duration":"00:32:51","url":"/play/18930522.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZDE0NTFmYmRlZmExODNjZTM4NDhlM2VmODRiYWNiNDYuanBn.cache","vod_id":19145972,"title":"Le groupe de filles a enregistré deux vidéos d'elles-mêmes en train de se masturber avec des œufs vibrants, exhibant leurs jolis petits vagins.","lastmod":"2026-03-01","duration":"01:26:16","url":"/play/19145972.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZDRkYzlmYjQ0N2IxZjYzMDQ3NjFlZWJmMTg2Y2QyOTQuanBn.cache","vod_id":19014376,"title":"ABP880, c'est du sexe à l'état pur, du sexe sans fin avec pénétration. Asuna Kawai a subi 17 pénétrations consécutives.","lastmod":"2025-03-24","duration":"03:58:54","url":"/play/19014376.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZWIzNjU4NDRmOGZkODhiYmY0MDFhZTBmYzMwNTQ5YmEuanBn.cache","vod_id":18958742,"title":"Cette femme mûre, pure et innocente par excellence, à lunettes et à la peau claire et douce, est adorable. Elle chevauche une énorme bite, la secouant vigoureusement, son jus coulant le long de son ventre. Elle reçoit une éjaculation faciale, une fellation et avale son sperme !","lastmod":"2025-12-14","duration":"01:18:27","url":"/play/18958742.html"}]},
videoTitle: 'Première fois que j'éjacule à l'intérieur d'une jeune femme magnifique et de grande qualité',
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=/`;
}
};
}