Build 574548stable
Module 734057
10,055 characters · in no known chunkDependencies
Required by (537)
5471310271694489842103641075715823173892422629814301083171733164333583590340169414024463245494462824767148686559475892361230619166258362849632386399564622647496644267319699457113274399748477713877584814378214990804909249186892960934749556196782101392102853104731105009105289107632107795108959112107112389112753116956121127121806123393123677123917123973130553131677135978138617139286140069140539141157143657145567149741156867157550158956159730167132171076171950174768175269175671176360177068177141178347178418180170180662181622183041184809185522185657187654190930191701197808198525202195205761206778207133207777212053217424218152218785219065223863224868225142232492232571232835237749239705240591241188241499242874243258246943250719251632251766252726256265259374263356264322266645274541277370280157282108283012288254288539291247297460297469298236302959304232304578308368308528308726309010309777309858310031312006312625313961313998315206315240315790320080323073323350325909328857330001333179333369334295334738337371343328347135348833349230349435350150350527350701352018352043352123353202354583361926370997373397374084376728376943378570380335381687381689384059387755390248392553394412394871394953401124401155401843402857403895405916406595406704408346409352413528417360418208418838419534422258422844424798427080429933430795435183435470436283436405438407439129439147444261447215448290448613450149450740450827451409451556451909451919453314454058456874458294463105464035467691468389470710471993473503473529474399475706477156477427479975480595480890481477483883484724485296485394486524487626488358488926490714493336496879499211503509508654513480514581516311517092518769519222519342525828527678529942530209530789530804530912531519537808538899539895541712543465545185546183547166550151552258552618555067556300557740560595561965562153565846566331566396566668568548568598570314572044574660575293576705577593578623578839583955584569584777586660589935591552593284595244602350602902607407607508607567616356617710619921620018624265625928627669628691631963632789636922639288640132641703645959648427649963651649652364655098658128659617663912665440669953672957675171677877679804682455684339685374685961689035691060692986693806695311695633696451700331704456706083707335713132714114716965717125720882722855725792728033729398730852731383732755735547738266739174739455741231741961742424746793753738753806754744758873761640763375763754767581767675768038768953769765774300775427776781776971778595782091787458790535793322795816796175798286799061802958803977806677807632808323808728811024813564816578816662817636820431822074822382825453825894827343827641831688835835837528841811843626844789847599851588853145853742857500859524860071861464862544863036863922866842867455870748871237872243873614876717877133878317879732885437885918886235886393887560888250889186889460892340893605901472903209903369911315912018914119914905917012920639921955924985928078931260931480933958935505936388936449937767943577944043944052944775945886946228950373951727953832954243954784956549956703957292958720960755961349961973963307965162966833969508969632970048970278970309973153973854976639978994981714983161984624990474
Lazily required by (0)none
Requires (18)
Lazily requires (0)none
Source Raw
function(e,t,n){"use strict";n.d(t,{A:()=>el,D:()=>B}),n(205816);var i=n(735438),r=n.n(i),s=n(61090),a=n(17928),o=n(228366),l=n(723176),u=n(154049),c=n(531743),d=n(453001),_=n(736400),h=n(311016),f=n(626584),E=n(181079),p=n(95701),m=n(403362),g=n(935208),A=n(280450),I=n(71393),T=n(287809),S=n(652215);let N=new f.A("ChannelStore"),C={},y={},O={},R={},v=null,b={},L={},D={},w=0,P={},M={},x=new Set,U={},k=0,G={},V=0,F=0;class B{static loadAllMissingChannels(){let e=I.A.getGuildIds().filter(e=>!x.has(e));return this.loadGuildIds(e)}static loadGuildFromChannelId(e){return null==e?null:B.loadGuildIds([Y(e)?.guild_id])}static loadGuildIds(e){let t=e.filter(m.Vq);if(0===t.length)return null;let n=l.A.database();if(null==n||!t.some(e=>!x.has(e)))return null;let i=k;return(0,u.ES)("loadChannels",async()=>{let e=t.map(e=>{if(x.has(e))return null;if(null!=U[e])return N.fileOnly(`Skipping loading ${e} because a load is pending`),null;let t=c.A.getAsync(n,e).then(t=>(N.fileOnly(`Lazy loaded channels for ${e} #:${t.length}`),{guildId:e,channels:t}));return U[e]=t,{guildId:e,promise:t}}).filter(m.Vq),r=e.map(e=>e.promise);try{let t=await Promise.all(r);if(k!==i)return N.fileOnly("lastResetTime has changed, skipping loads for "+e.map(e=>e.guildId)),null;let n=t.filter(e=>!x.has(e.guildId));await o.h.dispatch({type:"LOAD_CHANNELS",channels:n})}catch(t){for(let n of(N.error("Failed to load channels from disk for "+e.map(e=>e.guildId),t),e))delete U[n.guildId];throw t}return null})}}function H(e,t,n){if(null==e||"null"===e||x.has(e)||0===t&&d.A.hasGuild(e))return;let i=l.A.database();if(null==i)return;N.verbose(`hydrating guild (guild: ${e}, trace: ${n})`);let r=(0,u.Ek)(`ensureGuildLoaded(${e})`,()=>c.A.getSync(i,e),"ensureGuildLoaded");if(null==r){x.add(e),d.A.restored(e),N.log(`load returned null; early returning (guild: ${e}, database: ${i})`);return}let[a,o]=r;for(let n of((0,_.Ay)(a),0!==t&&(F+=1),x.add(e),d.A.restored(e),s.A.mark("\u2757",`loaded guild channels (guild: ${e})`,o),a))Object.hasOwn(y,n.id)||Z((0,p.oh)(n));N.verbose(`hydration complete (guild: ${e}, channels: ${a.length}, guilds_loaded: ${F})`)}function j(e,t,n){if(!Object.hasOwn(y,e)&&!Object.hasOwn(R,e)&&!Object.hasOwn(b,e)&&!Object.hasOwn(M,e)&&1===t){let i=d.A.getBasicChannel(e);i?.guild_id!=null&&H(i.guild_id,t,n)}}function W(e){if(N.fileOnly(`Deleting guild channels for ${e}`),null!=O[e]){for(let t of g.default.keys(O[e]))delete y[t];delete O[e]}null!=L[e]&&delete L[e]}function Y(e){return j(e,0,"getBasicChannel"),y[e]??R[e]??b[e]??M[e]??d.A.getBasicChannel(e)}function K(e){return j(e,1,"getChannel"),y[e]??R[e]??b[e]??M[e]??G[e]}function $(e){e.isPrivate()?(delete G[e.id],z(e)):e.isThread()?q(e):p.uL.has(e.type)&&Z(e)}function z(e){if(null!=e.recipients.find(e=>(0,h.A)(e)))return!1;R[e.id]=e,e.type===S.rbe.DM&&(D[e.getRecipientId()]=e.id),w+=1}function q(e){let t=y[e.parent_id];b[e.id]=e.merge({nsfw:t?.nsfw===!0,parentChannelThreadType:t?.type}),e.isScheduledForDeletion()&&o.h.dispatch({type:"THREAD_DELETE",channel:e})}function Z(e){let{id:t,guild_id:n}=e;y[t]=e,O[n]=O[n]??{},O[n][t]=e,P[n]=(P[n]??0)+1,null!=e.linkedLobby?(L[n]=L[n]??{},L[n][t]=e):delete L[n]?.[t]}function X(e){let{id:t,channels:n,threads:i}=e;switch(n.op){case"full_sync":for(let e of(N.fileOnly(`ConnectionOpen contained full channels for ${t} #:${n.items.length}`),W(t),x.add(t),d.A.restored(t),n.items))Z(e);break;case"update":for(let e of((n.writes.length>0||n.deletes.length>0)&&d.A.invalidate(t),n.deletes))ee(y[e]);for(let e of n.writes)Z(e)}if(null!=i)for(let e of i)q(e)}function Q(e){if(!p.A_.has(e.channel.type))return!1;let t=K(e.channel.id);$(t=null==t?e.channel:t.merge({...e.channel.toJS(),bitrate:e.channel.bitrate??t.bitrate}))}function J(e){let{threads:t}=e;t.forEach(e=>{p.A_.has(e.type)&&$((0,p.UE)(e))})}function ee(e){if(null==e)return;let t=e.guild_id;e.id in R&&delete R[e.id],e.id in y&&delete y[e.id],e.id in b&&delete b[e.id],null!=t&&(null!=O[t]&&e.id in O[t]&&delete O[t][e.id],null!=L[t]&&e.id in L[t]&&delete L[t][e.id]),null==e.guild_id||p.Le.has(e.type)?(0,p.Gw)(e.type)&&(w+=1):P[e.guild_id]=(P[e.guild_id]??0)+1}function et(e){let{channel:t}=e,n=y[t.id]??R[t.id]??b[t.id];if(null==n)return!1;ee(n),function(e){if("basicPermissions"in e||e.type!==S.rbe.DM)return;let t=e.getRecipientId();D[t]===e.id&&delete D[t]}(n)}function en(e){let{messages:t}=e;for(let e of t)null!=e.thread&&!(e.thread.id in b)&&p.A_.has(e.thread.type)&&q((0,p.UE)(e.thread))}function ei(e){let{data:t}=e;t.forEach(e=>{let{messages:t,threads:n,channels:i}=e;t.forEach(e=>{e.forEach(e=>{er(e.thread)})}),n.forEach(er),i.forEach(e=>{let t=(0,p.UE)(e),n=null!=K(e.id),i=null!=G[e.id];t.isPrivate()&&(!n||i)?G[t.id]=t:n||$(t)})})}function er(e){null!=e&&!(e.id in b)&&p.A_.has(e.type)&&q((0,p.UE)(e))}function es(){for(let e in M={},E.A.getFavoriteChannels()){let t=E.A.getCategoryRecord(e);null!=t&&(M[e]=t)}}class ea extends a.Ay.Store{static displayName="ChannelStore";initialize(){this.waitFor(A.default,d.A,E.A,I.A,T.default),this.syncWith([E.A],es)}hasChannel(e){return null!=Y(e)}getBasicChannel(e){if(null!=e)return Y(e)}getChannel(e){if(null!=e)return K(e)}loadAllGuildAndPrivateChannelsFromDisk(){for(let e of I.A.getGuildIds())H(e,1,"loadAllGuildAndPrivateChannelsFromDisk");return{...y,...R}}getChannelIds(e){return(H(e,0,"getChannelIds"),null==e)?g.default.keys(R):g.default.keys(d.A.getGuildBasicChannels(e)??O[e]??C)}getMutablePrivateChannels(){return R}getMutableBasicGuildChannelsForGuild(e){return H(e,0,"getMutableBasicGuildChannelsForGuild"),d.A.getGuildBasicChannels(e)??O[e]??C}getMutableGuildChannelsForGuild(e){return H(e,1,"getMutableGuildChannelsForGuild"),O[e]??C}getSortedLinkedChannelsForGuild(e){return r().values(L[e]??C).sort((e,t)=>g.default.compare(e.id,t.id))}getSortedPrivateChannels(){return r()(R).values().sort((e,t)=>g.default.compare(e.lastMessageId,t.lastMessageId)).reverse().value()}getDMFromUserId(e){if(null!=e)return D[e]}getDMChannelFromUserId(e){if(null!=e)return this.getChannel(D[e])}getMutableDMsByUserIds(){return D}getDMUserIds(){return g.default.keys(D)}getPrivateChannelsVersion(){return w}getGuildChannelsVersion(e){return P[e]??0}getAllThreadsForParent(e){return r().values(b).filter(t=>t.parent_id===e)}getAllThreadsForGuild(e){return r().values(b).filter(t=>t.guild_id===e)}getInitialOverlayState(){return{...y,...R,...b}}getDebugInfo(){return{loadedGuildIds:Array.from(x).sort(g.default.compare),pendingGuildLoads:Object.keys(U).sort(g.default.compare),guildSizes:Object.keys(O).sort(g.default.compare).map(e=>`${e}: ${eo(e)}`)}}}function eo(e){return null==O[e]?null:Object.keys(O[e]).length}let el=new ea(o.h,{BACKGROUND_SYNC:function(e){let{guilds:t}=e,n=O;y={},O={},P={},L={},t.forEach(e=>{if("unavailable"===e.data_mode)N.fileOnly(`Restoring guild channels b/c unavailable in bg sync, for ${e.id} #:${eo(e.id)}`),r().forEach(n[e.id],Z);else if("partial"===e.data_mode){N.fileOnly(`Restoring guild channels b/c partial in bg sync, for ${e.id} #:${eo(e.id)}`),r().forEach(n[e.id],Z);let t=e.partial_updates.deleted_channel_ids??[];t.length>0&&(H(e.id,1,"handleBackgroundSync"),t.forEach(e=>ee(y[e]))),e.partial_updates.channels?.forEach(t=>Z((0,p.UE)(t,e.id)))}else N.fileOnly(`BG sync contained full channels for ${e.id} #:${e.channels.length}`),W(e.id),x.add(e.id),d.A.restored(e.id),e.channels.forEach(t=>Z((0,p.UE)(t,e.id)))})},CACHE_LOADED_LAZY:function(e){for(let[t,n]of(V=Math.max(V,e.guilds.length),e.guildChannels))for(let e of(N.fileOnly(`Lazy cache contained full guild channels for ${t} #:${n.length}`),x.add(t),n))$((0,p.oh)(e))},CACHE_LOADED:function(e){V=Math.max(V,e.guilds.length);let{privateChannels:t,initialGuildChannels:n}=e;for(let e of[t,n])for(let t of e)$((0,_.n2)((0,p.oh)(t)));let i=n[0]?.guild_id;null!=i&&(N.fileOnly(`Early cache contained full guild channels for ${i}`),x.add(i))},CHANNEL_CREATE:function(e){$(e.channel)},CHANNEL_DELETE:et,CHANNEL_RECIPIENT_ADD:function(e){let t=K(e.channelId),n=A.default.getId();return!!t?.isPrivate()&&($(t.addRecipient(e.user.id,e.nick,n)),!0)},CHANNEL_RECIPIENT_REMOVE:function(e){let t=K(e.channelId);return!!t?.isPrivate()&&($(t.removeRecipient(e.user.id)),!0)},CHANNEL_UPDATES:function(e){let t=e.channels.some(e=>{let t=K(e.id);return e.nsfw!==t?.nsfw||e.type!==t?.type});for(let t of e.channels)$(t);t&&Object.values(b).forEach(e=>$(e))},CONNECTION_OPEN_SUPPLEMENTAL:function(e){let{lazyPrivateChannels:t}=e;null!=v&&(R={},v.forEach(z)),t.forEach(z)},CONNECTION_OPEN:function(e){let t=O;for(let n of(D={},y={},O={},L={},b={},P={},G={},U={},k=Date.now(),v=e.initialPrivateChannels,e.initialPrivateChannels.forEach(z),e.guilds))"partial"===n.dataMode&&(r().forEach(t[n.id],Z),N.fileOnly(`Restoring guild channels for ${n.id} #:${eo(n.id)}`)),X(n);es()},CHANNEL_PERMISSIONS_PUT_OVERWRITE_SUCCESS:function(e){let{channelId:t,overwrite:n}=e,i=K(t);if(null==i)return!1;$(i.set("permissionOverwrites",{...i.permissionOverwrites,[n.id]:n}))},CHANNEL_PERMISSIONS_DELETE_OVERWRITE_SUCCESS:function(e){let{channelId:t,overwriteId:n}=e,i=K(t);if(null==i)return!1;let r={...i.permissionOverwrites};delete r[n],$(i.set("permissionOverwrites",r))},GUILD_CREATE:function(e){X(e.guild)},GUILD_DELETE:function(e){N.fileOnly(`GuildDelete of ${e.guild.id}`),W(e.guild.id),x.delete(e.guild.id),d.A.invalidate(e.guild.id)},LOAD_ARCHIVED_THREADS_SUCCESS:J,LOAD_CHANNELS:function(e){for(let{guildId:t,channels:n}of e.channels)for(let e of(N.fileOnly(`Lazy loaded guild channels for ${t}`),(0,_.Ay)(n),x.add(t),d.A.restored(t),n))Object.hasOwn(y,e.id)||Z((0,p.oh)(e));return!1},LOAD_MESSAGES_AROUND_SUCCESS:en,LOAD_MESSAGES_SUCCESS:en,LOAD_THREADS_SUCCESS:J,LOGOUT:function(){N.fileOnly("initializeClear()"),D={},y={},O={},P={},L={},R={},G={},b={},x=new Set,U={},k=Date.now()},OVERLAY_INITIALIZE:function(e){for(let t of e.channels)$((0,_.n2)((0,p.oh)(t)))},SEARCH_MESSAGES_SUCCESS:ei,MOD_VIEW_SEARCH_MESSAGES_SUCCESS:ei,THREAD_CREATE:Q,THREAD_DELETE:et,THREAD_LIST_SYNC:function(e){let{threads:t}=e;t.forEach(e=>{p.A_.has(e.type)&&$(e)})},THREAD_UPDATE:Q})}