Une fille à forte poitrine et à lunettes paie le frère de son propriétaire avec son corps, wow, elle est vraiment bien foutue, fellation, masturbation des pieds, c'est tellement bon, viens chez moi jouer au mahjong, faisons quelque chose ensemble, oh","lastmod":"2026-07-11","duration":"08:23","url":"/play/19128846.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNjc3YjlkMDU5NGY4ODBmY2JjNzA3MjEzYzEwMjIxOTkuanBn.cache","vod_id":19036280,"title":"BLOR-216 Une charmante serveuse d'une cinquantaine d'années, mais toujours une femme mûre vibrante et magique, est brutalement baisée par un masseur érotique et un énorme pénis.","lastmod":"2025-03-19","duration":"02:10:16","url":"/play/19036280.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvODllYWQ1MGI3NzAzN2VhYTVmZDA0ZTdhMGE4OWU2MGIuanBn.cache","vod_id":18967642,"title":"Cette salope était entraînée à sucer des bites tout en étant photographiée, puis brutalement pénétrée par derrière.","lastmod":"2025-03-19","duration":"10:47","url":"/play/18967642.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA4MDcvYTNkOWEwNzlkMjZkMmM4NDJkZjAxNDBiNmYwN2NkY2YuanBn.cache","vod_id":19092668,"title":"Chaleur et excitation intenses, fellation profonde, baise passionnée, femme de bureau à lunettes, bas noirs, femme mûre","lastmod":"2025-08-06","duration":"07:17","url":"/play/19092668.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNzA2NzczMzJhYmI0NWM2M2RiNjlkZTEwNTY4ZmMwZjguanBn.cache","vod_id":18962964,"title":"Une étudiante, très lubrifiée, s'est fait baiser et a éjaculé à l'intérieur, puis elle a même léché ma grosse bite jusqu'à ce qu'elle soit propre.","lastmod":"2025-03-19","duration":"21:11","url":"/play/18962964.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYTJiMWZkNGY2YzE1OWNjNTNkOGFiOGQ0YTQ5ZGFmMGYuanBn.cache","vod_id":19014490,"title":"PPPE-112-C Je veux me faire baiser par de si gros seins... Le liquide pré-éjaculatoire coule... Mon pénis s'engourdit à force d'être pressé par ces seins.","lastmod":"2025-03-19","duration":"02:51:43","url":"/play/19014490.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNTY2NzNmZjAwNmRiN2UzNWQzOWNiNGYwZDU1ZTQ5NzIuanBn.cache","vod_id":19022890,"title":"écolière pure et innocente en bas noirs et uniforme de bureau","lastmod":"2025-03-19","duration":"11:58","url":"/play/19022890.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMzNhNjRiYWM5ZTY0M2RhZWUxY2U3NjQwZGY1MzZhODguanBn.cache","vod_id":19056850,"title":"Une déesse de premier plan et ses deux meilleures amies se livrent à un spectacle où elles servent un homme obèse. Le visage de la déesse est exposé tout au long de la scène tandis qu'elle pétrit et se masturbe, tandis que sa meilleure amie lèche le pénis de l'homme obèse avant de s'asseoir dessus pour prendre son plaisir.","lastmod":"2025-03-19","duration":"13:08","url":"/play/19056850.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvODdjZjFjY2M0ODRhMzI1NjY1OWJjM2Q1NTllNTI2YmMuanBn.cache","vod_id":18957916,"title":"Bas noirs à entrejambe ouverte, position de cavalière dominante, mouvements de va-et-vient debout, très séduisant, à ne pas manquer.","lastmod":"2025-03-19","duration":"40:19","url":"/play/18957916.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNWNmZDc5ZmMxMzFmOTVjOGQ3Y2Y2YjlhNzA3ODNjM2IuanBn.cache","vod_id":18975626,"title":"De belles jambes associées à des bas noirs, et vous allez crier instantanément.","lastmod":"2025-03-19","duration":"43:00","url":"/play/18975626.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNDNkMjIyYWIyOGQ0OWMzYmNlOWQ0OWUyYzRlMzM2YmEuanBn.cache","vod_id":19056170,"title":"Yu Nuo, mannequin chinoise de la série TS portant des bas noirs, a été agressée sexuellement par un homme hétérosexuel qui a utilisé la stimulation digitale et la pénétration anale, la faisant gémir.","lastmod":"2025-03-19","duration":"10:21","url":"/play/19056170.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMjliOGEyY2UwZGEzZmEzNjM1OTc5OTBkZDM3OTk2YTQuanBn.cache","vod_id":19120628,"title":"Le jeune couple a pris des selfies ; la petite amie, une fille un peu dévergondée qui adore le sexe oral, a des talents oraux incroyables et adore manger du poulet comme une folle.","lastmod":"2026-05-14","duration":"14:13","url":"/play/19120628.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMDU4ZDcwY2M2MGZmZDI3MWUyNmQzYWM2MzJjMTFmMzYuanBn.cache","vod_id":18939334,"title":"(Dernière vidéo) Combat sexuel entre une fille de Guangzhou et un homme noir. Le pénis de cet homme noir n'est pas si gros.","lastmod":"2025-03-19","duration":"09:23","url":"/play/18939334.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMGYxMTgzMzkzYzYzNmJmN2ZkMDIzNTgyY2ZlYjUxYzEuanBn.cache","vod_id":19000367,"title":"[Une petite salope qui se sent mal à l'aise si elle n'est pas baisée pendant une journée][3] Elle a montré son visage tout le temps et a eu des rapports sexuels passionnés avec le gars, suçant sa bite et ne la lâchant pas, le laissant lécher sa chatte et jouer avec ses seins, et faisant toutes sortes de poussées !","lastmod":"2025-03-19","duration":"30:11","url":"/play/19000367.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOTg4YTI3OGFkYzYyNTBlMzYxYjFmM2M2NWI5ZTg2YWYuanBn.cache","vod_id":18982809,"title":"Une employée de bureau sexy en bas noirs se masturbe chez elle car elle se sent seule après le travail !","lastmod":"2025-03-19","duration":"16:55","url":"/play/18982809.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMTMvNWVhN2Q4NzE5NmUwNjg4YTFhOWRmNWY4MWUyMzc5NmEuanBn.cache","vod_id":19106862,"title":"Mizuna Rei - ASFB-262 Maître du Squirt Masculin : Je veux que tu te masturbes pendant 4 heures (Édition Deluxe) - CD1","lastmod":"2025-12-13","duration":"04:02:52","url":"/play/19106862.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNDExYTk4YWEyZDJmOGM4ZmRhYmRiNDZhOGVkMDE2Y2IuanBn.cache","vod_id":18931314,"title":"Le visage de cette petite salope était exposé tandis qu'elle était ravagée par un salaud qui la baisait la bite et la bouche.","lastmod":"2025-03-19","duration":"32:54","url":"/play/18931314.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOTAzMDEwNjBiYzM1Y2MwM2RjY2JjYzFlZjg5MWFjOGMuanBn.cache","vod_id":19035534,"title":"Mon cousin a couché avec ma cousine dans les bois pendant qu'elle allaitait ; son gros pénis était lubrifié par son lait maternel !","lastmod":"2025-03-19","duration":"04:00","url":"/play/19035534.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZmIwMzJiMzc0OTkwYWY0MDdkYzU3NzFlODIzN2Q0N2QuanBn.cache","vod_id":19055379,"title":"348NTR-008【男演员的鸡巴太疯狂了,保证让她上当! ! 】性格娇小、惹人喜爱的女友(24岁,IT会计)在男友的强烈要求下出演成人影片!但当她看到男演员那根巨大的鸡巴时,她就变得完全不同了,而且非常有攻击性! !她的阴部湿透了,看起来就像一个发情的婊子,想要展示她那从未在男友面前展示过的 100% 女性面孔! ! !演员们非常激动,他们一路晋级到第二轮! ! ! NTR.net案例8","lastmod":"2025-03-19","duration":"01:25:23","url":"/play/19055379.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYTk5MjJhMzU5NmNlNDlmOWE4YTE3YmVmNGE5YWI2YTIuanBn.cache","vod_id":18986130,"title":"Caribbeancom 060724-001 Début Volume 91 ~ J'ai envie de lécher ta bite, puis-je la lécher pour toi ?","lastmod":"2025-03-19","duration":"01:01:04","url":"/play/18986130.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZTJkNGZlZWUwY2U4MjJmM2Y5M2ZiYzJlOTkwMjI4MWMuanBn.cache","vod_id":18950034,"title":"Sexe oral et léchage de pénis dans un bus","lastmod":"2025-03-19","duration":"00:00:23","url":"/play/18950034.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYzNlM2RlZTdjYzQwODQzZjE2NGMzNDM5MDJlNmJiY2UuanBn.cache","vod_id":19000758,"title":"[Une bataille passionnée à trois avec une petite sœur] Visage parfaitement dévoilé, grande valeur, mignonne, obéissante et bien élevée, laissant deux grands frères la ravager de diverses manières, pénétration anale, cul de salope, sexe oral, grosses bites, gémissements jusqu'à l'éjaculation !","lastmod":"2025-03-19","duration":"57:35","url":"/play/19000758.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNTE0MmI3NjcwNmM1ZjhkYzkzNjYwZWVhODg5MGUyYTIuanBn.cache","vod_id":18936807,"title":"[Autoportrait chinois/caméra cachée] Bas noirs et accessoires érotiques satisfont tous les désirs de mon frère","lastmod":"2025-03-19","duration":"21:21","url":"/play/18936807.html"}]},
videoTitle: 'Bas noirs et beaux pieds serrant un pénis dans le fétichisme des pieds',
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=/`;
}
};
}