Une jeune fille du Fujian trompe son petit ami, puis est victime d'inconduite sexuelle révélée par ce dernier, informaticien de profession","lastmod":"2026-07-11","duration":"11:30","url":"/play/19164831.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOWI1ZmYxMmRjMzUzNzA0NGZjMjBlZGY3ZGZkODJkOGIuanBn.cache","vod_id":18999062,"title":"[Original de Tiger] Discipliner une institutrice de maternelle ! Sexe oral dans la cage d'escalier de l'entreprise, j'ai appelé mon copain pendant qu'on faisait l'amour mais il n'a pas répondu !","lastmod":"2025-03-23","duration":"22:57","url":"/play/18999062.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvN2EyODgzODM2ZGVjYzQxMTc0ZjYxNmY1MTFkYTUxNjQuanBn.cache","vod_id":18956991,"title":"10musume Natural Girl 012123_01 Je veux montrer à mon ex à quel point je suis folle quand j'ai un orgasme ! (Hikaru Tanabashi)","lastmod":"2025-03-22","duration":"01:00:28","url":"/play/18956991.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYzhlNzZiNThmMDM0ZTI4OTQ5ZjMxNWU1OTEzNzhhYTcuanBn.cache","vod_id":18997076,"title":"[Double Vol - Elle lui prend les seins avec habileté] Petit ami : Tes seins sont tellement gros ! Petite amie : Oh là là, je ne suis toujours pas bien mise en valeur. Trop cool ! Ma meilleure amie regarde et elle a des démangeaisons !","lastmod":"2025-03-23","duration":"30:31","url":"/play/18997076.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMTg3MzM5N2RjZmMwNDZjNGU5NDhlM2NkNjhhM2I1ZjcuanBn.cache","vod_id":19002916,"title":"Starry Sky Media - La tentation mortelle du tueur de cocus : la contre-attaque de la salope - Feng Xue","lastmod":"2025-03-23","duration":"38:56","url":"/play/19002916.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNGVhNjM0YTExODg4OGFlNjQxNGQzMDM5YWM4NTYyZWIuanBn.cache","vod_id":19017336,"title":"Le dernier scandale impliquant une hôtesse de l'air de Cathay Pacific concerne un homme qui est l'ex-petit ami de la femme. Toutes les hôtesses de l'air sont-elles aussi volages ?","lastmod":"2025-03-24","duration":"02:25","url":"/play/19017336.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZDllODdmZDM5MjQ0NDNlZjczNWUwOWQ4OTJkYmE2ODEuanBn.cache","vod_id":18994364,"title":"SSNI-636-CN Récit de deux jours passés à avoir des relations sexuelles secrètes avec ma cousine, une jeune femme aux seins généreux en pleine puberté, lors d'un voyage dans ma ville natale. - Rika Aimi","lastmod":"2025-12-14","duration":"02:00:14","url":"/play/18994364.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA2MTAvYTdhNmY0YzAzMWNlMmJkODkyY2M1MGQxNWFlYTY4YmIuanBn.cache","vod_id":19037845,"title":"Le commentaire de Jiro sur les tartes aux fruits : une campagne de financement participatif pour porter un chapeau vert","lastmod":"2025-06-10","duration":"15:25","url":"/play/19037845.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvN2YwNzE0MjJkMjQ1ZWY4NzhhMzBhZTU2MmFmY2I5MmUuanBn.cache","vod_id":18962201,"title":"Influenceuse Twitter NTR cuckold salope chienne chengse hookup séance photo privée~ exposition en extérieur sexe sauvage femme mariée partageant invite sincèrement ses fans 3P femme mûre fétichiste must-have (nouveau) _ (17)","lastmod":"2025-12-14","duration":"00:02:20","url":"/play/18962201.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZWY4MTA4MDM4MjExNDU2ZTM1ZmI1MTUyYmIxYmVkYjQuanBn.cache","vod_id":18964054,"title":"Le petit ami d'ED Mosaic n'arrivait pas à satisfaire sa tutrice aux cheveux roses ❤️ qui rêvait secrètement d'un homme bien doté. Après que trois hommes se soient relayés pour lui offrir une stimulation intense, elle a joui deux fois.","lastmod":"2025-03-22","duration":"00:46:12","url":"/play/18964054.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZTA5ZDBhZTQ4NjBjZGFkZTYyNGNmZGEyMmYxOTdkNjMuanBn.cache","vod_id":18973618,"title":"✅Queue de lapin mignonne✅Fille mignonne et adorable〖Il y a une sucette en dessous〗Petite amie avec un plug anal et une queue de lapin, le fessier électrique le plus puissant vide le sperme de son petit ami deux fois de suite, silhouette diabolique, chatte rose tigre blanc","lastmod":"2025-03-23","duration":"00:07:21","url":"/play/18973618.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZmViMzdkYTRjNjQ3MmI2ZjUyYzJkZTRiYWVjMGZmMmYuanBn.cache","vod_id":18988408,"title":"Rapport HND-776 NTR : J’ai revu mon amie d’enfance, pour qui j’avais le béguin, après un an. Nous avons bu un verre seules dans mon appartement. Je n’en revenais pas… ! J’espérais que ce serait comme ça, mais elle m’a avoué avoir fait l’amour avec son petit ami jusqu’au petit matin, ce qui m’a déprimé et m’a fait bander. Jinguji Nao (Blu-ray).","lastmod":"2025-03-23","duration":"02:46:31","url":"/play/18988408.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MDcvZDBjZmIwNWQ0OTUwMDU5YzViNGNiNjg5MTg4YTQ1YzguanBn.cache","vod_id":19051487,"title":"[Série divulguée] Une jolie femme au foyer bien élevée et son petit ami prennent un selfie joyeux à la maison.","lastmod":"2025-09-06","duration":"06:28","url":"/play/19051487.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYmY0YTI0MTdiMzc3NDYxYzE3ZTQ0YzkxNGUxNTdiNTguanBn.cache","vod_id":19026828,"title":"KEED-78 Une mère, Shiraki Yuko, est excitée par le petit ami de sa fille alors que celle-ci est absente de la maison. KEED-078-C.","lastmod":"2025-03-28","duration":"01:49:19","url":"/play/19026828.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA3MTEvYTNkYmU2YThiYWY1ZmQwNzA5OTI3N2Y0MTdlOTIwZTEuanBn.cache","vod_id":19167966,"title":"La femme trompée et son frère profitent d'une séance à trois où la chatte de la petite amie salope est baisée à cru.","lastmod":"2026-07-12","duration":"28:57","url":"/play/19167966.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA3MjkvNTUyY2EzMTY4ZjczMjkzMjVlMTE5YmM5ZDg0Nzg0OGUuanBn.cache","vod_id":19044670,"title":"IA - Dilraba Dilmurat - avec son jeune petit ami","lastmod":"2025-07-28","duration":"05:04","url":"/play/19044670.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNDFjZDMyNDE1ZTYzNjAxMmUxZmQ3NTBiMzU1NjIxOWMuanBn.cache","vod_id":18936302,"title":"Une femme mûre d'une beauté époustouflante a pratiqué une fellation profonde à son petit ami étranger, et elle a ri de bon cœur.","lastmod":"2025-03-22","duration":"00:05:50","url":"/play/18936302.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOWRiMTNhMDI4NTEyMGEwOTYyYzM1MDE0ZGY5NDg1NzUuanBn.cache","vod_id":18968134,"title":"Une jeune fille à l'air innocent fait l'amour avec son petit ami. Il frotte son clitoris avec le gland de son pénis. Son vagin est couvert de gros boutons et très rose. Il éjacule en elle.","lastmod":"2025-03-23","duration":"01:10:15","url":"/play/18968134.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZmRiMmJjNGU5YzJiZTg1MjI2MzBmMjExY2ZlNDlkMzQuanBn.cache","vod_id":18992458,"title":"Lécher le pénis de son copain avec sa meilleure amie !","lastmod":"2025-03-23","duration":"25:38","url":"/play/18992458.html"}]},
videoTitle: 'IA - Liu Tao - Souvenirs de jeunesse - Petit ami cocu',
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=/`;
}
};
}