1import{C as e,E as t,F as n,J as r,K as i,M as a,N as o,O as s,T as c,W as l,Z as u,b as d,c as f,ct as p,et as m,it as h,k as g,n as _,s as v,st as y,ut as b}from"./vendor-vue-Bu-KQjoC.js";import{l as x}from"./apiResponse-C8fEm_-L.js";import{c as S,dt as C,l as w,st as T}from"./index-BE2-dWra.js";import{i as ee,r as E}from"./blogMeta-BvgcPzkT.js";import{a as te,i as ne,n as D,o as re,t as ie}from"./mediaSearch-CHDVBZIF.js";import{i as O,r as k}from"./mediaApi-kMdfBZ7p.js";import{o as A}from"./channelApi-j0ilMshB.js";import{t as j}from"./BlogTagInput-EdBO9JpJ.js";import{a as M}from"./videoApi--uK-Udm0.js";var N=`otto-search-history`;function ae(e,t,n){let r=[];e.length>0&&r.push({kind:`user`,data:e[0]});let i=0,a=0;for(;i<t.length||a<n.length;){for(let e=0;e<5&&i<t.length;e++)r.push({kind:`video`,data:t[i]}),i++;a<n.length&&(r.push({kind:`blog`,data:n[a]}),a++)}return r}function P(){if(typeof window>`u`)return[];try{let e=localStorage.getItem(N);if(!e)return[];let t=JSON.parse(e);return Array.isArray(t)?t.filter(e=>typeof e==`string`):[]}catch{return[]}}function F(e){if(!(typeof window>`u`))try{localStorage.setItem(N,JSON.stringify(e.slice(0,20)))}catch{}}function I(e){let t=e.trim();if(!t)return P();let n=[t,...P().filter(e=>e!==t)].slice(0,20);return F(n),n}function L(e){let t=P().filter(t=>t!==e);return F(t),t}function R(){return F([]),[]}function z(e,t){let n=Number(e);return Number.isFinite(n)&&n>=0?n:t}var B=`https://api.ottohub.cn`;function V(e){return`${B}
1/api/blog/search?${E(e)}`}function H(e){if(!e||typeof e!=`object`)return[];let t=e,n=t.data;if(n&&typeof n==`object`){let e=n.blog_list;if(Array.isArray(e))return e}return Array.isArray(t.blog_list)?t.blog_list:[]}function U(e,t){if(!e||typeof e!=`object`)return t;let n=e,r=n.data;return z(r&&typeof r==`object`?r.total_count??n.total_count:n.total_count,t)}function W(e){if(!e||typeof e!=`object`)return[];let t=e.data;if(!t||typeof t!=`object`)return[];let n=t.channels;return Array.isArray(n)?n.map(e=>{let t=A(e);return{channel_id:t.channelId,channel_name:t.channelName,channel_title:t.channelTitle,description:t.description,cover_url:t.coverUrl,member_count:t.memberCount,follower_count:t.followerCount}}):[]}function G(e,t){if(!e||typeof e!=`object`)return t;let n=e.data;if(!n||typeof n!=`object`)return t;let r=n,i=r.pagination;if(i&&typeof i==`object`){let e=i.total;if(typeof e==`number`)return e}return z(r.total_count,t)}function K(e,t){if(e&&typeof e==`object`&&e.status===`error`){let n=e.message;throw Error(typeof n==`string`?n:t)}}async function q(e){let t=e.query.trim();if(!t)return{videos:[],blogs:[],users:[],channels:[],media:[],totalCount:0};let{searchType:n,page:r,sort:i,uidFilter:a,videoTypeFilter:o,ageFilter:s,mediaFilters:c,token:l,signal:u}=e,d={cache:`no-store`,signal:u},f={bidDesc:i===`latest`,viewCountDesc:i===`view`,likeCountDesc:i===`like`,favoriteCountDesc:i===`favorite`};if(n===`all`){let[e,n,r]=await Promise.all([fetch(x(`/api/video/search`,{search_term:t,offset:0,num:20}),d),fetch(V({searchTerm:t,offset:0,num:20,ageFilter:s}),d),fetch(x(`/api/user/search`,{search_term:t,offset:0,num:20}),d)]),[i,a,o]=await Promise.all([e.json(),n.json(),r.json()]);K(i,`è§é¢æç´¢å¤±è´¥`),K(a,`卿æç´¢å¤±è´¥`),K(o,`ç¨æ·æç´¢å¤±è´¥`);let c=M(i),l=H(a),{user_list:u}=C(o),f=u;return{videos:c,blogs:l,users:f,channels:[],media:[],totalCount:c.length+l.length+f.length}}if(n===`video`){let e={search_term:t,offset:(r-1)*24,num:24};i===`latest`&&(e.vid_desc=1),i===`view`&&(e.view_count_desc=1),i===`like`&&(e.like_count_desc=1),i===`favorite`&&(e.favorite_count_desc=1),a.trim()&&(e.uid=a.trim()),o.trim()&&(e.type=o.trim());let n=await(await fetch(x(`/api/video/search`,e),d)).json();K(n,`è§é¢æç´¢å¤±è´¥`);let s=M(n),c=n?.data;return{videos:s,blogs:[],users:[],channels:[],media:[],totalCount:z((c&&typeof c==`object`?c.total_count:void 0)??n?.total_count,s.length)}}if(n===`blog`){let e=(r-1)*12,n=await(await fetch(V({searchTerm:t,offset:e,num:12,sort:f,uid:a,ageFilter:s}),d)).json();K(n,`卿æç´¢å¤±è´¥`);let i=H(n);return{videos:[],blogs:i,users:[],channels:[],media:[],totalCount:U(n,i.length)}}if(n===`user`){let e={search_term:t,offset:(r-1)*20,num:20};i===`uid`&&(e.uid_desc=1),i===`fans`&&(e.fans_count_desc=1),i===`experience`&&(e.experience_desc=1);let n=await(await fetch(x(`/api/user/search`,e),d)).json();K(n,`ç¨æ·æç´¢å¤±è´¥`);let{user_list:a,total_count:o}=C(n),s=a;return{videos:[],blogs:[],users:s,channels:[],media:[],totalCount:z(o,s.length)}}if(n===`media`){let e=(r-1)*20,n=D({searchTerm:t,offset:e,num:20,sort:i,uid:a,filters:c,token:l}),o=await(await fetch(x(`/api/media/search?${n}`),d)).json();K(o,`ç´ ææç´¢å¤±è´¥`);let s=O(o).map(e=>k(e)).filter(e=>e!=null),u=o?.data;return{videos:[],blogs:[],users:[],channels:[],media:s,totalCount:z((u&&typeof u==`object`?u.total_count:void 0)??o?.total_count,s.length)}}let p={keyword:t,offset:(r-1)*12,num:12};i===`member`&&(p.member_count_desc=1),i===`follower`&&(p.follower_count_desc=1);let m=await(await fetch(x(`/api/channel/search`,p),d)).json();K(m,`é¢éæç´¢å¤±è´¥`);let h=W(m);return{videos:[],blogs:[],users:[],channels:h,media:[],totalCount:G(m,h.length)}}var J=[{value:`all`,labelKey:`search.tabAll`},{value:`video`,labelKey:`search.tabVideo`},{value:`blog`,labelKey:`search.tabBlog`},{value:`user`,labelKey:`search.tabUser`},{value:`channel`,labelKey:`search.tabChannel`},{value:`media`,labelKey:`search.tabMedia`}],Y=[{key:`default`,labelKey:`search.sortDefault`},{key:`latest`,labelKey:`search.sortLatest`},{key:`view`,labelKey:`search.sortView`},{key:`like`,labelKey:`search.sortLike`},{key:`favorite`,labelKey:`search.sortFavorite`}],X=[{key:`default`,labelKey:`search.sortDefault`},{key:`latest`,labelKey:`search.sortLatest`},{key:`view`,labelKey:`search.sortBlogView`},{key:`like`,labelKey:`search.sortLike`},{key:`favorite`,labelKey:`search.sortFavorite`}],Z=[{key:`default`,labelKey:`search.sortDefault`},{key:`uid`,labelKey:`search.sortUid`},{key:`fans`,labelKey:`search.sortFans`},{key:`experience`,labelKey:`search.sortExperience`}],oe=[{key:`default`,labelKey:`search.sortDefault`},{key:`member`,labelKey:`search.sortMember`},{key:`follower`,labelKey:`search.sortFollower`}],se=[{key:`default`,labelKey:`search.sortDefault`},{key:`latest`,labelKey:`search.sortLatest`},{key:`oldest`,labelKey:`search.sortOldest`},{key:`fileSizeDesc`,labelKey:`search.sortFileSizeDesc`},{key:`fileSizeAsc`,labelKey:`search.sortFileSizeAsc`}],ce=[{value:``,labelKey:`search.videoTypeAll`},{value:`1`,labelKey:`media.copyrightOriginal`},{value:`2`,labelKey:`media.copyrightRepost`},{value:`3`,labelKey:`media.copyrightOther`}],le=[{value:``,labelKey:`search.videoTypeAll`},{value:`1`,labelKey:`search.videoTypeRepost`},{value:`2`,labelKey:`search.videoTypeOriginal`},{value:`3`,labelKey:`search.videoTypeOther`}];function ue(e){return e===`video`||e===`blog`||e===`user`||e===`channel`||e===`media`?e:`all`}function de(e){return e&&[`default`,`latest`,`view`,`like`,`favorite`,`uid`,`fans`,`experience`,`member`,`follower`,`oldest`,`fileSizeDesc`,`fileSizeAsc`].includes(e)?e:`default`}function Q(e){return e===`video`?24:e===`blog`||e===`channel`?12:20}function fe(){let{t:e}=_(),t=v(),n=f(),r=T(),i=c(()=>{let e=t.query.q,n=t.query.tag;return typeof e==`string`&&e.trim()?e.trim():typeof n==`string`&&n.trim()?n.trim():``}),a=c(()=>i.value.length>0),o=c(()=>ue(typeof t.query.t==`string`?t.query.t:null)),s=c(()=>{let e=Number.parseInt(typeof t.query.page==`string`?t.query.page:`1`,10);return Number.isNaN(e)||e<1?1:e}),l=c(()=>de(typeof t.query.sort==`string`?t.query.sort:null)),d=c(()=>typeof t.query.uid==`string`?t.query.uid:``),p=c(()=>typeof t.query.vtype==`string`?t.query.vtype:``),m=c(()=>ee(typeof t.query.gore==`string`?t.query.gore:null)),g=c(()=>ne(t.query)),y=c(()=>te(g.value.tag)),b=h(``),x=h(!1),C=h(null),E=h([]),D=h([]),O=h([]),k=h([]),A=h([]),j=h(0);u(i,e=>{b.value=e,e&&I(e)},{immediate:!0});let M=c(()=>Q(o.value)),N=c(()=>o.value===`all`?1:Math.max(1,Math.ceil(j.value/M.value))),P=c(()=>Math.min(Math.max(s.value,1),N.value)),F=c(()=>ae(O.value,E.value,D.value)),L=c(()=>o.value===`all`?F.value.length>0:o.value===`video`?E.value.length>0:o.value===`blog`?D.value.length>0:o.value===`user`?O.value.length>0:o.value===`media`?A.value.length>0:k.value.length>0);function R(e={}
1){let t=e.type??o.value,n=e.page??1,r=(e.q??b.value).trim(),i=e.sortKey??l.value,a=e.uid??d.value,s=e.vtype??p.value,c=e.age??m.value,u={...g.value,...e.media},f=new URLSearchParams;r&&f.set(`q`,r),f.set(`t`,t),n>1&&f.set(`page`,String(n)),i!=="default"&&f.set(`sort`,i),a.trim()&&f.set(`uid`,a.trim()),t===`video`&&s.trim()&&f.set(`vtype`,s.trim()),t===`blog`&&c!==`all`&&f.set(`gore`,c),t===`media`&&ie(f,u);let h=f.toString();return h?`/search?${h}`:`/search`}function z(e={}){let t=R(e);if(t===`/search`&&!e.q&&!b.value.trim()){n.push(`/search`);return}let r=(e.q??b.value).trim(),i=r?w(r):`/search`;if(!i.startsWith(`/search`)){S(n,i);return}n.push(t)}function B(){let e=b.value.trim();if(!e){n.push(`/search`);return}let t=w(e);if(!t.startsWith(`/search`)){S(n,t);return}I(e),n.push(R({q:e,page:1,type:o.value}))}function V(e){z({type:e,page:1})}function H(e){z({sortKey:e,page:1})}function U(e){z({vtype:e,page:1})}function W(e){z({uid:e,page:1})}function G(e){z({age:e,page:1})}function K(e){z({media:e,page:1})}function J(e){z({media:{copyrightType:e},page:1})}function Y(e){z({media:{tag:re(e)},page:1})}function X(e){z({page:e})}let Z=null;return u(()=>[i.value,o.value,s.value,l.value,d.value,p.value,m.value,g.value,r.activeAccount?.token],async([t,n,r,i,a,o,s,c,l])=>{if(Z?.abort(),!t){E.value=[],D.value=[],O.value=[],k.value=[],A.value=[],j.value=0,C.value=null,x.value=!1;return}let u=new AbortController;Z=u,x.value=!0,C.value=null;try{let e=await q({query:t,searchType:n,page:r,sort:i,uidFilter:a,videoTypeFilter:o,ageFilter:s,mediaFilters:c,token:l,signal:u.signal});if(u.signal.aborted)return;E.value=e.videos,D.value=e.blogs,O.value=e.users,k.value=e.channels,A.value=e.media,j.value=e.totalCount}catch(t){if(u.signal.aborted)return;let n=t instanceof Error?t.message:e(`search.error`);C.value=n||e(`search.error`)}finally{u.signal.aborted||(x.value=!1)}},{immediate:!0}),{query:i,hasQuery:a,searchInput:b,searchType:o,page:P,totalPages:N,totalCount:j,sort:l,uidFilter:d,videoTypeFilter:p,ageFilter:m,mediaFilters:g,mediaSearchTags:y,loading:x,error:C,videoResults:E,blogResults:D,userResults:O,channelResults:k,mediaResults:A,comprehensiveResults:F,hasResults:L,submitSearch:B,selectTab:V,selectSort:H,selectVideoType:U,updateUidFilter:W,selectAgeFilter:G,updateMediaFilter:K,selectMediaCopyright:J,updateMediaSearchTags:Y,changePage:X,pushSearchUrl:z}}var pe={class:`space-y-2.5`},me={class:`flex flex-wrap items-center gap-1.5`},he={class:`shrink-0 text-[11px] uppercase tracking-wide text-muted`},ge=[`onClick`],_e=[`aria-expanded`],ve={class:`font-medium text-primary`},ye={key:0,class:`ml-1 text-accent`},be={class:`space-y-2.5 pt-0.5`},xe={class:`flex flex-wrap items-center gap-3`},Se={class:`flex items-center gap-1.5 text-[12px] text-muted`},Ce=[`value`,`placeholder`],we={class:`flex min-w-0 items-center gap-1.5 text-[12px] text-muted`},Te={class:`shrink-0`},Ee=[`value`,`placeholder`],De={class:`flex min-w-0 items-center gap-1.5 text-[12px] text-muted`},Oe={class:`shrink-0`},ke=[`value`,`placeholder`],Ae={class:`flex flex-wrap items-start gap-2`},je={class:`shrink-0 pt-1.5 text-[12px] text-muted`},Me={class:`min-w-0 flex-1 sm:max-w-lg`},Ne={class:`flex flex-wrap items-center gap-3`},Pe={class:`flex flex-wrap items-center gap-1.5`},Fe={class:`text-[12px] text-muted`},Ie=[`onClick`],Le={class:`flex items-center gap-1.5 text-[12px] text-muted`},Re=[`value`,`placeholder`],ze={class:`flex items-center gap-1.5 text-[12px] text-muted`},Be=[`value`,`placeholder`],Ve={class:`flex min-w-0 max-w-md items-center gap-1.5 text-[12px] text-muted`},He={class:`shrink-0`},Ue=[`value`,`placeholder`],$=`h-8 min-w-0 rounded-[var(--radius-default)] border border-border bg-base px-2 text-[12px] text-primary`,We=n({__name:`MediaSearchFiltersPanel`,props:{sort:{},uidFilter:{},mediaFilters:{},mediaSearchTags:{}},emits:[`selectSort`,`updateUidFilter`,`updateMediaFilter`,`selectMediaCopyright`,`updateMediaSearchTags`],setup(n,{emit:u}){let f=n,v=u,{t:x}=_(),S=h(!1),C=c(()=>!!(f.uidFilter.trim()||f.mediaFilters.extension.trim()||f.mediaFilters.mediaType.trim()||f.mediaSearchTags.length>0||f.mediaFilters.copyrightType.trim()||f.mediaFilters.minSizeKb.trim()||f.mediaFilters.maxSizeKb.trim()||f.mediaFilters.title.trim()));return(c,u)=>{let f=r(`MaterialIcon`);return l(),g(`div`,pe,[t(`div`,me,[t(`span`,he,b(y(x)(`search.sortLabel`)),1),(l(!0),g(e,null,i(y(se),e=>(l(),g(`button`,{key:e.key,type:`button`,class:p([`nico-btn nico-btn-sm px-2.5 text-[12px]`,n.sort===e.key?`nico-btn-primary`:`border border-border bg-base text-primary`]),onClick:t=>v(`selectSort`,e.key)},b(y(x)(e.labelKey)),11,ge))),128))]),t(`button`,{type:`button`,class:`flex w-full items-center justify-between gap-2 rounded-[var(--radius-default)] border border-border bg-surface px-2.5 py-1.5 text-left text-[12px] text-secondary transition-colors hover:bg-elevated`,"aria-expanded":S.value,onClick:u[0]||(u[0]=e=>S.value=!S.value)},[t(`span`,ve,[a(b(y(x)(`search.advancedFiltersLabel`))+` `,1),C.value?(l(),g(`span`,ye,`·`)):s(``,!0)]),o(f,{name:S.value?`expand_less`:`expand_more`,size:18,class:`shrink-0 text-muted`},null,8,[`name`])],8,_e),m(t(`div`,be,[t(`div`,xe,[t(`label`,Se,[t(`span`,null,b(y(x)(`search.uidFilterLabel`)),1),t(`input`,{value:n.uidFilter,type:`text`,class:
1p([$,`w-24`]),placeholder:y(x)(`search.uidFilterPlaceholder`),onChange:u[1]||(u[1]=e=>v(`updateUidFilter`,e.target.value))},null,42,Ce)]),t(`label`,we,[t(`span`,Te,b(y(x)(`search.mediaExtensionLabel`)),1),t(`input`,{value:n.mediaFilters.extension,type:`text`,class:p([$,`w-28`]),placeholder:y(x)(`search.mediaExtensionPlaceholder`),onChange:u[2]||(u[2]=e=>v(`updateMediaFilter`,{extension:e.target.value}))},null,42,Ee)]),t(`label`,De,[t(`span`,Oe,b(y(x)(`search.mediaTypeLabel`)),1),t(`input`,{value:n.mediaFilters.mediaType,type:`text`,class:p([$,`w-24`]),placeholder:y(x)(`search.mediaTypePlaceholder`),onChange:u[3]||(u[3]=e=>v(`updateMediaFilter`,{mediaType:e.target.value}))},null,42,ke)])]),t(`div`,Ae,[t(`span`,je,b(y(x)(`search.mediaTagLabel`)),1),t(`div`,Me,[o(j,{tags:n.mediaSearchTags,placeholder:y(x)(`creator.fieldTagsPh`),"onUpdate:tags":u[4]||(u[4]=e=>v(`updateMediaSearchTags`,e))},null,8,[`tags`,`placeholder`])])]),t(`div`,Ne,[t(`div`,Pe,[t(`span`,Fe,b(y(x)(`search.mediaCopyrightLabel`)),1),(l(!0),g(e,null,i(y(ce),e=>(l(),g(`button`,{key:e.value||`all`,type:`button`,class:p([`nico-btn nico-btn-sm px-2 text-[12px]`,n.mediaFilters.copyrightType===e.value?`nico-btn-primary`:`border border-border bg-base text-primary`]),onClick:t=>v(`selectMediaCopyright`,e.value)},b(y(x)(e.labelKey)),11,Ie))),128))]),t(`label`,Le,[t(`span`,null,b(y(x)(`search.mediaMinSizeLabel`)),1),t(`input`,{value:n.mediaFilters.minSizeKb,type:`text`,inputmode:`decimal`,class:p([$,`w-20`]),placeholder:y(x)(`search.mediaSizePlaceholder`),onChange:u[5]||(u[5]=e=>v(`updateMediaFilter`,{minSizeKb:e.target.value}))},null,42,Re)]),t(`label`,ze,[t(`span`,null,b(y(x)(`search.mediaMaxSizeLabel`)),1),t(`input`,{value:n.mediaFilters.maxSizeKb,type:`text`,inputmode:`decimal`,class:p([$,`w-20`]),placeholder:y(x)(`search.mediaSizePlaceholder`),onChange:u[6]||(u[6]=e=>v(`updateMediaFilter`,{maxSizeKb:e.target.value}))},null,42,Be)])]),t(`label`,Ve,[t(`span`,He,b(y(x)(`search.mediaTitleLabel`)),1),t(`input`,{value:n.mediaFilters.title,type:`text`,class:p([$,`min-w-0 flex-1`]),placeholder:y(x)(`search.mediaTitlePlaceholder`),onChange:u[7]||(u[7]=e=>v(`updateMediaFilter`,{title:e.target.value}))},null,42,Ue)])],512),[[d,S.value]])])}}});export{Z as a,fe as c,R as d,P as f,J as i,q as l,X as n,Y as o,L as p,oe as r,le as s,We as t,I as u};
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.