Perfekte Athletenfigur! Eine bewundernswerte Sportlerin fordert die Position der Cowgirl-Reiterin heraus! Arisu Kanau, Tachibana Chika, Arima Miku Ienage","lastmod":"2026-07-11","duration":"02:17:15","url":"/play/19161460.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYjI3ZGY0MzRmYzU2MjAxNDk4ZjAyMWEwNzVhNjYzNDMuanBn.cache","vod_id":19146532,"title":"Mirror Girl Edition: Eine Studentin schützt auf der Straße ihren Penis mit einem engen, hochgeschnittenen Badeanzug! Herausforderung mit hohem Beinausschnitt! Ihre behaarte Vulva reibt an ihrem... TOTTE-255","lastmod":"2026-03-04","duration":"55:57","url":"/play/19146532.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYzUyM2JjNTlkNDZiMTM5NjliMDI5MGIzODBlNTQxMzUuanBn.cache","vod_id":19003226,"title":"Es ist so aufregend, wenn meine beiden jüngeren Schwestern mir Oralsex geben.","lastmod":"2025-03-23","duration":"21:25","url":"/play/19003226.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOTI4MzE5M2UzMWRjZjIyYWI0ZTg3ZDk1NGI4NDI0ZWUuanBn.cache","vod_id":18980450,"title":"Die Handlung entfaltet sich auf verstörende Weise: Die Schwägerin verführt einen geistig behinderten Bettler im Treppenhaus, betatscht seine Brüste, spielt mit seiner Vagina, gibt ihm Oralsex und lässt ihn ihre Vagina lecken und ihre Brüste betatschen, bevor sie sie ohne Kondom fickt und dann in ihr ejakuliert, um ein aufregendes Erlebnis zu haben.","lastmod":"2025-03-23","duration":"00:45:17","url":"/play/18980450.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZjAyMTNjMzAxM2JlYTk4NjhlMDM1YTU4YmMyNTA5MDUuanBn.cache","vod_id":19007065,"title":"HJMO-404 Eine Herausforderung für Paare! Wenn der Ehemann Miya Akaris unglaubliche Fähigkeiten 20 Minuten lang aushält, erhält er einen Bonus! Wenn er zweimal ejakuliert, muss die Ehefrau mit einem anderen Mann Sex haben, der in ihr ejakuliert!","lastmod":"2025-03-24","duration":"03:56:17","url":"/play/19007065.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTExMDIvNjc4NGU0OTEwNDBhNzlmZjhmZmM3NGI3ZTAzYTJkN2YuanBn.cache","vod_id":19060733,"title":"[Sexuelle Belästigung in eng anliegender Hose] Verführerische Berührung mit ihrem verführerischen Po, stimuliert einen jungen Penis zur Erektion, Ejakulation in ihr, große, verheiratete Chefin mit langem Po, Mizuki Ruisa SMOK_005","lastmod":"2025-11-01","duration":"02:39:54","url":"/play/19060733.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNjAyZTJkMmNlMjQzODZiMzFhNTdmNGE3NGY3OTMwMWQuanBn.cache","vod_id":18944916,"title":"Die hellhäutige, vollbusige Internet-Berühmtheit [Sexy Zero] zeigt ihre Brüste und masturbiert mit einem Vibrator in Eiform. Sie trägt Netzstrümpfe und einen Stringtanga, der Vibrator vibriert sanft. Sehr verführerisch, nicht verpassen!","lastmod":"2025-12-14","duration":"00:55:14","url":"/play/18944916.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYjIyYjg0YTFkMGVjNzIwZGQ0YjBhMWIzMDYyOWUwOGMuanBn.cache","vod_id":18965203,"title":"Eine unschuldig wirkende Neueinsteigerin masturbierte tagsüber nackt in ihrem Schlafzimmer mit einem großen Vibrator. Der vibrierende Kopf stimulierte ihre Klitoris, und ihr Gesichtsausdruck verriet pure Ekstase. Ihre Vagina war feucht.","lastmod":"2025-03-22","duration":"00:38:44","url":"/play/18965203.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNzI2ZmNiN2IxZDA5NjJjZjU3NThiZjc0NjVhNDc5OTkuanBn.cache","vod_id":18931111,"title":"ATOM-395_B Nur für Amateure! Gewinne tolle Preise! Ferngesteuertes Vibrator-Suchspiel Teil 2","lastmod":"2025-12-14","duration":"00:20:00","url":"/play/18931111.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMzI2MWY4ZmZhNDE4MjcxNTc5Y2ZlM2ZiNGNjYjFjOGMuanBn.cache","vod_id":18941719,"title":"Zwei hübsche Mädchen mit jugendlichen Gesichtern und üppigen Brüsten bieten eine verführerische Nacktshow. Sie sind komplett nackt und benutzen Vibratoren in ihren Vaginas, während sie duschen – äußerst anziehend und verlockend. Wenn du auf so etwas stehst, solltest du es dir nicht entgehen lassen!","lastmod":"2025-03-22","duration":"00:31:18","url":"/play/18941719.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMWJjMzI0NTVmY2Q4MjE1NzMzOGRkNWI5OTUxNzg1ZmMuanBn.cache","vod_id":18970232,"title":"Zwei Frauenbecher gaben ihre Gesichter preis, was den Mann dazu brachte, frühmorgens einen Dreier zu haben. Schwarze Strümpfe, erotische Musik und lüsterne Stöhnen erfüllten die Luft, während sie am Fenster gefickt wurden. Dann wurden sie auf dem Sofa von mehreren Männern vergewaltigt, ihre Augen glasig, während sie mit hoher Geschwindigkeit ineinander stießen.","lastmod":"2025-12-14","duration":"01:35:52","url":"/play/18970232.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMDhlNjQ4NDQ0MjJlYjRkNmFlNTk1YTVlNTE5M2MzOWYuanBn.cache","vod_id":19155577,"title":"Eine rücksichtslose, süße und wunderschöne Escort-Göttin, der Inbegriff von Schönheit, stellt sich zum ersten Mal ultra-nahen Aufnahmen.","lastmod":"2026-04-28","duration":"48:53","url":"/play/19155577.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMjEzOTQyOWMyNjg3ZjZiNGYxNzUwMGM2N2U5ZmE0ZGIuanBn.cache","vod_id":18987208,"title":"Eine atemberaubend schöne Frau verwöhnt einen Mann in einem Hotel und lässt sich auf leidenschaftlichen Sex ein. Zärtlich leckt sie seinen großen Penis, und während des leidenschaftlichen Aktes leckt sie sogar seine Brustwarzen – es ist unglaublich erregend! Sie drückt ihn zu Boden und verwöhnt ihn mit heftigem Sex.","lastmod":"2025-03-23","duration":"01:06:29","url":"/play/18987208.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNDg4ZWMwNjllOWFmODQzYzFmZDMwMzI3OTk4OTVmZjguanBn.cache","vod_id":18945288,"title":"Ein haarloses, schlankes Mädchen masturbiert in einem sexy Dienstmädchen-Outfit mit weißen Strümpfen und einem Vibrator-Ei. Sie reibt sich mit Requisiten am Sofa und stößt ihren Penis hinein und heraus. Es ist sehr verführerisch. Wenn du darauf stehst, solltest du es dir nicht entgehen lassen.","lastmod":"2025-03-22","duration":"00:41:02","url":"/play/18945288.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MTQvZWVhYTYwZTYxODJjNzI0MzQyYTA4MjgwMzhmYjEwNzguanBn.cache","vod_id":19052601,"title":"Royal 0162 hatte heimlich Sex neben ihrem Ehemann, es war so aufregend, sie wurde von ihrem Freund gefickt, bis sie abspritzte, und hatte sogar Sex mit Yu Rui.","lastmod":"2025-09-13","duration":"01:03:02","url":"/play/19052601.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MjYvN2E4NzNjNzQ2ODRmM2EwYWE1MzliOGNkOTIzNzFkYWYuanBn.cache","vod_id":19054185,"title":"Milkberry mit dir leidenschaftliche Herausforderung obszöne Ejakulation Lin Siyu","lastmod":"2025-09-25","duration":"25:44","url":"/play/19054185.html"}]},
videoTitle: 'Auf der Suche nach Nervenkitzel wagte ich mich an eine Outdoor-Challenge mit einem ferngesteuerten Vibrationsei aus einem Einkaufszentrum.',
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=/`;
}
};
}