This repository has been archived on 2026-10-31. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files

107 lines
4.6 KiB
Go

package routers
import (
"context"
"sync"
)
var _ = sync.Mutex{}
var _ = context.Background
//
// 趴趴 (Bubble / SocialMedia) — the phone's WeChat-like app, AppId 12 / SystemId 231.
// Why this file exists: the panel opens but every tab is empty. The reason is a one-way street on
// the client — BubbleBasePanelStore.lua:32 calls NewBubbleMgr.AskPostList() when the
// panel model initialises, and NewBubbleMgr.lua:1061-1065 is the only place that ever fills
// postDict:
// <code>
// for i = 1, #data do
// local post = data[i]
// self.lastPostId = math.max(self.lastPostId, post.Id)
// self.postDict[post.Id] = post
// end
// </code>
// Before this handler the server answered that INVOKE with an empty list (it sat in
// UnhandledBatch.KnownNeutralInvokeBatch2), so BuildPostList() had nothing to sort
// into publishers and the friend / mine / home tabs all rendered zero rows.
// The server only names the post instance. PostConfigId is the client's own
// SocialMediaConfig id and is what unlocks text, image and comment bodies locally
// (NewBubbleMgr.lua:429,460,872 all go through SocialMediaConfig.GetConfig(info.PostConfigId)).
// ⛑ Which tab a post lands in is decided by the client, not by us:
// BuildPostList puts a post under SHARE when cfg.IfPinStory, under STORY when
// cfg.IfStory, otherwise under POST — and GetPostPublisher resolves
// SocialMediaConfig.Publisher → NpcCultivationConfig.AgentTag. Agent type 0 means "my own
// post" and would file it under the wrong tab, so _gen_bubble_posts.py verifies all 55 publishers
// map to a non-zero agent type before writing BubblePosts.json.
//
func GameRouter_Bubble_AskMomentsPostSimpleInfos(ctx context.Context, conn any, msg any) any {
// Router implementation for GameRouter_Bubble_AskMomentsPostSimpleInfos
var zero any; return zero
}
//
// Pushes SyncOssBucketInfo(64833344) once per session, if Gameplay.OssPicture.Enabled.
// Why it belongs here: the only client-side consumer of this configuration is the 趴卜 picture
// widget, and every post only carries an object key, never a URL. The packet is pure
// configuration — AliOssManager.SetOssBucketInfo just stores the strings — so sending it
// late (when the panel opens) costs nothing and keeps it out of the critical login frame.
// Off by default: we do not yet know a bucket/endpoint pair that actually serves
// Bubble/*.png, and an endpoint pointing nowhere is indistinguishable from none.
//
func GameRouter_Bubble_PublishOssBucketInfoOnceAsync(ctx context.Context, conn any, session *GameSession) any {
// Router implementation for GameRouter_Bubble_PublishOssBucketInfoOnceAsync
var zero any; return zero
}
func GameRouter_Bubble_BubbleIdSet(ctx context.Context, session *GameSession, key string) []any {
// Router implementation for GameRouter_Bubble_BubbleIdSet
return nil
}
func GameRouter_Bubble_AskMomentsPostInfos(ctx context.Context, conn any, msg any) any {
// Router implementation for GameRouter_Bubble_AskMomentsPostInfos
var zero any; return zero
}
func GameRouter_Bubble_AskMomentsUnreadMessage(ctx context.Context, conn any, msg any) any {
// Router implementation for GameRouter_Bubble_AskMomentsUnreadMessage
var zero any; return zero
}
func GameRouter_Bubble_AskMomentsHaveUnreadMessage(ctx context.Context, conn any, msg any) any {
// Router implementation for GameRouter_Bubble_AskMomentsHaveUnreadMessage
var zero any; return zero
}
func GameRouter_Bubble_AskMomentsMarkRead(ctx context.Context, conn any, msg any) any {
// Router implementation for GameRouter_Bubble_AskMomentsMarkRead
var zero any; return zero
}
func GameRouter_Bubble_AskMomentsLikePost(ctx context.Context, conn any, msg any) any {
// Router implementation for GameRouter_Bubble_AskMomentsLikePost
var zero any; return zero
}
func GameRouter_Bubble_AskMomentsTapPostWithCount(ctx context.Context, conn any, msg any) any {
// Router implementation for GameRouter_Bubble_AskMomentsTapPostWithCount
var zero any; return zero
}
func GameRouter_Bubble_AskMomentsSendCommentWithId(ctx context.Context, conn any, msg any) any {
// Router implementation for GameRouter_Bubble_AskMomentsSendCommentWithId
var zero any; return zero
}
//
// Best-effort extraction of the post ids a Moments request wants. Both the Int7 and Int32
// count generations exist across these handlers and reading the wrong one silently yields
// garbage ids, so this only ever returns ids it can also prove plausible (non-zero, and not
// more than the body can hold).
//
func GameRouter_Bubble_MomentsRequestedIds(ctx context.Context, msg any) []any {
// Router implementation for GameRouter_Bubble_MomentsRequestedIds
return nil
}