Selbst zusammengestellte Auswahl externer Netzwerk-Toilettenfotos, Toilette lila Höhepunkt Outdoor-Urinieren_","lastmod":"2026-07-11","duration":"01:37:13","url":"/play/19161762.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEwMTUvNmJmZDY2NjBkZTRlMTgxODkxZDBkZjQyMDcyNzhhYzUuanBn.cache","vod_id":19057957,"title":"Ein Internetnutzer enthüllte einen erniedrigenden Vorfall in Changde, bei dem ein Beamter vom Sohn seines Vorgesetzten zu einem Einlauf gezwungen wurde.","lastmod":"2025-10-14","duration":"31:30","url":"/play/19057957.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMzgzNzIwNWM0YWYzZjI2ZDZjNDE2MzgwMjcxYmI5Y2YuanBn.cache","vod_id":18983677,"title":"[Unzensiert] CJOD-376 Samenerguss OK! Mehrere Waffen erzwungen! Jagd auf männliche Flut! Die vollbusige und lüsterne Krankenschwester Julia vergewaltigt einen gefesselten und bewegungsunfähigen Patienten.","lastmod":"2025-03-23","duration":"02:44:39","url":"/play/18983677.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOTVlZTc2ZjA3ZTIyNDA0NzQ4ZDdlMjU4ZWYwNTk2ZmYuanBn.cache","vod_id":19017803,"title":"ssis531 Der erste Höhepunkt meines Lebens und die Kawakita Ayaka, die ihn übertraf.","lastmod":"2025-03-24","duration":"02:30:59","url":"/play/19017803.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA1MTEvMWY5MTY1ZDU0OTcwNjRhYjRkZjNiODZlOTY3NTU2ZWMuanBn.cache","vod_id":19032979,"title":"561OKGD-012 [Versteckte Kamera] Die vollbusige Callgirl, die gerade hereingekommen war, erlebte einen Superorgasmus unter der Penetration ihrer großen Brüste und ihres großen Penis.","lastmod":"2025-05-11","duration":"49:34","url":"/play/19032979.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNDFlZDg0Nzk4MTBkNDM2MmY0MzY5ZWNjYWMzYWExOGQuanBn.cache","vod_id":18990972,"title":"VRTM-475 Meine Tochter kam von den Vereinsaktivitäten nach Hause und trug noch ihre Haremshose unter ihrer Uniform! Als ihr Vater, erregt von ihrer engen, prallen, dunkelblauen Haremshose, ihr ein Aphrodisiakum gab, fing sie stark an zu schwitzen und war unglaublich erregt! Als ich meinen Penis einführte, wirkte es wunderbar; ich krümmte meinen Rücken und hatte mehrere Orgasmen! 6 Special Edition (Inzest)","lastmod":"2025-03-23","duration":"01:42:50","url":"/play/18990972.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNGQ4NTVhZDdlNDU4ZjA2ODFiMWVlNTk0MjljNDY1MmYuanBn.cache","vod_id":18950010,"title":"SSNI-425 Gefesselt und wiederholt ejakulierend, seilbetrunken, riesige, riesige Orgasmen FICK Usazaki Miharu","lastmod":"2025-03-22","duration":"01:58:47","url":"/play/18950010.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMzY4NjBlYzA0N2M4NzEzZjZhNDM5YzI0ZDNjYTYxNmUuanBn.cache","vod_id":19002817,"title":"SCOP-576: Ich benutzte einen Vibrator, um das neue Mädchen zu stimulieren, bis sie einen Orgasmus hatte, und ließ sie dann clevererweise ungeschützten Sex mit mir haben!","lastmod":"2025-03-23","duration":"02:47:58","url":"/play/19002817.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA1MDcvZDhjZmQ2MThhYzc4ZDg2NDM0MzRmYmU5MTVmMWRiN2YuanBn.cache","vod_id":19032508,"title":"Im Oktober wurde ein neues Model, das Strümpfe trug, bei der Begegnung mit ihm gewaltsam zu Boden gestoßen und, ohne dass sie ihre Unterwäsche ausziehen musste, ohne Kondom penetriert.","lastmod":"2025-05-07","duration":"22:56","url":"/play/19032508.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvMDJjODY2ODQxZGJiOTEwNzZjNzg4ZWVlN2IxZjI2OTYuanBn.cache","vod_id":19160709,"title":"VAIAV-010 [3.1 Dimension] AI Idol Elf Meet and Greet with Thrusting Photography @El @Elumia (エルミア) Noskins","lastmod":"2026-05-29","duration":"59:54","url":"/play/19160709.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMjEzMjY4NGFlNjZkY2Q0YzVmMWVlMGFjMmNmMWFjNTUuanBn.cache","vod_id":19012322,"title":"200GANA2221 Ein ernsthafter Softcore-Dreh, erste Aufnahme. 1431 Eine vorsichtige, aber überwältigte Schönheit! Schließlich gab sie nach und nahm den Penis des Schauspielers in den Mund, und sie begannen natürlich miteinander zu schlafen! Schon die leichteste Berührung ihres Körpers lässt ihre Beine zittern und sie wird feucht.","lastmod":"2025-03-24","duration":"01:19:58","url":"/play/19012322.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOGM1YjhiZGIwMTAzYWJjNzQ2YTExYjM3NmRmYWU4MzkuanBn.cache","vod_id":18953967,"title":"[Exklusives Leak-Material] Ein schlankes, kurviges Grundschulmädchen wird von einem älteren Schüler ohne Kondom brutal vergewaltigt. Trotz ihres jungen Alters stöhnt und schreit sie anzüglich und obszön: „Fick mich zu Tode!“ Originalversion in HD 720p, ohne Wasserzeichen.","lastmod":"2025-12-14","duration":"00:30:44","url":"/play/18953967.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvM2ViNjYzMmI2Mjk5MjBiNjlmMWFiNzEwMzE5OWFhNzIuanBn.cache","vod_id":18966147,"title":"[Chinesische Untertitel] MKMP-505 360-Grad-Paradies mit großen Brüsten!! Sie liebt nur mich und bringt mich mehrmals zum Orgasmus. Der Traum eines polygamen Ehepaares. Yoshinobu Kohana","lastmod":"2025-03-22","duration":"02:11:29","url":"/play/18966147.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNzRkNzNiM2NkNjc4NDk1ZDhlZWQzZDE5YzQ0NjllZGQuanBn.cache","vod_id":19135375,"title":"Model – Sexy Schullehrerin","lastmod":"2025-12-26","duration":"27:53","url":"/play/19135375.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYThmM2Q4MzNhYjlhZTNkMTE2ZDcxY2UwM2U2YmZjYmEuanBn.cache","vod_id":19022631,"title":"DVDMS477 Exklusiv für die wunderschöne Flugbegleiterin, eine elegante Schönheit, in einem internen Ejakulations-Schere-Stein-Papier-Wettbewerb einer Fluggesellschaft. Drei Siege bringen 1 Million Yen; eine Niederlage bedeutet sofortige Penetration nach dem Flug. CAs Vagina erlebt wiederholte Orgasmen vor ihrem Chef, mit kontinuierlichem Ansturm, Stößen und interner Ejakulation, insgesamt 21 Aufnahmen für 4 Personen.","lastmod":"2025-03-24","duration":"03:40:04","url":"/play/19022631.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA3MTEvMmI5MDdhOTZkNzJjOWRiMmM5MzgxMmU1NzhiNDdiYjIuanBn.cache","vod_id":19168957,"title":"Sie lebte vier Jahre lang mit ihrem Schwiegervater zusammen… Dies ist die Geschichte ihres Erwachens zu anhaltenden Orgasmen durch ungeschützten Sex, was schließlich in einer Schwangerschaft gipfelte. – Mayuka Yao – Madonna","lastmod":"2026-07-19","duration":"02:30:21","url":"/play/19168957.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA2MTAvNzI1OTg1YjJjNTBmM2VkMzNmNGZhMjU1ZmViYTFlZDYuanBn.cache","vod_id":19037757,"title":"Setzen Sie den „Iris Vibrator“ ein und testen Sie ihn – einen Vibrator, mit dem Sie Ihre Klitoris stimulieren können, während Sie ihn ein- und ausstoßen; wie kraftvoll ist dieser flexible Vibrator wirklich?","lastmod":"2025-06-10","duration":"07:59","url":"/play/19037757.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEwMTUvZTkzYzg1MTEzMzEwOGFiOTBhNTRlZTE1YjM0OWZhNTkuanBn.cache","vod_id":19057879,"title":"Der Oralsex mit einer Lesbe, die ich seit meiner Kindheit kenne, führte zu mehreren Orgasmen und unerträglich intensiven Blowjobs und brachte mich letztendlich auf Abwege. (Shiina Kokoro, Suehiro Jun BBAN509)","lastmod":"2025-10-14","duration":"02:25:39","url":"/play/19057879.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYzAwMTA0MTZjZDU5MzZkYmQ3MGIyODA2ZTEwN2Q4MGQuanBn.cache","vod_id":19022434,"title":"CJOD195 Die Essenz des Orgasmus meistern: Die Welt der lustvolleren Orgasmen als beim normalen Masturbieren ~ Anfängerleitfaden - Hasumi Katsuyu Rieya.","lastmod":"2025-03-24","duration":"02:39:12","url":"/play/19022434.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA1MTAvY2MwYWU3NjhhNDY5YWNiZTUyYThmZjA4NTQ3Mjg3NWEuanBn.cache","vod_id":19032892,"title":"PH059_Pornografie_Geheimnisse weiblicher Studentinnen_Private Treffen und tägliche Essenz-Saugungsmodelle","lastmod":"2025-05-10","duration":"55:44","url":"/play/19032892.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOTIzNGVjYjZmNzM4OTA0YWMyMThkYTU4NGE3ZmZmNGUuanBn.cache","vod_id":19020026,"title":"Ninomiya Hikaru vergewaltigte ein Mädchen mit hoher Orgasmusempfindlichkeit vor den Augen ihres neuen Freundes, riss ihr die Kleider vom Leib und penetrierte sie brutal, bis sie wiederholt Orgasmen hatte, während sie weiterhin Sex mit ihr hatten.","lastmod":"2025-03-24","duration":"01:59:26","url":"/play/19020026.html"}]},
videoTitle: 'Modell – Verzweifelte Schuldenrückzahlung durch erzwungene Penetration und zitternden Orgasmus – Zhou Qingqing',
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=/`;
}
};
}