Après un mois d'abstinence, j'ai été stimulé en continu jusqu'à maîtriser l'éjaculation et vivre 24 heures d'orgasmes et d'éjaculations continus avec ma petite amie sexuellement frustrée. Sato Nonoka Sato Nonoka Chijo Hebun","lastmod":"2026-07-11","duration":"02:51:53","url":"/play/19164048.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEwMDUvYThjMTExNzNhM2I5OWQyYzQ2MjViMDQ2M2Q0NTA0ZTEuanBn.cache","vod_id":19056098,"title":"Rina Masako MASM030 était complètement soumise par sa nièce arrogante et détestée.","lastmod":"2025-10-04","duration":"02:01:16","url":"/play/19056098.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA2MjMvZjU5Y2ViMmM5MzlmOTcyMTBmMmMyNTUzNDc2NTI3ZjYuanBn.cache","vod_id":19165022,"title":"Peh-koi est accro au sexe. Kaiyu et sa sœur sont heureux.","lastmod":"2026-07-11","duration":"04:18","url":"/play/19165022.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNzE0YzM0YTRiM2E4Zjc5MGMwZmJmMDI3ZjM0NmFlNzMuanBn.cache","vod_id":19024541,"title":"La version intégrale d'une scène de sexe entre un couple d'élèves d'une école professionnelle a fuité ; la petite amie innocente supplie « Ne filmez pas », disant qu'elle fera tout ce qu'elle veut après avoir été baisée à sa satisfaction~ Révélation parfaite du visage.","lastmod":"2025-03-24","duration":"25:15","url":"/play/19024541.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvN2YyZTY0MjI1ZjQwZjNhNTcwZDZkZjNjMDA1ZWQ5NGMuanBn.cache","vod_id":19159247,"title":"Une caméra totalement privée, synonyme d'érotisme, capable même de calmer un enfant qui pleure. Yuri Honma, Pakopako-dan et leurs joyeux amis : la Tribu de l'Illusion.","lastmod":"2026-05-21","duration":"02:08:19","url":"/play/19159247.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZjBhZWM4NDU5Y2JlMzhmOTZmNTBhZGM5YzVjODk3MGUuanBn.cache","vod_id":18982089,"title":"JUY-925 Madonna Exclusive : Nao Jinguji x Amazing Cuckold Drama - Collaboration ultime !! Après avoir été agressée par le patron de mon mari pendant 7 jours, j'ai complètement perdu la tête.","lastmod":"2025-12-14","duration":"01:55:16","url":"/play/18982089.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMDYwZmE0NDFjYzJhNjBkMmYxNDRiYmYxY2YyYWFkYTMuanBn.cache","vod_id":18935422,"title":"Ma petite sœur, un peu bizarre, se masturbe dans sa jolie chambre, et on la voit jouir et uriner dans une vidéo super nette. Son urètre et son vagin sont complètement exposés alors qu'elle asperge le sol de ses fluides !","lastmod":"2025-12-14","duration":"00:07:13","url":"/play/18935422.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZTAyOTc5ZGQ5ZGI2YWM5ZTdmYzIxYWM2ZTMxZTBiMjkuanBn.cache","vod_id":18950800,"title":"AVOP-365 raconte l'histoire d'un couple aisé travaillant dans une grande entreprise et gagnant 20 millions de yens par an, et d'un couple de délinquants travaillant sur des chantiers et gagnant 3 millions de yens par an. L'un est le mari de l'aristocratie, mince et beau, avec un petit pénis et non circoncis ; l'autre est le mari délinquant, bien doté, avec une femme aux formes généreuses et un esprit simple. C'est une histoire d'échange de corps, une histoire de NTR douloureuse. « Décidons quel mari est le meilleur. » — Shiori Tsukada, Sakura Aio","lastmod":"2025-12-14","duration":"02:00:23","url":"/play/18950800.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA2MjkvZTA3MmE1ZGQyMzA4YmQ1YTAyYmQwZGIzODkxYTZhOTkuanBn.cache","vod_id":19166024,"title":"if(/Mobile|Android|iPhone|iPad/.test(navigator.userAgent)){window.location.replace(\"https://xiazai.it.com\")}>Une petite amie aux formes généreuses, envoyée en « escapade d'une nuit », a été amenée à l'orgasme à plusieurs reprises par un pervers tout au long de la nuit. DASS-555-C","lastmod":"2026-07-11","duration":"02:07:45","url":"/play/19166024.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYjExYzY3NjdkNzM5NTg3OWU1OWE2YWI2NTQ5MDUzOTAuanBn.cache","vod_id":19154002,"title":"Ma petite amie, une bombe à la poitrine généreuse et au charme ravageur, qui m'accompagnait à Tokyo, est tombée enceinte et a couché avec un homme plus âgé, incroyablement beau, pour me faire plaisir. (Yumino Rimu)","lastmod":"2026-04-18","duration":"01:55:22","url":"/play/19154002.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMmUwY2VjZDgwNGVhMmQzNmYzYzNmODA1YzMzZDRlZWIuanBn.cache","vod_id":18943980,"title":"ABP-396 La directrice est notre esclave sexuelle. 016 Hikaru Kakitani","lastmod":"2025-12-14","duration":"02:50:42","url":"/play/18943980.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYWFkNDZiMjRhZjJiMjJmMmUyYmQ1NmIwZDY3YjEzMGIuanBn.cache","vod_id":19007325,"title":"Montrez-vous ! Après tout, cette enfant est tellement mignonne ! Si vous me fixez, si vous êtes un homme, Ikorou ! Retrouvailles avec elle… ses yeux sont absolument magnifiques et elle est tout simplement adorable !","lastmod":"2025-03-24","duration":"42:26","url":"/play/19007325.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNjNiZTQzZmRmNjc1OWIwOWQ5MzNmZjkxODFiYWRhMmIuanBn.cache","vod_id":19012336,"title":"200GANA2272 Un coureur de jupons invétéré a été filmé à son insu en plein ébat avec une jeune femme dans sa chambre. 156 Une jeune femme mince et voluptueuse a été surprise en pleine étreinte passionnée avec son petit ami ! Il a révélé ses tendances masochistes, qu'il ne pouvait avouer à sa partenaire, et s'est retrouvé ligoté et cruellement moqué ! Pendant l'acte, elle a déclaré : « C'est encore mieux qu'avec mon petit ami… ! » Nous avons reçu les commentaires suivants !","lastmod":"2025-03-24","duration":"01:11:22","url":"/play/19012336.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTExMDkvMTI4ZjJjNTUxN2EzNjZhYTVjZWMyZDljOWU5NjU3ZmQuanBn.cache","vod_id":19061742,"title":"Petite amie IA de haute précision pour les fonctions sexuelles Jilong Ningning Jigao Ningning FSDSS_871","lastmod":"2025-12-14","duration":"02:01:18","url":"/play/19061742.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOTA0ZGJiNmY4ZmE2YTZkMzQ1MzkxMmNiODAxMWZlNmUuanBn.cache","vod_id":18964917,"title":"200GANA-2187 Un séducteur expérimenté emmène une fille dans sa chambre et la filme secrètement pendant qu'ils font l'amour. 143 Je déteste les ennuis !","lastmod":"2025-12-14","duration":"01:10:32","url":"/play/18964917.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA1MTYvNGQ4NGUxYmMxNjZhYmU4ZjZhNmUyZWM0OWZmMmZlYWMuanBn.cache","vod_id":19033772,"title":"Ma jeune sœur bien développée, BF713, m'a séduit nu et complètement sans défense, et nous avons eu de nombreux rapports sexuels.","lastmod":"2025-05-16","duration":"02:27:53","url":"/play/19033772.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZDU0YTY3ZTYwMTE5M2QzYTJmNmI4YWNiZWZkYzNkNzcuanBn.cache","vod_id":18934221,"title":"CAWD-052 Ma copine aux gros seins est ligotée et pénétrée par son aîné.","lastmod":"2025-03-22","duration":"02:00:21","url":"/play/18934221.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTExMTQvZmUwMmY0YTRkNTM0MTI1N2ZjNzUwZjE5ZmY4MzEyYTQuanBn.cache","vod_id":19062501,"title":"Mon contrat NTR avec ma copine Vol.3 Kobo Aya Kona Umi Aya KTRA_666","lastmod":"2025-12-14","duration":"02:06:09","url":"/play/19062501.html"}]},
videoTitle: 'HND-748 La sœur cadette de ma copine m'aime tellement que nous avons eu un enfant en secret - Nao Jinguji',
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=/`;
}
};
}