Schwerer Angriff: Boss Zhao sucht schöne Frauen, isst Hühner im Bett, seine schlampige Muschi ist voller schlampiger Säfte.","lastmod":"2026-07-11","duration":"54:07","url":"/play/19161299.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA2MjMvY2FkYmNjYzY2ZDJiOTg1ZjQzODliZWUxOWZjZjI3ZjcuanBn.cache","vod_id":19165577,"title":"Fruit Pie Pure Girl Slays Four Men in One Day MIDV-217","lastmod":"2026-07-11","duration":"13:04","url":"/play/19165577.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZGI4YWFiMmM0ZmM0YTk1NzVkZGY4Njk0ZTI3YTM2M2YuanBn.cache","vod_id":18944653,"title":"300NTK-342 Reinweiße Schönheit mit G-Körbchen!! Ihre Lust ist einfach bestialisch!!","lastmod":"2025-12-14","duration":"01:12:57","url":"/play/18944653.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMmYwNTQwM2E5ODQ0NzM4Zjc0ZmZhMWEwNDNhZWVmZTYuanBn.cache","vod_id":18957851,"title":"[Unzensiert] MIAA-748 Die vulgäre Analentwicklung meiner schönen Chefin – Trainingsset für den männlichen Orgasmus – Sumire Kurokawa","lastmod":"2025-03-22","duration":"02:31:55","url":"/play/18957851.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNmY2YzI0N2JkZjI4NDljZGQ0YzljYjcxNzdjMzMzMmYuanBn.cache","vod_id":19145549,"title":"Nach einem Lauf schleicht sich ein atemberaubendes Model mit S-Körbchen, Kurven und schlanker Figur unbemerkt in ihr Haus und hat, während sie schweißgebadet ist, Sex mit ihr. START-428","lastmod":"2026-02-27","duration":"02:18:41","url":"/play/19145549.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYzE3Y2U5MjcyNTcwYzkxOTEwMWU0ZThkMDZiNjgwMDUuanBn.cache","vod_id":19022411,"title":"Sex mit einer sexy Dessous-Schönheit, ungeschützter Sex.","lastmod":"2025-03-24","duration":"30:52","url":"/play/19022411.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA2MDkvZWYyZTQyNzFiZDY1OTI0MmJmM2UzOTQyN2NlZmRmYjkuanBn.cache","vod_id":19037293,"title":"Grüne-Tee-beste-Freundin ~ Ein hübsches Mädchen mit grünem Tee, das den Freund ihrer besten Freundin verführt.","lastmod":"2025-06-09","duration":"10:48","url":"/play/19037293.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvN2JjMDBkYjI1NzA5YTNhNGE2NWMxMzQwNDk3ZTc4ZGYuanBn.cache","vod_id":18972641,"title":"332NAMA-064 [Privates Shooting] Yumi-chan – 19 Jahre alt – Berufsschülerin – Unbedingt ansehen! Super schön – Zu einem Viertel japanischer Abstammung? – Süß und liebevoll – Im Haus ihres Freundes – Schüsselförmig","lastmod":"2025-12-14","duration":"01:09:43","url":"/play/18972641.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZjIxZmQ3MDYwMmE1NzI4ZmUyZDFjNWM2Yzc3YjVjYmIuanBn.cache","vod_id":19010230,"title":"SDNM225 Unglaublich! Mein Mann hat diese Schönheit 10 Jahre lang ignoriert. Yuka Hirose, 39 Jahre alt. Letztes Kapitel. Weil es das letzte Mal ist, will sie die größte Lust erleben... Eine große Menge Samen ergießt sich in ihren Körper, bis er überläuft! Urgewaltiger Sex von morgens bis abends.","lastmod":"2025-03-24","duration":"02:17:16","url":"/play/19010230.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MTgvYTQxYjE3OTM5YzI1MGUxODI4ZDAyNDY3Y2Y1N2E5YWIuanBn.cache","vod_id":19053195,"title":"MIAB391 Die schöne Trainerin, die ständig ihre Bauchmuskeln zur Schau stellt, ist echt nervig! Spermien-Reinsemination","lastmod":"2025-09-17","duration":"02:04:16","url":"/play/19053195.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA2MjMvMWY4Yjk0ODYwYmUyZDUxZTIxYmI5NDU1OWJjMzY0MjMuanBn.cache","vod_id":19165322,"title":"Eine wunderschöne Frau wird bespielt, privat gefilmt, echter Sex~ Sex mit völligem Gehorsam gegenüber einem älteren Mann!! ! Megumi G-Cup Megumi Tsuji Megumi Tsuji Megumi CHC Studio","lastmod":"2026-07-11","duration":"01:22:20","url":"/play/19165322.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOGI2NDMzZDAxYjU3MDJmZjI4ZGNmZDczNWI3Y2YwZjQuanBn.cache","vod_id":18951487,"title":"Der Experte vergnügte sich prächtig beim Sex mit seiner schönen Kollegin zu Hause, die lange Beine hatte und schwarze Strümpfe trug.","lastmod":"2025-03-22","duration":"00:18:44","url":"/play/18951487.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMjY3YTc5ZGMzOTc3MmE4ZTYwNzlmNmVkMzA4ODUxOTcuanBn.cache","vod_id":18926236,"title":"RBD-954 Reine Büroangestellte: Höllische Sexsklavin 3","lastmod":"2025-12-14","duration":"01:48:35","url":"/play/18926236.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvODk0ZGEwN2ZiYzM1ZjRjYmI1M2VmZTExNjI3ZDBlNDQuanBn.cache","vod_id":19010549,"title":"Jingdong Pictures – Ein faszinierender Archäologie-Doktorgrad aus der Welt der Urgesellschaften: Zurück in die Steinzeit","lastmod":"2025-03-24","duration":"25:05","url":"/play/19010549.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOGZhMjg3NmMzOGU1YTUwZWMzYjE5YzM4OTExYjM1NmEuanBn.cache","vod_id":19013882,"title":"SGA137 und die beste Gastgeberin haben den besten Sex. 51 Wunderschöne lange Beine, knackiger Po, rasierte Schönheit.","lastmod":"2025-03-24","duration":"01:45:10","url":"/play/19013882.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTExMjIvZDliMDEwNjU0M2Y4MGUyYmFhYjEyMGZjMzdiM2MzMzEuanBn.cache","vod_id":19063876,"title":"Model – Sexfetisch – Die Sehnsucht einer blonden Schönheit nach Befreiung: Mehrere Männer haben Sex mit einer Frau – Extremes Stoßen","lastmod":"2025-12-13","duration":"53:18","url":"/play/19063876.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvN2JmN2E0NGJmZTZkOGNlNjE1ODRlYjM2YTZiZDJkMzEuanBn.cache","vod_id":18949304,"title":"Ein süßes kleines Mädchen, das aussieht, als ob es vor Wasser tropft","lastmod":"2025-12-14","duration":"01:30:21","url":"/play/18949304.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYmRlOGFhZGZhZDUyOGRiOTc1MGRiNTdkZjYzNDBmYTMuanBn.cache","vod_id":18939167,"title":"„Große Brüste im Anmarsch!“ Neueste Premium-Inhalte mit der jung aussehenden, üppig bestückten Beauty-Bloggerin @FallenAngel sind geleakt worden. Eine reine und unschuldige Schönheit mit großem Busen präsentiert ihr perfektes Gesicht in hochauflösender 720p-Qualität.","lastmod":"2025-12-14","duration":"00:15:41","url":"/play/18939167.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZTg2NGQ5NDM3MGExM2QyY2FmMjNjMTNkMmRmMzJkZmUuanBn.cache","vod_id":18944999,"title":"Großer Bonus – Erwerben Sie ein hellhäutiges, sexy junges Model zu einem hohen Preis, das heimlich als Escort arbeitet. Sie wird von einem Mann mittleren Alters missbraucht und anschließend brutal penetriert, wobei sie unaufhörlich schreit. Sie ist eine haarlose Schönheit!","lastmod":"2025-12-14","duration":"00:20:14","url":"/play/18944999.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYTE2NTdiNDUzZWJmMWViOGM4NGE5ODRkNDRkMTljNjIuanBn.cache","vod_id":19147693,"title":"Eine Göttin ist herabgestiegen; dieses reine und unschuldige Mädchen hat wieder angefangen zu trinken und sich wie eine geile Frau zu benehmen.","lastmod":"2026-03-11","duration":"01:13:26","url":"/play/19147693.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvY2NlZDc0YWE1ODcyNmE2ZWQ0NjM4MTA5ZTM1MjJkZWQuanBn.cache","vod_id":18971683,"title":"FC2PPV 3283757 [Unzensiert/Vollständige Gesichtsdarstellung] Dies ist ein besonderes Mädchen, dessen Veröffentlichung für die Goldene Woche geplant ist!! Eine schlanke Schönheit mit einem unwiderstehlich schüchternen Ausdruck.","lastmod":"2025-03-23","duration":"01:17:40","url":"/play/18971683.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvMjQzYjUyYzBjODU4NmU1MzJiNTBmZDE5MzI0ZTBjOTEuanBn.cache","vod_id":19158751,"title":"Auf der Suche nach einer süßen und charmanten Escortdame der Spitzenklasse kehrt sie eifrig in die Fabrik zurück und knetet ihre Brüste.","lastmod":"2026-05-18","duration":"43:36","url":"/play/19158751.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYzgxZDQ1OTc0ZjVhYTkxM2MxNzVmOWVmZTFkMjNjYzguanBn.cache","vod_id":18990132,"title":"Eine wunderschöne Live-Streamerin, bekannt für ihr umwerfendes Aussehen und ihren verführerischen Charme, zeigt ihr Gesicht in einem anzüglichen Livestream. Ihre süße Stimme und ihre anzüglichen Bemerkungen reichen aus, um jeden zu erregen. Sie benutzt Requisiten, um mit ihrer Vagina zu spielen und zeigt Nahaufnahmen ihres auslaufenden Spermas – einfach nur obszön!","lastmod":"2025-03-23","duration":"26:50","url":"/play/18990132.html"}]},
videoTitle: 'Eine atemberaubend schöne Frau mit einem ätherischen, reinen Charme (1)',
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=/`;
}
};
}