Aku melihat adik perempuanku yang seksi mengenakan kaos untuk pertama kalinya, sambil menatap kakaknya! Bukankah vulvamu menonjol? Apakah kamu sedang birahi? Aku dalam masalah karena SWITCH.
Wanita di sebelahku sangat cantik dan memiliki sosok yang seksi, jadi aku mencoba merayunya, dan dia bahkan lebih seksi dari yang kubayangkan…!! 4 jam Mud Stick Cat - Emaniel","lastmod":"2026-07-11","duration":"04:00:33","url":"/play/19164085.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMDc5NjA2OWY3NDZlYWNjMzYwZmQyODJhODI2MjExOGUuanBn.cache","vod_id":19142900,"title":"Wanita pirang dewasa yang sangat seksi dari FakeAgentUK, seorang anggota Front Pembebasan Islam Moro, menyukai segala sesuatu tentang anus. [FakeAgentUK]","lastmod":"2026-02-11","duration":"12:05","url":"/play/19142900.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvOTFiMDA0YzdlYmM4MjU1YmI2YWZjMDM0M2Q4NjBkOTkuanBn.cache","vod_id":19146764,"title":"Membuat adik perempuan pacar saya (sederhana, pemalu, dan tidak tertarik pada seks) kecanduan seks orgasme dan mengubahnya menjadi mainan seks dengan orgasme terus-menerus WAAA-579","lastmod":"2026-03-06","duration":"01:58:36","url":"/play/19146764.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvODJmM2RiMmNjZjNjODUyNmYxMzRkZTE0YjNhYWU1ZmUuanBn.cache","vod_id":19158210,"title":"Teamskeet - Anak tirinya yang berkulit keras membuat ibu tirinya, Vanessa Cage, merasa lebih baik tentang tubuhnya. [Team Skeet]","lastmod":"2026-05-15","duration":"37:41","url":"/play/19158210.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZTE1ZDdkZTlkYzAxZGE4OThjNjNhN2FmNWQ3MWU5MjEuanBn.cache","vod_id":18968608,"title":"EBOD-776 Meskipun payudara adik perempuanku yang pemberontak sudah berkembang sempurna, selama tiga hari orang tua kami pergi, hanya kami berdua, dia berulang kali disetubuhi dengan sperma oleh kakaknya yang dibencinya. Ibuki Kanon","lastmod":"2025-12-14","duration":"01:58:20","url":"/play/18968608.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNmY2ZDgzZWRjNmM4ZjJjNWNiMGIxYTIxMDI3MDgwMzguanBn.cache","vod_id":18990371,"title":"JKSR-436 Target-Limited Pickup: Bokong seksi dan montok serta kaki indah yang dibalut kerudung hitam – sangat menggairahkan! Lepaskan celana dalammu yang panas dan lakukan hubungan seks primal (inses) selama 4 jam dengan 16 istri amatir.","lastmod":"2025-03-23","duration":"04:00:19","url":"/play/18990371.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOTI5Mjg0MzdmNjdmZGM0YzEwYTI3YzdmYjEzMGNkOTcuanBn.cache","vod_id":18967383,"title":"NASH-837 Seorang nenek berusia enam puluhan mengalami vaginanya yang kering menjadi basah untuk pertama kalinya dalam beberapa dekade setelah disetubuhi oleh penis cucunya yang sangat besar.","lastmod":"2025-03-22","duration":"04:00:42","url":"/play/18967383.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOTlmMmNlNmEwZjI0Mzc3ZDUyNDYzODMyODEyNjdjMzguanBn.cache","vod_id":18982470,"title":"[4K]NACR-766 Sakuma Kaede, seorang ibu tiri yang hasrat seksualnya tidak terpenuhi, terobsesi dengan penis anak tirinya, yang lebih kuat dari penis suaminya, dan memohon agar diejakulasi di dalam dirinya berulang kali.","lastmod":"2025-12-14","duration":"02:02:02","url":"/play/18982470.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNzkzYmI1NzlhZDhiNDAwOTI4YzlmYTQ4NGFiYTBhNjQuanBn.cache","vod_id":19013673,"title":"HND785CHINASSESSUB Pacarku direbut oleh pria yang kubenci, dan aku sangat kesal sehingga aku memutuskan untuk melakukan kencan seks balas dendam sebelum kami putus. Kururugi Aoi (inses).","lastmod":"2025-03-24","duration":"01:58:46","url":"/play/19013673.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNTY1MDdiYTYzMTUxMzMyYjJlMGY1M2RlNWEyZjEzMDMuanBn.cache","vod_id":18976668,"title":"200GANA-1569 Pemotretan softcore serius, pertama kali saya syuting. 972 (Shino Saijo)","lastmod":"2025-03-23","duration":"00:56:12","url":"/play/18976668.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvY2Q1ZWNkNDU5NTQ0NWY4NDBkNGQwYjNkNDA0NGQ1ZmQuanBn.cache","vod_id":18977166,"title":"VOSS-164 \"Kau tidak mencoba merayuku, kan?\" Ketika aku melihat ibuku yang berpayudara besar dan tidak curiga mengenakan kemejaku tanpa bra, aku langsung terangsang!","lastmod":"2025-03-23","duration":"01:49:55","url":"/play/18977166.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMTJhMDIwOGQyODY5YjdmOWM1YmNiY2NiMzIzMDhiZTAuanBn.cache","vod_id":18955341,"title":"Bahkan setelah ejakulasi, wanita ini terus menyerang gendang telinga saya dengan bisikan menggoda, mencari pria paruh baya sambil berulang kali menempelkan dirinya erat-erat ke tubuh saya. (Shinoda Yu)","lastmod":"2025-12-14","duration":"01:58:45","url":"/play/18955341.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZDMwODMxYTgyYzAwNGUzYjU0NjU5ZGE1NzA0MmUwMTUuanBn.cache","vod_id":18941312,"title":"Seorang pria bertato bertemu dengan seorang netizen di rumahnya dan berhubungan seks dengan istrinya yang seksi, dewasa, dan memikat. Netizen itu begitu mahir sehingga membuat istrinya gemetar seluruh tubuh tetapi tidak berejakulasi. Khawatir akan melukai istrinya, akhirnya dia sendiri yang berhubungan seks dengannya!","lastmod":"2025-03-22","duration":"00:32:30","url":"/play/18941312.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly9pYy4xNTUyNTAyMTQudG9wLzIwMjYwMjE2L1lqazBGMzE0LzEuanBn.cache","vod_id":19144118,"title":"Dewi model yang memesona dengan kaki seksi, stoking hitam, dan fetish kaki.","lastmod":"2026-02-18","duration":"03:34:06","url":"/play/19144118.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOWMzODc2YjBhZjhjYTE0MDJhOWUzYTNkN2UzMjQ1MWQuanBn.cache","vod_id":18978466,"title":"Pacopacomama Pacopacomama 070623_873 Bawa kursi seks Anda! Gadis seksi Hinata Himori akan menyediakan layanan sabun mandi untuk Anda.","lastmod":"2025-12-14","duration":"01:01:24","url":"/play/18978466.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMmJjMWM2ZWU1NmMxYjkxMTYwNTdmZWRlNjRiZDc0YmEuanBn.cache","vod_id":18988786,"title":"EBOD-281 Sepenuhnya Dewasa - Hitomi Ohashi, yang dapat mencium aroma payudara pria yang haus.","lastmod":"2025-12-14","duration":"01:57:50","url":"/play/18988786.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYTg1MTQ1OWI1MDA5Y2NkYmQ0YzE1ZTMzNDQ3ZTVhNWYuanBn.cache","vod_id":19149826,"title":"Vagina seorang gadis muda berwajah polos dimainkan oleh kakak laki-lakinya yang nakal.","lastmod":"2026-03-23","duration":"10:47","url":"/play/19149826.html"}]},
videoTitle: 'Aku melihat adik perempuanku yang seksi mengenakan kaos untuk pertama kalinya, sambil menatap kakaknya! Bukankah vulvamu menonjol? Apakah kamu sedang birahi? Aku dalam masalah karena SWITCH.',
language: 'id',
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('Tautan berhasil disalin!');
}).catch(() => {
// 降级到旧方法
document.execCommand('copy');
alert('Tautan berhasil disalin!');
});
} else {
// 降级到旧方法
document.execCommand('copy');
alert('Tautan berhasil disalin!');
}
}
},
// 切换布局
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=/`;
}
};
}