Files
LocalAGI/services/connectors.go
Ettore Di Giacinto f0bd184fbd feat: add twitter action and connector (#58)
* feat: add twitter post action

Signed-off-by: mudler <mudler@localai.io>

* feat: handle twitter post messages limits

Signed-off-by: Ettore Di Giacinto <mudler@localai.io>

* feat: add twitter connector, unify client

Signed-off-by: Ettore Di Giacinto <mudler@localai.io>

* make sure answers do not exceed twitter maximum

---------

Signed-off-by: mudler <mudler@localai.io>
Signed-off-by: Ettore Di Giacinto <mudler@localai.io>
2025-03-19 22:14:32 +01:00

72 lines
1.7 KiB
Go

package services
import (
"encoding/json"
"github.com/mudler/LocalAgent/pkg/xlog"
"github.com/mudler/LocalAgent/services/connectors"
"github.com/mudler/LocalAgent/core/state"
)
const (
// Connectors
ConnectorIRC = "irc"
ConnectorTelegram = "telegram"
ConnectorSlack = "slack"
ConnectorDiscord = "discord"
ConnectorGithubIssues = "github-issues"
ConnectorGithubPRs = "github-prs"
ConnectorTwitter = "twitter"
)
var AvailableConnectors = []string{
ConnectorIRC,
ConnectorTelegram,
ConnectorSlack,
ConnectorDiscord,
ConnectorGithubIssues,
ConnectorGithubPRs,
ConnectorTwitter,
}
func Connectors(a *state.AgentConfig) []state.Connector {
conns := []state.Connector{}
for _, c := range a.Connector {
var config map[string]string
if err := json.Unmarshal([]byte(c.Config), &config); err != nil {
xlog.Info("Error unmarshalling connector config", err)
continue
}
switch c.Type {
case ConnectorTelegram:
cc, err := connectors.NewTelegramConnector(config)
if err != nil {
xlog.Info("Error creating telegram connector", err)
continue
}
conns = append(conns, cc)
case ConnectorSlack:
conns = append(conns, connectors.NewSlack(config))
case ConnectorDiscord:
conns = append(conns, connectors.NewDiscord(config))
case ConnectorGithubIssues:
conns = append(conns, connectors.NewGithubIssueWatcher(config))
case ConnectorGithubPRs:
conns = append(conns, connectors.NewGithubPRWatcher(config))
case ConnectorIRC:
conns = append(conns, connectors.NewIRC(config))
case ConnectorTwitter:
cc, err := connectors.NewTwitterConnector(config)
if err != nil {
xlog.Info("Error creating twitter connector", err)
continue
}
conns = append(conns, cc)
}
}
return conns
}