PageSourceSearch

https://www.ottohub.cn/assets/FollowingView-CfwLTAPH.js

js ottohub.cn collected 2026-10-06 13:14:40 UTC 11,860 bytes, 1 lines download raw bytes

1import{C as e,D as t,E as n,F as r,H as i,J as a,K as o,M as s,N as c,O as l,T as u,U as d,W as f,Z as p,c as m,ct as h,it as g,j as _,k as v,n as y,st as b,ut as x}from"./vendor-vue-Bu-KQjoC.js";import{Z as S,rt as C,s as w,st as T}from"./index-BE2-dWra.js";import{s as E}from"./blogMeta-BvgcPzkT.js";import{t as D}from"./VideoCard-D1Kl4hUn.js";import{t as O}from"./videoFormat-eMkACp59.js";import{t as k}from"./BlogEmbeddedVideoCard-DJLVVUV_.js";import{t as A}from"./BlogCachedImage-DqWEj00t.js";import{a as j}from"./blogEmbed-C2PhCk_j.js";import{t as M}from"./BlogListEmbeds-BeOo5FaV.js";import{a as N,i as P,n as F,o as I,r as L,t as R}from"./followingApi-DSvSpk71.js";var z=[`href`],B={class:`h-9 w-9 shrink-0 overflow-hidden rounded-full border border-border bg-reader sm:h-10 sm:w-10`},V=[`src`,`alt`],ee={key:1,class:`flex h-full w-full items-center justify-center text-muted`},te={class:`min-w-0 flex-1`},ne={class:`mb-1 flex items-start justify-between gap-2`},H={class:`min-w-0`},U={class:`text-[13px] font-semibold text-primary`},W={class:`ml-2 text-[11px] text-muted`},G={class:`shrink-0 rounded-[var(--radius-default)] border border-border bg-base px-1.5 py-0.5 text-[10px] font-medium text-secondary`},K={class:`line-clamp-2 text-[13px] font-medium leading-snug text-primary`},q={key:0,class:`mt-1 line-clamp-2 text-[12px] leading-relaxed text-secondary`},J={class:`grid grid-cols-2 gap-1.5`},Y={class:`mt-1.5 flex flex-wrap items-center gap-3 text-[11px] text-muted`},X={class:`inline-flex items-center gap-0.5`},Z={class:`inline-flex items-center gap-0.5`},re={key:0,class:`inline-flex items-center gap-0.5`},ie={class:`inline-flex items-center gap-0.5`},Q=`w-full max-w-full md:max-w-[50%]`,ae=r({__name:`FollowingTimelineItem`,props:{item:{}},setup(r){let i=r,{t:d}=y(),p=m(),g=u(()=>i.item.contentType===`video`),_=u(()=>g.value?i.item:null),S=u(()=>g.value?null:I(i.item)),C=u(()=>S.value?j(S.value):null),T=u(()=>{if(g.value)return!1;let e=i.item;return e.thumbnails.length>0&&!e.forward}),N=u(()=>g.value?`/v/${_.value.vid}`:`/b/${i.item.bid}`),P=u(()=>g.value?d(`following.videoBadge`):d(`following.blogBadge`)),F=u(()=>{if(g.value)return``;let e=i.item;return E(e.content||``)||(e.forward&&!e.forward.isUnavailable?E(e.forward.content||e.forward.title||``):``)}),L=u(()=>{if(g.value)return i.item.title;let e=i.item;return e.title?e.title:e.forward&&!e.forward.isUnavailable?e.forward.title||d(`blog.untitled`,{bid:e.forward.bid}):d(`blog.untitled`,{bid:e.bid})});function R(e){e.target.closest(`a, [data-video-card], button`)||w(e,p,N.value)}return(i,u)=>{let p=a(`MaterialIcon`);return f(),v(`a`,{href:N.value,class:`feed-row group flex gap-3 border-b border-border px-1 py-3 no-underline transition-colors last:border-b-0 hover:bg-elevated sm:gap-4 sm:px-2`,onClick:R},[n(`div`,B,[r.item.avatarUrl?(f(),v(`img`,{key:0,src:r.item.avatarUrl,alt:r.item.username,class:`h-full w-full object-cover`},null,8,V)):(f(),v(`div`,ee,[c(p,{name:`person`,size:18})]))]),n(`div`,te,[n(`div`,ne,[n(`div`,H,[n(`span`,U,x(r.item.username||b(d)(`following.unknownUser`)),1),n(`span`,W,x(r.item.time),1)]),n(`span`,G,x(P.value),1)]),n(`p`,K,x(L.value),1),F.value?(f(),v(`p`,q,x(F.value),1)):l(``,!0),_.value?(f(),t(D,{key:1,class:h([`mt-2`,Q]),"hover-preview":``,vid:String(_.value.vid),title:_.value.title,cover_url:_.value.coverUrl,view_count:_.value.viewCount,like_count:_.value.likeCount,avatar_url:_.value.avatarUrl??r.item.avatarUrl,username:_.value.username,uid:String(_.value.uid),time:_.value.time,is_gore:_.value.isGore},null,8,[`vid`,`title`,`cover_url`,`view_count`,`like_count`,`avatar_url`,`username`,`uid`,`time`,`is_gore`])):l(``,!0),S.value?.forward?(f(),t(M,{key:2,class:`mt-2`,post:S.value,compact:``,"responsive-media-width":``},null,8,[`post`])):l(``,!0),T.value?(f(),v(`div`,{key:3,class:h([`mt-2`,Q])},[n(`div`,J,[(f(!0),v(e,null,o(r.item.thumbnails.slice(0,4),(e,t)=>(f(),v(`div`,{key:t,class:`overflow-hidden rounded-[var(--radius-default)]`},[c(A,{src:e,alt:L.value,fit:`contain`},null,8,[`src`,`alt`])]))),128))])])):l(``,!0),C.value?(f(),t(k,{key:4,class:h([`mt-3`,Q]),video:C.value},null,8,[`video`])):l(``,!0),n(`div`,Y,[n(`span`,X,[c(p,{name:`bar_chart`,size:13}),s(` `+x(b(O)(r.item.viewCount)),1)]),n(`span`,Z,[c(p,{name:`thumb_up`,size:13}),s(` `+x(b(O)(r.item.likeCount)),1)]),S.value?(f(),v(`span`,re,[c(p,{name:`chat_bubble_outline`,size:13}),s(` `+x(b(O)(S.value.commentCount)),1)])):l(``,!0),n(`span`,ie,[c(p,{name:`kitchen`,size:13}),s(` `+x(b(O)(r.item.favoriteCount)),1)])])])],8,z)}}}),oe={};function se(t,r){return f(),v(e,null,o(5,e=>n(`div`,{key:e,class:`flex animate-pulse gap-3 border-b border-border px-1 py-3 sm:gap-4 sm:px-2`},[...r[0]||(r[0]=[_(`<div class="h-10 w-10 shrink-0 rounded-full bg-elevated"></div><div class="min-w-0 flex-1 space-y-2"><div class="h-3 w-1/3 rounded-sm bg-elevated"></div><div class="h-4 w-4/5 rounded-sm bg-elevated"></div>
1<div class="h-3 w-1/2 rounded-sm bg-elevated"></div></div><div class="hidden h-16 w-28 shrink-0 rounded-[var(--radius-default)] bg-elevated sm:block"></div>`,3)])])),64)}var ce=C(oe,[[`render`,se]]);function le(e={}){let{t}=y(),n=T(),r=S(),a=e.allOnly===!0,o=e.cacheKey??(a?`page:blog-following`:`page:following`),s=e.autoPromptLogin!==!1,c=r.getPageState(o),l=g([]),u=g(a?0:c?.selectedUid??0),f=g(c?.timeline??[]),m=g(c?.hasMore??!0),h=g(!1),_=g(!1),v=g(!1),b=g(null),x=g(null),C=g(0),w=g(!0),E=g(null),D=g(null),O=g(null),k=g(!1);function A(){r.setPageState(o,{selectedUid:a?0:u.value,timeline:f.value,hasMore:m.value})}p([u,f,m],A,{deep:!0});async function j(e){let r=n.activeAccount?.uid;if(!(!r||!n.isAuthenticated)){e?(h.value=!0,C.value=0,w.value=!0):v.value=!0,b.value=null;try{let n=e?0:C.value,i=await(await fetch(R(r,n),{cache:`default`})).json(),a=P(i);if(a.length===0&&i.status!==`success`&&e){b.value=t(`following.fetchUsersFailed`);return}let o=E.value,s=o?.scrollLeft??0,c=o?.scrollWidth??0,u=o?.clientWidth??0,d=o!=null&&s+u>=c-4;l.value=e?a:[...l.value,...a],C.value=n+a.length,w.value=a.length>=24,!e&&o&&requestAnimationFrame(()=>{let e=E.value;e&&(e.scrollLeft=d?e.scrollWidth-e.clientWidth:s)})}catch{e&&(b.value=t(`following.networkError`))}finally{h.value=!1,v.value=!1}}}async function M(e,r){let i=n.activeAccount?.token;if(!(!i||k.value)){k.value=!0,r||(_.value=!0),x.value=null;try{let n=a?0:u.value,o=n===0?F(e,i):L(n,e),s=await(await fetch(o,{cache:`default`})).json(),c=N(s);if(c.length===0&&s.status!==`success`&&!r){x.value=t(`following.fetchTimelineFailed`);return}f.value=r?[...f.value,...c]:c,m.value=c.length>=20}catch{x.value=t(`following.networkError`)}finally{k.value=!1,_.value=!1}}}function I(e){a||u.value!==e&&(u.value=e,f.value=[],m.value=!0,M(0,!1))}function z(){k.value||_.value||!m.value||M(f.value.length,!0)}p(()=>[n.isReady,n.isAuthenticated,n.activeAccount?.uid],([e,t,n])=>{if(e){if(!t||!n){l.value=[],f.value=[];return}a||j(!0),f.value.length===0&&M(0,!1)}},{immediate:!0}),p(()=>n.isReady&&!n.isAuthenticated,e=>{e&&s&&n.openAuth(`login`)},{immediate:!0});let B=null;p(()=>[a,D.value,w.value,h.value,v.value],([e,t,n,r,i],a,o)=>{if(B?.disconnect(),e||!t||!n||r||i)return;let s=E.value;s&&(B=new IntersectionObserver(e=>{e.some(e=>e.isIntersecting)&&j(!1)},{root:s,threshold:.5,rootMargin:`0px 1000px 0px 0px`}),B.observe(t),o(()=>B?.disconnect()))},{flush:`post`});let V=null;return p(()=>[O.value,m.value,_.value,f.value.length],([e,t,n,r],i,a)=>{V?.disconnect(),!(!t||n||!e||r===0)&&(V=new IntersectionObserver(e=>{e.some(e=>e.isIntersecting)&&z()},{threshold:.1,rootMargin:`0px 0px 400px 0px`}),V.observe(e),a(()=>V?.disconnect()))},{flush:`post`}),i(()=>{r.hydrate()}),d(()=>{B?.disconnect(),V?.disconnect()}),{activeUsers:l,selectedUid:u,timeline:f,loadingUsers:h,loadingTimeline:_,loadingMoreUsers:v,usersError:b,timelineError:x,hasMore:m,hasMoreUsers:w,usersScrollRef:E,usersSentinelRef:D,loadMoreRef:O,selectUser:I,loadMoreTimeline:z}}var ue={key:0,class:`py-16 text-center`},de={class:`text-[13px] text-muted`},fe={key:1,class:`space-y-4`},pe={key:0,class:`overflow-hidden rounded-[var(--radius-default)] border border-border bg-surface`},me={class:`border-b border-border px-3 py-2`},he={class:`text-[13px] font-bold text-primary`},ge={class:`flex items-start gap-3`},_e=[`onClick`],ve=[`src`,`alt`],ye={key:1,class:`flex h-full w-full items-center justify-center text-muted`},be={key:0,class:`mt-2 text-[11px] text-muted`},$={key:1,class:`mt-2 text-[11px] text-danger`},xe={class:`rounded-[var(--radius-default)] border border-border bg-surface px-2 sm:px-3`},Se={key:0,class:`border-b border-danger/30 bg-danger/10 px-2 py-2 text-[13px] text-danger`},Ce={key:2,class:`py-10 text-center text-[13px] text-muted`},we=[`disabled`],Te={key:1,class:`text-xs text-muted`},Ee=r({__name:`FollowingFeedPanel`,props:{allOnly:{type:Boolean,default:!1},autoPromptLogin:{type:Boolean,default:!0}},setup(r){let i=r,{t:s}=y(),u=T(),{activeUsers:d,selectedUid:p,timeline:m,loadingUsers:g,loadingTimeline:_,usersError:S,timelineError:C,hasMore:w,hasMoreUsers:E,usersScrollRef:D,usersSentinelRef:O,loadMoreRef:k,selectUser:A,loadMoreTimeline:j}=le({allOnly:i.allOnly,autoPromptLogin:i.autoPromptLogin});return(i,y)=>{let T=a(`MaterialIcon`);return b(u).isAuthenticated?(f(),v(`div`,fe,[r.allOnly?l(``,!0):(f(),v(`section`,pe,[n(`div`,me,[n(`h2`,he,x(b(s)(`following.activeUsers`)),1)]),n(`div`,{ref_key:`usersScrollRef`,ref:D,class:`overflow-x-auto px-3 py-3`},[n(`div`,ge,[n(`button`,{type:`button`,class:`flex w-14 shrink-0 flex-col items-center gap-1`,onClick:y[1]||(y[1]=e=>b(A)(0))},[n(`div`,{class:h([`flex h-11 w-11 items-center justify-center rounded-full border-2 bg-reader`,b(p)===0?`border-accent text-accent`:`border-border text-muted`])},[c(T,{name:`timeline`,size:20}
1)],2),n(`span`,{class:h([`max-w-full truncate text-[11px]`,b(p)===0?`font-semibold text-accent`:`text-secondary`])},x(b(s)(`following.allUsers`)),3)]),(f(!0),v(e,null,o(b(d),e=>(f(),v(`button`,{key:e.uid,type:`button`,class:`flex w-14 shrink-0 flex-col items-center gap-1`,onClick:t=>b(A)(e.uid)},[n(`div`,{class:h([`h-11 w-11 overflow-hidden rounded-full border-2 bg-reader`,b(p)===e.uid?`border-accent`:`border-transparent`])},[e.avatarUrl?(f(),v(`img`,{key:0,src:e.avatarUrl,alt:e.username,class:`h-full w-full object-cover`},null,8,ve)):(f(),v(`div`,ye,[c(T,{name:`person`,size:20})]))],2),n(`span`,{class:h([`max-w-full truncate text-[11px]`,b(p)===e.uid?`font-semibold text-accent`:`text-secondary`])},x(e.username),3)],8,_e))),128)),b(E)?(f(),v(`div`,{key:0,ref_key:`usersSentinelRef`,ref:O,class:`h-11 w-6 shrink-0 opacity-0`,"aria-hidden":`true`},null,512)):l(``,!0)]),b(g)&&b(d).length===0?(f(),v(`p`,be,x(b(s)(`following.loadingUsers`)),1)):l(``,!0),b(S)?(f(),v(`p`,$,x(b(S)),1)):l(``,!0)],512)])),n(`section`,xe,[b(C)?(f(),v(`p`,Se,x(b(C)),1)):l(``,!0),b(_)&&b(m).length===0?(f(),t(ce,{key:1})):!b(_)&&b(m).length===0&&!b(C)?(f(),v(`p`,Ce,x(b(s)(`following.noPosts`)),1)):(f(!0),v(e,{key:3},o(b(m),(e,n)=>(f(),t(ae,{key:`${e.contentType}-${e.contentType===`video`?e.vid:e.bid}-${n}`,item:e},null,8,[`item`]))),128)),b(m).length>0?(f(),v(`div`,{key:4,ref_key:`loadMoreRef`,ref:k,class:`flex justify-center py-4`},[b(w)?(f(),v(`button`,{key:0,type:`button`,class:`nico-btn border border-border bg-base px-4 text-[13px] text-primary disabled:cursor-not-allowed disabled:opacity-50`,disabled:b(_),onClick:y[2]||(y[2]=(...e)=>b(j)&&b(j)(...e))},x(b(_)?b(s)(`following.loadingMore`):b(s)(`following.loadMore`)),9,we)):(f(),v(`span`,Te,x(b(s)(`following.noMore`)),1))],512)):l(``,!0)])])):(f(),v(`div`,ue,[n(`p`,de,x(b(s)(`following.loginRequired`)),1),n(`button`,{type:`button`,class:`nico-btn nico-btn-primary mt-4 px-4 text-[13px]`,onClick:y[0]||(y[0]=e=>b(u).openAuth(`login`))},x(b(s)(`following.loginButton`)),1)]))}}}),De=r({__name:`FollowingView`,setup(e){return(e,n)=>(f(),t(Ee))}});export{De as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.