PageSourceSearch

https://otobanana.com/_nuxt/G8z70-zO.js

js otobanana.com collected 2026-09-24 10:35:44 UTC 7,933 bytes, 1 lines download raw bytes

1import{j as z,L as K,m as L,a4 as j,B as A,X as M,e as R,a5 as D,a6 as H,c as P,o as b,a7 as Q,a as t,a8 as X,t as J,_ as E,i as q,w as U,b as p,P as T,Q as I,h as m,R as O,u as W,a0 as Y,T as Z,g as x,y as ee,k as te,n as F}from"./OxIcw8id.js";import{I as oe}from"./BF8BneKt.js";import{B as G}from"./Uy1T3CgA.js";import{I as B}from"./BvrpIecR.js";import{M as se}from"./DlHjg8Je.js";import{S as ae}from"./CLVK7by8.js";import{V as ne}from"./BVofFG5u.js";import"./DZXlDvG6.js";import"./CFZq-rpI.js";import"./umD_9Jvw.js";import"./BofUd4eO.js";import"./B9Oh1ALQ.js";import"./C_TVmbJb.js";import"./BuchrI5j.js";import"./DwMyN_3u.js";import"./6f67yMYv.js";import"./BY2hrziu.js";import"./Dwamipdb.js";const ie=()=>{const s=z().public.apiBase,{getAccessToken:n}=K(),{$isAdult:y}=L(),l=y(),{controllerSignal:k,setAbortController:h,setApiErrorMessage:C}=j(),c=A([]),$=A([]),_=A(""),w=A(!1);return{searchVoicePosts:c,voicePostCategories:$,addSearchVoicePostsApiUrl:_,isAddSearchVoicePostsLoading:w,fetchSearchVoicePost:async(o="",i="",V="-created_at",e=0)=>{try{const a=h(),u=await $fetch(`${s}/api/casts?is_adult=${l}&search=${o}&categoryKey=${i}&ordering=${V}&user__gender=${e}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:n},signal:k,credentials:"include"});clearTimeout(a);const S=u?.data.length?u.data.map(g=>({postId:g.post.id,postTitle:g.post.mask_title,thumbnail:g.thumbnail_url||g.post.user.avatar_url,duration:M(g.duration_time),playCount:g.post.play_count,isAdult:g.is_adult,userName:g.post.user.mask_name,userIcon:g.post.user.avatar_url})):[];c.value.splice(0),c.value.push(...S),_.value=u.next_page_url||""}catch(a){if(C(a))return;console.error("Error fetching fetchSearchVoicePost:",a)}},fetchVoicePostCategory:async()=>{try{const o=h(),i=await $fetch(`${s}/api/casts/categories?is_adult=${l}`,{method:"GET",headers:{"Content-Type":"application/json",Authorization:n},signal:k,credentials:"include"});clearTimeout(o),i?.length&&i.sort((e,a)=>a.priority-e.priority);const V=i?.length?i.map(e=>({name:e.name,value:e.category_key})):[];V.length&&V.unshift({name:"未設定",value:""}),$.value.splice(0),$.value.push(...V)}catch(o){if(C(o))return;console.error("Error fetching fetchVoicePostCategory:",o)}},fetchAddSearchVoicePost:async()=>{w.value=!0;try{const o=h(),i=await $fetch(_.value,{method:"GET",headers:{"Content-Type":"application/json",Authorization:n},signal:k,credentials:"include"});clearTimeout(o);const V=i?.data.length?i.data.map(e=>({postId:e.post.id,postTitle:e.post.mask_title,thumbnail:e.thumbnail_url||e.post.user.avatar_url,duration:M(e.duration_time),playCount:e.post.play_count,isAdult:e.is_adult,userName:e.post.user.mask_name,userIcon:e.post.user.avatar_url})):[];c.value.push(...V),_.value=i.next_page_url||""}catch(o){if(C(o))return;console.error("Error fetching fetchVoicePost:",o)}w.value=!1}}},re={class:"radio-button"},le=["id","name","value"],ce=["for"],de=R({__name:"RadioButton",props:D({id:{},name:{},label:{},value:{default:""}},{modelValue:{default:""},modelModifiers:{}}),emits:["update:modelValue"],setup(r){const s=H(r,"modelValue");return(n,y)=>(b(),P("div",re,[Q(t("input",{id:`check_${r.id}`,"onUpdate:modelValue":y[0]||(y[0]=l=>s.value=l),class:"radio",type:"radio",name:r.name,value:r.value},null,8,le),[[X,s.value]]),t("label",{for:`check_${r.id}`,class:"label"},J(r.label),9,ce)]))}}),N=E(de,[["__scopeId","data-v-b3008432"]]),ue={class:"filter-container"},me={class:"filter-contents"},pe={class:"filter-item"},he={class:"select-block"},_e={class:"filter-item"},ve={class:"select-block"},ge={class:"filter-item"},fe={class:"select-block"},ye={class:"filter-buttons"},Ve={class:"button"},be={class:"button"},$e=R({__name:"VoicePostFilterModal",props:{isVisible:{type:Boolean},categories:{default:()=>[]},initCategory:{default:""},initSort:{default:"-score"},initGender:{default:0}},emits:["onCancel","onSearch"],setup(r,{emit:s}){const n=r,y=s,l=A(n.initCategory),k=[{name:"新着順",value:"-created_at"},{name:"人気順",value:"-score"},{name:"投稿順",value:"created_at"},{name:"ライク順",value:"-liked"}],h=A(n.initSort),C=["なし","男性","女性","その他"],c=A(n.initGender),$=()=>{l.value=n.initCategory,h.value=n.initSort,c.value=n.initGender,y("onCancel")},_=()=>y("onSearch",l.value,h.value,c.value);return(w,v)=>(b(),q(se,{"is-visible":r.isVisible,onOnClickOutside:$},{default:U(()=>[t("div",ue,[v[3]||(v[3]=t("div",{class:"filter-headline"},"検索フィルタ",-1)),t("div",me,[t("div",pe,[p(B,{text:"カテゴリ"}),t("div",he,[(b(!0),P(T,null,I(r.categories,(f,d)=>(b(),P("div",{key:d},[p(N,{id:`category${d}`,modelValue:m(l),"onUpdate:modelValue":v[0]||(v[0]=o=>O(l)?l.value=o:null),name:"category",label:f.name,value:f.value},null,8,["id","modelValue","label","value"])]))),128))])]),t("div",_e,[p(B,{text:"並び替え"}),t("div",ve,[(b(),P(T,null,I(k,(f,d)=>t("div",{key:d},[p(N,{id:`sort${d}`,modelValue:m(h),"onUpdate:modelValue":v[1]||(v[1]=o=>O(h)?h.value=o:null),name:"sort",label:f.name,value:f.value},null,8,["id","modelValue","label","value"])])),64))])]),t("div",ge,[p(B,{text:"性別"}),t("div",fe,[(b(),P(T,null,I(C,(f,d)=>t("div",{key:d},[p(N,{id:`gender${d}`,modelValue:m(c),"onUpdate:modelValue":v[2]||(v[2]=o=>O(c)?c.value=o:null),name:"gender",label:f,value:d},null,8,["id","modelValue","label","value"])])),64))])])]),t("div",ye,[t("div",Ve,[p(G,{text:"キャンセル",size:"x-small",color:"white","is-slim-font":"",onOnClick:$})]),t("div",be,[p(G,{text:"検索",size:"x-small",color:"banana","is-slim-font":"",onOnClick:_})])])])]),_:1},8,["is-visible"]))}}),Ae=E($e,[["__scopeId","data-v-86306170"]]),ke={class:"search-contents"},Ce={class:"filter-block"},Se={class:"filter-icon"},Pe={key:1,class:"empty"},we=R({__name:"casts",setup(r){W({title:"検索 | OTOBANANA",meta:[{hid:"description",name:"description",content:"音声投稿・ライブ配信サービスOTOBANANA (オトバナナ)の「検索」ページです。"},{hid:"og:title",name:"og:title",content:"検索 | OTOBANANA"},{hid:"og:description",name:"og:description",content:"音声投稿・ライブ配信サービスOTOBANANA (オトバナナ)の「検索」ページです。"}]});const s=Y(),{searchVoicePosts:n,addSearchVoicePostsApiUrl:y,isAddSearchVoicePostsLoading:l,voicePostCategories:k,fetchSearchVoicePost:h,fetchAddSearchVoicePost:C,fetchVoicePostCategory:c}=ie();Z(async()=>{await c()});const $=async e=>{const a=s.query.categoryKey||"",u=s.query.ordering||"-created_at",S=s.query.user__gender||0;await F(`${s.path}?keywords=${e}&categoryKey=${a}&ordering=${u}&user__gender=${S}`)},_=A(!1),w=x(()=>s.query.categoryKey||""),v=x(()=>s.query.ordering||"-score"),f=x(()=>parseInt(s.query.user__gender)||0),d=()=>_.value=!0,o=()=>_.value=!1,i=async(e,a,u)=>{const S=s.query.keywords||"";await F(`${s.path}?keywords=${S}&categoryKey=${e}&ordering=${a}&user__gender=${u}`),_.value=!1},V=async()=>await C();return ee(()=>s.query,async e=>{const a=e.keywords||"",u=e.categoryKey||"",S=e.ordering||"-created_at",g=e.user__gender||0;await h(a,u,S,g)},{immediate:!0}),(e,a)=>{const u=te;return b(),P("div",ke,[p(u,null,{default:U(()=>[p(ae,{onOnEnter:$}),t("div",Ce,[t("button",{class:"filter-button",onClick:d},[t("span",Se,[p(oe,{name:"narrow-down","sp-size":"24","is-fixed-in-sp":""})]),a[0]||(a[0]=t("span",{class:"filter-text"},"検索フィルタ",-1))])]),m(n)?.length?(b(),q(ne,{key:0,"voice-post-list-alias":m(n),"is-detail-style":"","use-load-more":"","has-more-data":!!m(y),"is-add-loading":m(l),onOnAddRequest:V},null,8,["voice-post-list-alias","has-more-data","is-add-loading"])):(b(),P("div",Pe,"音声投稿が見つかりませんでした")),p(Ae,{"is-visible":m(_),categories:m(k),"init-category":m(w),"init-sort":m(v),"init-gender":m(f),onOnSearch:i,onOnCancel:o},null,8,["is-visible","categories","init-category","init-sort","init-gender"])]),_:1})])}}}),He=E(we,[["__scopeId","data-v-c1464576"]]);export{He 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.