\"Les fesses de ma sœur ne vont pas agrandir mon pénis, n'est-ce pas ? (rires)\" La raison s'envole devant des fesses rebondies et innocentes ! Une vie d'éjaculation en levrette complètement folle. Yuzuriha Karen (rires)","lastmod":"2026-07-11","duration":"","url":"/play/19267748.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvOWRkZGNhOGRmYmY1YzRhZjJiYzFkZTYyNDYyOTk1NDIuanBn.cache","vod_id":19030809,"title":"[Première sortie exclusive] Livre photo complet de « Chunmomo » [Fille de la campagne], une influenceuse Weibo suivie par des millions de personnes !","lastmod":"2025-03-28","duration":"0:03:51","url":"/play/19030809.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYTJlNTMyMDk2ZGQ2NjI1NmIyYTdhNWZmMDQyY2NhODcuanBn.cache","vod_id":19114208,"title":"Une belle jeune femme née en 1999, vêtue de bas noirs et de lingerie sexy, se fait payer pour des partenaires sexuels.","lastmod":"2025-03-29","duration":"0:29:29","url":"/play/19114208.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNTAxNTdlMWE5NThjYzlkODBjNTM1OWU5MGQwNTc3MmYuanBn.cache","vod_id":19081615,"title":"Une belle femme qui ressemblait trait pour trait à Guan Xiaotong était en train de faire un plan à trois avec sa sœur et un homme circoncis.","lastmod":"2025-03-29","duration":"0:24:15","url":"/play/19081615.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYTc1OWIyNDczNTgwNmQ3ZmZmZjJjMTFjMWM4MjU0OGIuanBn.cache","vod_id":19144589,"title":"Une jeune fille pure et innocente, étudiante en deuxième année à l'université à Shanghai, s'est prostituée pour gagner sa vie.","lastmod":"2025-03-29","duration":"0:42:50","url":"/play/19144589.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvODI3YmQ0MGU5NTQ5OThlOGI1YTNlMjkwMDkyOWFhZmUuanBn.cache","vod_id":19106305,"title":"Une jeune Japonaise se rend pour la première fois dans un hôtel pour une fellation.","lastmod":"2025-03-29","duration":"0:30:46","url":"/play/19106305.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYmQ2YzNmMjhjYjI4MzU5YTFkYzc0YjU4OWFkZWU1NmQuanBn.cache","vod_id":19116521,"title":"Selfie de sexe oral #La fille née en 2003 a une silhouette magnifique","lastmod":"2025-03-29","duration":"0:10:28","url":"/play/19116521.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMWQzMjk3MTA3ZWJkNjEzODgzZWMyOTc3YTM1NDM4NmEuanBn.cache","vod_id":19036925,"title":"KTRA-383 Éjaculation avec une sœur qui n'a pas de gros seins","lastmod":"2025-03-28","duration":"1:59:19","url":"/play/19036925.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMmNkYjhlYzI3MTRiMjY3NDYzMGMxZDg5ZWM1MGVkYmUuanBn.cache","vod_id":19092295,"title":"L'éjaculation a eu lieu dans le vagin d'une jeune sœur immature !","lastmod":"2025-03-29","duration":"1:59:13","url":"/play/19092295.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZDg4OTZlOTNiMTUzZmVkZTUzM2MyMTA5ZDBmYjVlYzAuanBn.cache","vod_id":19257317,"title":"J'ai remarqué ma petite sœur sexy qui portait un t-shirt pour la première fois, en train de regarder son frère ! On ne voit pas ta vulve ? Tu as envie de faire l'amour ? Je suis dans le pétrin à cause de SWITCH.","lastmod":"2026-05-06","duration":"3:19:11","url":"/play/19257317.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA3MDcvZjIyZGNhYWE1ODA5NmE4MjNjNjFkZWJlMTBhMjNhMzAuanBn.cache","vod_id":19267196,"title":"Les frères qui aiment les jeux vidéo trouvent des filles de cette manière plus sûre et plus fiable. Ce sont toutes des filles à temps partiel. En général, les filles sur Tuhu peuvent vous rencontrer à condition d'avoir une conversation nue avec vous. Zut !","lastmod":"2026-07-11","duration":"","url":"/play/19267196.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNDJjYmU4NGMzOTRkYThjMDE5NGJkZTAwZTIzMDRkNTguanBn.cache","vod_id":19045855,"title":"La fille d'à côté, douce et innocente ! Baise-la ! Un sourire angélique, une silhouette menue, elle suce comme une pro, soulève-la et pénètre-la profondément, plaque-la contre le sol et offre-toi une bonne baise.","lastmod":"2025-03-29","duration":"0:38:00","url":"/play/19045855.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvOGQxYWUwNmNiODQyYzdjZjJmZjZhZTIxNmVlNDZjODUuanBn.cache","vod_id":19243737,"title":"J'ai eu des rapports sexuels avec ma sœur à deux reprises dans une chambre d'hôtel jusqu'à ce qu'elle ait des nausées et vomisse de la bile.","lastmod":"2026-02-08","duration":"0:45:45","url":"/play/19243737.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvY2EyOGUwNGFkMjUxYzNkNTdmOGFjZjgyZTZlZmE0NjYuanBn.cache","vod_id":19071737,"title":"CAWD-078 Les cuisses charnues de la sœur cadette de ma copine, dont la culotte était à peine visible, m'ont donné envie d'éjaculer en elle. (Erina Oka)","lastmod":"2025-03-29","duration":"2:31:54","url":"/play/19071737.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMTUvMjAzZDE2ZDQwN2RmYTAxZWY2MjBlY2RjYzVhZjg2MjIuanBn.cache","vod_id":19235898,"title":"Lors d'un voyage d'affaires, des pluies torrentielles record m'ont contrainte à partager une chambre avec une collègue plus âgée, que je considère comme une petite sœur… Je ne pouvais m'empêcher d'éprouver du dégoût pour moi-même, une vierge. (Tsukishiro Ririka IPZZ-668)","lastmod":"2025-12-22","duration":"1:53:30","url":"/play/19235898.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvY2UzZmFlZWUyNmYzMDliMWEyODg4YTdjODIyYjNkYjguanBn.cache","vod_id":19179953,"title":"(2. Une nouvelle fille d'une beauté époustouflante, avec une poitrine magnifique et une silhouette superbe, elle est calme et bien élevée, un fessier en forme de pêche, et elle se dandine en position de cavalière, rendant son petit ami heureux et potelé l'envie de tous...)","lastmod":"2025-03-30","duration":"0:10:11","url":"/play/19179953.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTExMTYvNzY5NzI0Y2IyMDhkZTY1YWViOGU1NTY1NjFhN2U3NWQuanBn.cache","vod_id":19230823,"title":"Quand je suis rentrée chez moi pour la première fois depuis longtemps, la sœur de mon amie d'enfance était une NEET (ni en emploi, ni en études, ni en formation) assignée à résidence. (Yumi Shion, Himesaki Hana CJOD_434)","lastmod":"2025-11-15","duration":"2:03:33","url":"/play/19230823.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvODAxMTU5NGQ0ZjRiMGY1MmFjNTU5NmQ1ZjQ2MDA5MzYuanBn.cache","vod_id":19134750,"title":"Une petite fille aide son frère à éjaculer ! Cible !","lastmod":"2025-03-29","duration":"2:09:07","url":"/play/19134750.html"}]},
videoTitle: '#SœurChat',
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=/`;
}
};
}