peer

package
v0.1.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 5, 2026 License: MIT Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ChannelChatID added in v0.1.1

func ChannelChatID(channelID int64) int64

ChannelChatID converts a raw channel ID to the -100… chat ID form used by MessageEvent.ChatID, so cache keys match what commands look up.

Types

type AccessHashManager

type AccessHashManager struct {
	// contains filtered or unexported fields
}

AccessHashManager caches and resolves access hashes for peers.

func NewAccessHashManager

func NewAccessHashManager(api *tg.Client, store *Store) *AccessHashManager

func (*AccessHashManager) GetInputPeer

func (m *AccessHashManager) GetInputPeer(ctx context.Context, peerID int64) (tg.InputPeerClass, error)

func (*AccessHashManager) GetUserPeerFromMessage

func (m *AccessHashManager) GetUserPeerFromMessage(ctx context.Context, peer tg.InputPeerClass, msgID int, userID int64) (tg.InputPeerClass, error)

func (*AccessHashManager) GetUserPeerWithFallback

func (m *AccessHashManager) GetUserPeerWithFallback(ctx context.Context, userID int64, channelPeer tg.InputChannelClass) (tg.InputPeerClass, error)

func (*AccessHashManager) RegisterPeer

func (m *AccessHashManager) RegisterPeer(peerID int64, accessHash int64, peerType string)

func (*AccessHashManager) ResolveUsername

func (m *AccessHashManager) ResolveUsername(ctx context.Context, username string) (tg.InputPeerClass, error)

type PeerError

type PeerError struct {
	Code    string
	Message string
	Err     error
}

func (*PeerError) Error

func (e *PeerError) Error() string

func (*PeerError) Unwrap

func (e *PeerError) Unwrap() error

type Resolver

type Resolver struct {
	// contains filtered or unexported fields
}

Resolver is a lightweight peer resolver that delegates to AccessHashManager.

func NewResolver

func NewResolver(manager *AccessHashManager) *Resolver

func (*Resolver) RegisterPeer

func (r *Resolver) RegisterPeer(peerID int64, accessHash int64, peerType string)

func (*Resolver) ResolveFromChatID

func (r *Resolver) ResolveFromChatID(ctx context.Context, chatID int64) (tg.InputPeerClass, error)

func (*Resolver) ResolveUserFromMessage

func (r *Resolver) ResolveUserFromMessage(ctx context.Context, peer tg.InputPeerClass, msgID int, userID int64) (tg.InputPeerClass, error)

func (*Resolver) ResolveUserInChannel

func (r *Resolver) ResolveUserInChannel(ctx context.Context, channelPeer tg.InputChannelClass, userID int64) (tg.InputPeerClass, error)

func (*Resolver) ResolveUsername

func (r *Resolver) ResolveUsername(ctx context.Context, username string) (tg.InputPeerClass, error)

type Store added in v0.1.1

type Store struct {
	// contains filtered or unexported fields
}

Store persists access hashes so peer resolution survives restarts. Without it, channel commands fail with CHANNEL_INVALID until the peer is seen in an update again.

func NewStore added in v0.1.1

func NewStore(path string) *Store

NewStore loads (or starts) the peer cache at path.

func (*Store) Get added in v0.1.1

func (s *Store) Get(peerID int64) (accessHash int64, peerType string, ok bool)

Get returns the cached access hash for peerID.

func (*Store) Put added in v0.1.1

func (s *Store) Put(peerID, accessHash int64, peerType string)

Put records an access hash and persists it when it changed. Unchanged hashes (the common case on every update) cost no disk write.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL