worker

package
v0.3.0-beta Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 6, 2022 License: GPL-3.0 Imports: 11 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var Worker = &cli.Command{
	Name:  "worker",
	Usage: "Start telegram bot worker",
	Flags: []cli.Flag{
		&cli.BoolFlag{
			Name:        "cron",
			Usage:       "enable cron service",
			DefaultText: "false",
		},
	},
	Action: func(cmd *cli.Context) error {
		ctx, cancel := support.WithKillSignal(cmd.Context)

		defer cancel()

		cfg := *config.Ctx(cmd.Context)
		logger := zerolog.Ctx(cmd.Context).
			With().
			Str("context", "worker").
			Logger()

		var err error

		services := serviceContainer{
			cfg:    cfg,
			logger: logger,
		}

		logger.Debug().Msg("Creating youtube service instance")

		services.youtube, err = ytube.NewService(cmd.Context, cfg.Youtube)
		if err != nil {
			return err
		}

		services.bot, err = initBot(ctx, services)
		if err != nil {
			return err
		}

		if cmd.Bool("cron") {
			go func() {
				errSig := initCron(ctx, services)
				err := <-errSig
				if err != nil {
					logger.Error().Err(err).Msg("error signal from cron")
				}
			}()
		} else {
			logger.Warn().Msg("Cron is disabled")
		}

		<-ctx.Done()

		logger.Info().Err(ctx.Err()).Msg("Done")

		return nil
	},
}

Functions

This section is empty.

Types

This section is empty.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL