157 lines
5.4 KiB
Plaintext
157 lines
5.4 KiB
Plaintext
|
|
syntax = "v1"
|
||
|
|
|
||
|
|
type (
|
||
|
|
ThreadsAccountData {
|
||
|
|
ID string `json:"id"`
|
||
|
|
DisplayName string `json:"display_name,omitempty"`
|
||
|
|
Username string `json:"username,omitempty"`
|
||
|
|
ThreadsUserID string `json:"threads_user_id,omitempty"`
|
||
|
|
PersonaID string `json:"persona_id,omitempty"` // deprecated: persona is chosen per publish, not bound to account
|
||
|
|
BrowserConnected bool `json:"browser_connected"`
|
||
|
|
ApiConnected bool `json:"api_connected"`
|
||
|
|
Status string `json:"status"`
|
||
|
|
CreateAt int64 `json:"create_at"`
|
||
|
|
UpdateAt int64 `json:"update_at"`
|
||
|
|
}
|
||
|
|
|
||
|
|
ListThreadsAccountsData {
|
||
|
|
List []ThreadsAccountData `json:"list"`
|
||
|
|
ActiveAccountID string `json:"active_account_id"`
|
||
|
|
}
|
||
|
|
|
||
|
|
CreateThreadsAccountReq {
|
||
|
|
DisplayName string `json:"display_name,optional"`
|
||
|
|
Activate *bool `json:"activate,optional"`
|
||
|
|
}
|
||
|
|
|
||
|
|
UpdateThreadsAccountReq {
|
||
|
|
DisplayName *string `json:"display_name,optional"`
|
||
|
|
PersonaID *string `json:"persona_id,optional"` // deprecated: use persona_id in publish payload instead
|
||
|
|
}
|
||
|
|
|
||
|
|
ThreadsAccountPath {
|
||
|
|
ID string `path:"id" validate:"required"`
|
||
|
|
}
|
||
|
|
|
||
|
|
ThreadsAccountConnectionPrefs {
|
||
|
|
SearchViaApi bool `json:"search_via_api"`
|
||
|
|
SearchSourceMode string `json:"search_source_mode"`
|
||
|
|
PublishViaApi bool `json:"publish_via_api"`
|
||
|
|
DevMode bool `json:"dev_mode"`
|
||
|
|
ScrapeReplies bool `json:"scrape_replies"`
|
||
|
|
RepliesPerPost int `json:"replies_per_post"`
|
||
|
|
PublishHeaded bool `json:"publish_headed"`
|
||
|
|
PlaywrightDebug bool `json:"playwright_debug"`
|
||
|
|
}
|
||
|
|
|
||
|
|
ThreadsAccountConnectionData {
|
||
|
|
AccountID string `json:"account_id"`
|
||
|
|
AccountName string `json:"account_name"`
|
||
|
|
Username string `json:"username,omitempty"`
|
||
|
|
BrowserConnected bool `json:"browser_connected"`
|
||
|
|
ApiConnected bool `json:"api_connected"`
|
||
|
|
Prefs ThreadsAccountConnectionPrefs `json:"prefs"`
|
||
|
|
}
|
||
|
|
|
||
|
|
UpdateThreadsAccountConnectionReq {
|
||
|
|
SearchViaApi *bool `json:"search_via_api,optional"`
|
||
|
|
SearchSourceMode *string `json:"search_source_mode,optional"`
|
||
|
|
PublishViaApi *bool `json:"publish_via_api,optional"`
|
||
|
|
DevMode *bool `json:"dev_mode,optional"`
|
||
|
|
ScrapeReplies *bool `json:"scrape_replies,optional"`
|
||
|
|
RepliesPerPost *int `json:"replies_per_post,optional"`
|
||
|
|
PublishHeaded *bool `json:"publish_headed,optional"`
|
||
|
|
PlaywrightDebug *bool `json:"playwright_debug,optional"`
|
||
|
|
}
|
||
|
|
|
||
|
|
ImportThreadsAccountSessionReq {
|
||
|
|
StorageState string `json:"storageState" validate:"required"`
|
||
|
|
}
|
||
|
|
|
||
|
|
ImportThreadsAccountSessionData {
|
||
|
|
Success bool `json:"success"`
|
||
|
|
Valid bool `json:"valid"`
|
||
|
|
Synced bool `json:"synced"`
|
||
|
|
AccountID string `json:"account_id"`
|
||
|
|
Username string `json:"username,omitempty"`
|
||
|
|
Message string `json:"message"`
|
||
|
|
UpdateAt int64 `json:"update_at"`
|
||
|
|
}
|
||
|
|
|
||
|
|
ThreadsAccountAiSettingsData {
|
||
|
|
AccountID string `json:"account_id"`
|
||
|
|
Provider string `json:"provider"`
|
||
|
|
Model string `json:"model"`
|
||
|
|
ResearchProvider string `json:"research_provider,omitempty"`
|
||
|
|
ResearchModel string `json:"research_model,omitempty"`
|
||
|
|
ApiKeys map[string]string `json:"api_keys"`
|
||
|
|
ApiKeysConfigured map[string]interface{} `json:"api_keys_configured"`
|
||
|
|
}
|
||
|
|
|
||
|
|
UpdateThreadsAccountAiSettingsReq {
|
||
|
|
Provider *string `json:"provider,optional"`
|
||
|
|
Model *string `json:"model,optional"`
|
||
|
|
ResearchProvider *string `json:"research_provider,optional"`
|
||
|
|
ResearchModel *string `json:"research_model,optional"`
|
||
|
|
ApiKeys map[string]string `json:"api_keys,optional"`
|
||
|
|
}
|
||
|
|
|
||
|
|
UpdateThreadsAccountHandlerReq {
|
||
|
|
ThreadsAccountPath
|
||
|
|
UpdateThreadsAccountReq
|
||
|
|
}
|
||
|
|
|
||
|
|
UpdateThreadsAccountConnectionHandlerReq {
|
||
|
|
ThreadsAccountPath
|
||
|
|
UpdateThreadsAccountConnectionReq
|
||
|
|
}
|
||
|
|
|
||
|
|
ImportThreadsAccountSessionHandlerReq {
|
||
|
|
ThreadsAccountPath
|
||
|
|
ImportThreadsAccountSessionReq
|
||
|
|
}
|
||
|
|
|
||
|
|
UpdateThreadsAccountAiSettingsHandlerReq {
|
||
|
|
ThreadsAccountPath
|
||
|
|
UpdateThreadsAccountAiSettingsReq
|
||
|
|
}
|
||
|
|
)
|
||
|
|
|
||
|
|
@server(
|
||
|
|
group: threads_account
|
||
|
|
prefix: /api/v1/threads-accounts
|
||
|
|
middleware: AuthJWT
|
||
|
|
tags: "ThreadsAccount"
|
||
|
|
summary: "Threads operating account endpoints. Requires Bearer JWT."
|
||
|
|
)
|
||
|
|
service gateway {
|
||
|
|
@handler listThreadsAccounts
|
||
|
|
get / returns (ListThreadsAccountsData)
|
||
|
|
|
||
|
|
@handler createThreadsAccount
|
||
|
|
post / (CreateThreadsAccountReq) returns (ThreadsAccountData)
|
||
|
|
|
||
|
|
@handler getThreadsAccount
|
||
|
|
get /:id (ThreadsAccountPath) returns (ThreadsAccountData)
|
||
|
|
|
||
|
|
@handler updateThreadsAccount
|
||
|
|
patch /:id (UpdateThreadsAccountHandlerReq) returns (ThreadsAccountData)
|
||
|
|
|
||
|
|
@handler activateThreadsAccount
|
||
|
|
post /:id/activate (ThreadsAccountPath)
|
||
|
|
|
||
|
|
@handler getThreadsAccountConnection
|
||
|
|
get /:id/connection (ThreadsAccountPath) returns (ThreadsAccountConnectionData)
|
||
|
|
|
||
|
|
@handler updateThreadsAccountConnection
|
||
|
|
patch /:id/connection (UpdateThreadsAccountConnectionHandlerReq) returns (ThreadsAccountConnectionData)
|
||
|
|
|
||
|
|
@handler importThreadsAccountSession
|
||
|
|
post /:id/session/import (ImportThreadsAccountSessionHandlerReq) returns (ImportThreadsAccountSessionData)
|
||
|
|
|
||
|
|
@handler getThreadsAccountAiSettings
|
||
|
|
get /:id/ai-settings (ThreadsAccountPath) returns (ThreadsAccountAiSettingsData)
|
||
|
|
|
||
|
|
@handler updateThreadsAccountAiSettings
|
||
|
|
put /:id/ai-settings (UpdateThreadsAccountAiSettingsHandlerReq) returns (ThreadsAccountAiSettingsData)
|
||
|
|
}
|