Compare commits
4 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| cb6f1a394a | |||
| 9e38b000ec | |||
| 0a8409e66d | |||
| b76c7dd005 |
@@ -1,3 +1,4 @@
|
||||
.idea
|
||||
vendor
|
||||
bin
|
||||
docker-compose.override.yml
|
||||
|
||||
@@ -2,9 +2,12 @@
|
||||
|
||||
Telegram bot for anonymous messages 🎭✨
|
||||
|
||||
Currently deployed and working at https://t.me/meme_me_a_meme_bot for my channel.
|
||||
|
||||
---
|
||||
|
||||
[](https://goreportcard.com/report/github.com/nightnoryu/anon3anon)
|
||||
[](https://opensource.org/license/MIT)
|
||||
|
||||
## Building for local development
|
||||
|
||||
@@ -39,8 +42,8 @@ After that, copy the `docker-compose.override.example.yml` to `docker-compose.ov
|
||||
services:
|
||||
anon3anon:
|
||||
environment:
|
||||
TELEGRAM_BOT_TOKEN: 123:ABC # The token for your bot, obtained from t.me/BotFather
|
||||
OWNER_CHAT_ID: 123 # ID of your chat with your bot
|
||||
ANON3ANON_TELEGRAM_BOT_TOKEN: 123:ABC # The token for your bot, obtained from t.me/BotFather
|
||||
ANON3ANON_OWNER_CHAT_ID: 123 # ID of your chat with your bot
|
||||
```
|
||||
|
||||
And you're set! Use `docker compose` to manage the application:
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
/anon3anon
|
||||
@@ -1,14 +1,15 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"github.com/kelseyhightower/envconfig"
|
||||
"github.com/pkg/errors"
|
||||
)
|
||||
|
||||
func parseEnv() (*config, error) {
|
||||
c := new(config)
|
||||
if err := envconfig.Process(appID, c); err != nil {
|
||||
return nil, errors.Wrap(err, "failed to parse env")
|
||||
return nil, fmt.Errorf("failed to parse env: %w", err)
|
||||
}
|
||||
return c, nil
|
||||
}
|
||||
|
||||
+16
-10
@@ -5,9 +5,9 @@ import (
|
||||
"os"
|
||||
"os/signal"
|
||||
|
||||
"github.com/nightnoryu/anon3anon/pkg/infrastructure/jsonlog"
|
||||
"github.com/nightnoryu/anon3anon/pkg/infrastructure/telegram/handler"
|
||||
"github.com/nightnoryu/anon3anon/pkg/infrastructure/telegram/middleware"
|
||||
"github.com/nightnoryu/anon3anon/pkg/anon3anon/infrastructure/jsonlog"
|
||||
"github.com/nightnoryu/anon3anon/pkg/anon3anon/infrastructure/telegram/handler"
|
||||
"github.com/nightnoryu/anon3anon/pkg/anon3anon/infrastructure/telegram/middleware"
|
||||
|
||||
"github.com/go-telegram/bot"
|
||||
)
|
||||
@@ -22,13 +22,8 @@ func main() {
|
||||
logger.FatalError(err)
|
||||
}
|
||||
|
||||
opts := []bot.Option{
|
||||
bot.WithMiddlewares(middleware.NewLoggingMiddleware(logger)),
|
||||
bot.WithMessageTextHandler("/start", bot.MatchTypeExact, handler.NewStartCommandHandler(logger)),
|
||||
bot.WithDefaultHandler(handler.NewAnonymousMessagesHandler(logger, conf.OwnerChatID)),
|
||||
}
|
||||
|
||||
b, err := bot.New(conf.TelegramBotToken, opts...)
|
||||
options := initBotOptions(conf, logger)
|
||||
b, err := bot.New(conf.TelegramBotToken, options...)
|
||||
if err != nil {
|
||||
logger.FatalError(err)
|
||||
}
|
||||
@@ -46,3 +41,14 @@ func initLogger() jsonlog.Logger {
|
||||
})
|
||||
return logger
|
||||
}
|
||||
|
||||
func initBotOptions(conf *config, logger jsonlog.Logger) []bot.Option {
|
||||
startCommandHandler := handler.NewStartCommandHandler(logger)
|
||||
anonymousMessagesHandler := handler.NewAnonymousMessagesHandler(logger, conf.OwnerChatID)
|
||||
|
||||
return []bot.Option{
|
||||
bot.WithMiddlewares(middleware.NewLoggingMiddleware(logger)),
|
||||
bot.WithMessageTextHandler("/start", bot.MatchTypeExact, startCommandHandler),
|
||||
bot.WithDefaultHandler(anonymousMessagesHandler),
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,7 +5,6 @@ go 1.24
|
||||
require (
|
||||
github.com/go-telegram/bot v1.13.3
|
||||
github.com/kelseyhightower/envconfig v1.4.0
|
||||
github.com/pkg/errors v0.9.1
|
||||
github.com/sirupsen/logrus v1.9.3
|
||||
)
|
||||
|
||||
|
||||
@@ -5,8 +5,6 @@ github.com/go-telegram/bot v1.13.3 h1:r2erpHI5rMQsR5TFWJ/XVqWHq9R228fcaejLFvXJsm
|
||||
github.com/go-telegram/bot v1.13.3/go.mod h1:i2TRs7fXWIeaceF3z7KzsMt/he0TwkVC680mvdTFYeM=
|
||||
github.com/kelseyhightower/envconfig v1.4.0 h1:Im6hONhd3pLkfDFsbRgu68RDNkGF1r3dvMUtDTo2cv8=
|
||||
github.com/kelseyhightower/envconfig v1.4.0/go.mod h1:cccZRl6mQpaq41TPp5QxidR+Sa3axMbJDNb//FQX6Gg=
|
||||
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
|
||||
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||
github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ=
|
||||
|
||||
+2
-2
@@ -3,7 +3,7 @@ package handler
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/nightnoryu/anon3anon/pkg/infrastructure/jsonlog"
|
||||
"github.com/nightnoryu/anon3anon/pkg/anon3anon/infrastructure/jsonlog"
|
||||
|
||||
"github.com/go-telegram/bot"
|
||||
"github.com/go-telegram/bot/models"
|
||||
@@ -28,7 +28,7 @@ func NewAnonymousMessagesHandler(logger jsonlog.Logger, ownerChatId int) bot.Han
|
||||
|
||||
sendParams := &bot.SendMessageParams{
|
||||
ChatID: update.Message.Chat.ID,
|
||||
Text: "Сообщение отправлено!!",
|
||||
Text: messageSentMessage,
|
||||
}
|
||||
_, err = b.SendMessage(ctx, sendParams)
|
||||
if err != nil {
|
||||
@@ -0,0 +1,6 @@
|
||||
package handler
|
||||
|
||||
const (
|
||||
greetingMessage = "Жду твоих сообщений!!"
|
||||
messageSentMessage = "Сообщение отправлено!!"
|
||||
)
|
||||
+6
-2
@@ -3,7 +3,7 @@ package handler
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/nightnoryu/anon3anon/pkg/infrastructure/jsonlog"
|
||||
"github.com/nightnoryu/anon3anon/pkg/anon3anon/infrastructure/jsonlog"
|
||||
|
||||
"github.com/go-telegram/bot"
|
||||
"github.com/go-telegram/bot/models"
|
||||
@@ -11,9 +11,13 @@ import (
|
||||
|
||||
func NewStartCommandHandler(logger jsonlog.Logger) bot.HandlerFunc {
|
||||
return func(ctx context.Context, b *bot.Bot, update *models.Update) {
|
||||
if update.Message == nil {
|
||||
return
|
||||
}
|
||||
|
||||
params := &bot.SendMessageParams{
|
||||
ChatID: update.Message.Chat.ID,
|
||||
Text: "Жду твоих сообщений!!",
|
||||
Text: greetingMessage,
|
||||
}
|
||||
_, err := b.SendMessage(ctx, params)
|
||||
if err != nil {
|
||||
+1
-1
@@ -4,7 +4,7 @@ import (
|
||||
"context"
|
||||
"fmt"
|
||||
|
||||
"github.com/nightnoryu/anon3anon/pkg/infrastructure/jsonlog"
|
||||
"github.com/nightnoryu/anon3anon/pkg/anon3anon/infrastructure/jsonlog"
|
||||
|
||||
"github.com/go-telegram/bot"
|
||||
"github.com/go-telegram/bot/models"
|
||||
Reference in New Issue
Block a user