diff --git a/commands/gayname.go b/commands/gayname.go new file mode 100644 index 0000000..40ca49a --- /dev/null +++ b/commands/gayname.go @@ -0,0 +1,58 @@ +package commands + +import ( + "encoding/json" + "math/rand" + "os" + "sync" + + tgbotapi "github.com/go-telegram-bot-api/telegram-bot-api/v5" +) + +type GaynameCommand struct{} + +var ( + gaynameData struct { + First []string `json:"first"` + Last []string `json:"last"` + } + gaynameOnce sync.Once +) + +func loadGaynameData() { + file, err := os.Open("json/gayname.json") + if err != nil { + gaynameData.First = []string{"Failed"} + gaynameData.Last = []string{"to load"} + return + } + defer file.Close() + json.NewDecoder(file).Decode(&gaynameData) +} + +func (g GaynameCommand) Name() string { + return "gayname" +} + +func (g GaynameCommand) Help() string { + return "Your gay name" +} + +func (g GaynameCommand) Execute(update tgbotapi.Update, bot *tgbotapi.BotAPI) { + gaynameOnce.Do(loadGaynameData) + user := update.Message.From + var result string + if user != nil && user.LanguageCode == "pl-PL" { + result = user.FirstName + " aka FILTHY PIECE OF RETARD POLAK MIDGETSHIT" + } else { + first := gaynameData.First[rand.Intn(len(gaynameData.First))] + last := gaynameData.Last[rand.Intn(len(gaynameData.Last))] + result = user.FirstName + " aka " + first + " " + last + } + msg := tgbotapi.NewMessage(update.Message.Chat.ID, result) + bot.Send(msg) +} + +func init() { + Register(GaynameCommand{}) +}