SDMU474, der Zauberspiegel, bricht zum chinesischen Neujahr 2017 auf. Einige Paare spielen Schere, Stein, Papier, um Glücksgeld zu gewinnen. Anschließend verbringt ein Paar Zeit allein und genießt leidenschaftliche Liebe.
Hardcore Magic Mirror: Nasse und klebrige Haut! Ganzkörper-Strumpfhosenmassage! Haut, die nicht atmen kann, bis sie erstickt und im Delirium ist! Voller Gleitmittel, erleben Sie sexy Erregung. (Sättigt Vire)","lastmod":"2026-07-11","duration":"04:20:06","url":"/play/19166101.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA2MTYvMjUyZjRiOTZjOTcyYzA2MjA5ZDM1MjZkZjkzM2JiMGMuanBn.cache","vod_id":19038629,"title":"[Die 100 besten Vibratoren 2020] Die ultimative Wahl für Orgasmen! Vibrationskraft jenseits aller Vorstellungskraft!! Vibrationseier, Massagestäbe, Klitoris-Sauggeräte – Leidenschaftsstäbe.","lastmod":"2025-06-16","duration":"05:30","url":"/play/19038629.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA3MTUvZjhiNDFlOTVhNWYwOTUxMTBjN2Q5YTJjMDhjZjU1OTkuanBn.cache","vod_id":19043008,"title":"DVMM218 Unisex Überwachungs-AV: Hinter dem magischen Spiegel verbergen sich ihre geliebten Ehemänner! Zwei kurvige Mütter treffen sich zum ersten Mal","lastmod":"2025-07-14","duration":"03:34:31","url":"/play/19043008.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZDI1ZWY3MWFmZTEyYjZhNTU5NjBiODliMDYxNTI3MmYuanBn.cache","vod_id":18990033,"title":"DVDMS-513 Normale männliche und weibliche Studenten schauen sich zum ersten Mal gemeinsam AV unter einem Dach an; ein weiblicher und ein männlicher Student müssen einmal pro Stunde ejakulieren.","lastmod":"2025-03-23","duration":"04:00:14","url":"/play/18990033.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYzJkNGE1NmE5NmEyYTM3ZmIyZjNhNGY4NDJjZTAwZDAuanBn.cache","vod_id":18930967,"title":"BAHP-016 Mädchen, die du haben kannst - Wenn die Schwester meiner Freundin, die ich seit meiner Kindheit kenne, erwachsen wird - Kase Na Volume 02","lastmod":"2025-12-14","duration":"00:20:00","url":"/play/18930967.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMTExMGFlZDQ0YmFhNzBiZmI0M2VmOTliYjA4Y2Y4NGIuanBn.cache","vod_id":19006192,"title":"AP-621 „Willst du nach einer Ejakulation in dir nicht schwanger werden? Ruf deine Freundin an!“ Eine Studentin mit extrem hohem Sexualtrieb wird von ihrer Freundin vergewaltigt und in sich ejakuliert (3. Teil, Version mit repariertem Vibrator).","lastmod":"2025-03-24","duration":"02:50:16","url":"/play/19006192.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNzI1OTdjZDg0Mzk0ZDBkMTgyZWZkZDJlZWE4ODk2OTkuanBn.cache","vod_id":19012654,"title":"SPRD1241 Meine damalige Sexualpartnerin war die Mutter eines Freundes, Miki Matsuzaka (Inzest).","lastmod":"2025-03-24","duration":"02:16:33","url":"/play/19012654.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZjE2OWY2NzgyOTMwMWI1ZTNlYjRlNGZhNjM2Y2MwOWEuanBn.cache","vod_id":19006689,"title":"DVDMS-407 Allgemeine Beobachtung von Männern und Frauen AV ~ Männliche und weibliche Studenten, die sich zum ersten Mal treffen, fordern sich selbst heraus, einmal pro Stunde zu ejakulieren!","lastmod":"2025-03-24","duration":"04:02:04","url":"/play/19006689.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA2MTAvMWQ5ZmNmMzk4NmMxMTVjMmQ1MGZiMzAxMTc4ZTcxODYuanBn.cache","vod_id":19037359,"title":"Tokyo Hot n1445 Tokyo Hot Passion: 170cm+ High-Special Tall Model Actress Special - Part 1","lastmod":"2025-06-10","duration":"00:36:26","url":"/play/19037359.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZGU5ODhmMGEyNzZhODNkZmM5YzUyNWQzZWVlYmM2ZjMuanBn.cache","vod_id":18952921,"title":"Schwarze Strümpfe, hohe Absätze, schmetterlingsförmiger Po, erstklassige, sexy, reife Frau in einer leidenschaftlichen Show, raucht eine Zigarette und trägt eine Sonnenbrille, strahlt eine selbstbewusste Ausstrahlung aus, Requisiten dringen in ihre Vagina ein, sie stöhnt, reibt ihre Brüste und spielt in Nahaufnahmen mit ihrer Vagina.","lastmod":"2025-03-22","duration":"01:19:58","url":"/play/18952921.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEwMTIvYjhmMTlmNmI1NGZmNDc5NzYwMmViMDQ5MmMxZjlhMTcuanBn.cache","vod_id":19057418,"title":"MM feiert Premiere! Nur für Amateur-Fans! Magic Mirror College Girl stellt sich der Herausforderung, sich unter blauem Himmel in einen Bikini zu verwandeln! 2. Als die Zeit abgelaufen ist, steht ein riesiger Schwanz steif! Unbekannter Darsteller DVMM173","lastmod":"2025-10-11","duration":"03:57:20","url":"/play/19057418.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMTlkZGZmOWFhOTZjMzI3OTcyZTIxN2I0MjE3NDQxMWUuanBn.cache","vod_id":19139812,"title":"Wiedervereint mit ihrer Jugendliebe, die inzwischen Körbchengröße M trägt. Eine tropische Nacht, in der nur die beiden sich begegnen, Schweiß und Liebesflüssigkeiten sich ineinander vermischen… Ye Ai JUQ-686","lastmod":"2026-01-23","duration":"01:59:47","url":"/play/19139812.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYmZjNTRiZjhhNDIyN2Q4NDg4OTkzNjRhODk5YWE5ODQuanBn.cache","vod_id":18951193,"title":"HBAD-373 Mutter Natsuko Mishima wird gezwungen, sexuelle Beziehungen mit dem frühreifen Freund ihres Sohnes einzugehen.","lastmod":"2025-03-22","duration":"01:59:07","url":"/play/18951193.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MjgvZmIzODNmZjkwNzA2MjQwNmNmZjMzZmI0OGE2NjZiODkuanBn.cache","vod_id":19054711,"title":"Auf einer Geschäftsreise verpasse ich den letzten Zug und finde mich allein mit einer neuen, kurvigen Mitarbeiterin in einer heruntergekommenen Pension wieder… Ehe ich mich versehe, enthüllt diese üppige Untergebene… (Minato Haru SONE155)","lastmod":"2025-09-27","duration":"02:34:16","url":"/play/19054711.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA0MjYvZjA3NDAxZTBmMTc3ZDRmYWVhNGNkYjJhMzllMTYxNmIuanBn.cache","vod_id":19030910,"title":"Ich habe drei Tage allein mit meiner Schwester verbracht, die nicht mit mir blutsverwandt ist! Wir hatten Sex und ich bin drei Tage lang in ihr ejakuliert!! Asahi Rin AMBI-159-C","lastmod":"2025-04-26","duration":"02:09:04","url":"/play/19030910.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA2MjkvYmY1OWRhZjgzNGQ2MGU4ZmU3ZjUxMzRhMzI4ODc3MDMuanBn.cache","vod_id":19040563,"title":"[Betrunkene Geständnisse] Gefällt es dir, wenn dein Freund deine Muschi leckt?","lastmod":"2025-06-28","duration":"04:39","url":"/play/19040563.html"}]},
videoTitle: 'SDMU474, der Zauberspiegel, bricht zum chinesischen Neujahr 2017 auf. Einige Paare spielen Schere, Stein, Papier, um Glücksgeld zu gewinnen. Anschließend verbringt ein Paar Zeit allein und genießt leidenschaftliche Liebe.',
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=/`;
}
};
}