Documentation
¶
Index ¶
- func AESKeyToBase64(hexKey string) string
- func DownloadFileFromCDN(ctx context.Context, encryptQueryParam, aesKeyBase64 string) ([]byte, error)
- func ExtractImageURLs(text string) []string
- func ExtractURL(text string) string
- func HexKeyToBase64(hexKey string) string
- func IsURL(text string) bool
- func MarkdownToPlainText(text string) string
- func NewClientID() string
- func SaveLinkToLinkhoard(ctx context.Context, saveDir, rawURL string) (string, error)
- func SendMediaFromPath(ctx context.Context, client *ilink.Client, toUserID, path, contextToken string) error
- func SendMediaFromURL(ctx context.Context, client *ilink.Client, ...) error
- func SendTextReply(ctx context.Context, client *ilink.Client, ...) error
- func SendTypingState(ctx context.Context, client *ilink.Client, userID, contextToken string) error
- type AgentFactory
- type AgentMeta
- type Handler
- func (h *Handler) HandleMessage(ctx context.Context, client *ilink.Client, msg ilink.WeixinMessage)
- func (h *Handler) SetAgentMetas(metas []AgentMeta)
- func (h *Handler) SetAgentWorkDirs(workDirs map[string]string)
- func (h *Handler) SetCustomAliases(aliases map[string]string)
- func (h *Handler) SetDefaultAgent(name string, ag agent.Agent)
- func (h *Handler) SetSaveDir(dir string)
- type LinkMetadata
- type SaveDefaultFunc
- type UploadedFile
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AESKeyToBase64 ¶
AESKeyToBase64 converts a hex AES key to base64(hex_string) format for message items. Used for outbound messages (file/voice/video).
func DownloadFileFromCDN ¶
func DownloadFileFromCDN(ctx context.Context, encryptQueryParam, aesKeyBase64 string) ([]byte, error)
DownloadFileFromCDN downloads and decrypts a file from the WeChat CDN.
func ExtractImageURLs ¶
ExtractImageURLs extracts image URLs from markdown text.
func HexKeyToBase64 ¶
HexKeyToBase64 converts a hex AES key to base64(raw_bytes) format. Used for image_item.aeskey which is raw hex.
func MarkdownToPlainText ¶
MarkdownToPlainText converts markdown to readable plain text for WeChat.
func NewClientID ¶
func NewClientID() string
NewClientID generates a new unique client ID for message correlation.
func SaveLinkToLinkhoard ¶
SaveLinkToLinkhoard fetches a URL and saves it as a Linkhoard-compatible markdown file. WeChat articles use direct fetch with browser headers; other sites use Jina Reader.
func SendMediaFromPath ¶
func SendMediaFromPath(ctx context.Context, client *ilink.Client, toUserID, path, contextToken string) error
SendMediaFromPath reads a local file and sends it as a media message.
func SendMediaFromURL ¶
func SendMediaFromURL(ctx context.Context, client *ilink.Client, toUserID, mediaURL, contextToken string) error
SendMediaFromURL downloads a file from a URL and sends it as a media message.
Types ¶
type AgentFactory ¶
AgentFactory creates an agent by config name. Returns nil if the name is unknown.
type AgentMeta ¶
type AgentMeta struct {
Name string
Type string // "acp", "cli", "http"
Command string // binary path or endpoint
Model string
}
AgentMeta holds static config info about an agent (for /status display).
type Handler ¶
type Handler struct {
// contains filtered or unexported fields
}
Handler processes incoming WeChat messages and dispatches replies.
func NewHandler ¶
func NewHandler(factory AgentFactory, saveDefault SaveDefaultFunc) *Handler
NewHandler creates a new message handler.
func (*Handler) HandleMessage ¶
HandleMessage processes a single incoming message.
func (*Handler) SetAgentMetas ¶
SetAgentMetas sets the list of all configured agents (for /status).
func (*Handler) SetAgentWorkDirs ¶
SetAgentWorkDirs sets the configured working directory for each agent.
func (*Handler) SetCustomAliases ¶
SetCustomAliases sets custom alias mappings from config.
func (*Handler) SetDefaultAgent ¶
SetDefaultAgent sets the default agent (already started).
func (*Handler) SetSaveDir ¶
SetSaveDir sets the directory for saving images and files.
type LinkMetadata ¶
type LinkMetadata struct {
Title string
Description string
Author string
OGImage string
Published string
Body string
}
LinkMetadata holds extracted metadata from a web page.
func FetchLinkMetadata ¶
func FetchLinkMetadata(ctx context.Context, rawURL string) (*LinkMetadata, error)
FetchLinkMetadata fetches a URL and extracts metadata from the HTML.
func FetchViaJina ¶
func FetchViaJina(ctx context.Context, rawURL string) (*LinkMetadata, error)
FetchViaJina fetches a URL via Jina Reader API and returns metadata + markdown body.
type SaveDefaultFunc ¶
SaveDefaultFunc persists the default agent name to config file.