diff --git a/install.sh b/install.sh index f0d5843..8ceb09b 100644 --- a/install.sh +++ b/install.sh @@ -1,2 +1,2 @@ #!/usr/bin/env bash -env GOBIN=/usr/local/bin go install ./cmd \ No newline at end of file +go build -o /usr/local/bin/mdb ./cmd \ No newline at end of file diff --git a/pkg/handler/handler.go b/pkg/handler/handler.go index 7d7bc85..fba153f 100644 --- a/pkg/handler/handler.go +++ b/pkg/handler/handler.go @@ -1,31 +1,49 @@ package handler import ( - "reflect" + "log" // Додано імпорт log - "github.com/iancoleman/strcase" "github.com/spf13/viper" "git.kplus.net.ua/yevhen/resource-scraper/pkg/service" "git.kplus.net.ua/yevhen/resource-scraper/types/constant" ) +// consoleCommandHandler визначає тип для функцій-обробників консольних команд. +type consoleCommandHandler func() string + type Handler struct { services *service.Service + // consoleCommands зберігає мапу назв команд до відповідних функцій-обробників. + consoleCommands map[string]consoleCommandHandler } func New(services *service.Service) *Handler { - return &Handler{services: services} + h := &Handler{services: services} + + // Ініціалізація мапи команд. + h.consoleCommands = map[string]consoleCommandHandler{ + "console": h.Console, + "info": h.Info, + "metal-archives": h.MetalArchives, + "prescene": h.Prescene, + "rutracker": h.Rutracker, + "stb": h.STB, + //"web": h.Web, + } + + return h } func (h *Handler) InitConsole() string { - methodName := strcase.ToCamel(viper.GetString(constant.FlagScopeEnable)) + commandName := viper.GetString(constant.FlagScopeEnable) - immutable := reflect.ValueOf(h) - method := immutable.MethodByName(methodName) - v := method.Call(nil) - - return methodName + " launched, " + v[0].String() + "\n" + if cmdFunc, ok := h.consoleCommands[commandName]; ok { + return commandName + " launched, " + cmdFunc() + "\n" + } else { + log.Printf("Error: unknown console command '%s'", commandName) + return "Error: unknown console command" + } } func (h *Handler) InitRoutes() string { diff --git a/pkg/repository/stb.go b/pkg/repository/stb.go index bc5e239..0616473 100644 --- a/pkg/repository/stb.go +++ b/pkg/repository/stb.go @@ -44,13 +44,11 @@ func (s *ShareTheBrutality) GetMail(email string) ([]model.ExternalSources, *mai searchCriteria := &imap.SearchCriteria{ Text: viper.GetStringSlice(criteria), } - //now := carbon.Now() + s.EmailService.ListMessages(viper.GetStringSlice(mailboxes), searchCriteria) - //box.CreateMailbox("INBOX/Processed") //s.EmailService.CreateMailbox("Succeed") //s.EmailService.DeleteMailbox("Succeed") - - s.EmailService.MailboxesList() + //s.EmailService.MailboxesList() entries := s.Processing(viper.GetStringMapString(fmt.Sprintf("%s.sender", s.scope)))