Amateur Girl's First Time Watching Masturbation Excitement ④ OFFICE K」S","lastmod":"2026-07-11","duration":"","url":"/play/19267458.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvOGI3Zjk1YWM4MmMxMGUyNWY5ZjRhNmJkYjg5MjA3OWIuanBn.cache","vod_id":19086757,"title":"-daxiu- [Live-Stream] Unzensierte HD-Aufnahme einer reifen und attraktiven Nachrichtensprecherin, die sich in einem Hotel mit einem reichen, übergewichtigen Fan vergnügt. Ein gelber Hund uriniert im Stehen und ist damit nicht zufrieden; er leckt ihm sogar den Penis.","lastmod":"2025-03-29","duration":"0:30:33","url":"/play/19086757.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvOTFkZDczOTJlOTNlOGJjZjljY2M1NzZhMjA0ODAyNzIuanBn.cache","vod_id":19039981,"title":"Die kolumbianische Schönheit Andreina Deluxe hat einen hinreißenden Hintern; ihr dunkler, gebräunter Po ist perfekt für die Penetration großer Penisse.","lastmod":"2025-03-28","duration":"","url":"/play/19039981.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvYjkzODZmMmFmYWFiZjNlOTU4YWJiZGQzZTdmMjYyMjIuanBn.cache","vod_id":19047421,"title":"Videos von ausländischen Schönheiten mit großen Brüsten, die verrückten Sex haben","lastmod":"2025-03-29","duration":"0:24:15","url":"/play/19047421.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZDQ3YzU1MzhjMDc0OTBkMmQzNDA5ZTI3MTQ2YzYyZjMuanBn.cache","vod_id":19107276,"title":"Eine attraktive Studentin aus Nanjing, die als Campus-Schönheit galt, hatte ein heimliches Treffen mit einem ausländischen Lehrassistenten; sein Penis war dick und groß, mindestens 20 cm lang.","lastmod":"2025-03-29","duration":"0:13:17","url":"/play/19107276.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZjg0NmQ4MzQzOWQzYTRhZWUwZThiMzQ2Y2MyNGE5OGIuanBn.cache","vod_id":19077942,"title":"360 Hotel Versteckte Kamera - Sexy tätowierte Schönheit stöhnt verführerisch, während sie von ihrem Freund gefickt wird","lastmod":"2025-03-29","duration":"0:44:51","url":"/play/19077942.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZDg1OWU2ODkxODIzMDdjNTk4YTdlNGQ5MTk2OTc2YTQuanBn.cache","vod_id":19055748,"title":"Ein hübsches Mädchen mit kurzen Haaren masturbiert auf dem Sofa und stimuliert ihre Vagina mit den Fingern. Sie führt einen transparenten Vibrator ein und stöhnt dabei, während sie ihn hinein- und herausstößt und weiße Flüssigkeit austritt. Anschließend praktiziert sie einen verführerischen Akt mit gespreizten Beinen und Analverkehr.","lastmod":"2025-03-29","duration":"0:22:38","url":"/play/19055748.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZjFjYzhkNzkwOGY1NzU2ZmM1MTExNDMzM2EwY2EwZjcuanBn.cache","vod_id":19123081,"title":"SYKH-087 möchte von seiner schönen Frau geküsst werden und sich anschließend von ihr einen Handjob geben lassen.","lastmod":"2025-03-29","duration":"1:50:50","url":"/play/19123081.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA2MjcvYjllOWJmNjM0M2I0ZTIxZDY5ZGYxMmJmMzljNTZlMzguanBn.cache","vod_id":19265547,"title":"Die erste Online-Enthüllung einer bekannten Douyin-Influencerin mit 80.000 Followern – einer tätowierten Schönheit mit Runenmuster – erfolgte durch ein anzügliches Video. Sie behauptet, einen Freund zu haben, wird aber tatsächlich von einem Sugar Daddy ausgehalten. Das Video zeigt sie als unterwürfige Frau, die zu Gehorsam erzogen wurde.","lastmod":"2026-06-26","duration":"0:02:43","url":"/play/19265547.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvY2U0OGUyYWU2NzViYTVhYmQ2N2EyNGUxYzVkNDBlYTkuanBn.cache","vod_id":19048646,"title":"Eine koreanische Nachrichtensprecherin präsentiert eine Nackt-Anzieh- und Masturbationsshow mit über einem Dutzend verschiedener Looks.","lastmod":"2025-03-29","duration":"0:17:43","url":"/play/19048646.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNWI1ZjU4MWU4NGUwYjYyMzJiZTM3MjI1MjJiM2ZhYzkuanBn.cache","vod_id":19255432,"title":"Eine attraktive, neunköpfige Schönheit gibt ihr AV-Debüt; ihr Verhalten nach dem Ausziehen ist anzüglich! Empfindliche A-Körbchen, straffe Bauchmuskeln, feuchtes Schamhaar – und am Ende weint sie fast. (Kaguyarin MOODYZ)","lastmod":"2026-04-24","duration":"2:32:47","url":"/play/19255432.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMTUvMjEwZTc4NTk5N2Y0MDdiZWY2Y2MzN2E4NGNhODcwODMuanBn.cache","vod_id":19234850,"title":"Die Frau, die heimlich eine andere Frau auf der Toilette filmte, wurde auf frischer Tat ertappt und schrie vor Schreck auf.","lastmod":"2025-12-15","duration":"0:07:14","url":"/play/19234850.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvOTgxMTU2MDVmYTE3NTQ4NzcwODVjYTJkNzQ3N2E3ODAuanBn.cache","vod_id":19099061,"title":"Serie über die ungeschriebenen Regeln der koreanischen Unterhaltungsindustrie – Reiche Männer zahlen hohe Preise, um mit Top-Schönheiten anzubandeln","lastmod":"2025-03-29","duration":"0:58:15","url":"/play/19099061.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvMmE4Mjg0OTIxZWFjMjg3NGNkMzVmZTBiZTZhNTEwMGEuanBn.cache","vod_id":19070520,"title":"Eine wunderschöne Live-Streamerin nimmt Sie mit auf einen Spaziergang","lastmod":"2025-03-29","duration":"0:07:17","url":"/play/19070520.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNjEzZDVlOWNkYWIxZjk2M2Q3YWRjODNhNWY2NGIyZTAuanBn.cache","vod_id":19097857,"title":"Der ältere Bruder war richtig wild; er fing an, mich zu ficken, ohne mir überhaupt die Kleider auszuziehen – er zog sie mir währenddessen aus, was Zeit sparte.","lastmod":"2025-03-29","duration":"0:15:53","url":"/play/19097857.html"}]},
videoTitle: 'Masturbation mit Requisiten! Macht extrem süchtig! Wunderschöne, hellhäutige Frauen sind die Lieblinge der Männer!',
language: 'de',
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('Link kopiert!');
}).catch(() => {
// 降级到旧方法
document.execCommand('copy');
alert('Link kopiert!');
});
} else {
// 降级到旧方法
document.execCommand('copy');
alert('Link kopiert!');
}
}
},
// 切换布局
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=/`;
}
};
}