Die süße, sadistische, perverse Krankenschwester Takahashi Honami, deren Speichel aus Anus und Harnröhre quillt, leckt sich den Weg zur Geburt eines Mannes! Weiß gekleidete Frau, die weißen Samen extrahiert. Takahashi Honami, ABC-wahnhafter Stamm","lastmod":"2026-07-11","duration":"02:09:56","url":"/play/19164116.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNTA4OGFkMzVmZDAwNjQ0NjBlZTVlZjgzM2IyYzhlMzMuanBn.cache","vod_id":18928904,"title":"APNS-166 Meine Frau wurde zum Sexspielzeug meines ehemaligen Kollegen. Ich begann, mein glückliches Leben zu ruinieren. Teil 6","lastmod":"2025-12-14","duration":"00:15:51","url":"/play/18928904.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvY2FmZDNhZmE3OGUyODdkYjY2NTk0ODdmYTAwZGQyOWYuanBn.cache","vod_id":18954759,"title":"NITR-445 Böser, schelmischer Junge jagt seine großbusige Frau V Aoi Yurika","lastmod":"2025-03-22","duration":"01:51:45","url":"/play/18954759.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMmVjOTllMWQ4MTljOGJjNDBlN2MzZTQ5MGU0MDJiMzcuanBn.cache","vod_id":19155608,"title":"Dokumentation: Instinktive Orgasmen enthüllt: Eine vollbusige, lüsterne Ehefrau mit I-Körbchen dreht beim Gruppensex völlig durch, Nakano Kozue BIJN-271-C","lastmod":"2026-04-28","duration":"02:07:21","url":"/play/19155608.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMThhZTMyNGIyOTVhMGIwNDQ5NzE0MmNlODg0ZWViZjQuanBn.cache","vod_id":18964713,"title":"[4K]ACZD-099 Eine Mutter und ihre Tochter, beide Masochistinnen, absolvieren ein Inzesttraining in einer Villa am Meer.","lastmod":"2025-03-22","duration":"02:16:30","url":"/play/18964713.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvOTI2NzE5OTA5Y2Y4YmEzMzY5ODNkZGY4ZDNiMjY3ZjIuanBn.cache","vod_id":19138928,"title":"Eine zuverlässige und attraktive Ehefrau wird von ihren jüngeren Kollegen umworben und anschließend heftig durchgenommen. (Sumikawa Mika VEC-727)","lastmod":"2026-01-17","duration":"01:45:15","url":"/play/19138928.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZjlmN2FkY2YwYjA2Y2FlNjZlZTlhZTA5MWRmNDVkZTAuanBn.cache","vod_id":18943038,"title":"MRSS-081 Sahnetorten-Klassenzimmer-Chaos: Meine stolze Ehefrau mit 17 Jahren Unterrichtserfahrung wird Klassenlehrerin einer Problemklasse","lastmod":"2025-12-14","duration":"01:56:17","url":"/play/18943038.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYmNhZGI5MWU4NGRhZGNiODFkNmY3ZDRmYWM5MjBmNDAuanBn.cache","vod_id":18958059,"title":"Das Video zeigt wunderschöne, unglaublich attraktive Frauen. Diese Szenen sind so erregend, dass ich davon sofort eine Erektion bekomme! [Untertitelte HD-Restaurierung von Desire Island] Ein leidenschaftliches Meisterwerk voller brodelnder Lust und intensiver Action.","lastmod":"2025-12-14","duration":"01:21:21","url":"/play/18958059.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvY2YyMzA0Mjc2ODBhNTkzMTMwNDNmMjUxZWRjY2RkZDIuanBn.cache","vod_id":18969936,"title":"FANH-173 Reika-chan, 20 Jahre alt, eine wunderschöne Studentin, die davon träumt, Nachrichtensprecherin zu werden. Dieses masochistische und perverse Mädchen wird gründlich gedemütigt und trainiert, bis sie schließlich zu einer Sexsklavin wird. Ihre pralle Vulva wird brutal von einem dicken Penis penetriert.","lastmod":"2025-12-14","duration":"02:07:24","url":"/play/18969936.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOTY5MTc1NWRhZjkzODcxMDczOWMzOWFjNzVhN2ViNzYuanBn.cache","vod_id":18969169,"title":"FC2PPV 3250686 [Persönlich] Eine überhebliche und widerwillige Ehefrau wird gezwungen, einen Kredit im Tausch gegen einen anderen Kredit anzunehmen. Ihr Widerstand ist vergeblich, sie wird von einem anderen Mann mit einem Stock entehrt und erhält schließlich den Kredit.","lastmod":"2025-12-14","duration":"00:47:47","url":"/play/18969169.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYWVlZjYxODllNmE0NzNlMGY2YjhhY2QyNzY5Y2QyZjcuanBn.cache","vod_id":19026404,"title":"Manatsu wurde von ihrem Arbeitgeber angewiesen, in einem bald schließenden Bordell zu arbeiten, wo sie drei Mal sexuelle Dienstleistungen erbrachte.","lastmod":"2025-03-26","duration":"02:11:21","url":"/play/19026404.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMjk5ZmZkN2ZmOWViNDBmYTAwMDFhNDZjY2E2ZDc5ZDcuanBn.cache","vod_id":18954078,"title":"SVDVD-593_C Gedenkfilm zum 10. Jahrestag des Missbrauchsdorfes Nr. 1: Nachtschichtstation","lastmod":"2025-12-14","duration":"01:52:43","url":"/play/18954078.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvYWYwZTlkZGJjYTYzMDU4YWMxNzlmMzVlMzE3MWE5YjAuanBn.cache","vod_id":19161639,"title":"Die frisch verheiratete Witwe Suehiro Jun wird von dem widerlichen Kollegen ihres verstorbenen Mannes als Sexspielzeug missbraucht. Suehiro Jun Center Video","lastmod":"2026-07-11","duration":"02:06:33","url":"/play/19161639.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA3MDYvMTA2MTRlNjI1ZmNiZjczODgwMWZjYzA3MjgwMjVlNzkuanBn.cache","vod_id":19167138,"title":"Meine liebe Frau ist jedoch die Beste... Yuri Honma, Takara Eiga","lastmod":"2026-07-11","duration":"02:06:44","url":"/play/19167138.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNzVmNDUxN2RhNGE3MWQ0Y2ZkNTY1YzU4M2Y4YTU4M2EuanBn.cache","vod_id":18970006,"title":"NGOD-013 Ich möchte dir meine Geschichte erzählen, wie ich betrogen wurde. Meine dunkelhäutige Frau wurde von einem Surfer betrogen, der sie sogar in sich ejakulieren ließ. 千みそばに佐良がそば","lastmod":"2025-03-23","duration":"02:30:26","url":"/play/18970006.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYmRiMTgyNDI5YmUyMTAxMTM2MzIyYWFhMmNlNjNmM2IuanBn.cache","vod_id":18980916,"title":"558KRS-019 Eine junge Ehefrau möchte dies tun, nachdem ihr Mann sie mit einer verheirateten Frau betrogen hat 03","lastmod":"2025-03-23","duration":"00:37:25","url":"/play/18980916.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MjgvOTBjNDFmNjM0MTY1NWZkOGU2MGVjNWY1NWM1NTM3OTguanBn.cache","vod_id":19054680,"title":"Das Hotel, in dem sie schlief 8 ~Die Ehefrau, die als Sex-Puppe benutzt wurde~ Shiori Nogami NSFS334","lastmod":"2025-09-27","duration":"02:12:20","url":"/play/19054680.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMWE5M2YyZDVjNWE3MzJmYzU1ZWQ0Mjk0MTJiNzNiZjkuanBn.cache","vod_id":19004682,"title":"JURA-75-C erschießt zum ersten Mal wieder seine 50-jährige Frau.","lastmod":"2025-03-23","duration":"01:33:32","url":"/play/19004682.html"}]},
videoTitle: 'Befehle ihres Mannes: Kaneri Hoshina, die masochistische Ehefrau, erfüllt die Wünsche ihres sadistischen Mannes. (Zhong Li Hoshina 336DTT056)',
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=/`;
}
};
}