feat: implement telegram bot plugin (#1740)

This commit is contained in:
Athurg Gooth
2023-05-26 09:43:51 +08:00
committed by GitHub
parent a07d11e820
commit 1282fe732e
23 changed files with 577 additions and 15 deletions

View File

@ -9,6 +9,7 @@ import (
"github.com/pkg/errors"
"github.com/usememos/memos/api"
"github.com/usememos/memos/plugin/telegram"
"github.com/usememos/memos/server/profile"
"github.com/usememos/memos/store"
"github.com/usememos/memos/store/db"
@ -24,6 +25,8 @@ type Server struct {
ID string
Profile *profile.Profile
Store *store.Store
telegramRobot *telegram.Robot
}
func NewServer(ctx context.Context, profile *profile.Profile) (*Server, error) {
@ -45,6 +48,9 @@ func NewServer(ctx context.Context, profile *profile.Profile) (*Server, error) {
storeInstance := store.New(db.DBInstance, profile)
s.Store = storeInstance
telegramRobotHandler := newTelegramHandler(storeInstance)
s.telegramRobot = telegram.NewRobotWithHandler(telegramRobotHandler)
e.Use(middleware.LoggerWithConfig(middleware.LoggerConfig{
Format: `{"time":"${time_rfc3339}",` +
`"method":"${method}","uri":"${uri}",` +
@ -118,6 +124,9 @@ func (s *Server) Start(ctx context.Context) error {
if err := s.createServerStartActivity(ctx); err != nil {
return errors.Wrap(err, "failed to create activity")
}
go s.telegramRobot.Start(ctx)
return s.e.Start(fmt.Sprintf(":%d", s.Profile.Port))
}